上海计算机二级c试题含解析.doc
- 文档编号:232742
- 上传时间:2022-10-07
- 格式:DOC
- 页数:13
- 大小:855.50KB
上海计算机二级c试题含解析.doc
《上海计算机二级c试题含解析.doc》由会员分享,可在线阅读,更多相关《上海计算机二级c试题含解析.doc(13页珍藏版)》请在冰豆网上搜索。
2003年上海市高等学校计算机等级考试试卷
二级(C程序设计)
(120分钟)
试题一(28分,每小题4分)
(1)设有变量说明:
inta=5,b=4,c=3,r1,r2;
请写出执行下列语句後r1和r2的值。
r1=a>b>c;
r2=ac;
(2)试写出下列算式的C语言表达式。
(3)执行下列语句後,i,j,k的值是多少?
for(i=k=0,j=6;i (4)执行下列程序後,b和c的值各为多少? #include voidmain() { int*a[10],b,c; a[0]=&b; *a[0]=5; c=(*a[0])++; printf(“%d%d\n”,b,c); } (5)设有如下程序: #include voidmain() { intclock;floatf;charcpu[20]; scanf(“%4d%f%s”,&clock,&f,cpu); printf(“%d%.0f%s\n”,clock,f,cpu); } 假设输入数据流为200015.0P4isGOOD! ,请写出执行该程序後的输出结果。 (6)下列程序的输出结果是什么? #include main() { intc1=0,c2=0,c3=0,c4=0; char*p=”12395632123378”; while(*p){ switch(*p){ case‘1’: c1++;break; case‘2’: c2++; case‘3’: c3++;break; default: c4++; } p++; } printf(“c1=%dc2=%dc3=%dc4=%d\n”,c1,c2,c3,c4); } (7)执行下列程序後,s的值为多少? #definesq(X)X*X voidmain() { ints=15,a=2,b=1; printf(“s=%d\n”,sq(a+b)/sq(a+b)); } 试题二(12分,每小题6分) 阅读下列程序,写输出结果。 (1)#defineN6 voidmain() { inti,j,a[N]; for(i=1;i a[i]=1; for(j=i-1;j>1;j--) a[j]+=a[j-1]; for(j=1;j<=i;j++) printf(“%4d”,a[j]); printf(“\n”); } } (2)#include voidfun(char*s) {while(*s){ *s=(*s-‘0’+3)%10+’0’; ++s; } } voidmain() { chara[]=”314762985”;inti; fun(a+3); for(i=0;i<3;++i) printf(“%c\n”,a[3*i+1]); } 试题三(12分,每小题6分) 改错。 下列程序各有三个错误,请纠正。 (1)以下程序的功能是输入一个字符串,并将其中的字符’a’用字符串’shu’替代後输出。 如输入为“123abcaHello”,则输出为“123shubcshuHello”。 #01#include #02voidmain() #03{ #04inti;charline[81]; #05scanf(“%s”,&line); #06for(i=0;line[i]! =’\n’;i++) #07if(line[i]==’a’) #08printf(“shu”); #09else #10printf(“%s”,line[i]); #11} T T H I J A T W V S (2)以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI,IJ,ST,总共出现3次)。 #01#include #02voidmain() #03{ #04chars[100]; #05intk,len,no; #06scanf(“%s”,s); #07len=strlen(s); #08s[len]=s[0]; #09s[len++]=’\0’; #10for(k=0;k #11if(s[k-1]+1==s[k]){ #12printf(“%c%c\n”,s[k-1],s[k]); #13no++; #14} #15printf(“%d\n”,no); #16} 试题四(18分,每小题6分) 按要求编程序段。 (1)求出任意一个数m(设4<=m<=1000)的所有素因子。 例如,37的素因子是37;420的素因子是2,2,3,5,7。 (2)设有一维数组说明charT[5],存放五个字母’A’,’B’,’C’,’D’,’E’,编程按以下格式输出结果。 ABCDE BCDEA CDEAB DEABC EABCD (3)输入正偶数,计算以下级数值和并输出结果(显示结果保留小数点後5位)。 试题五(15分,每空3分) 填空。 【问题描述】以下程序不断地从键盘输入字符,直到输入EOF(control+z)为止。 对于输入的小写字符,先转换为相应的大写字符,其它字符不变,然后逐个输出到文件text.txt中,行结束符回车(‘\n’)也作为一个字符对待,最后统计文件中的字符个数和行数。 #include main() { FILE*fp; charc,str[256]; inti=0,no=0,line=0; if((fp=fopen(“text.txt”, (1)))==NULL) { printf(“can`topenthisfile.\n”); exit(0); } printf(“pleaseinputastring.\n”); while((c=getchar())! =EOF) { if(c>=’a’&&c<=’z’) (2); fputc((3),fp); } fclose(fp); if((fp=fopen(“text.txt”,“r”))==NULL) { printf(“can`topenthisfile.\n”) exit(0); } while(! feof(fp)) { c=(4); no++; if((5))line++; } printf(“line=%dcharacter_no=%d\n”,line,no); fclose(fp); } 试题六(15分,每空3分) 填空。 【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y中的数据按从达到小的顺序排列。 以下程序将X和Y中的数归并,并按从小到大的顺序保存到整型数组Z中,然后输出数组Z中的各个元素。 例如,X数组为{1,12,23,37},Y数组为{123,78,36,3},归并後生成的新数组Z为{1,3,12,23,36,37,78,123}。 voidsorted(intup[],intdown[],intmerged[],intn) { inti,j,k,m; i=k=0;j=n-1; while( (1)) if(up[i]<=down[j]) { (2); i++; k++; } else { merged[k]==(3); j--; k++; } if(i==n&&j>=0) for(;j>=0;j--) merged[k++]=(4); if(j==0&&i for(;i merged[k++]=(5); } voidmain() { intpu[]={1,12,23,37},down[]={123,78,36,3},merged[8],k; sorted(up,down,merged,4); for(k=0;k<8;k++) printf(“%5d”,merged[k]); printf(“\n”); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 计算机 二级 试题 解析