您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 南昌大学C语言04~05第二学期试卷A(理)及答案
第1页共10页南昌大学2004~2005学年第二学期期期末考试试卷试卷编号:(A)卷课程名称:C程序设计适用班级:全校理工科姓名:学号:班级:专业:学院:系别:考试日期:2005、07、04题号一二三四五六七八九十总分累分人签名题分30302218100得分考生注意事项:1、本试卷共8页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、单项选择题(每空1分,共30分)得分评阅人1.一个C程序的执行是从。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2.一个C语言程序是由。A)若干主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是。A)7B)8C)6D)24.下列四组选项中,均不是C语言关键字的选项是。A)defineB)getcC)includeD)whileIFcharscanfgoTypeprintfcasepow5.下面四个选项中,均是合法转义字符的选项是。A)'\''B)'\'C)'\018'D)'\\0''\\''\017''\f''101''\n''\''xab''xlf'说明:请将各小题正确答案的字母序号填到相应小题的下划线上。第2页共10页6.若有代数式3ae/bc,则不正确的C语言表达式是。A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*37.已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是。A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)8.以下正确的叙述是。A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量编译后允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符,当然,%在C程序中还有别的用途9.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为。A)intB)floatC)doubleD)不确定10.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是。A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.011.putchar函数可以向终端输出一个。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值12.阅读下列程序,若运行结果为如下形式,输入输出语句的正确内容是。main(){intx;floaty;printf(enterx,y:)输入语句;输出语句}输入形式enterx,y:23.4输出形式x+y=5.40A)scanf(%d,%f,&x,&y);printf(\nx+y=%4.2f,x+y);B)scanf(%d%f,&x,&y);printf(\nx+y=%4.2f,x+y);C)scanf(%d%f,&x,&y);printf(\nx+y=%6.lf,x+y);D)scanf(%d%3.1f,&x,&y);printf(\nx+y=%4.2f,x+y);13.x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5后,x、y和z的值是。A)x=10B)x=10C)x=10D)x=10y=15y=10y=10y=5z=10z=10z=15z=1014.判断char型变量ch是否为大写字母的正确表达式是。A)'A'=ch='Z'B)(ch='A')&(ch='Z')C)(ch='A')&&(ch='Z')D)('A'=ch)AND('Z'=ch)15.若有定义inta[3][5],i,j;(且0≤i3,0≤j5),则a[i][j]不正确的地址表示是。A)&a[i][j]B)a[i]+jC)*(a+i)+jD)*(*(a+i)+j)16.下面程序段的运行结果是。ifn=0;while(n++=2);printf(%d,n);A)2B)3C)4D)有语法错第3页共10页17.下列选项中,不正确的if语句是。A)if(ab)printf(“%d”,a);B)if(ab)m=aelsem=b;C)if(3)a=m;elsea=n;D)if(a0);else{a=n;}18.以下程序的输出结果是。#includestdio.hfun(inta,intb,intm){m=a*b;return;}main(){intm=1;fun(2,3,m);printf(“%d\n”,m);}A)1B)2C)3D)619.若有定义:inta=511,*b=&a;,则printf(“%d\n”,*b);的输出结果为。A)无确定的值B)a的地址C)512D)51120.以下程序的输出结果是。#defineADD(x)x+xmain(){intm=1,n=2,k=3,sum;sum=ADD(m+n)*k;printf(“sum=%d\n”,sum);}A)sum=9B)sum=10C)sum=12D)sum=1821.已知inti,x[3][4];,则不能将x[1][1]的值赋给变量i的语句是。A)i=*(*(x+1)+1)B)i=x[1][1]C)i=*(*(x+1))D)i=*(x[1]+1)22.以下函数的类型是。fun(floatx){printf(“%d\n”,x*x);}A)intB)floatC)voidD)无法确定23.设有语句:charstr1[]=“string”,str2[8],*str3,*str4=“string”;,则下列选项中,不是对库函数strcpy的正确调用的是。A)strcpy(str1,“hello1”);B)strcpy(str2,“hello2”);C)strcpy(str3,“hello3”);D)strcpy(str4,“hello4”);24.已有定义int(*p)();,则指针p可以。A)代表函数的返回值B)指向函数的入口地址C)代表函数的类型D)代表函数返回值的类型25.以下能正确进行字符串赋值操作的是。A)char*s;*s=“apple”;B)char*s;s=“apple”;C)chars[8];s=“apple”;D)chars[8];*s=“apple”;26.以下符合C语言语法的赋值表达式是。A)d=9+e+f=d+9B)d=e+=d+9C)5=d+e+fD)d=9+e,f+3=d+927.设有如下说明语句:structstud{inta;floatb;}studtype;则下面的叙述中,不正确的是。第4页共10页A)struct是结构体类型的关键字B)structstud是用户定义的结构体类型名C)a和b都是结构体成员名D)studtype是用户定义的结构体类型名28.以下C语言中,对函数不正确的描述是。A)当用数组名作形参时,形参数组改变可使实参数组随之改变B)允许函数递归调用C)函数形参的作用范围只是局限于所定义的函数内D)函数说明必须在主调函数之前29.若有定义typedefcharSTRING[255];STRINGs;则s是。A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量30.对以下程序段描述正确的是。x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行二次C)循环执行一次D)有语法错误二、程序阅读题(每小题6分,共30分)得分评阅人1.源程序如下:#includestdio.hmain(){inti;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}程序运算后的结果为:2.源程序如下:main(){charch[2][5]={“6937”,“8254”},*p[2];inti,j,s=0;for(i=0;i2;i++)p[i]=ch[i];for(i=0;i2;i++)for(j=0;p[i][j]’\0’;j+=2)s=10*s+p[i][j]-‘0’;printf(“%d\n”,s);}程序运算后的结果为:第5页共10页3.源程序如下:#includestring.hmain(){chars[4][8]={Hello,help,saveme,groan};chart[]=help;char*p=s[3];printf(%4s?\n,s[0]);printf(%s!\n,p);printf(%s\n,s[2]);printf(%d\n,strcmp(t,s[1]));printf(%c!\n,s[0][0]);}程序运算后的结果为:4.源程序如下:#includestdio.hmain(){intday_of_week=4;switch(day_of_week){case0:printf(todayisSunday.\n);case1:printf(todayisMonday.\n);case2:printf(todayisTuesday.\n);case3:printf(todayisWednesday.\n);case4:printf(todayisThursday.\n);case5:printf(todayisFriday.\n);case6:printf(todayisSaturday.\n);default:printf(Somethingismissing.);break;}}程序运算后的结果为:5.源程序如下:#includestdio.h#defineNRows5main(){inti,j;for(i=1;i=NRows;i++){for(j=i;jNRows;j++){printf();}for(j=0;j2*i-1;j++){printf(*);}printf(\n);}}程序运算后的结果为:第6页共10页三、程序填空题(每空2分,共22分)得分评阅人1.下面的程序是用选择法对10个整数进行升序排序,请填空。#defineN10main(){inti,j,min,temp,a[N];printf(“请输入十个整数:\n”);for(i=0;iN;i++){printf(“a[%d]=”,i);scanf(“%d”,&a[i]);}printf(“\n”);for(i=0,iN-1;i++){;for(j=i+1;jN;j++)ifmin=j;if(){temp=a[i];a[i]=a[min];a[min]=temp;}}2.以下程序的fun函数用于统计字符串s中元音字母(a,A,e,E,i,I,o,O,u,U)的个数。#includestdio.hmain(){charstr[255];gets(str);printf(元音字母的个数为:%d\n,fun(str));}fun(char*s){chara[]=aAeEiIoOuU,*p;intn=0;while(){for(p=a;*p;p++)if(){n++;;}s++;}returnn;}第7页共10页3.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推,请填空。fun(intx,intb[]){intk=0,r;do{r=x%______;b[k++]=r;x/=_______;}while(x)
本文标题:南昌大学C语言04~05第二学期试卷A(理)及答案
链接地址:https://www.777doc.com/doc-5183959 .html