|
一、单选题(共 35 道试题,共 70 分。)V 1. 若i为整型变量,则以下循环执行次数是( ): for (i=2;i==0;) printf("%d",i-- );
A. 无限次
B. 0次
C. 1 次
D. 2次
满分:2 分
2. 下列程序段不是死循环的是( )
A. int i=100; while(1){i=i%100+1;if(i>100) break; }
B. for(;;);
C. int k=0; do{++k; if(i>100) break; }while(k>=0);
D. int s=36;while(s);--s;
满分:2 分
3. 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为( ) int a[3][4]; f(a);
A. f(int array[][6])
B. f(int array[3][])
C. f(int array[][4]
D. f(int array[2][5])
满分:2 分
4. 设有以下说明,则下面不正确的叙述是( ) union data {int i; char c; f1oat f; )un;
A. un所占的内存长度等于成员f的长度
B. un的地址和它的各成员地址都是同一地址
C. un可以作为函数参数
D. 不能对un赋值,但可以在定义un时对它初始化
满分:2 分
5. 下面程序的运行结果是( ) #include<stdio. h> main() {int a=1,b=10; do {b-=a;a++;}while(b--<0); printf("a=%d,b=%d\n",a,b); }
A. a=3,b=11
B. a=2,b=8
C. )a=1, b=-1
D. a=4,b=9
满分:2 分
6. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )
A. int
B. float
C. double
D. 不确定
满分:2 分
7. 有如下程序 main( ) { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ } printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是( )
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
满分:2 分
8. 以下正确的描述是( )
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和switch语句体内使用break语句
C. 在循环体内使用break语句或continue语句的作用相同
D. 从多层循环嵌套中退出时, 只能使用goto语句
满分:2 分
9. 若有 int k=2; int *ptr1, *ptr2; ptr1=&k; ptr2=&k ;那么下列正确的语句是( )
A. k=*ptr1+*ptr2
B. ptr2=ptr1*2
C. *ptr1=*ptr2
D. ptr1=*ptr1*(*ptr2)
满分:2 分
10. 下面四个选项中、均是正确的数值常量或字符常量的选项是( )
A. 0.0 0f 8.9e '&'
B. "a" 3.9E-2.5 lel '\'''
C. '3' 011 0xFFOO 0a
D. +001 0xabcd 2e2 50.
满分:2 分
11. 有以下程序段:int x=0,s=0; while (!x!= 0) s+=++x; printf("%d",s); 则有以下程序段( )
A. 运行程序段后输出0
B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的
D. 程序段执行无限次
满分:2 分
12. 结构化程序设计所规定的三种基本结构是( )
A. 主程序、子程序、函数
B. 树形、网形、环形
C. 顺序、选择、循环
D. 输入、处理、输出
满分:2 分
13. 有以下程序 : main( ) { int k=5,n=0; while(k>0) { switch(k) {default : break; case 1: n+=k; case 2: case 3: n+=k;} } printf(“%d\n”,n); } 程序运行后的输出结果是( )
A. 0
B. 4
C. 6
D. 7
满分:2 分
14. 若有说明: char *language[ ]={"F0RTRAN","BASIC","ASCAL", "JAVA","C"};则language[2]的值是( )
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
满分:2 分
15. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( )
A. a[1][2]
B. a[1]
C. *(p+1*10+2)
D. *(a[1]+2)
满分:2 分
16. C语言规定,函数返回值的类型是由( )决定的
A. return语句中的表达式类型
B. 调用该函数时的主调函数类型
C. 调用该函数时由系统临时
D. 在定义函数时所指定的函数类型
满分:2 分
17. 以下程序的正确运行结果是( ) #include int func(int a,int b); main( ) { int k=4,m=1,p; p=fun(k,m);printf(“%d,”,p); p=fun(k,m);printf(“%d\n”,p); } func(int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return m; }
A. 8,17
B. 8,16
C. 8,20
D. 8,8
满分:2 分
18. 有四组对指针变量进行操作的语句,以下判断正确的选项是( ) (1)int *p,*q;q=p; int a,*p,*q;p=q=&a; (2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a; (3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*p=&a;*p=*q; (4)int a=20,*p;*q=&a;p=q; int p,*q;q=&q;
A. 正确1); 不正确2),(3),(4)
B. 正确1),(4); 不正确2),(3)
C. 正确3); 不正确1),(2),(4)
D. 以上结论都不正确
满分:2 分
19. 有定义:int x, *p1=&x, **p2=&p1;,则能够表示变量x值的是( )
A. p1
B. p2
C. *p2
D. **p2
满分:2 分
20. 下面四个选项中,均是非法常量的选项是( )
A. as' -0fff '\0xa'
B. '\\' '\01' 12,456
C. -0xl8 01177 0xf
D. 0xabc '\0' "a"
满分:2 分
21. 以下叙述中不正确的是( )
A. 预处理命令行都必须以#号开始
B. 在程序中凡是以#号开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. 以下是正确的宏定义 #define IBM PC
满分:2 分
22. 下列说法不正确的是( )
A. 形参是局部变量
B. 主函数中定义的变量在整个文件都有效
C. 可以在一个函数的复合语句中定义变量
D. 不同函数可以使用相同变量名
满分:2 分
23. sizeof(float)是( )
A. 一个整型表达式
B. 一种函数调用
C. 一个不合法的表达式
D. 一个不合法的表达式
满分:2 分
24. C语言规定:在一个源程序中,main函数的位置是( )
A. 必须在最开始
B. 必须在系统调用的库函数的后面
C. 可以任意
D. 必须在最后
满分:2 分
25. 下列四组选项中,均不是C语言关键字的选项是( )
A. define IF type
B. geto char printf
C. include scanf case
D. while go pow
满分:2 分
26. 以下不正确的叙述是( )
A. 在C程序中,逗号运算符的优先级最低
B. 在C程序中,APH和aph是两个不同的变量
C. 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
满分:2 分
27. 设变量a b c d 和y都已经正确定义并赋值,若有以下if 语句: if(a<b) if(c==d) y=0; else y=1; 给语句所表示的含义是( )
A. y=0 a<b且c=d; y=1 a>=b
B. y=0 a<b且c=d; y=1 a>=b 且 c!=d
C. y=0 a<b且c=d; y=1 a<b 且 c!=d
D. y=0 a<b且c=d; y=1 c!=d
满分:2 分
28. 若有说明:int a[3][4]则数组a各元素( )
A. 可在程序的运行阶段得到初值0
B. 可在程序的编译阶段得到初值0
C. 不能得到确定的初值
D. 可在程序的编译或运行阶段得初值
满分:2 分
29. 下面程序段,说法正确的为( ) for (t=1; t<=100;t++) {scanf("%d",&x); if(x<0) continue; printf("%3d",x);}
A. 当x<0时整个循环结束
B. x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数
满分:2 分
30. 以下描述中正确的是( )
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值 变为零("假")的操作
D. do~while循环中,根据情况可以省略while
满分:2 分
31. 建立函数的目的之一是( )
A. 提高程序的执行效率
B. 提高程序的可读性
C. 减少程序的篇幅
D. 减少程序文件所占内存
满分:2 分
32. 有以下程序: union pw { int i; char ch[2];}a; main() {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是( )
A. 13
B. 14
C. 208
D. 209
满分:2 分
33. 若用数组名作为函数调用的实参,传递给形参的是( )
A. 数组的首地址
B. 数组第一个元素的值
C. 数组中全部元素的值
D. 数组元素的个数
满分:2 分
34. 下面程序的运行结果是( ) #include<stdio.h> main(){ int k=0; char c='A'; do {switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3;} k++;} while(c<'
A. k=3
B. k=4
C. k=2
D. k=0
满分:2 分
35. 以下程序的输出结果是( ) main() {int a=100,x =10,y=20,okl=5,ok2=0; if (x<y) if(y ! =10) if(!okl) a=1; else if(ok2) a=10; a=-1; printf("%d\n",a );}
A. 1
B. 0
C. -1
D. 值不确定
满分:2 分
二、多选题(共 5 道试题,共 10 分。)V 1. 以下程序正确计算p=n! (n>=0)的是( )
A. for(p=1.0,k=1;k<=n;) p*=k++;
B. p=1.0;k=0;while(k<n) p*=++k;
C. p=1.0;k=1;do{++k;p*=k;} while(k<=n);
D. p=1.0;for(k=n;k>=1;k--) p*=k--;
满分:2 分
2. 在函数调用过程中,下列说法正确的是( )
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
满分:2 分
3. 以下哪些是关于指针数组的正确描述( )
A. int (*a)[4];
B. int *a[4];
C. 指针数组每个元素都是指针变量
D. 若int a[4][4]; int *b[]={a[0],a[1],a[2],a[3]}; 则b是指针数组
E. 指针数组与指向数组的指针是等价的
满分:2 分
4. 有定义:int a[5][4],*p=a[0];,则能正确引用a[2][3]元素地址的有( )
A. a[2]+3
B. *((p+2)+3)
C. *(p[2]+3)
D. *(a+2)+3
E. p+2*4+3
满分:2 分
5. 以下关于C源程序文件的说法中正确的是( )
A. 是一种二进制文件
B. 是一种文本(ASCII码)文件
C. 可以用DOS的type命令显示其内容
D. 文件扩展名一般为c
满分:2 分
三、判断题(共 10 道试题,共 20 分。)V 1. 表达式1/4+2.75的值是3。
A. 错误
B. 正确
满分:2 分
2. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。
A. 错误
B. 正确
满分:2 分
3. 以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况下,函数带回的返回值可能不止一个。
A. 错误
B. 正确
满分:2 分
4. continue语句用在循环体中,可使整个循环不结束。
A. 错误
B. 正确
满分:2 分
5. 对二维数组a来说,由于a+1与*(a+1)的值相等,因此二者的含义是一样的。
A. 错误
B. 正确
满分:2 分
6. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。
A. 错误
B. 正确
满分:2 分
7. 对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。
A. 错误
B. 正确
满分:2 分
8. C语言把文件看作是一个字符的序列。
A. 错误
B. 正确
满分:2 分
9. 下面的程序段构成死循环。 a=5; while (1) {a--; if (a<0) break ; }
A. 错误
B. 正确
满分:2 分
10. 在函数定义中,形参变量是局部变量。
A. 错误
B. 正确
满分:2 分
需要满分标准资料请直接加QQ :1306998094 |
|