上海计算机二级c试题含解析_第1页
上海计算机二级c试题含解析_第2页
上海计算机二级c试题含解析_第3页
上海计算机二级c试题含解析_第4页
上海计算机二级c试题含解析_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级 (C程序设计)(120分钟)试题一(28分,每小题4分)(1) 设有变量说明:int a=5, b=4, c=3, r1, r2;请写出执行下列语句後r1和r2的值。 r1=abc; r2=ac;(2) 试写出下列算式的C语言表达式。(3) 执行下列语句後,i, j, k的值是多少? for(i=k=0, j=6; ij; i+, j- ) k+=4*i-5*j;(4) 执行下列程序後,b和c的值各为多少? #include void main() int *a10, b, c;a0=&b;*a0=5;c=(*a0)+;printf(“%d %dn”, b, c); (5) 设有如下程序

2、: #include void main() int clock; float f; char cpu20;scanf(“%4d%f%s”, &clock, &f, cpu);printf(“%d %.0f %sn”, clock, f, cpu); 假设输入数据流为200015.0 P4 is GOOD!,请写出执行该程序後的输出结果。(6) 下列程序的输出结果是什么? #include main() int c1=0, c2=0, c3=0, c4=0;char *p=”;while(*p) switch(*p) case 1: c1+; break; case 2: c2+; case

3、3: c3+; break; default: c4+; p+;printf(“c1=%d c2=%d c3=%d c4=%dn”, c1, c2, c3, c4); (7) 执行下列程序後,s的值为多少? #define sq(X) X*X void main() int s=15, a=2, b=1;printf(“s=%dn”, sq(a+b)/sq(a+b); 试题二(12分,每小题6分)阅读下列程序,写输出结果。(1)#define N 6void main() int i, j, aN; for(i=1; i1; j-) aj+=aj-1; for(j=1; j=i; j+) pr

4、intf(“%4d”, aj); printf(“n”); (2)#include void fun(char *s) while(*s) *s=(*s-0+3)%10+0; +s; void main() char a=”314762985”; int i; fun(a+3); for(i=0; i3; +i) printf(“%cn”, a3*i+1);试题三(12分,每小题6分)改错。下列程序各有三个错误,请纠正。(1) 以下程序的功能是输入一个字符串,并将其中的字符 a用字符串shu替代後输出。如输入为“123abcaHello”,则输出为“123shubcshuHello”。 #01

5、 #include #02 void main()#03 #04 int i; char line81;#05 scanf(“%s”, &line);#06 for(i=0; linei!=n; i+)#07 if(linei=a)#08 printf(“shu”);#09 else#10 printf(“%s”, linei); #11 TTHIJATWVS(2) 以下程序实现对输入的长度小于100的英文字母串(空格表示结束)进行头尾相接,围成一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST, 总共出现3次)。 #01 #include #02 void

6、 main() #03 #04 char s100; #05 int k, len, no; #06 scanf(“%s”, s); #07 len=strlen(s); #08 slen=s0; #09 slen+=0; #10 for(k=0; klen; k+) #11 if(sk-1+1=sk) #12 printf(“%c %cn”, sk-1, sk); #13 no+; #14 #15 printf(“%dn”, no); #16 试题四(18分, 每小题6分)按要求编程序段。 (1)求出任意一个数m(设4=m=1000)的所有素因子。例如,37的素因子是37;420的素因子是2

7、,2,3,5,7。(2)设有一维数组说明char T5,存放五个字母A,B,C,D,E,编程按以下格式输出结果。 A B C D E B C D E A C D E A B D E A B C E A B C D (3)输入正偶数,计算以下级数值和并输出结果(显示结果保留小数点後5位)。试题五(15分,每空3分)填空。【问题描述】以下程序不断地从键盘输入字符,直到输入EOF(control+z)为止。对于输入的小写字符,先转换为相应的大写字符,其它字符不变,然后逐个输出到文件text.txt中,行结束符回车(n)也作为一个字符对待,最后统计文件中的字符个数和行数。#include main()

8、FILE *fp;char c, str256;int i=0, no=0, line=0;if(fp=fopen(“”, (1) )=NULL) printf(“cant open this file.n”); exit(0);printf(“please input a string.n”);while(c=getchar()!=EOF) if(c=a&c=z) (2) ; fputc( (3) , fp);fclose(fp);if(fp=fopen(“”, “r”)=NULL) printf(“cant open this file.n”) exit(0);while(!feof(fp

9、)c= (4) ; no+; if( (5) ) line+;printf(“line=%d character_no=%dn”, 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。void sorted(int up, int down, int merged, int n) int i, j, k, m;i=k=0; j=n-1; while( (1) )if(upi=0) for( ; j=0; j-) mergedk+= (4) ;if(j=0&in) for( ; in; i+) mergedk+= (5) ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论