上海市计算机二级C语言复习资料.docx
《上海市计算机二级C语言复习资料.docx》由会员分享,可在线阅读,更多相关《上海市计算机二级C语言复习资料.docx(143页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、03年上海市高等学校计算机等级考试试卷二级 (C程序设计)(本试卷答卷时间为120分钟)试题一(28分,每小题4分)解答下列各小题,把正确的解答写在答卷纸的对应栏内。(1)设有变量说明:int a=5,b=4,c=3,rl,r2;请写出执行下列语句后rl和r2的值。rl=abc;r2=ab&bc;rl=0 r2=l(2) 试写出下列算式的C语言表达式。cP sin 751 x-log2ylexp(ln(a)/3)*sin(75, 0/180*3.14)/fabs(x-ln(y)/ln(2)(3) 执行下列语句后,ij,k的值是多少?fbr (i=k=0j=6; ij; i-H-j) k+=4*
2、i-5*j;i=3 j=3 k=-63(4) 执行下列程序后,b和c的值各为多少?#include void main()int *a10,b,c;a0=&b;*a0=5;c=(*a0)-H-;printf(u%d %dn,b,c);b=6c=5(5) 设有如下程序:#include void main() int clock; float f; char cpu20;scanfi(t6%4d%f%s,&clock,&f,cpu);printf(tfc%d %.0f %sn,clock,f,cpu);假设输入数据流为200015.0 P4 is GOOD!,请写出执行该程序后的输出结果。(6)
3、 下列程序的输出结果是什么?#include main()intcl=0,c2=0,c3=0,c4=0;char*p= 12395632123378”;while (*p) switch (*p) case *1cl-H-; break;case 2c2+;case 3c3+; break;default :C4-H-;pH;printffc 1 =%d c2=%d c3=%d c4=%dnM,c 1 ,c2,c3 ,c4);cl=2c2=3c3=7c4=5执行下列程序后,s的值为多少?#define sq(X) X*X void main()int s=15, a=2, b=l;printf
4、(fc4s=%dn,s=sq(a+b)/sq(a+b);s=7试题二(12分,每小题6分)阅读下列程序,把程序的输出结果写在答卷纸的对应栏内。 (1)【程序2.1】#define N 6 void main() int ij,aN;fbr(i=l; il;j-)for(j=l;j=i;j+)printfT%4d”,aj);printf(n”);11 11 2 113 3 11 4 6 4 1(2)【程序2.2】#include void fun(char *s) while (*s) *s=(*s-0+3)%10+0;-H-S;void main() char a尸314762985”; in
5、t i;fiin(a+3);for (i=0; i3; +i)printf(ti%cn,a3*i+l);试题三(12分,每小题6分)改错。下列程序中都有三个错误,按原来程序的要求,纠正错误,并以“将#XX 行改为YYYY”的形式进行解答,代码左边的“#01”、“#02”、是附加的行号。(1)程序3.1功能是输入一个字符串,并将其中的字符3用字符串“shu”替代后输出。如输 入为“123abcaHello”,则输出为“123shubcshuHello,【程序3.1】# 01 #include # 02void main()# 03int i; char line81;# 04scanfT%s”,
6、&line);# 05for (i=0; linei!=,n,; i+)# 06if (linei=a)# 07printf(“shu”);# 08else#09printf(s”,linei);# 104 5 9o o o# # #第第第将将将行改为行改为行改为scanf( %s”,line);for (i=0; linei!= 0 ;i+) printf( %c”,linei);(2)程序3.2实现对输入的长度小于100的英文字母(空格表示结束)进行头尾相接,围成 一个环,输出按顺时针方向出现的相邻两个递增字母及其个数(如下图中的HI, IJ, ST,总共出现3次)。【程序3.2# 01
7、#include # 02 void main()# 03 char s 100;# 04int k,len,no;# 05scanfT%s”,s);# 06len=strlen(s);# 07slen=s0;# 08slen-F+=,0,;# 09for ( k=0; klen; k+)# 10if(sk-l+l=sk)# 11 printfi(4%c %cn,sk-1 ,sk);# 12no+;# 13# 14printfCt%dn,no);# 15将第 #04 行改为:int k, len, no=0;将第 #08 行改为:s+len= 0;将第 #09 行改为:k=l; klen; k
8、+试题四(18分,每小题6分)按指定的要求编写C程序段,把解答写在答卷纸对应的栏内。不要求写完整的程 序,也不必定义语句中出现的变量。(1) 求出任意一个数m (设4Wm10000)的所有素因子。例如,37的素因子是37; 420 的素因子是2, 2, 3, 5, 7.main() int i=2,m;scanf (%d,&m);while (i=m) if (!(m%i) printf(3d”, i); m/=i;)else i+;printf(n);(2) 设有一维数组说明char T5,存放,A,TV, E,五个字母,请编写一个 程序段,按以下格式输出结果。ABCDE BCDEA CDE
9、AB DEABC EABCDSinclude Sinclude void fun (char a, int n) char k, j, b20;for (k=0; kn;k+) bk+n=bk=ak;for (j=0; jn; j+) for (k=j; kj+n; k+) printf (%c,bk);printf(n); ) main() char s80, n;scanf s);n=strlen (s);fun(s, n);(3) 输入正偶数n,计算以下级数之和并输出结果(显示结果保留小数点后5位)1 s=3416(此题找不到答案)试题五(15分,每空3分)阅读下列问题描述和相应的C程序
10、,把应填入其中(n) 处的内容写在答卷纸的对应栏内。【问题描述】程序5不断地从键盘输入字符,直到输入EOF (Control+Z)为止。对于输入的小写字符, 先转换为相应的大写字符,其它字符不变,然后逐个输出到文件texttxt中,行结束符回车(nD也作为一个字符对待,最后统计文件中的字符个数和行数。 【程序5】#includc main() FILE *fp;char c,str256;int i=0, no=0, line=0;if (fp=fbpen(44text.txf )=NULL) printffCant open this file.nM);exit(O);printf(uPle
11、ase input a string.nM);while (c=getchar()!=EOF) if (c=,a,&c=,z,)fputc( (3),ip);fclose(fp);if (fp=fbpenflext.txtVn)=NULL) printffCant open this file.nM);exit(O);)while (!feofi(fp) c= (4) ;no-H-;if( ) line+;printfi(44line=%d charcter_no=%dn,Iine,no); fclose(fp);(1)w(2)c二c-32 或 c=c- a + A(3)c(4)fgetc(f
12、p)(5)c=, n9试题六(15分,每空3分)阅读下列问题描述和相应的C程序,把应填入其中(n) 处的内容写在答卷纸的对应栏内。【问题描述】已知X和Y是两个整型数组,而且X中的数据按从小到大的顺序排列,Y中的数据按从大 到小的顺序排列。程序6将X和Y中数归并,并按从小到大的顺序保存到整型数组Z中, 然后输出数组Z中的各个元素。例如,X数组为1, 12, 23, 37, Y数组为123, 78, 36, 3,归并后生成的新数组Z为1, 3, 12, 23, 36, 37, 78, 123.【程序6】void sorted(int up, int down, int merged, int n)
13、inti=k=0; j=n-l;while ( Qj )if (upi=0)fbr( ;j=O;j)mergedk+= (4);if (j=O&in)fbr (; in; i-H-)mergedk+= (5) ;void main() int up= 1,12,23,37, down= 123,78,36,3, merged8, k;sorted(up,down,merged,4);fbr (k=0; k8; k+) printfiet%d,smergedk);printfTn”);(1)i=0(2)mergedk=upi(3)downj(4)downj2004年上海市高等学校计算机等级考试试
14、卷二级(C程序设计)(本试卷答卷时间为120分钟)试题一(28分),每小题4分)解答下列各小题,把正确的解答写在答卷纸的对应栏内。(1)假设对n(n0)个学生按下列方法进行分班:每班k(k0)个学生,最后一个 班若不足k人也单独编成一个班,试用C语言中的条件表达式表示所编 班级个数。n%k0?n/k+l:n/k(2)设有变量定义:struct rec int x;int y;s = 4,28,9,36,*p = s;99计算表达式(p-y/p-x*s 1 .x+s 1 .y)的值。 (3)写出下列程序的输出结果。#include void main()char s=,2473,c,i;for(
15、i=0;c=si;i-H-)switch(c-0)case 2:case 3: putchar(c+4);continue;case 4: putchar(c+4);break;case 5: putchar(c+3);default: putchar(c+2);putchar(n);6897(4)分别写出下列4个指针变量pl,p2,p3,p4的含义。int *pl,*p25,(*p3)(), (*p4)5;pl是指向整型变量的指针变量p2是指针数组,它由5个指向整型变量的指针元素组成p3是函数指针,它所指向的函数返回一个整型值p4是数组指针,指向每行具有5个整型元素的二维数组的行指针(5)写
16、出程序的输出结果(假定类型unsigned int的字长为16位)。#include void main()unsigned int ul=0x958,u2,u3;u2 = (ul & 0xFF)4;u3 =(ul & 0xFF00)4;printf(u%x %x %xn”,u2,u3,u2|u3);580 90 590(6)阅读如下程序段,把其中的switch语句改写成等价的条件语句。int x,y;scanf(d”,&x);switch( x!=0)case 0: y=0; break;case 1: switch( x0) case 1: y=l; break;case 0: y=-l;
17、y=x=0?0:(x0?l:-l);(7)描述函数conv()的功能,并写出下列程序的输出结果。Void conv(int m)if( m=2)conv(m/2);printf(d”,m%2);void main() conv(13);使用递归将10进制整数m转换为对应二进制整数,结果为1101试题二(12分,每小题6分)阅读下列程序并回答问题,把答案写在答卷纸的对应栏内。(1)【程序2.1】#include void sort(int a,int n) intfbr(i=O;in-l;i+)fbr(j=i+l;jaj) t=ai,ai=aj,aj=t;)int delsame (int x,
18、 int n)int i,j,m=n;fbr(i=0;im;i+)while (xi=xi+l)for(j = i ;j m ;j+)xj = xj + l ;m -;return m;void main()int x = 74,4,35,4,65,65,72,74,35 ), i, m, n;n = sizeof(x)/sizeof(x0);sort(x,n);m=delsame (x, n);for (i = 0; i m; i+) printf(“3d”, xi);printfTiT);(a)函数sort()的功能是什么? (b)函数delsame。的功能是什么? (c)程序的输出 是什
19、么?函数sort()的功能是对数组进行从小到大排序函数delsame。的功能是把数组中相同的元素删除到一个,删除后,数组剩下的元素个 数作为函数的返回值程序的输出是:4 35 65 72 74(2)【程序2.2】#include ;#define M 4void main() int i,j,k,m,a4; printffEnter 4 numbers:); fbr(i=O; i0;i-)k=aM-l;for(j=M-l;jO;j)aU=aU-l;aO=k;fbr(m=O;mM;m+) printf(d”,am);printf(n);设一维数组a的4个输入整数是1, 2, 3, 4,则程序的输
20、出是什么?4123341223411234试题三(12分,每小题6分)改错。下列程序中都有三个错误,按原来程序的要求,纠正错误,并以“将#XX行改为YYYY” 的形式进行解答,代码左边的 #01、“ #02,是附加的行号。(1)程序3.1输入10个正整数,计算其中的素数之和并输出结果(不考虑溢 出情况)。【程序3.1】# 01/include # 02int sum(int *b, int m)# 03int s=0,is_prime(long);# 04while (m-)# 05 if( is_prime(*b-H-) s+=*b;# 06return s;# 07# 08int is_p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海市 计算机 二级 语言 复习资料
限制150内