资源描述:
《2013年计算机二级C语言上机题库及答案解析.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、填空题 给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。 例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include voidfun(char*s,char*p) {inti,j,n,x,t;
2、 n=0; for(i=0;s[i]!=' ';i++)n++; for(i=1;i<=""p=""> ___1___; for(j=___2___+2;j if(s[t]>s[j])t=j; if(t!=i) {x=s[i];s[i]=s[t];s[t]=x;} } for(i=1,j=0;i / p[j]=___3___; } main() {chars[80]="baawrskjghzlicda",p[50]; printf("Theoriginalstringis:%s",s); fun(s,p); printf("There
3、sultis:%s",p); } 解题思路: 第一处:取外循环的控制变量,所以应填:t=i。 第二处:内循环的起始变量,应该是i+2,所以应填:i。 第三处:新字符串处理完后应添加字符串结束符,所以应填:' '。改错题 给定程序MODI1.C中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止: π111 ┄┄≈1-┄┄+┄┄-┄┄+... 4357 例如,程序运行后,输入0.0001,则程序输出3.1414。 请改正程序中的错误,使它能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更
4、改程序的结构! 给定源程序: #include #include floatfun(floatnum) {ints; floatn,t,pi; t=1;pi=0;n=1;s=1; while(t>=num) { pi=pi+t; n=n+2; s=-s; t=s%n; } pi=pi*4; returnpi; } main() {floatn1,n2; printf("Enterafloatnumber:"); scanf("%f",&n1); n2=fun(n1); printf("%6.4f",n2); } 解题思路: 第
5、一处:要判断t的最后一项绝对小于指定的数,由于t是实数,那么应改为while(fabs(t)>=num)。 第二处:t是s除以n的值,而不是取余数,所以应改t=s/n;。编程题 请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。 例如,输入一个字符串:World,然后输入3,则调用该函数后的结果为:Word。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填
6、入你编写的若干语句。 给定源程序: #include #include #defineLEN20 voidfun(chara[],charb[],intn) { } main() {charstr1[LEN],str2[LEN]; intn; printf("Enterthestring:"); gets(str1); printf("Enterthepositionofthestringdeleted:"); scanf("%d",&n); fun(str1,str2,n); printf("Thenewstringis:%s",str2
7、); NONO(); } 解题思路: 本题是利用字符串拷贝和字符串连接来生成新的字符串。 参考答案: voidfun(chara[],charb[],intn) { strncpy(b,a,n); b[n]=0; strcat(b,a+n+1); }