上海海事大学C语言期末上机题库 4Word下载.docx
《上海海事大学C语言期末上机题库 4Word下载.docx》由会员分享,可在线阅读,更多相关《上海海事大学C语言期末上机题库 4Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
a10;
a+);
printf(%d,a);
10第8题(1.0分)题号:
312以下程序段要求从键盘输入字符,当输入字母为Y时,执行循环体,则括号内应填写【1】.ch=getchar();
while(ch_Y)/*在括号中填写*/ch=getchar();
=二、判断共15题(共计15分)第1题(1.0分)题号:
933在C语言中,变量必需先定义后使用答案:
Y第2题(1.0分)题号:
935在C程序中,%是只能用于整数运算的运算符答案:
Y第3题(1.0分)题号:
940inta9;
则a数组的下标范围是1-9答案:
N第4题(1.0分)题号:
929在C语言中,5种基本数据类型的存储空间长度的排列顺序为:
charintlongint=floatdouble答案:
Y第5题(1.0分)题号:
719C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.答案:
Y第6题(1.0分)题号:
721语句scanf(%7.2f,&
a);
是一个合法的scanf函数.答案:
N第7题(1.0分)题号:
943使用putchar函数时,必须在之前包含头文件stdio.h答案:
Y第8题(1.0分)题号:
720语句printf(%f%,1.0/3);
输出为0.333333.答案:
N第9题(1.0分)题号:
936在C语言中,逻辑真等价于不等于0的数答案:
Y第10题(1.0分)题号:
959在switch-case语句中,不是每个case后都要使用break语句.答案:
Y第11题(1.0分)题号:
722关系运算符=与=的优先级相同.答案:
N第12题(1.0分)题号:
869若有inti=10,j=0;
则执行完语句if(j=0)i+;
elsei-;
i的值为11.答案:
N第13题(1.0分)题号:
953C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.答案:
N第14题(1.0分)题号:
742若有说明intc;
则while(c=getchar();
是正确的C语句.答案:
Y第15题(1.0分)题号:
952do-while循环是先判断循环条件表达式,后执行循环体;
while循环是先执行循环体,后判断循环条件表达式.答案:
N三、单项选择共20题(共计40分)第1题(2.0分)题号:
2033下列程序的输出结果是().main()inta=7,b=5;
printf(%dn,b=b/a);
A:
0B:
5C:
1D:
不确定值答案:
A第2题(2.0分)题号:
2051设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是().A:
552B:
144C:
264D:
-264答案:
D第3题(2.0分)题号:
2056以下程序的输出结果是().main()floatx=3.6;
inti;
i=(int)x;
printf(x=%f,i=%dn,x,i);
x=3.600000,i=4B:
x=3,i=3C:
x=3.600000,i=3D:
x=3i=3.600000答案:
C第4题(2.0分)题号:
2029以下不符合C语言语法的赋值语句是().A:
a=1,b=2B:
+j;
C:
a=b=5;
D:
y=(a=3,6*5);
A第5题(2.0分)题号:
2226设有intx=11;
则表达式(x+*1/3)的值是().A:
3B:
4C:
11D:
12答案:
A第6题(2.0分)题号:
2039若k为int型变量,则以下程序段的执行结果是().k=-8567;
printf(k=|%06D|n);
格式描述符不合法,输出无定值B:
输出为k=|%06D|C:
输出为|0-8567|D:
输出为|-8567|答案:
B第7题(2.0分)题号:
2222语句printf(abrehiyboun);
的输出结果是(说明:
b是退格符)().A:
abrehiybouB:
abrehiybouC:
rehiyouD:
abrehiybou答案:
C第8题(2.0分)题号:
2128下列程序段的输出结果为().floatx=213.82631;
printf(%3d,(int)x);
213.82B:
213.83C:
213D:
3.8答案:
C第9题(2.0分)题号:
2043已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().chara=a;
a-;
printf(%d,%cn,a+2-0,a+3-0);
b,cB:
a-运算不合法,故有语法错C:
98,cD:
格式描述和输出项不匹配,输出无定值答案:
C第10题(2.0分)题号:
2044下列程序的输出结果为().main()intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(%fn,x);
27.000000B:
27.500000C:
28.000000D:
28.500000答案:
A第11题(2.0分)题号:
2255下列运算符中优先级最高的是().A:
y?
+x:
+y的值为().intx=1,y=2,z=3;
2B:
3C:
6D:
5答案:
C第13题(2.0分)题号:
2064下列程序的输出结果是().main()intx=1,y=0,a=0,b=0;
switch(x)case1:
switch(y)case0:
a+;
break;
case1:
b+;
case2:
case3:
printf(a=%d,b=%dn,a,b);
a=1,b=0B:
a=2,b=1C:
a=1,b=1D:
a=2,b=2答案:
B第14题(2.0分)题号:
2190选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为真或假.哪个数作为逻辑假值().A:
-1B:
1C:
非零的数D:
0答案:
D第15题(2.0分)题号:
2144inta=1,b=2,c=3;
if(ab)a=b;
if(ac)a=c;
则a的值为().A:
1B:
2C:
3D:
不一定答案:
A第16题(2.0分)题号:
2068设j和k都是int类型,则for循环语句for(j=0,k=-1;
k=1;
j+,k+)printf(*n);
().A:
循环结束的条件不合法B:
是无限循环C:
循环体一次也不执行D:
循环体只执行一次答案:
B第17题(2.0分)题号:
2147while(fabs(t)=1e-5|t-10&
s10B:
fabs(t)1e-5&
!
s/10C:
fabs(t)1;
i-)for(j=1;
ji;
j+)putchar(#);
无B:
#C:
#D:
#答案:
B四、程序填空共3题(共计27分)第1题(9.0分)题号:
405/*-【程序填空】-题目:
要求输出结果为:
A,B65,66-*/#includevoidmain()/*SPACE*/chara,【?
】/*SPACE*/a=【?
】;
b=b;
a=a-32;
/*SPACE*/b=b-【?
printf(%c,%cn%d,%dn,a,b,a,b);
=(答案1)=b;
=(答案2)=a=或=97=(答案3)=32第2题(9.0分)题号:
430/*-【程序填空】-题目:
计算一元二次方程的根。
-*/#include/*SPACE*/#include【?
】main()floata,b,c,disc,x1,x2,realpart,imagpart;
scanf(%f%f%f,&
a,&
b,&
c);
printf(theequation);
/*SPACE*/if(【?
】=1e-6)printf(isnotquadraticn);
elsedisc=b*b-4*a*c;
if(fabs(disc)=1e-6)printf(hastwoequalroots:
%-8.4fn,-b/(2*a);
/*SPACE*/elseif(【?
】)x1=(-b+sqrt(disc)/(2*a);
x2=(-b-sqrt(disc)/(2*a);
printf(hasdistinctrealroots:
%8.4fand%.4fn,x1,x2);
elserealpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf(hascomplexroots:
n);
printf(%8.4f=%.4fin,realpart,imagpart);
printf(%8.4f-%.4fin,realpart,imagpart);
=(答案1)=(答案2)=fabs(a)=(答案3)=disc1e-6=或=disc1e-6=或=1e-62=或=leap=1&
month2=或=leap=1&
2month五、程序设计共1题(共计10分)第1题(10.0分)题号:
406/*-【程序设计】-*题目:
编写函数fun计算下列分段函数的值:
x*x+x+6x0且x-3f(x)=x*x-5x+60x10且x2及x3x*x-x-1其它-注意:
部分源程序给出如下。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
-*/#includestdio.hfloatfun(floatx)/*Program*/*End*/main()floatx,f;
printf(Inputx=);
scanf(%f,&
x);
f=fun(x);
printf(x=%f,f(x)=%fn,x,f);
getch();
yzj();
yzj()FILE*IN,*OUT;
intn;
floati;
floato;
IN=fopen(in.dat,r);
if(IN=NULL)printf(ReadFileError);
OUT=fopen(out.dat,w);
if(OUT=NULL)printf(WriteFileError);
for(n=0;
n10;
n+)fscanf(IN,%f,&
i);
o=fun(i);
fprintf(OUT,%fn,o);
fclose(IN);
fclose(OUT);
-OUT.Dat为空floaty;
if(x=0&
x10.0&
x!
=2.0&
=3.0)y=x*x-5*x+6;
elsey=x*x-x-1;
returny;
-