资源描述:
《华中科技大学2003-2006级信息学院《c语言程序设计》考试试题及答案》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、2003级信息学院《C语言程序设计》考试试题系班级姓名学号成绩一.判断下列语句或程序的对错。(“×”表示错,“√”表示对)(10分)1intx=y=z=20;(×)y,z需要在前定义2#defineM50;(×)不能有分号3printf(“%t”,(40,50,60));(√)4floata[100],*p;p=a++;(×)数组名是地址常量,不能做++操作5charstr[20];str[20]=0;(×)str[20]单元不可用6intdata[4]={0,1,2,3,4};(×)0,1,2,3,4是5个元素,与data[4]不匹
2、配7intx=’ 14’;(√)8intxyz.1=2;(×)xyz.1不是合法的标识符(变量名)9char*p=”c:testprg.c”;(×)修改为c:\test\prg.c10int*p;*p=20;(×)指针不能用常量进行赋值二.计算下列表达式的值(10分)设unsignedinta=15,b=21,c=5,d=1;floatf;(1)f=b/c(4.0)b/c是整数除,先得到4,然后赋值给f(2)!(a+b)+c-1&&b+c/2(1)(3)a^b+b&0x55+c<<3
3、015(0x000f)(4)d*=c--%
4、b++(5)(5)a%=(c%=2)(0)三.程序改错(10分)1从键盘上输入三个字符串,然后按字典(从小到大)顺序进行输出#include#includevoidswap(char*,char*);//函数声明需要分号结束main(){chara[80],b[80],c[80]; scanf(“%s%s%s”,&a,&b,&c);//去掉&号,数组名即表示地址if(a>b)swap(a,b);strcmp(a,b)>0a,b比较需要用字符串比较函数if(b>c)swap(b,c);strcmp(b
5、,c)>0b,c比较需要用字符串比较函数printf(“%s%s%s”,a,b,c);}voidswap(char*pstr1,char*pstr2){char*p;//charp[80];p=pstr1;//strcpy(p,pstr1);字符串赋值需要用拷贝函数pstr1=pstr2;//strcpy(pstr1,pstr2);pstr2=p;//strcpy(pstr2,p);}(2)求某班30个学生数学成绩的最高分和平均分.#includeflaotprocess(float*p1,intn,int
6、*p2);添加函数声明main(){floata[30],aver;int;for(m=0;m<30;m++)scanf(“%f”,&a[m]);max=process(a,30,&aver);printf(“max=%f,ave=%f),max,aver);}floatprocess(float*p1,intn,int*p2){charx;inttemp;//floattemp与函数返回类型匹配for(x=0;x<=n;x++)//for(x=0;xtemp)temp=p1[x];*p2
7、+=p1[x];}p2=p2/n;//*p2=*p2/n;returntemp;}四.程序填空(1)有一分数系列:2/1,3/2,/5/3,8/5,13/8,21/13……求出这数列的前50项和#includemain(){intm;float__________;//t,s=0,a=2,b=1for(m=1;__________;m++)//m<=50{s=s+a/b;t=a;a=_a+b_____;b=_t_;}printf(“sum=%f:,s);}(1)按如图所示格式打印杨辉三角形的前10行11112113
8、3114641………main(){intm,n,a[10][10];for(m=0;m<10;m++){a[m][0]=1;__________________;a[m][m]=1;}for(__m=2___;m<10;m++)for(___n=1____;__n9、]);}}五.写输出结果(1)#includevoidmain(){intm,n,p,s;s=0;for(m=1;m<=4;m++){for(n=1;n<=m;n++){p=1;for(n