第1页共14页南昌大学2007~2008学年第一学期期末考试试卷(提前)试卷编号:(A)卷课程编号:H61050001课程名称:C程序设计考试形式:闭卷适用班级:过控05姓名:学号:班级:学院:专业:考试日期:2007-12-24题号一二三四总分累分人签名题分50201020100得分考生注意事项:1、本试卷共10页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、单项选择题(每小题2分,共50分,答案请写在答题卡)得分评阅人1.C语言基本类型包括()A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型2.下列可正确表示字符型常量的是()A)”x”B)’\101’C)“\n”D)\973.以下运算符中优先级别最低的是()A)||B)/C),D)==4.若有以下定义和语句:intu=010,v=0x10,w=10;printf(%d,%d,%d\n,u,v,w);则输出结果是:A)8,16,10B)10,10,10C)8,8,10D)8,10,105.请读程序:#includestdio.hmain(){inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);printf(\na=%d,b=%f,c=%f\n,a,b,c);若运行时从键盘上输入9876543210CR(CR表示回车),则上面程序的输出结果是()第2页共14页A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765.0,c=4321.06.已知各变量的类型说明如下: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=8)*(a=3)7.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的达式是()。A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=2l0)B)(x>=1)||(x<=10)||(x>=200)||(x<=210)C)(x>=1)&&(x<=10)||(x>=200)&&(x<=2l0)D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)8.执行下面程序中的输出语句,a的值是main(){inta;printf(%d\n,(a=3*5,a*4,a+5));}A)65B)20C)15D)109.逻辑运算符两侧运算对象的数据类型()。A)只能是0或lB)只能是0或非0正数C)只能是整型或字符型数据D)可以是C的任何类型的数据10.有一函数,当x0y=1,x=0y=0,x0y=-1,下列不能正确根据x计算出y的是()A)if(x0)y=1B)y=0elseif(x==0)y=0;if(x0)y=1;elsey=-1;elseif(x0)y=-1;C)y=0;D)if(x=0)if(x=0);if(x0)y=1;if(x0)y=1;elsey=0;elsey=-1elsey=-111.若执行以下程序时从键盘上输入9,main(){intn;scanf(%d,&n);if(n++10)printf(%d\n,n);elseprintf(%d\n,n--);}则输出结果是()A)11B)10C)9D)812.设变量已正确定义,则以下能正确计算f=n!的程序段是()A)f=0;B)f=1;for(i=1;i=n;i++)f*=i;for(i=1;in;i++)f*=i;C)f=1;D)f=1;for(i=n;i1;i++)f*=i;for(i=n;i=2;i--)f*=i;13.有以下程序第3页共14页main(){intk=5,n=0;while(k0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf(%d\n,n);}程序运行后的输出结果是()A)0B)4C)6D)714.有以下程序main(){inta=1,b;for(b=1;b=10;b++){if(a=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf(%d\n,b);}程序运行后的输出结果是()A)3B)4C)5D)615.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i4;i++){for(j=1;j=i;j++)printf(%4c,‘‘);for(j=_____;j4;j++)printf(%4d,num[i][j]);printf(\n);}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是()A)i-1B)iC)i+1D)4-i16.以下程序的输出结果是main(){intn[3][3],i,j;第4页共14页for(i=0;i3;i++)for(j=0;j3;j++)n[i][j]=i+j;for(i=0;i2;i++)for(j=0;j2;j++)n[i+1][j+1]+=n[i][j];printf(“%d\n”,n[i][j]);}A)14B)0C)6D)值不确定17.若有以下说明和语句,则输出结果是()charstr[]=\c:\\abc.dat\;printf(%s,str);A)字符串中有非法字符B).\c:\\abc.dat\C)c:\abc.datD)c:\\abc.dat18.设变量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.019.请读程序:#includestdio.hf(intb[],intn){inti,r;r=1;for(i=0;i=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(%d\n,x);}上面程序的输出结果是()A)720B)120C)24D)620.以下程序的输出结果是()。#includestdio.hfun(inta,intb,intm){m=a*b;return;}main()intm=1;fun(2,3,m);printf(“%d\n”,m);}A)1B)2C)3D)621.已知int*p,a;则语句p=&a;中的运算符&的含义是()A)位与运算B)逻辑与运算C)取指针内容D)取变量地址22.当调用函数时,实参是一个数组名,则向函数传送的是()A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值23.以下叙述中不正确的是()A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B)在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容C)在C中,外部变量的隐含类别是自动存储类别D)在C中,函数形参可以说明为register变量第5页共14页24.有以下函数fun(char*a,char*b){while((*a!=‘\0‘)&&(*b!=‘\0‘)&&(*a==*b)){a++;b++;}return(*a-*b);}该函数的功能是()A)计算a和b所指字符串的长度之差B)将b所指字符串复制到a所指字符串中C)将b所指字符串连接到a所指字符串后面D)比较a和b所指字符串的大小25.有以下程序main(){chars[]=ABCD,*p;for(p=s+1;ps+4;p++)printf(%s\n,p);}程序运行后的输出结果是()A)ABCDB)ABCDBCDCDDC)D)BBCDCCDDD二、程序阅读题(每题4分,共20分,答案写在答题卡上)得分评阅人1.以下程序段的执行结果是main(){inta,y;a=10;y=0;do{a+=2;y+=a;printf(a=%dy=%d\n,a,y);if(y20)break;}while(a=14);}第6页共14页2.以下程序的输出结果是main(){intn[3][3],i,j;for(i=0;i3;i++)for(j=0;j3;j++)n[i][j]=i+j;for(i=0;i2;i++)for(j=0;j2;j++)n[i+1][j+1]+=n[i][j];printf(“%d\n”,n[i][j]);}3.以下程序的输出结果是main(){inti,j;for(j=1;j=4;j++){for(i=4;i=j;i--)printf();for(i=1;i=2*j-1;i++)printf(*);printf(\n);}for(j=1;j=3;j++){for(i=0;i=j;i++)printf();for(i=1;i=2*(4-j)-1;i++)printf(*);printf(\n);}}4.以下程序的输出结果是intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(%d\n,fun2(a,b)/m);}5.以下程序的输出结果是#includestring.hmain(){charp[20]={'1','2','3','4'},*q=Hello!\0boys\0and\0girls!;printf(ch=%c,,*p);printf(%d\n,strlen(q));}第7页共14页三、填空题(每空2分,共10分,答案写在答题卡上)1.下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。#includestdio.hmain(){inta,b,c,i;a=c=0;for(i=0;i10;i+=2){a+=i;{【1】;}c+=b;}printf(偶数之和=%d\n,a);printf(奇数之和=%d\n,c-11);}2.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(Entermark:\n);scanf(%f,&a);while(a=0.0&&n1000){sum+=【2】;x[n]=【3】;n++;scanf(%f,&a);}ave=【4】;printf(Output:\n);printf(ave=%f\n,ave);for(i=0;in;i++)if【5】printf(“%f\n”,x[i]);}四、编程题(每题10分,共20分,答案写在答题卡上)1.一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不要用strcpy函数。复制时,’\0’也要复制过去。’\0’后面的字符不复制。2.一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。得分评阅人第8页共14页答题卡一、单项选择题(每小题2分,共50分)12345678910111213141516171819202122232425二、程序阅读题(每题4分,共20分)得分评阅人得分评阅人1.2.3.4.5.第9页共14页三、填空题(每空2分,共10分)四、程序设计题(每题10分,共20分)1、得分评阅人12345得分评阅人第10页共14页2、第11页共14页南昌大学20