欢迎来到天天文库
浏览记录
ID:38720025
大小:590.50 KB
页数:95页
时间:2019-06-18
《计算机二级C语言考试编程题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编程题1.请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba。注意:部分源程序存在文件prog.c中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#include#include#include#defineN81/*本题的考核点是C语言中的for循环语句的使用。解题
2、思路:对于本题,我们给出的参考函数采取的算法是:将第一个元素与最后一个元素互换,第二个元素与倒数第二个互换…的方式进行倒排序。因为我们一次互换两个元素,所以for循环语句执行length/2次(length是字符串的长度)就可以把全部元素互换一遍。*/voidfun(char*s){inti,length;chartmp;length=strlen(s);/*统计字符串s中字符的个数*/for(i=0;i3、[i];s[i]=s[length-i-1];s[length-i-1]=tmp;}}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti;chara[N];FILE*rf,*wf;rf=fopen("bc8.in","r");wf=fopen("bc8.out","w");for(i=0;i<9;i++){fscanf(rf,"%s",a);fun(a);fprintf(wf,"%s",a);}fclose(rf);fclose(wf);}main(){ch4、ara[N];system("cls");printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("");printf("Thestringaftermodified:");puts(a);NONO();}2.编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600905、0注意:部分源程序存在文件prog.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#include#include/*本题的考核点是3行3列矩阵转置算法。解题思路:通过两重循环和一个中间数组完成转置。方法是通过循环将原数组中的i行j列上的数赋值给中间数组的j行i列,最后再将中间数组的值赋给原数组,形成转置后的矩阵。*/voidfun(intarray[3][3]){inti,j;intb[6、3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=array[i][j];/*将矩阵行列互换*/for(i=0;i<3;i++)for(j=0;j<3;j++)array[i][j]=b[i][j];/*将b数组中的数据原封不动的保存在array数组中*/}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j;FILE*wf;intarray[3][3]={{100,200,300},{400,500,600},{707、0,800,900}};wf=fopen("a11.out","w");fun(array);for(i=0;i<3;i++){for(j=0;j<3;j++)fprintf(wf,"%7d",array[i][j]);}fclose(wf);}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};system("cls");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",a8、rray[i][j]);printf("");}fun(array);printf("Convertedarray:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("");}NONO();}3.编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出
3、[i];s[i]=s[length-i-1];s[length-i-1]=tmp;}}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti;chara[N];FILE*rf,*wf;rf=fopen("bc8.in","r");wf=fopen("bc8.out","w");for(i=0;i<9;i++){fscanf(rf,"%s",a);fun(a);fprintf(wf,"%s",a);}fclose(rf);fclose(wf);}main(){ch
4、ara[N];system("cls");printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf("");printf("Thestringaftermodified:");puts(a);NONO();}2.编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵:100200300400500600700800900程序输出:10040070020050080030060090
5、0注意:部分源程序存在文件prog.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include#include#include/*本题的考核点是3行3列矩阵转置算法。解题思路:通过两重循环和一个中间数组完成转置。方法是通过循环将原数组中的i行j列上的数赋值给中间数组的j行i列,最后再将中间数组的值赋给原数组,形成转置后的矩阵。*/voidfun(intarray[3][3]){inti,j;intb[
6、3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)b[j][i]=array[i][j];/*将矩阵行列互换*/for(i=0;i<3;i++)for(j=0;j<3;j++)array[i][j]=b[i][j];/*将b数组中的数据原封不动的保存在array数组中*/}NONO(){/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/inti,j;FILE*wf;intarray[3][3]={{100,200,300},{400,500,600},{70
7、0,800,900}};wf=fopen("a11.out","w");fun(array);for(i=0;i<3;i++){for(j=0;j<3;j++)fprintf(wf,"%7d",array[i][j]);}fclose(wf);}main(){inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};system("cls");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",a
8、rray[i][j]);printf("");}fun(array);printf("Convertedarray:");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%7d",array[i][j]);printf("");}NONO();}3.编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出
此文档下载收益归作者所有