[上海海事大学
试卷编号:9618
所属语言:C语言
试卷方案:练习1
试卷总分:100分
共有题型:5种
一、填空 共8题 (共计8分)
第1题 (1.0分) 题号:513
若有以下定义,则计算表达式y+=y-=m*=y后的y值是【1】.
int m=5,y=2;
答案:
=======(答案1)=======
-16
第2题 (1.0分) 题号:84
写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】.
答案:
=======(答案1)=======
18
第3题 (1.0分) 题号:293
getchar()函数只能接收一个【1】.
答案:
=======(答案1)=======
字符
第4题 (1.0分) 题号:437
以下程序的输出结果为【1】,
#include
答案:
=======(答案1)=======
9,10
第5题 (1.0分) 题号:86
写出表达式 1.234&&5.982 的值是【1】.
答案:
=======(答案1)=======
1
第6题 (1.0分) 题号:303
为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对.
答案:
=======(答案1)=======
if
第7题 (1.0分) 题号:311
若所用变量均已正确定义,则执行下面程序段后的 值是【1】.
for(i=0 ; i
答案:
=======(答案1)=======
YESYES
第8题 (1.0分) 题号:312
以下程序段要求从键盘输入字符,当输入字母为"Y" 时,执行循环体,则括号内应填写【1】.
ch=getchar();
while(ch ____ "Y")/*在括号中填写*/
ch=getchar();
答案:
=======(答案1)=======
==
二、判断 共15题 (共计15分)
第1题 (1.0分) 题号:937
在C程序中,每行中只能写一条语句
答案:N
第2题 (1.0分) 题号:928
C程序中的关键字必须小写.
答案:Y
第3题 (1.0分) 题号:715
整数 -32100可以赋值给int型和long int型变量.
答案:Y
第4题 (1.0分) 题号:929
在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char
答案:Y
第5题 (1.0分) 题号:947
printf函数中,%c和%s都可以输出字符串.
答案:N
第6题 (1.0分) 题号:194
若有定义和语句:
int a;char c;float f;scanf(
若通过键盘输入:
10,A,12.5,则a=10,c="A",f=12.5.
答案:Y
第7题 (1.0分) 题号:944
C语言中,赋值表达式加上分号就构成了赋值语句.
答案:Y
第8题 (1.0分) 题号:961
C语言本身并不提供输入输出语句.但可以通过输入输出函数来实现数据的输入输出.
答案:Y
第9题 (1.0分) 题号:950
逻辑运算符中的
答案:Y
第10题 (1.0分) 题号:951
在执行switch语句时,default和各个case的出现次序不影响执行结果.
答案:Y
第11题 (1.0分) 题号:723
若 a=3,b=2,c=1 则关系表达式
答案:Y
第12题 (1.0分) 题号:709
int i=20;switch(i/10){case 2:printf(
case 1:printf(
答案:N
第13题 (1.0分) 题号:742
若有说明int c;则while(c=getchar());是正确的C语句.
答案:Y
第14题 (1.0分) 题号:954
continue语句只结束本次循环,而不是终止整个循环的执行.peak语句则是结束整个循环过程,不再判断执行循环的条件是否成立.
答案:Y
第15题 (1.0分) 题号:952
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.
答案:N
三、单项选择 共20题 (共计40分)
第1题 (2.0分) 题号:2016
设C语言中,int类型数据占2个字节,则short类型数据占().
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:B
第2题 (2.0分) 题号:2209
若变量已正确定义并赋值,下面符合C语言语法的表达式是().
A:a:=b+1
B:a=b=c+2
C:int 18.5%3
D:a=a+7=c+b
答案:B
第3题 (2.0分) 题号:2000
以下的选择中,正确的赋值语句是().
A:a=1,b=2
B:j++
C:a=b=5;
D:y=int(x)
答案:C
第4题 (2.0分) 题号:2130
下列字符序列中,是C语言保留字的是().
A:sizeof
B:include
C:scanf
D:sqrt
答案:A
第5题 (2.0分) 题号:2211
设以下变量均为int类型,则值不等于7的表达式是().
A:(x=y=6,x+y,x+1)
B:(x=y=6,x+y,y+1)
C:(x=6,x+1,y=6,x+y)
D:(y=6,y+1,x=y,x+1)
答案:C
第6题 (2.0分) 题号:2127
下列程序段的输出结果为().
float k=0.8567;
printf(
A:0085.6%%
B:85.7%
C:0085.6%
D:.857
答案:B
第7题 (2.0分) 题号:2135
下列程序段的输出结果为().
int x=3,y=2;
printf(
A:1
B:7
C:3
D:5
答案:C
第8题 (2.0分) 题号:2189
从键盘上输入某字符串时,不可使用的函数是().
A:getchar()
B:gets()
C:scanf()
D:fread()
答案:A
第9题 (2.0分) 题号:2039
若k为int型变量,则以下程序段的执行结果是().
k=-8567; printf(
A:格式描述符不合法,输出无定值
B:输出为k=|%06D|
C:输出为|0-8567|
D:输出为|-8567|
答案:B
第10题 (2.0分) 题号:2049
以下程序的输出结果为().
main()
{int i=010,j=10;
printf(
}
A:11,10
B:9,10
C:010,9
D:10,9
答案:B
第11题 (2.0分) 题号:2144
int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
则a的值为().
A:1
B:2
C:3
D:不一定
答案:A
第12题 (2.0分) 题号:2259
以下关于运算符优先顺序的描述中正确的是().
A:关系运算符
B:逻辑运算符
C:赋值运算符
D:算术运算符
答案:C
第13题 (2.0分) 题号:2318
在C语言中,要求运算数必须是整型的运算符是().
A:&&
B:%
C:!
D:||
答案:B
第14题 (2.0分) 题号:2261
若希望当A的值为奇数时,表达式的值为
A:A%2==1
B:!(A%2==0)
C:!(A%2)
D:A%2
答案:C
第15题 (2.0分) 题号:2063
执行下列语句后的输出为().
int j=-1;
if(j
else printf(
A:****
B:%%%%
C:%%%%c
D:有错,执行不正确
答案:A
第16题 (2.0分) 题号:2248
下面有关 for 循环的正确描述是().
A:for 循环只能用于循环次数已经确定的情况
B:for 循环是先执行循环循环体语句,后判断表达式
C:在 for 循环中,不能用 peak 语句跳出循环体
D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:D
第17题 (2.0分) 题号:2059
以下程序的运行结果是().
main()
{ int n;
for(n=1;n
{
if(n%3==0) continue;
printf(
}
}
A:12457810
B:369
C:12
D:1234567890
答案:A
第18题 (2.0分) 题号:2141
以下程序段的输出结果为().
for(i=4;i>1;i--)
for(j=1;j
putchar("#");
A:无
B:######
C:#
D:###
答案:B
第19题 (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
第20题 (2.0分) 题号:2249
若i为整型变量,则以下循环执行次数是().
for(i=2;i==0;) printf(
A:无限次
B:0次
C:1次
D:2次
答案:B
四、程序填空 共3题 (共计27分)
第1题 (9.0分) 题号:405
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:要求输出结果为:
A,B
65,66
-------------------------------------------------------*/ #include
void main()
/***********SPACE***********/
{char a,【?】
/***********SPACE***********/
a=【?】;
b="b";
a=a-32;
/***********SPACE***********/
b=b-【?】;
printf(
}
答案:
=======(答案1)=======
b;
=======(答案2)=======
"a"
=========或=========
97
=======(答案3)=======
32
第2题 (9.0分) 题号:25
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序的功能如(图1)。
-------------------------------------------------------*/
/***********SPACE***********/
【?】
main()
{
float x,f;
scanf(
/***********SPACE***********/
if(x
/***********SPACE***********/
else if(【?】) f=2*x+1;
else f=sin(x)+5;
/***********SPACE***********/
printf(
}
答案:
=======(答案1)=======
#include
=========或=========
#include
=======(答案2)=======
f=fabs( x + 1 )
=======(答案3)=======
x
=========或=========
5>=x
=========或=========
x
=========或=========
6>x
=========或=========
x>=0&&x
=========或=========
0
=========或=========
x>=0&&5>=x
=========或=========
0=x
=========或=========
!(x>5)
=======(答案4)=======
x,f
第3题 (9.0分) 题号:24
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1 (或-1)和一些质数(素数)因子的形式。如N=150时,可分
解成1×2×3×5×5;N=-150时,可分解为-1×2×3×5×5。 下边程序能实现这种分解过程。当N=150,输出以下分解结 果:N= 1* 2* 3* 5* 5
-------------------------------------------------------*/
main()
{
int n,i,j,r;
scanf(
if (n==0)
{
printf (
exit(0);
}
/***********SPACE***********/
else if (【?】 )
printf(
else
{
printf(
n=-n;
}
/***********SPACE***********/
for(【?】;i
{
/***********SPACE***********/
【?】 ;
while(r==0)
{
printf(
/***********SPACE***********/
【?】 ;
r=n%i;
}
}
printf(
}
答案:
=======(答案1)=======
n>0
=========或=========
0
=======(答案2)=======
i=2
=======(答案3)=======
r=n%i
=======(答案4)=======
n=n/i
=========或=========
n/=i
五、程序设计 共1题 (共计10分)
第1题 (10.0分) 题号:365
/*------------------------------------------------
【程序设计】
--------------------------------------------------
19题目:编写函数fun,函数的功能是:求一个
四位数的各位数字的立方和
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int k;
k=fun(1234);
printf(
yzj();
getch();
}
yzj()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen(
if(IN==NULL)
{printf(
OUT=fopen(
if(OUT==NULL)
{printf(
for(i=0;i
{fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int d,k,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
return s;
----------------------