资源描述:
《历届C语言上海市等级试题及参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上海市高等学校计算机等级考试试卷二级(C程序设计)(本试卷答卷时间120分钟)试题一(28分,每小题4分)解答下列各小题,把解答写在答卷纸的对应栏内。(1)设a,b,c为整型并且a=3,b=5,c=7;写出下面表达式的值。(注:对每小题求值时a=3,b=5,c=7保持不变)①c>b>a②c%=a-b%1③b/=c-b%4④++a==--b(2)简述break和continue语句在使用场合和功能方面的区别。(3)执行下列程序后的输出结果是什么?voidmain(){inta,b,c;a=b=1;c=a++,b++,++b;pr
2、intf("%d,%d,%d",a,b,c);}(4)执行下列语句后的输出结果是什么?#includechars1[]="12345",s2[]="1234";printf("%d",strlen(strcpy(s1,s2)));printf("%s",s1+2);(5)写出数学计算式y=的C语言表达式。(6)写出宏定义s(x,y)的含义,执行下列程序后的输出结果是什么?#defines(x,y)x=x+y,y=x-y,x=x-yvoidmain(){inta=12,b=9;s(a,b);pri
3、ntf("a=%dtb=%d",a,b);}(7)用文字描述以下程序段所完成的功能:FILE*fr,*fw;fr=fopen("a.txt","r");fw=fopen("b.txt","w");while(!feof(fr))fputc(fgetc(fr),fw);fclose(fr);fclose(fw);试题二(12分,每小题6分)阅读下列程序,把程序的输出结果写在答卷纸的对应栏内。(1)【程序2.1】#defineNsizeof(a)/sizeof(a[0])voidmain(){inta[6]={10,20,3
4、0,40},i,*p=a,*p1=&a[5];p1=p1-4;*p1++=15;*p1=*(++p)*2;for(i=3;i5、b+c);printf("%d%d",a,b);}试题三(12分,每小题6分)改错。下列每个程序中都有三个错误,按题中的计算要求,纠正错误,并以“将#XX”行改为“YYYY”的形式进行解答,把解答写在答卷纸的对应栏内。代码左边的#01、#02、……是附加的行号。【程序3.1】下面程序的功能是从键盘输入三角形的3条边长x,y,z(整型数),判断此3边能否构成三角形。若能,则判定构成的三角形是等边三角形或是等腰三角形还是任意三角形,并求出所构成三角形的面积。#01#include#02#include6、h.h>#03intsjxfl(inta,intb,intc){#04if((a<=0)&&(b<=0)&&(c<=0)&&(a+b<=c)&&(b+c<=a)&&(c+a<=b))return0;#05elseif(a==b==c)return1;#06elseif((a==b)
7、
8、(b==c)
9、
10、(c==a))return2;#07elsereturn3;#08}#09voidmain(){#10intx,y,z;#11floatarea,s;#12scanf("%d%d%d",&x,&y,&z);#13switch(sj
11、xfl(x,y,z)){#14case0:printf("不能构成三角形.");#15exit(0);#16case1:printf("构成等边三角形.");#17break;#18case2:printf("构成等腰三角形.");#19break;#20case3:printf("构成任意三角形.");#21break;#22}#23s=(x+y+z)/2;#24area=sqrt(s*(s-x)*(s-y)*(s-z));#25printf("构成三角形的面积是:area=%f",area);#26}【
12、程序3.2】以下程序用递归算法求xn,即xn=x*xn-1,其中x为实数,n³0。#01voidmain(){#02floatx,y;#03intn;#04scanf("%f%d",&x,&n);#05y=xn(x);#06printf("x^n=%f",y);#07}#