C语言试题及答案解析(三)
班级 姓名 学号____________
题号 | 一 | 二 | 三 | 四 | 五 | 总得分 | 评卷人 | 审核人 |
得分 | ||||||||
float型 |
一.选择题(20分):
1. 判断下面标识符中哪个是C语言中合法的用户定义标识符:
A. a-b B. #abd C. typedef D. _max
2. ‘b’在内存中占 个字节,“B”在内存中占 个字节。
A. 1 B. 2 C. 3 D. 4
3. 下列表达式的值哪些不等于0?
A. 2>>1 B. ~a&a C. 1>5 D. a^a
4. 设有一分段函数: x=1 a<b且c=d
x=2 a>=b
则下列程序段哪个是正确的?
A. if(a<b) B. if (a<b) C. if (a>b) D. if (a>=b)
If(c==d) {if (c==d) if (c==d) x=2;
x=1; x=1; x=1; else
else x=2; else x=2;} else x=2; {if(c==d) x=1;}
5. 下列关于switch和break语句的讨论中,只有 是正确的。
A. break语句是switch 语句的一部分
B.在switch语句中可以根据需要使用或不使用break语句
C. switch语句中必须使用break语句
D.以上三种说法都不正确。
6. 若有两条语句:static char x[]=”abcde”;
static char y[]={‘a’,’b’,’c’,’d’,’e’};
则下列说法中正确的是: 。
A. x数组和y数组长度相同 B. x数组长度大于y数组长度
C. x数组长度小于y数组长度 D. 以上三种说法均错误。
7. 返回值为void的函数,其含义是:
A. 调用函数之后,被调用的函数没有返回值;
B. 调用函数之后,被调用的函数不返回
C. 调用函数之后,被调用的函数返回值为任意类型
D. 以上三种说法均不正确。
8. C语言中函数的隐含存储类别是 ,在一个C源程序文件中,若要定义一个只允许在本源文件中所有函数使用的全局变量,则变量需要使用的存储类别是 。
A. auto B. static C. register D. extern
9. 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是
A. s=a+b; B. s=a+c; C. s=s+c; D. s=b+c;
10. 以下叙述中不正确的是
A. 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B. 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C. 在C中,外部变量的隐含类别是自动存储类别。
D. 在C中,函数形参可以说明为register变量。
11. 对于scanf(“A=%d”,&a)语句,输入10的正确的输入形式是:
A. a=10 B. A=10 C. 10 D. =10
12. C语言中,运算对象必须是整型的运算符是 。
A. % B. / C. %和/ D. >=
13. 为表示关系x≥y≥z,应使用C语言表达式 。
A. (x≥y)&&(y≥z) B. (x>=y) and(y>=z) C. (x>=y)&&(y>=z) D. (x>=y)‖(y>=z)
14. 若要求在if后一对圆括号中标式a不等于0的关系,则能正确表示这一关系的表达式是 。
A. a<>0 B. !a C. a=0 D. a
15. 以下说法正确的是 。
A. C语言程序总是从第一个定义函数开始执行;
B. 在C语言程序中,要使用的函数必须在main()函数中定义;
C. C语言程序总是从main()函数开始执行;
D. C语言程序的main()函数必须在程序的开始部分。
16.下列描述中不正确的是
A. 字符型数组中可以存放字符串
B. 可以对字符型数组进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
17. C语言中用于结构化程序设计的三种基本结构是
A. 顺序结构、选择结构、循环结构
B. if、switch、break
C. for、while、do-while
D. if、for、continue
18.若已定义x和y为double类型,则表达式(x=1,y=x+3/2)的值是
A. 1 B. 2 C. 2.0 D. 2.5
19.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后三位,并将第四位四舍五入的是
A. x=(int)(x*1000+0.5)/1000.0; B. x=(x*1000+0.5)/1000.0;
C. x=x*1000+0.5/1000.0; D. x=(x/1000+0.5)*1000.0;
20. 执行以下程序后,输出结果是
A. –1 B. 1 C. 8 D. 0
main()
{ int y=11;
while(--y)
{ y--;}
printf(“%d\n”,y--);
}
二.写出下列程序的执行结果(20分):
1.执行下列程序后,变量I的正确结果是
int I=10;
switch (i){
case 9: i+=1;
case 10: i+=1;
case 11: i+=1;
default: I+=1;}
2. 下面程序的输出结果是
main()
{ int a[4][4]={{3,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,12,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]= =0) break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
3. 下面程序的输出结果是
aaa(char *s)
{ char *t=s;
while(*t) t++;
return(t-s);
}
main()
{ char b[]={“Hello!”};
printf(“%d\n”,aaa(b));}
4. main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf(“%d”,*p); printf(“%d\n”,*(p+8));}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论