非计算机专业C语言考试题集 下载本文

非计算机专业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 void main()

{ 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 Void main()

{ 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 Void main() { int num=0; While(num<=2)

{ 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 #include Void main()

{ 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 Void main() {

int i,j,temp,a[N],min; For(i=0;i

Scanf(“%d”,%a[i]);

}

For(i=0;i<=N;i++) { min=i;

For(j=i+1;i

If(a[j]

Temp=a[i]; a[i]=a[min]; a[min]=temp; }

Printf(“排序后的顺序为:\\n”); for(i=0;i

Printf(“%d\\n”,a[i]); }

2. 下面的程序是采用函数递归调用的方法计算n!,请填空

#include Long fac(int n) { Long f; If(n==0)(f=1); Else(f=n*fac(n-1)); Return (f); }

Void main() {

Long y;int n; Scanf(“%d”,&n); (y=fac(n));

Printf(“%d!=%ld\\n”,n,(y));}

四.程序分析题(共20分) 1.以下程序的运行结果是(4)

#include Int x=1,y=2; Void sub(int y) { X++;