资源描述:
《2012级信息学院C语言试卷答案及评分规则.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2012级信息学院《C语言程序设计》试卷(闭卷)一、判断下列语句或程序的对错。(“×”表示错,“√”表示对)(10分)//评分:每小题1分(1)charch=’55’;(×)(2)unsignedinta=b=c=5;(×)(3)inta=2,*p;p=&a;printf(”%d”,*&a);(√)(4)inta[5][5],(*p)[5];(×)p=&a[0][0];(5)chara=’a’,c;(√)c=a++;(6)intn;scanf(”%d”,&n);(×)inta[n];(7)inta[10],*p;(√)p=a
2、+2;(8)inta,b;(×)scanf(”%d,%f”,a,b);(9)floata=1,*b=&a,*c=&b;(×)(10)charstr[]={”World”};(√)printf(”%c”,*(str+2));二、计算下列表达式的值(10分)//评分:每小题2分设intx=3,y=-4,z=4;floatk=3.5;(1)x++-y+++z(12)(2)y>z
3、
4、z>2&&x++(1)(3)x
5、z&x^z(7)(4)x-y+!z-1&&x+y/2(1)(5)y+(x/3*(int)(x+k)/2)%4(-1)
6、三、改错,根据题意改正下列程序的错误和漏掉的部分(10分)(1)输入球体半径r,求其体积.#include“stdio.h”;#include“stdio.h”0.5分definepi=3.;#definepi3.0.5分floatvolume(intr);floatvolume(floatr);1分voidmian()voidmain()0.5分{floatr,v;scanf(“%d”,r);scanf(“%f”,&r);0.5分v=volume(r);printf(“%d”,v);printf(“%f”,v);0.5分}
7、floatvolume(intr);floatvolume(floatr)0.5分{v=4/3*pi*r*r*r;v=4.0/3*pi*r*r*r;1分returnv;}(2)利用指针数组对字符数组中的5个姓名字符串排序,字符数组内容不变。.#include;#include0.5分#include0.5分voidmain(){charname[5][20];char*p[5];inti;inti,j;0.5分chartemp[20];char*temp;0.5分for
8、(i=0;i<=5;i++)for(i=0;i<5;i++)0.5分{gets(name+i);p=name[i];p[i]=name+i;或p[i]=name[i]0.5分}for(i=0;i<5;i++)for(j=0;j<5;j++)for(j=i+1;j<5;j++)0.5分{if(p[i]>p[j])if(strcmp(p[i],p[j])>0)或if(strcmp(p[i],p[j])<0)0.5分{temp=p[i];p[i]=p[j];p[j]=p[i];}}for(i=0;i<5;i++)printf(“%
9、c”,p[i]);printf(“%s”,p[i]);1分}四、程序填空(10分)//评分:每空1分(1)给出年月日,计算出该日是该年的第几天。#include voidmain( ) { int year, month, day, days, i, d; printf(“请输入年,月,日:”);scanf(“%d%d%d”, &year, &month, &day); days=0; for( i=1; i10、e 5: case 7: case 8: case 10: case 12: d=31; break; case 4: case 6: case 9:case 11: d=30; break; case 2: if (year%4==0&&year %100 !=0
11、
12、 year%400==0) d=29; else d=28; break;} days+=d; } printf(“%d年%d月%d日是该年的第%d天”,year, month ,day, days+day); } (2)将一个指字符串的正序和
13、反序进行连接,形成一个新串放在另一个字符数组中。例如:当字符串为"ABCD"时,则新字符数组的内容应为"ABCDDCBA"。#include #include void fun (char *s, char *t);voidmain() { ch