浙江大学C语言程序设计理论考试模拟试题答案.docx
《浙江大学C语言程序设计理论考试模拟试题答案.docx》由会员分享,可在线阅读,更多相关《浙江大学C语言程序设计理论考试模拟试题答案.docx(15页珍藏版)》请在冰豆网上搜索。
浙江大学C语言程序设计理论考试模拟试题答案
浙江大学C语言理论考试模拟试题答案
一、判断题
共10题,每题1分,共10分。
正确的请选择A,错误的请选择B。
1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。
A
A、正确B、错误
解答:
A
2、在程序中else子句可以单独使用。
B
A、正确B、错误
解答:
B
3、C语言源程序文件通过了编译、连接之后,生成一个后缀为.EXE的文件。
( )A
A、正确B、错误
解答:
A
4、_ya是不合法的C语言标识符。
B
A、正确B、错误
解答:
B
5、在数组初始化时,如果初值个数多于数组长度,将出现错误。
A
A、正确B、错误
解答:
A
6、C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。
B
A、正确B、错误
解答:
B
7、若有定义int*p,则表达式p++的值就是p所指向的变量的地址值加1。
B
A、正确B、错误
解答:
B
8、'\n'不是一个字符常量。
B
A、正确B、错误
解答:
B
9、表达式(z=0,(x=2)||(z=1),z)的值是1。
B
A、正确B、错误
解答:
B
10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。
A、正确B、错误
解答:
A
二、单选题
请从给定的选项中选择一个唯一正确的选项。
每小题2分,共10题,20分。
1、 C下面有关变量的命名,不合法的是:
( )
A._int
B.__intint
C.__int&int
D.___intintint
C
解答:
C
2、 有变量定义inta;floatc;下面输入语句有语法错误的是( )。
A.scanf("%d,%f",&a,&c);
B.scanf("x=%d,c=%f",&a,&c);
C.scanf("%d%f",&a,&c);
D.scanf("%f%d",&a,&c);
D
解答:
D
3、 下面关于函数参数使用的说法,不正确的是:
( )
A.函数调用时实参按顺序传递到形参;
B.函数调用时实参把值传递给形参;
C.函数的实参和形参个数可以不一致,但使用时应尽量一致;
D.函数的实参和形参可以同名;
C
解答:
C
4、 已知intk=1;for(k=1;1;k++) if(k)break;for语句的循环次数是( )。
A.0
B.1
C.2
D.无限次
B
解答:
B
5、 下面定义的max函数返回值的数据类型是( )
max(floata,floatb)
{
return(a>b?
a:
b);
}
A.int
B.float
C.double
D.不确定
A
解答:
A (此题似乎有争议)
此题应该没有争议,因为max()的函数头决定了max()的返回值必定是int,
return后面的表达式必须转化成int。
----BlackWhite注
6、 已知inta=10,x=0;x=~a;则x的值为( )。
A.-1
B.0
C.-11
D.负无穷大
C
解答:
C
7、 表达式(float)10/2的值的数据类型是( )。
A.int
B.long
C.float
D.double
C
解答:
D 这题才有争议,这个题明显出得不好。
因为按C99标准,该表达式的类型为float,而按C89标准,则表达式的
类型为double。
证明方法如下:
在TC中输出sizeof((float)10/2)可以得8,
而在VC中输出sizeof((float)10/2)则得4。
。
----BlackWhite注
8、 表达式!
(x>0||y>0)等价于_____。
A.!
x>0||!
y>0
B.!
(x>0)||!
(y>0)
C.!
x>0&&!
y>0
D.!
(x>0)&&!
(y>0)
D
解答:
D
9、 不正确的赋值或赋初值的方式是______。
A.charstr[]="string";
B.charstr[10];str="string";
C.char*p="string";
D.char*p;p="string";
C
解答:
B
10、 声明语句为“inta[3][4];”,下列表达式中与数组元素a[2][1]等价的是______。
A.*(a[2]+1)
B.a[9]
C.*(a[1]+2)
D.*(*(a+2))+1color[k][j]等价于*(color[k]+j)也可以写成*(*(color+k)+j)
A
解答:
A
三、填空题。
在解答的文本框中填写正确的答案。
共10小题,每小题2分,共20分。
1、表达式inta=97; 表达式'b'(1)__。
(1) 解答:
1(左边为假,则为0,右边也为0,故总体为真,值为1.)
2、equal()函数用于判断两个数是否相等,请写出最简单的形式二使与形式一等价。
形式一:
intequal(intx,inty)
{
if(x==y)return1;
elsereturn0;
}
形式二:
intequal(intx,inty)
{
return(__X==Y___);
}
(1) 解答:
x==y
3、定义下列变量的值为:
intx=5,y=2,z=0;则表达式:
(x||(y=5),x&&z||(y=1),x+y+z)的值为:
___
(1)___
6
(1) 解答:
6
4、下面程序段运行结束后a的值为:
__
(1)___
5
(1) 解答:
5
5、下列程序段的输出结果是_____。
0
*K--引用*k所指向的元素,K指向数组的上一个元素
_ 解答:
0
6、下列程序的输出结果是_____。
2#4
_ 解答:
2#4
7、下列printf输出的结果是______。
10
_ 解答:
10
8、以下程序的输出结果是:
______。
7
_ 解答:
7
9、若有以下的定义和语句,则表达式*(++p)->b用%d输出的值是______。
11
31
_ 解答:
31
10、系统提供了平方根函数,其函数名是______。
_ 解答:
sqrt
四、选择性程序阅读题。
在给定的四个选项中,选出唯一一个正确答案。
共5题,每题4分,共20分。
1、阅读以下程序,程序运行时输入3123123412345后回车,请写出程序的运行结果。
A.0#
B.0#4#
C.0#4#13#
D.13#
C
解答:
C
2、运行时输入bananaapplepearorange的输出结果是_______。
A.pear
B.banana
C.apple
D.orange
A
解答:
A
3、下列程序的输出结果是______。
A.22#244#2466#
B.2#24#246#
C.2#24#66#
D.22#64#126#
A
解答:
A
4、假设文本文件a.txt中存放了下列数据:
apple?
pear?
1234?
output?
文本文件b.txt中存放了下列数据:
apple?
pear?
1604?
input?
假定文件都能正确打开,下列程序的输出结果是_______。
A.2#6#2#
B.apple?
pear?
12#
C.apple?
pear?
110#
D.2#6#10#
D
解答:
D
5、下列程序的输出结果是_______。
A.1#1#2#3#1#3
B.2#1#1#1#1#2#2
C.1#1#2#3#1#1
D.1#1#2#3#1#0
D
解答:
D
五、选择性程序填空题。
共30分,5题*3空=15个空,每空2分。
请在给定的选项中为每空选择一个唯一正确的选项,使程序补充完整。
1、输入两个正整数m和n(1Fibanacci序列(第1项起):
1,1,2,3,5,8,13,21……。
A.m=(m+n)/2B.m=m+nC.n=n+m
D.cur=n
G.pre1+pre2H.cur=pre1I.cur=pre2
BEG
(1)解答:
B
(2)解答:
E
(3)解答:
G
2、输入1个正整数n(n>=6),将n分解为3个素数之和,要求只输出一组。
如:
输入24,则输出24=2+3+19
输入11,则输出11=3+3+5
BEI
A.if(n%2==0)a=2;elsea=3;B.n%2+2C.n/2+2
D.prime(n-b)==0E.prime(n-b)F.prime(b)
G.return0H.return1I.returnflag
(1)解答:
B
(2)解答:
E
(3)解答:
I
3、输入若干学生的成绩,如果输入成绩>100或<0时输入结束,请按等级对成绩进行分类统计,并输出各等级及对应的学生人数。
等级划分如下:
A:
100>=优秀>=90
B:
良好>=80;
C:
中等>=70
D:
及格>=60
E:
不及格<60。
例如,输入95568876349066797481846783751008270-1
则输出:
A:
3B:
5C:
5D:
2E:
2
A.x<60?
0:
x/10-5B.'A'+iC.x<60?
0:
(x-60)/10
D.0<=x<=100E.x>=0||x<=100F.x<=100
G.x>=0&&x<=100H.x/10-5I.'E'-i
GCAI
(1)解答:
G
(2)解答:
A
(3)解答:
I
4、编程实现输出以下图形:
EBC
A.(4-m)%4B.j<2*m-1C.printf("\n")
D.j<2*mE.4-m%4F.printf("*")
G.printf("")H.j<=2*mI.m%4-4
(1)解答:
E
(2)解答:
B
(3)解答:
C
5、输出1~1000之间所有满足各位数字的立方和等于它本身的数。
AHC
A.m=k;s=0B.m=m%10C.k==s
D.digit==sE.m=k/10F.k=m;s=0
G.m==sH.m=m/10I.s=0
(1)解答:
A
(2)解答:
H
(3)解答:
C