当前位置:文档之家› 上海海事大学(C语言期末)上机题库

上海海事大学(C语言期末)上机题库

试卷编号:9688所属语言:C语言试卷方案:期中考试试卷总分:100分共有题型:5种一、填空共15题(共计15分)第1题(1.0分)题号:528设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b++)-(++c);后,a的值是【1】.答案:=======(答案1)=======28第2题(1.0分)题号:78已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】.答案:=======(答案1)=======15第3题(1.0分)题号:510若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】.答案:=======(答案1)=======2第4题(1.0分)题号:437以下程序的输出结果为【1】,#include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);}答案:=======(答案1)=======9,10第5题(1.0分)题号:431执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案:=======(答案1)=======97 b*第6题(1.0分)题号:293getchar()函数只能接收一个【1】.答案:=======(答案1)=======字符第7题(1.0分)题号:440设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】.答案:=======(答案1)=======1第8题(1.0分)题号:95已知a=13,b=6, a&&b的十进制数值为【1】.答案:=======(答案1)=======1第9题(1.0分)题号:306当a=1,b=2,c=3时,执行以下程序段后b=【1】.if (a>c) b=a;a=c;c=b;答案:=======(答案1)=======2第10题(1.0分)题号:532以下do-while语句中循环体的执行次数是【1】.a=10;b=0;do { b+=2; a-=2+b; } while (a>=0);答案:=======(答案1)=======3第11题(1.0分)题号:398程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案:=======(答案1)=======第12题(1.0分)题号:438以下程序的输出结果为【1】,#include "stdio.h" main(){int a;for(a=0;a<10;a++);printf("%d",a);} 答案:=======(答案1)=======10*第13题(1.0分)题号:336若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3该数组的元素中,数值最大的元素的下标值是【1】.答案:=======(答案1)=======2第14题(1.0分)题号:341定义int a[2][3];表示数组a中的元素个数是【1】个.答案:=======(答案1)=======6第15题(1.0分)题号:328C语言中,数组元素的下标下限为【1】.答案:=======(答案1)=======二、判断共15题(共计15分)第1题(1.0分)题号:940int a[9]; 则a数组的下标范围是1-9答案:N第2题(1.0分)题号:935在C程序中,%是只能用于整数运算的运算符答案:Y第3题(1.0分)题号:929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char<int<long int<=float<double答案:Y第4题(1.0分)题号:194若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c='A',f=12.5.答案:Y第5题(1.0分)题号:961C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出. 答案:Y第6题(1.0分)题号:721语句scanf("%7.2f",&a);是一个合法的scanf函数.答案:N第7题(1.0分)题号:951在执行switch语句时,default和各个case的出现次序不影响执行结果.答案:Y第8题(1.0分)题号:869若有int i=10, j=0;则执行完语句if (j=0)i++; else i--; i的值为11.答案:N第9题(1.0分)题号:930关于if语句中,条件表达式只能是关系表达式或逻辑表达式答案:N第10题(1.0分)题号:952do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.答案:N第11题(1.0分)题号:953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:N第12题(1.0分)题号:954continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.答案:Y第13题(1.0分)题号:941在定义二维数组时,可以将该数组的两个维数全部省略答案:N第14题(1.0分)题号:735如果想使一个数组中全部元素的值为0,可以写成int a[10]={0*10};答案:N第15题(1.0分)题号:736int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.答案:Y三、单项选择共20题(共计40分)第1题(2.0分)题号:2056以下程序的输出结果是().main(){float x=3.6;int i;i=(int)x;printf("x=%f,i=%d\n",x,i);}A:x=3.600000,i=4B:x=3,i=3C:x=3.600000,i=3D:x=3 i=3.600000答案:C第2题(2.0分)题号:2214在C语言中,char型数据在内存中的存储形式是().A:补码B:反码C:原码D:ASCII码答案:D第3题(2.0分)题号:2174C语言程序中必须有的函数是().A:#include "stdio.h"B:mainC:printfD:scanf答案:B第4题(2.0分)题号:2040若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97), 则以下程序段的执行结果是().ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%%d\n",k);A:因变量类型与格式描述符的类型不匹配,输出无定值B:输出项与格式描述符个数不符,输出为零值或不定值C:61,141,k=%12D:61,141,k=%d答案:C第5题(2.0分)题号:2049以下程序的输出结果为().main(){int i=010,j=10;printf("%d,%d\n",++i,j--);}A:11,10B:9,10C:010,9D:10,9答案:B第6题(2.0分)题号:2189从键盘上输入某字符串时,不可使用的函数是().A:getchar()B:gets()C:scanf()D:fread()答案:A第7题(2.0分)题号:2045若给定条件表达式(M)?(a++):(a--),则其中表达式M(). A:和(M==0)等价B:和(M==1)等价C:和(M!=0)等价D:和(M!=1)等价答案:C第8题(2.0分)题号:2144int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为().A:1B:2C:3D:不一定答案:A第9题(2.0分)题号:2122下列程序的输出结果是().main(){ int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;break; case 1:b++;break; }case 2:a++;b++;break;case 3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}A:a=1,b=0B:a=2,b=1C:a=1,b=1D:a=2,b=2答案:B*第10题(2.0分)题号:2050C 语言中以下几种运算符的优先次序()的排列是正确的.A:由高到低为:!,&&,||,算术运算符,赋值运算符B:由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符C:由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,|| D:由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符答案:B第11题(2.0分)题号:2263以下不正确的if语句形式是().A:if(x>y&&x!=y);B:if(x==y) x+=y;C:if(x!=y) scanf("%d",&x) else scanf("%d",&y);D:if(x<y) {x++;y++;}答案:C第12题(2.0分)题号:2059以下程序的运行结果是().main(){ int n;for(n=1;n<=10;n++){if(n%3==0) continue;printf("%d",n);}}A:12457810B:369C:12D:1234567890答案:A第13题(2.0分)题号:2061在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是().A:(!E==0)B:(E>0||E<0)C:(E==0)D:(E!=0)答案:C第14题(2.0分)题号:2058以下程序的运行结果是().main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A:i=10,sum=9B:i=9,sum=9C:i=2,sum=1D:运行出现错误答案:D*第15题(2.0分)题号:2068设j和k都是int类型,则for循环语句for(j=0,k=-1;k=1;j++,k++) printf("****\n");(). A:循环结束的条件不合法B:是无限循环C:循环体一次也不执行D:循环体只执行一次答案:B第16题(2.0分)题号:2251以下不是无限循环的语句为().A:for(y=0,x=1;x>++y;x=i++) i=x;B:for(;;x++=i);C:while(1){x++;}D:for(i=10;;i--) sum+=i;答案:A第17题(2.0分)题号:2278以下能对一维数组a进行正确初始化的语句是().A:int a[10]=(0,0,0,0,0)B:int a[10]={};C:int a[]={0};D:int a[10]={10*1};答案:C第18题(2.0分)题号:2284若有说明: int a[3][4]={0};则下面正确的叙述是().A:只有元素a[0][0]可得到初值0B:此说明语句不正确C:数组a中各元素都可得到初值,但其值不一定为0D:数组a中每个元素均可得到初值0答案:D第19题(2.0分)题号:2256printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式().A:从左起输出该字符串,右补空格B:按原字符长从左向右全部输出C:右对齐输出该字串,左补空格D:输出错误信息答案:B第20题(2.0分)题号:2275以下对二维数组a的正确说明是().A:int a[3][]B:float a(3,4)C:double a[1][4]D:float a(3)(4)答案:C四、程序填空共4题(共计24分)第1题(6.0分)题号:427/*------------------------------------------------------- 【程序填空】---------------------------------------------------------题目:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3 元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?-------------------------------------------------------*/ #include <stdio.h>main(){int cocks,hens,chicks;cocks=0;while(cocks<=19)/***********SPACE***********/{【?】=0;/***********SPACE***********/while(hens<=【?】){chicks=100.0-cocks-hens;if(5.0*cocks+3.0*hens+chicks/3.0==100.0)printf("%d,%d,%d\n",cocks,hens,chicks);/***********SPACE***********/【?】;}/***********SPACE***********/【?】;};}答案:=======(答案1)=======hens=======(答案2)=======33=======(答案3)=======hens++=========或=========++hens=========或=========hens=hens+1=======(答案4)=======cocks++=========或=========++cocks=========或=========cocks=cocks+1=========或=========cocks= cocks + 1第2题(6.0分)题号:459/*-------------------------------------------------------【程序填空】---------------------------------------------------------题目:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。

相关主题