您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 厦门大学C语言半期考试卷附答案
1班级:姓名:学号:题号一二三四总分评卷人得分一、选择题(本大题共22小题,每小题1分,共22分)1.以下叙述中错误的是()。A.函数是C程序的基本单位B.一个C源程序可以包含多个main()函数C.C程序中的每一个语句必须有一个分号D.C程序中注释部分可以出现在程序中任意合适的地方2.以下属于C语言合法命名的为()A._intB.intC.int-1D.1int3.指定变量c、d为无符号短整型数据,下列语句正确的是()A.unsignedintc,d;B.unsignedlongc,d;C.shortintc,d;D.unsignedshortc,d;4.已知字母A和a的ASCII码分别是65和97,则用八进制表示的字符常量’\101’是()A.′A′B.′a′C.′e′D.非法的常量5.已知a=1,b=5。执行输入语句scanf("%d;%d",&a,&b);正确的键盘输入是()A.34B.3,4C.a=3,b=4D.3;46.下列语句的屏幕输出会是()printf(“abc\tde\rf\tg”);A.abcdfgB.fabcgdeC.fgdeD.abcdefg7.以下程序段的输出结果是()intx=100,y=200;printf(“%d”,(x,y));A.200B.100C.100200D.不确定的8.a=5,b=4;则printf(“%d”,ab?a:b+1);的输出为()A.3B.4C.5D.6厦门大学《C程序设计》课程试卷软件学院系2007年级专业主考教师:试卷类型:(A卷)29.inta=3,b=4,c=5;下列表达式的值为0的是()A.’a’&&’b’B.a||b+c&&b-cC.a=bD.!((ab)&&!c||1)10.a、b、c、d、m、n为整数型变量,值均为1;执行(m=ab)&&(n=cd);后m,n的值是()A.0,0B.1,0C.0,1D.1,111.设x的值为10,则表达式1x2的值为()A.0B.1C.TrueD.False12.若要求从键盘读入含有空格字符的字符串,应使用函数()。A.getc()C.getchar()B.gets()D.scanf()13.嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if14.假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是()A.3B.6C.10D.2015.有charnum[]=”9876543210”;则数组num所占存储空间的字节数为()A.9B.10C.11D.2016.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i3;i++)printf(%d,x[i][2-i]);的输出结果是()A.159B.147C.357D.36917.不能把字符串:Hello!赋给数组b的语句是()。A.charb[10]={'H','e','l','l','o','!'};C.charb[10];b=Hello!;B.charb[10];strcpy(b,Hello!);D.charb[10]=Hello!;18.若有以下函数定义,函数返回值的类型是()fun(doublea){returna*a;}A.voidB.intC.doubleD.语法错误19.设有函数定义:voidp(intx){printf(%d,x);}则正确的函数调用是()。A.p(3);C.printf(%d,p(3));B.a=p(3);D.p(intx);20.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。A.地址传递C.由实参传给形参,再由形参传回实参B.单向值传递D.传递方式由用户指定21.以下叙述中,错误的是()。A.不同函数中可以使用相同的变量名C.形式参数是局部变量B.全局变量和局部变量可以同名D.main()函数中定义的变量在整个程序中都可使用22.设有两个字符串p和q,将字符字符串p接到q后面的函数是()。A.strcat()C.strlen()B.strcmp()D.strcpy()3二、填空题(本大题共7小题,每小题1分,共8分)1.设x=2.5,a=7,y=4.7;则算术表达式x+a%3*(int)(x+y)%2/4的值为。2.表达式1!=2的值是。3.求:5%3值为。4.以上程序段的输出结果是。charstr1[]={China\nBeijing”};charstr2[]={“2008”};strcpy(str1,str2);printf(“%s”,str1);5.以下程序的输出结果是。voidfun(intx,inty,intz){z=x*x+y*y;}voidmain(){inta=31;fun(5,2,a);printf(%d,a);}6.执行下列语句inta=8;a+=a-=a*a;后,a的值是。7.设i的值为4,经过j=++i;得i的值j的值。三、程序分析题(本大题共10小题,共40分)1.下面程序段的运行结果是____.#includestdio.hmain(){intn=0;while(n++=2);printf(%d,n);}2.当a=1,b=3,c=5,d=4时,执行下面一段程序后x的值是______.if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;43.执行下面一段程序后score的值是____.charclass='C';intscore;switch(class){case'A':score=95;break;case'B':case'C':score=75;case'D':score=65;break;default:score=55;}4.当运行以下程序时,从键盘键入right?Enter(代表回车),则下面程序的运行结果是____.#includestdio.hmain(){charc;while((c=getchar())!='?')putchar(++c);}5.下面程序运行后,i的值是______,k的值是_____.#includestdio.hmain(){inti,j,k=19;while(i=k-1){k-=3;if(k%5==0){i++;continue;}elseif(k5)break;i++;}}6.下面程序的运行结果是____.#includestdio.hinta=3,b=5,c=0;voidmain(){intmax(inta,intb);inta=8;printf(“max=%d,c=%d\n”,max(a,b),c);}intmax(inta,intb){intc;c=ab?a:b;return(c);}7.下面程序的运行结果是____.voidfun(intx,inty){x=x+y;y=x-y;x=x-y;printf(%d,%d,,x,y);}voidmain(){intx=2,y=3;fun(x,y);printf(%d,%d\n,x,y);}58.下面程序的运行结果是____.main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(a=%d,b=%d,a,b);}9.以下函数的功能是计算:s=1+1/2!+1/3!+……+1/n!,请填空。doublefun(intn){doubles=0.0,fac=1.0;inti;for(i=1;i=n;i++){fac=fac;s=s+fac;}returns;}10.下面程序的运行结果是____.main(){inti,j,row=0,colum=0,max;inta[3][4]={1,2,3,4,9,8,7,6,10,11,22,3};max=a[0][0];for(i=0;i=2;i++)for(j=0;j=3;j++)if(a[i][j]max){max=a[i][j];row=i;colum=j;}printf(max=%d,row=%d,colum=%d\n,max,row,colum);printf(\n);}四、程序题(本大题共2小题,共20分)1.输入10个学生的成绩,求平均成绩,并统计在平均成绩以上(含平均值)的学生个数。2.编一函数判别某一数是否为素数,若是,返回值为1,否则,返回值为0。在main()函数中调用该函数。五、改错题(本大题共1小题,共10分)提示:下面给出的程序中,每行至多只有一个错误,共有四处错误请将正确的语句单独写在出错语句的右边,用【】部分来标示你写下的正确语句不要改动main函数,不得增行或删行,也不得更改程序的结构!给定程序中fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符数组s输入:AAaaBBb123CCccccd,则应输出结果:upper=6,lower=8。6#includestdio.hintupper=0,lower=0;voidfun(chars){inti;for(i=0;i=strlen(s);i++){if(s[i]='A'||s[i]='Z')upper++;elselow++;}}main(){chars[100];printf(\nPleaseastring:);gets(s);fun(s);printf(\nupper=%dlower=%d\n,upper,lower);}72007年C语言期中考试答案一、选择题1~5:BADAD6~10:CACDA11_15:ABCDC16~20:CCBAB21~22:DA二、填空题(1)2.500000(2)1(3)2(4)2008(5)31(6)-112(7)55三、程序分析题(1)4(2)2(3)65(4)sjhiu(5)64(6)max=8,c=0(7)3,2,2,3(8)a=2,b=1(9)/i;或*i;fac=1/fac;(10)max=22,row=2,colum=2四、程序题[本大题答案不唯一,以下代码在VC6.0环境下编译通过](1)#includestdio.hintmain(){intpoints[10];intaverage=0,numGood=0;8inti;for(i=0;i10;i++){printf(Pleaseinputthe%dstudent'spoint:,i);scanf(%d,&points[i]);average+=points[i];}average/=10;for(i=0;i10;i++){if(points[i]=average)numGood++;}printf(Theaveragepointis:%d,thenumberofgoodstudentsis:%d\n,average,numGood);}//////////////////////////////////////////////////////////////////(2)#includestdio.h#includemath.hintIsPrime(intn){inti=0,temp=0;if(n==0||n==1||n==2)return(0);temp=(int)sqrt(n);for(i=2;itemp;i++){if(n%i==0)return(0);}return(1);}9intmain(){intnum=0,isPrime=0;printf(Pleaseinputanum[num=0]:);scanf(%d,&num);isPrime=IsPr
本文标题:厦门大学C语言半期考试卷附答案
链接地址:https://www.777doc.com/doc-2613642 .html