非计算机专业C语言考试题集(答案已标红)
一.选择题
1. 一个c语言程序是由(B)
A一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成
2.算法的重要特征(A)
A.输入,输出,确定性,有穷性,可行性 B.正确性,可读性,可行性 B.输入,输出,逻辑性,健壮性 D.列举性,归纳性,递推性,冒泡性
3. 以下正确的C语言标识符是(C)
A. void B. -abc C.a3_b3 D.sizeof
4.下列数据中是合法的字符常量的是(A)
A. ‘\\97’ B.“!” C. “\\t” D.“\\0”
5.若有说明语句:char c=‘\\72’;则变量c包含;(A)
A.1个字符 B.2个字符 C.3个字符 D.说明不合法,c值不确定
6.在c语言中,要求两侧的运算对象必须是整型对象的运算符是(A)
A. % B. / C.< D.!
7.以下程序的输出结果是(D)
#include
{ int k=17; printf(“%d,%0,%x\\n”,k,k,k);}
A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17,21,11
8.下列程序的运行结果是(B)
#include
{ int a=2,c=5;printf(“a=%d,b=%d\\n”,a,c);}
A. a=%2,b=%5 B.a=2,b=5 C.a=d,b=d D.a=2,c=5
9.以下说法正确的是(D)
A.输入项可以为一个实型常量,如scanf(“%f”,3.5);
B.只有当格式控制字符串,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”); C.当输入实型数据时,格式控制部分应规定小数点后的位数,如sacnf(“%4.2f”,&f); D.当输入数据时,必须指明变量的地址,如scanf(“%f,&f”);
10. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式(B)
A.从左起输出该字符串,右补空格 B.按照字符长从从左到右全部输出
C.右对齐输出该字符串,左补空格 D.输出错误信号
11. 下面程序的运行结果是(C)
#include
{ num++;printf(“%d\\n”,num);}}
A.1 B. 1 2 C.1 2 3 D.1 2 3 4
12.若运行以下程序时,从键盘输入3.6 2.4↙,则程序的运行结果是(B)
#include
{ float x,y,z; scanf(“%f%f”,&x,&y); z=x/y; While(1) {
if(fabs(z)>1.0) {
x=y; y=z; z=x/y; } else { break; }
Printf(“%f\\n”,y); }
A.500000 B.1.6000000 C.2.0000000 D.2.400000
13.若有如下定义:int a[3][3]={ {1,2},{3,4},{5,6}},i,j,s=0;则下列语句的输出结果是(B)
for (i=1;i<3;i++) {
for(j=0;j<=i;j++)
{
s+=a[i][j];printf(“%d\\n”,s); A.30 B.18 C.14 D.21
解析:题中的外循环只执行了2次:第1次:a[1][0]=3,a[1][1]=4,所以s=7;第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
13. 若有定义,int a[10];,则数组元素的正确引用是(D)
A[10] B.[3.5] C.a(5) D.a[10-10]
15.c语言中函数返回值的类型由(D)决定 A.return语句中表达式类型
B.调用函数的主调函数类型 C.调用函数时的临时类型 D.定义函数时所在指定的函数类型
16.有以下函数调用语句:func((exp1,exp2),(exp3,exp4,exp5));其中含有的实参个数和是(B)
A.1 B.2 C.4 D.5
17.设有以下宏定义 #define M 3+3
则执行语句“z=M+M;”后,z的值为(C)
A.出错 B.36 C. 12 D.15
18. 在C语言中(D)
A.函数的定义可以嵌套,但函数的调用不可嵌套 B.函数的定义和调用均可以嵌套 C.函数的定义和调用均不可以嵌套
D.函数的定义不可以嵌套,但函数的调用可以嵌套
19. C语言结构体类型变量在程序执行期间(A)
A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中
20. 当定义一个结构体变量时,系统为它分配的内存空间是(A)
A.结构中一个成员所需的内存容量 B.结构中第一个成员所需的内存容量 C.结构体所占内存容量最大者所需的容量 D.结构中各成员所需的容量之和
21.C语言中最简单的数据类型包括( B )。
A.整型,实型,逻辑型 B.整型,实型,字符型
C.整型,字符型,逻辑型
D.整型,实型,逻辑型,字符型
22.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是(if(x>y)
z=x; x=y; y=z;
A.x=l0,y=20,z=30 B.x=20,y=30,z=30 C.x=20,y=30,z=10
D.x=20,y=30,z=20
B )。
23.对于for(表达式1;;表达式3)可理解为( B )。
A.for(表达式1;1;表达式3) B.for(表达式1:1;表达式3) C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3)
24. 一个C语言的执行是从( A )。
A.本程序的主函数开始,到本程序的主函数结束
B. 本程序的第一个函数开始,到本程序的最后一个函数结束 C. 本程序的主函数开始,到本程序的最后一个函数结束 D. 本程序的第一个函数开始,到本程序的主函数结束
25. 以下关于数组的描述正确的是(C)。
A.数组的大小是固定的,但可以有不同类型的数组元素。 B. 数组的大小是可变的,但所有数组元素的类型必须相同。 C. 数组的大小是固定的,所有数组元素的类型必须相同。 D. 数组的大小是可变的,可以有不同类型的数组元素
二.填空题(每题2分,共20分)
1. 2. 3. 4. 5. 6. 7. 8. 9.
C语言程序的基本单位是(函数)
一个c源程序中至少应包括一个(主函数)
若已定义x和y为double类型,则表达式“x=1;y=x+3/2”的值是(2.0) 设int a=12,则计算表达式a+=a-=a*a后,a的值为(-264) Putchar函数可以向终端输出一个(字符)
在printf格式字符中,只能输出一个字符的是(%c) (continue)语句的作用是结束本次循环
对于for(表达式1;;表达式3)可以理解为(for(表达式1:1;表达式3)) 一下程序的输出结果是(ab) Char ch[5]={‘a’,’b’,’\\0’,’c’,’\\0’}; Printf(“%s”,ch); 10.
“int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};”,则a[2][1]的值为(2)
三.程序填空题(每空2分,共20分)
1.下面的程序是比较10个数的大小,按照从小到到大进行排序,请填空(考冒泡排序 90%可能考) #define N 10 #include
int i,j,temp,a[N],min; For(i=0;i Scanf(“%d”,%a[i]); } For(i=0;i<=N;i++) { min=i;