上海海事大学C语言期末上机题库.docx
《上海海事大学C语言期末上机题库.docx》由会员分享,可在线阅读,更多相关《上海海事大学C语言期末上机题库.docx(17页珍藏版)》请在冰豆网上搜索。
上海海事大学C语言期末上机题库
试卷编号:
9661
所属语言:
C语言
试卷方案:
练习1
试卷总分:
100分
共有题型:
5种
一、填空共8题(共计8分)
第1题(1.0分)题号:
516
若s是int型变量,且s=6,则下面表达式的值是【1】.
s%2+(s+1)%2
答案:
=======(答案1)=======
1
第2题(1.0分)题号:
74
执行下列语句后,z的值是【1】.intx=4,y=25,z=5;z=y/x*z;
答案:
=======(答案1)=======
30
第3题(1.0分)题号:
436
下列程序的输出是【1】,
main(){inta=011;printf("%d\n",++a);}
答案:
=======(答案1)=======
10
第4题(1.0分)题号:
432
执行下列语句的结果是【1】,a=3;printf("%d,",++a);printf("%d",a++);
答案:
=======(答案1)=======
4,4
第5题(1.0分)题号:
387
假设变量a,b均为整型,表达式
(a=5,b=2,a>b?
a++:
b++,a+b)
的值是【1】.
答案:
=======(答案1)=======
8
第6题(1.0分)题号:
100
已知a=13,b=6,a||b的十进制数值为【1】.
答案:
=======(答案1)=======
1
第7题(1.0分)题号:
421
若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次.
While((ch=getchar())=='e')printf("*");
答案:
=======(答案1)=======
0
第8题(1.0分)题号:
438
以下程序的输出结果为【1】,
#include"stdio.h"main(){inta;for(a=0;a<10;a++);printf("%d",a);}
答案:
=======(答案1)=======
10
二、判断共15题(共计15分)
第1题(1.0分)题号:
940
inta[9];则a数组的下标范围是1-9
答案:
N
第2题(1.0分)题号:
955
C语言程序中,语句以分号结尾.
答案:
Y
第3题(1.0分)题号:
960
"A"是一个字符常量.
答案:
N
第4题(1.0分)题号:
933
在C语言中,变量必需先定义后使用
答案:
Y
第5题(1.0分)题号:
720
语句printf("%f%%",1.0/3);输出为0.333333.
答案:
N
第6题(1.0分)题号:
944
C语言中,赋值表达式加上分号就构成了赋值语句.
答案:
Y
第7题(1.0分)题号:
721
语句scanf("%7.2f",&a);是一个合法的scanf函数.
答案:
N
第8题(1.0分)题号:
716
若i=3,则printf("%d",-i++);输出的值为-4.
答案:
N
*第9题(1.0分)题号:
951
在执行switch语句时,default和各个case的出现次序不影响执行结果.
答案:
Y
第10题(1.0分)题号:
956
在switch-case语句中,必须使用default语句.
答案:
N
第11题(1.0分)题号:
723
若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真".
答案:
Y
*第12题(1.0分)题号:
949
关系运算符的优先级高于算术运算符并且低于赋值运算符.
答案:
N
第13题(1.0分)题号:
954
continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立.
答案:
Y
第14题(1.0分)题号:
742
若有说明intc;则while(c=getchar());是正确的C语句.
答案:
Y
第15题(1.0分)题号:
952
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.
答案:
N
三、单项选择共20题(共计40分)
第1题(2.0分)题号:
2219
设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y
值的数据类型为().
A:
float
B:
char
C:
int
D:
double
答案:
D
第2题(2.0分)题号:
128
下列字符序列中,可用作C标识符的一组字符序列是().
A:
S.b,sum,average,_above
B:
class,day,lotus_1,2day
C:
#md,&12x,month,student_n!
D:
D56,r_1_2,name,_st_1
答案:
D
第3题(2.0分)题号:
2221
以下选项中合法的实型常数是().
A:
5E2.0
B:
E-3
C:
.2E0
D:
1.3E
答案:
D
第4题(2.0分)题号:
2056
以下程序的输出结果是().
main()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A:
x=3.600000,i=4
B:
x=3,i=3
C:
x=3.600000,i=3
D:
x=3i=3.600000
答案:
C
*第5题(2.0分)题号:
1998
以下数据中,不正确的数值或字符常量是().
A:
0
B:
5L
C:
o13
D:
9861
答案:
C
第6题(2.0分)题号:
2049
以下程序的输出结果为().
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A:
11,10
B:
9,10
C:
010,9
D:
10,9
答案:
B
第7题(2.0分)题号:
2044
下列程序的输出结果为().
main()
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A:
27.000000
B:
27.500000
C:
28.000000
D:
28.500000
答案:
A
第8题(2.0分)题号:
2253
C语言中用于结构化程序设计的三种基本结构是().
A:
顺序结构、选择结构、循环结构
B:
if、switch、break
C:
for、while、do-while
D:
if、for、continue
答案:
A
第9题(2.0分)题号:
2128
下列程序段的输出结果为().
floatx=213.82631;
printf("%3d",(int)x);
A:
213.82
B:
213.83
C:
213
D:
3.8
答案:
C
第10题(2.0分)题号:
2189
从键盘上输入某字符串时,不可使用的函数是().
A:
getchar()
B:
gets()
C:
scanf()
D:
fread()
答案:
A
第11题(2.0分)题号:
2210
若有条件表达式(exp)?
a++:
b--,则以下表达式中能完全等价于
表达式(exp)的是().
A:
(exp==0)
B:
(exp!
=0)
C:
(exp==1)
D:
(exp!
=1)
答案:
B
第12题(2.0分)题号:
2255
下列运算符中优先级最高的是().
A:
<
B:
+
C:
&&
D:
!
=
答案:
B
第13题(2.0分)题号:
2047
a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是().
A:
a*b/a*b==1
B:
a/b*b/a==1
C:
a/b*b+a%b==a
D:
a/b*b==a
答案:
C
第14题(2.0分)题号:
2259
以下关于运算符优先顺序的描述中正确的是().
A:
关系运算符<算术运算符<赋值运算符<逻辑运算符
B:
逻辑运算符<关系运算符<算术运算符<赋值运算符
C:
赋值运算符<逻辑运算符<关系运算符<算术运算符
D:
算术运算符<关系运算符<赋值运算符<逻辑运算符
答案:
C
第15题(2.0分)题号:
2319
在C语言中,要求运算数必须是整型的运算符是().
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分)题号:
2066
下列程序的输出为().
main()
{inty=10;
while(y--);
printf("y=%d\n",y);
}
A:
y=0
B:
while构成无限循环
C:
y=1
D:
y=-1
答案:
D
第18题(2.0分)题号:
2061
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是().
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
答案:
C
第19题(2.0分)题号:
2246
以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);().
A:
是无限循环
B:
循环次数不定
C:
4次
D:
3次
答案:
C
*第20题(2.0分)题号:
2058
以下程序的运行结果是().
main()
{
inti=1,sum=0;
while(i<10)sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
A:
i=10,sum=9
B:
i=9,sum=9
C:
i=2,sum=1
D:
运行出现错误
答案:
D
四、程序填空共3题(共计27分)
第1题(9.0分)题号:
404
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include
voidmain()
{floata,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:
");
scanf("%f,%f",&a,&b);
printf("输入第二个复数的实部与虚部:
");
scanf("%f,%f",&c,&d);
/***********SPACE***********/
【?
】;
f=b+d;
printf("相加后复数:
实部:
%f,虚部:
%f\n",e,f);
e=a*c-b*d;
/***********SPACE***********/
【?
】;
printf("相乘后复数:
实部:
%f,虚部:
%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/***********SPACE***********/
【?
】;
printf("相除后复数:
实部:
%f,虚部:
%f\n",e,f);
}
答案:
=======(答案1)=======
e=a+c
=========或=========
e=c+a
=======(答案2)=======
f=a*d+b*c
=========或=========
f=a*d+b*c
=========或=========
f=a*d+b*c
=======(答案3)=======
f=(b*c-a*d)/(c*c+d*d)
=========或=========
f=(b*c-a*d)/(c*c+d*d)
=========或=========
f=(b*c-a*d)/(c*c+d*d)
第2题(9.0分)题号:
33
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能如(图1)。
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
doublef(【?
】)
{
/***********SPACE***********/
【?
】;
/***********SPACE***********/
if(【?
】)
y=2.0*x*x+3.0*x+4.0;
else
y=-2.0*x*x+3.0*x-4.0;
/***********SPACE***********/
【?
】;
}
main()
{
clrscr();
printf("%f\n",f(f(-1.0)+f(5.0)));
}
答案:
=======(答案1)=======
floatx
=========或=========
doublex
=======(答案2)=======
doubley
=======(答案3)=======
x<=2
=========或=========
2>=x
=======(答案4)=======
returny
=========或=========
return(y)
第3题(9.0分)题号:
15
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是分别求出一批非零整数中的偶数、奇数
的平均值,用零作为终止标记。
-------------------------------------------------------*/
main()
{
intx,i=0,j=0;
floats1=0,s2=0,av1,av2;
scanf("%d",&x);
/***********SPACE***********/
while(【?
】)
{
if(x%2==0){s1=s1+x;i++;}
/***********SPACE***********/
【?
】{s2=s2+x;j++;}
/***********SPACE***********/
【?
】;
}
if(i!
=0)av1=s1/i;
elseav1=0;
/***********SPACE***********/
if(j!
=0)【?
】;
elseav2=0;
printf("oushujunzhi:
%7.2f,jishujunzhi:
%7.2f\n",av1,av2);
}
答案:
=======(答案1)=======
x!
=0
=========或=========
x
=======(答案2)=======
else
=========或=========
elseif(x%2==1)
=========或=========
elseif(x%2!
=0)
=========或=========
if(x%2)
=======(答案3)=======
scanf("%d",&x)
=======(答案4)=======
av2=s2/j
五、程序设计共1题(共计10分)
第1题(10.0分)题号:
365
/*------------------------------------------------
【程序设计】
--------------------------------------------------
19题目:
编写函数fun,函数的功能是:
求一个
四位数的各位数字的立方和
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intk;
k=fun(1234);
printf("k=%d\n",k);
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intiIN,iOUT,i;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{fscanf(IN,"%d",&iIN);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:
----------------------
intd,k,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
returns;
----------------------