二级C上机考试考试题库、程序设计题.pdf
《二级C上机考试考试题库、程序设计题.pdf》由会员分享,可在线阅读,更多相关《二级C上机考试考试题库、程序设计题.pdf(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计题答案:1.函数fun的功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将 a 数的十位和个位数依次放在c 数的千位和十位上,b 数的十位和个位数依次放在c数的百位和个位上。例如,当 a=45,b=如时调用该函数后,c=4125.#include void fun(int a,int b,long*c)*c=(a/10)*1000+(b/10)*l 00+(a%10)*10+(b%10);main()int a,b;long c;void NONO();printfCInput a,b:);scanf(%d,%d,&a,&b);fun(a,b,&c);pr
2、intf(The result is:%dn,c);NONO();)void NONO()FILE*rf,*wf;int i,a,b;long c;rf=fopen(in.daT);wf=fopenCouLdat;w);for(i=0;i10;i+)fscanf(rf,%d,%d”,&a,&b);fun(a,b,&c);fprintf(wf,a=%d,b=%d,c=%1 dn,a,b,c);)fclose(rf);fclose(wf);2.函数fun的功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的卜位和个位依次放在c 数的个位和百位上,b 数的卜位和个
3、位依次放在 c 数的千位和十位上。例如:当 a=45,b=L2,调用函数后,c=1524.#include void fun(int a,int b,long*c)*c=(b/10)*l 000+(a%10)*100+(b%10)*10+(a/10);main()int a,b;long c;void NONO();printfCInput a,b:);scanf(%d,%cT,&a,&b);fun(a,b,&c);printf(The result is:%ldn,c);NONO();void NONO()FILE*rf,*wf;int i,a,b;long c;rf=fopenwf=fop
4、enCouLdat;w);for(i=0;i10;i+)fscanf(rf,%d,%d”,&a,&b);fun(a,b,&c);fprintf(wf,a=%d,b=%d,c=%1 dn?,a,b,c);)fclose(rf);fclose(wf);3.函数fun的功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的十位和个位依次放在c 数的个位和百位上,b 数的十位和个位依次放在 c 数的十位和千位上。例如:当 a=45,b=12,调用函数后,c=2514.#include void fun(int a,int b,long*c)*c=(b%10)*1000
5、+(a%10)*100+(b/10)*l 0+(a/10);main()int a,b;long c;void NONO();printf(4Input a,b:);scanf(%d,%cT,&a,&b);fun(a,b,&c);printf(4iThe result is:%ldn”,c);NONO();)void NONO()FILE*rf,*wf;int i,a,b;long c;rf=fopen(in.dat“Jr);wf=fopen(out.dat,w);for(i=0;i10;i+)fscanf(rf,M%d,%d”,&a,&b);fun(a,b,&c);fprintf(wf,a=
6、%d,b=%d,c=%1 dn,a,b,c);)fclose(rf);fclose(wf);)4.函数fun的功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的卜位和个位依次放在c 数 的 卜 位和千位上,b 数的卜位和个位依次放在 C数的百位和个位上。例如:当 a=45,b=12,调用函数后,c=5142.#include void fun(int a,int b,long*c)*c=(%10)*1000+(b/10)*l 00+(a/10)*10+(b%10);main()int a,b;long c;void NONO();printf(4Input
7、 a,b:);scanf(%d,%cT,&a,&b);fun(a,b,&c);printf(The result is:%ldn”,c);NONO();)void NONO()FILE*rf,*wf;int i,a,b;long c;rf=fopen(in.dat,T);wf=fopen(out.dat,w);for(i=0;i10;i+)fscanf(rf,%d,%d”,&a,&b);fun(a,b,&c);fprintf(wf;,a=%d,b=%d,c=%ldn,a,b,c);)fclose(rf);fclose(wf);)5.请编写一个fun函数,它的功能是:计算n 门课程的平均分,计算
8、结果作为函数值返回。例如:若有5 门课程的成绩是:90.5,72,80,61.5,55则函数的值为:71.80.#include float fun(float*a,int n)int i;float ave=0.0;for(i=0;in;i+)ave=ave+aij;ave=ave/n;return ave;main()float score30=90.5,72,80,61.5,55,aver;void NONO();aver=fun(score,5);printfCAnAverage score is:%5.2fn,aver);N O N O();FILE*fp,*wf;int i,j;f
9、loat aver,score5;fp=fopen(in.dat;T);wf二 fopen(out.dat,w);for(i=0;i10;i+)for(j=O;j5;j+)fscanf(fp,%f,&scorej);aver=fun(score,5);fprintf(wf,5.2frT,aver);)fclose(fp);fclose(wf);)6.请编写一个函数fu n,它的功能是:比较两个字符串的长度,(不得调用C 语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输出 beijingshanghai(vCR为回车键),函数将返回 sha
10、nghaio#include char*fun(char*s,char*t)(inti;char*p=s,*q=t;int n=0,m=0;while(*p)(n+;P+;)while(*q)(m+;q+;)if(n=m)P=s;elseP=t;return p;)main()char a20,b20;void NONO();printf(nInput I th string:);gets(a);printf(MInput 2th string:);gets(b);printf(“s%”,fun(a,b);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数
11、据,关闭文件。*/FILE*fp,*wf;int i;char a20,b20;fp=fopenCin.dar/r1,);wf=fopen(out.dat,wn);for(i=0;i 10;i+)fscanf(fp,n%s%s,a,b);fprintf(wf,sn”,fun(a,b);)fclose(fp);fclose(wf);)7.请编写一个函数fu n,它的功能是:求 出 1 到 m 之 间(含 m)能被7 或 11整除的所有整数放在数组a 中,通过n 返回这些数的个数。例如,若传送给m 的值为5 0,则程序输出:711 1421 22 28 33 35 42 44 49。#includ
12、e#define M 100void fun(int m,int*a,int*n)(int i,j=O;*n=O;for(i=l;i=m;i+)if(i%7=0lli%ll=0)(aj=i;j+;)*n=j;)main()int aaM,n,k;void NONO();fun(50,aa,&n);for(k=0;k n;k+)if(k+l)%20=0)printf(nn);else printf(%4d aak);printf(,n,);NONOQ;void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i,n,j,k,aaM,
13、sum;fp=fopen(,in.datn,ur,);wf=fopen(out.dat*,n wM);for(i=0;i 10;i+)fscanf(fp,u%d,n,&j);fun(j,aa,&n);sum=0;for(k=0;k n;k+)sum+=aak;fprintf(wf,u%dn,sum);)fclose(fp);fclose(wf);)8.请编写一个函数fu n,它的功能是:将 ss所指字符串中所有下标为奇数位置上字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入“abc3EFg”,则应输出“aBc4EFg”。#include#include void fun(char*
14、ss)(int i;for(i=l;i=a&ssi=z*)ssi-=32;)main()char tt81;void NONO();printf(nPlease enter an string within 80 characters:n);gets(tt);printf(MnnAfter changing,the stringn V%sM,tt);fun(tt);printf(nnbecomesn%sn”,tt);NONO();)void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;char tt81J;inti;fp=fopen(
15、in.dat,;,r);wf=fopen(out.datn,MwH);for(i=0;i 10;i+)fscanf(fp,n%s,tt);fun(tt);fprintf(wf,u%sn,tt);)fclose(fp);fclose(wf);)9.函数fun的功能是:将 s 所指字符串中除了下标为偶数、同时ASCH值也为偶数的字符外,其余的全部删除;串中剩余字符所形成的一个新串放在t 所指的数组中。例如,若是所指字符串中的内容为:“ABCDEFG123456,其中字符A 的 ASCH码值为奇数,因此应当删除;其中字符B 的 ASCH码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2 的
16、 ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他以此类推。最后t 所指的数组中的内容应是:“246”。#include#include void fun(char*s,char t)(int i,j=0;for(i=0;istrlen(s);i+=2)if(si%2=0)tj+=si;tUJ=O;)main()(char s100,t100;void NONO();printf(nPlease enter string S:);scanf(,%s,s);fun(s,t);printf(nnThe result is:%sn*,t);NONO();)void NONO()/
17、*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/charsflOOLtflOO;FILE*rf,*wf;inti;rf=fopen(uin.datM,Y);wf=fopen(out.dat,wH);for(i=0;i 10;i+)fscanf(rf,u%s,s);fun(s,t);fprintf(wf,u%sn,t);)fclose(rf);fclose(wf);)10.函数fun的功能是:将 s 所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t 所指数组中。例如,当 s 所指字符串中的内容为:“ABCDEFGHIJK”,在 t 所指数组中的内容应是:“BDFH
18、J”。#include#include void fun(char*s,char t)(int i,j=0;for(i=l;istrlen(s);i+=2)tj+=si;tU=w;)main()(char s100,t100;void NONO();printf(nnPlease enter string S:);scanf(n%sn,s);fun(s,t);printf(MnThe result is:%snH,t);NONO();void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/chars100,t1001;FILE*rf,*wf;in ti;rf=
19、fopen(uin.datn,Y);wf=fopen(,out.dat,wn);for(i=0;i 10;i+)fscanf(rf,s);fun(s,t);fprintf(wf,n%snH,t);)fclose(rf);fclose(wf);11.函数fun的功能是:将 s 所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。例如,若 s 所指字符串中的内容为:“ABCDEFG12345”,最 后 t 所指的数组中内容应是:“ACEG135”。#include#include void fun(char*s,char t)(int i,j=0;for(i=0
20、;istrlen(s);i+)if(si%2)tj+=si;tjl=O;)main()(char s100,t100;printf(nPlease enter string S:);scanf(%s,s);fun(s,t);printlCAnThe result is:%sn,t);NONO();)NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/char s100,t100;FILE*rf,*wf;int i;rf=fopen(nin.datH;rM);wf=fopen(,out.datn,wn);for(i=0;i 10;i+)fscanf(rf,u%sH,s
21、);fun(s,t);fprintf(wf,%sn,t);)fclose(rf);fclose(wf);)12.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入结构体数组a 中。请编写函数f u n,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,请完成该函数。#include#include#define N 10typedef struct sschar num10;int s;STU;fun(STU a,STU*s)(int i,max=a0.s,j=0;for(i=l;iN;i+)if(maxai.s)j=i;max=ai
22、.s;)*s=aj;main()STU aN=AO 1 ”,81,“A02”,89,“A03”,66,A04,87,A05,77,A06H,90,A07,79,A08,61,A09,80,A10u,71,m;int i;printf(*The original data*n);for(i=0;i N;i+4-)printf(,No=%s Mark=%dn,ai.num,ai.s);fun(a,&m);prim”*THE RESULT*n);printf(The top:%s,%dnH,m.num,m.s);NONO();)NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文
23、件。*/FILE*rf,*wf;STU aN,m;inti;rf=fopen(in.datM,rn);wf=fopen(out.datn,nwn);for(i=0;i 10;i+)fscanf(rf,M%s%dH,ai.num,&ai.s);fun(a,&m);fprintf(wf,The top:%s,%dn,m.num,m.s);fclose(rf);fclose(wf);)13.程序定义了 N*N的二维数组,并在主函数中自动赋值。请编写函数fun(int N,int n),函数的功能是:使数组左下三角元素中的值乘以n。例如:若 n 的值为3,a 数组中的值为II 9 71 13 9 71
24、a=l2 3 81则返回主程序后a 数组中的值应为16 9 7114 5 61 112 15 181#include#include#define N 5void fun(int aN,int n)(int i,j;for(i=0;iN;i+)for(j=0;j=i;j+)aij*=n;)NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,j,n,a551;rf=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i 5 ;i+)for(j=0;jv 5;j+)fscanf(rf,%d,&aij
25、);fscanf(rf,n%d,&n);fun(a,n);for(i=0;i 5;i+)for(j=0;j 5;j+)fprintf(wf,n%4d,aij);fprintf(wf,Vn);)fclose(rf);fclose(wf);)main()int aNN,n,i,j;printf(*The array*n”);for(i=0;iN;i+)for(j=0;j=3);printf(n=%4dnu,n);fun(a,n);print”*THE RESULT*n);for(i=0;iN;i+)for(j=O;jN;j+)printf(%4dn,aij);printf(MnM);NONO();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上机 考试 题库 程序设计
限制150内