《C程序设计》期末模拟试题
一、单选题(每小题2分,共20分)
1、在C语言中,正确的int类型的常数是________。
[A]-2U [B]059 [C]3a [D]0xAF
2、已知:char a; int b; float c; double d; 执行语句c=a+b+c+d;后,变量c的数据类型是________。
[A]int [B]char [C]double [D]float
3、假设定义变量如下:
int x;
float y;
以下输入语句中________是正确的。
[A]scanf(“%f%f”,&y,&x);B]scanf(“%f%d”, y, x);
C]scanf(“%f%d”,&y,&x); [D]scanf(“%5.2f%2d”,&y,&x);
4、已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为________。
[A]p[0] [B]*p[C]&*a[D]*&a
5、在C语言中,引用数组元素时,其数组下标的数据类型允许是________。
[A]整型常量[B]整型表达式
[C]整型常量或整型表达式 [D]任何类型的表达式
6、以下能对外部的二维数组a进行正确初始化的语句是________。
[A]int a[2][]={{1,0,1},{5,2,3}};[B]int a[3][]={{1,2,3},{4,5,6}};
[C]int a[2][4]={{1,2,3},{4,5},{6}}; [D]int a[][3]={{1,0,1},{ },{1,1}};
7、设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句________。
if (x=y) printf(" x is equal to y.");
[A]语法错[B]不能判断x和y是否相等
[C]编译出错 [D]能判断x和y是否相等
8、若用数组名作为函数调用时的参数,则实际上传递给形参的是________。
[A]数组元素的个数[B]数组的第一个元素值
[C]数组中全部元素的值 [D]数组首地址
9、若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则 。
[A]x数组与y数组的长度相同[B]x数组长度大于y的长度
[C]x 数组长度小于y数组长度 [D]x数组等价于y 数组
10、以下正确的函数说明是________。
[A]float add(int x,y)[B]int add(int x;int y)
[C]char add( ) [D]int add(char x[ ] [ ])
二、程序填空题(阅读以下程序说明和相应程序,在每小题提供的若干可选答案中,挑选一个正确的答案。每小题2分,共30分)
1、 【程序说明】求s=1-1/2+1/3-1/4+…+1/19-1/20的值。
运行示例:
sum=0.668771
【程序】
# include
void main(){
int i;
(11) fh=1;
(12)
for (i=2;i<=20;i++){
(13)
s= (14)
}
printf( (15) _,s);
}
【供选择的答案】
(11)[A]float s; [B]float s;int [C]float s, [D]int s,
(12)[A]s= 0; [B]s=1; [C]s=0.5; [D]s=2;
(13)[A]fh=-1; [B]fh=fh/i; [C]fh=1/i; [D] fh=-fh;
(14)[A] s+fh/i; [B]s+fh [C]fh/i [D] s=s+1/i;
(15