您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 广州大学C语言程序设计期末考试试卷含答案
1院、系领导审批并签名A卷参考答案广州大学2009-2010学年第1学期考试卷课程程序设计1考试形式(闭卷,考试)学院数学与信息系专业信安,计班级学号姓名_题次一二三四五六七八九十总分评卷人分数40202020100评分一、单项选择题(每小题2分,共40分)1.十六进制数CDE转换成八制数是(A)A)6336B)6363C)7337D)73732.以下所列的C语言常量中,错误的是(B)A)1ULB)e0.5C)“A”D)'\b'3.已知字母c的ASCII码为十进制的99,下面程序的输出是(A)intmain(){charc=’c’;printf(%d,%c\n,c+2,c+3);}A)101,fB)99,fC)101,eD)101,1024.表达式5-3/2-1的值是(B)A)0B)3C)2.5D)25.设x、z均为int型变量,x的值为1,则求值表达式z=x--,++x后,x,z的值分别为(C)A)0,1B)1,0C)1,1D)0,06.设x、z均为int型变量,x的值为1,则求值表达式z=x--||x++后,x,z的值分别为(A)A)0,1B)1,0C)1,1D)0,07.若函数f为intf(intx)2{return-(x0)+(x0);}则f(2009),f(-2008)和f(0)的值分别为(C)A)012B)110C)1-10D)-1108.下面函数的输出为:(B)intx=1;intmain(){intx=2;{externintx;printf(“%d”,x);}printf(“%d\n”,x);}A)11B)12B)21D)229.下列程序的输出为:(A)intmain(){char*p=”hello”,*q;for(q=p;*q;q++);printf(“%d\n”,(int)(q-p));}A)5B)4C)6D)不是一个确定的值10.想要表示若x既不能被3整除,又不能被5整除,则把S的值加x,下面哪条语句是错的?(B)A)if((x%3)*(x%5))S+=x;B)if((x%3==0)+(x%5==0)-(x%15==0))S+=x;C)if((x%3)==0||!(x%5));elseS+=x;D)if((x%3)!=0)if((x%5)!=0)S+=x;11.下列程序段的输出结果是(C)voidfun(int*x,int*y){printf(%d%d,*x,*y);*x=3,*y=4;}3intmain(){intx=1,y=2;fun(&x,&y);printf(%d%d\n,x,y);}A)2143B)1212C)1234D)211212.若有定义:floatx;inta,b;则正确的switch语句是(C)A)B)switch(x)switch(x){{case1.0:printf(*\n);case1,2:printf(*\n);case2.0:printf(**\n);case3:printf(**\n);}}C)D)switch(a+b)switch(a+b);{{case1:printf(\n);case1:printf(*\n);case1+2:printf(**\n);case(int)x:printf(**\n);}}13.以下程序的输出结果是(C)intmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(%d,,x[2-i][i]);}A)9,5,3B)7,4,3C)7,5,3D)9,6,114.以下程序输出的结果是(D)intmain(){charw[][5]={ABCD,EFGH,IJKL,MNOP};intk;for(k=1;k3;k++)printf(%s\n,w[k]+k);}A)B)C)D)ABCDJKLEFGFGHFGHOPJKKL415.以下程序的输出结果是(B)#defineZero(X)X-Xintmain(){printf(%d\n,2*Zero(2-3));}A)-6B)-4C)-2D)-016.若有代码structpoint{intx;inty;}pt,*p;p=&pt;现要输出pt的成员x,错误的语句为:(D)A)printf(“%d\n”,p-x);B)printf(“%d\n”,p[0].x);C)printf(“%d\n”,*p.x);D)printf(“%d\n”,*p-x);17.下列代码的输出为:(D)printf(“%s\n”,“HelloWorld”+4);A)HelloB)HelloWorldC)WorldD)oWorld18.下列语句的输出结果是(B)putchar(putchar(‘a’))A)aB)aaC)AD)ab19.下面代码的输出是(B)charfoo[]=“HelloWorld”;printf(“%d%d”,strlen(foo),sizeof(foo));A)1111B)1112C)1211D)121220.有如下代码main(){___intx=1;printf(“%d\n”,int);}横线出不可填入的关键词为(C)A)autoB)registerC)externD)static二、填空题(每空2分,共20分)1.若想通过以下输入语句给a赋于1,给b赋于2,5inta,b;scanf(%d%d”,&a,&b);则输入数据的形式应该是____【1】122.写出能正确表示a是正偶数的关系表达式_____【2】(a0)&&((a%2)==0)3.x的类型为doule,y的类型为float,用一个printf语句输出这两个值:____【3】printf(“%f%f\n”,x,y);____4.若有如下代码doubles;doublea[4][4]={{1,2,3,4},{2,3,4,1},{3,4,1,2},{4,1,2,3}};s=det4(a);推测函数det4的原型____【4】doubledet4(int[][4])5.函数stup逆序输出一个字符串,并返回打印的字符总数,请补充空白部分。intstup(constchar*s){intn=0;if(____【5】*s!=0_____){n=1+stup(s+1);_____【6】putchar(*s);}return_____【7】n;}6.以下程序的输出为_____【8】1361015intacc(intn){staticintf;f=f+n;returnf;}main(){inti;for(i=1;i=5;i++)printf(%d,acc(i));}7.若z,i均为int类型,i的当前值为1,则对表达式z=i++,i++,i++求值6后,z的值为_____【9】18.给指针p申请四个long型动态内存单元,请填空p=【10】malloc(sizeof(long)*4);;三、程序阅读题(每题4分,共20分)1.写出下列程序的运行结果:41intf(intx,inty,intz){if((xz)&&(yz))returnx*x+y*y;elsereturnf(y,z,x);}intmain(){intn;n=f(3,4,5);printf(“%d\n”,n);}2.以下程序的运行结果是:HelloWorldHelloWorldvoidf(char*s,constchar*t){while(*s++=*t++);}intmain(){chara[1024];charb[]=”HelloWorld”;f(a,b);printf(“%s\n”,b);printf(“%s\n”,a);}3.写出程序输出:457longf(longn){if(n!=0)return(n%10+f(n/10));elsereturn0;}intmain(){longn=1234567890;printf(“%ld\n”,f(n));}4.以下程序的运行结果是:15intf(int(*p)[3]){ints=0,i;for(i=0;i3;i++)s+=(*(p+i))[i];returns;}intmain(){inta[3][3]={1,2,3,4,5,6,7,8,9};printf(“%d\n”,f(a));}5.下面程序的运行结果是:intmain(){char*str[]={“Pascal”,”Clanguage”,”Dbase”,”Cobol”};char**p;intk;p=str;for(k=3;k=0;k--)printf(“%s\n”,*(p++));}四、编程题(共20分)81.实现一个函数sum,对给定输入n,若n0,返回1+2+……+n的值;若n0,则返回-1-2-……-n的值;若n=0,返回0。(5分)intf(intn){ints=0;if(n0)return–f(-n);while(n0)s+=n--;returns;}处理负号1分,循环2分,返回值1分,初始化1分。2.用牛顿迭代求a平方根的递推公式为x←0.5(x+a/x),初始值可选1.利用这个公式实现函数doubleSqrt(doublea);此函数返回a的平方根。(7分)doubleSqrt(doublea){doublex=1,err;do{x=0.5*(x+a/x);err=x*x-a;if(err0)err=-err;}while(err1e-6);returnx;}变量类型1分,初始化1分,循环迭代2分,误差控制2分,返回值1分。3.实现一个程序,实现文件复制功能。(8分)intmain(intargc,char**argv){charbuf[1024];FILE*rfp,*wfp;intn;9if(argv3){printf(“useage:%sfile1file2\n”,argv[0]);return-1;}rfp=fopen(argv[1],“rb”);wfp=fopen(argv[2],“rb”);if(rfp==NULL||wfp==NULL){Printf(“failtoopenfile”);return-1;}while((n=fread(buf,sizeof(char),sizeof(buf),rfp)0)fwrite(buf,sizeof(char),n,wfp);return0;}命令行处理2分,打开文件模式2分,判断是否成功打开文件2分,读写文件2分。
本文标题:广州大学C语言程序设计期末考试试卷含答案
链接地址:https://www.777doc.com/doc-1494351 .html