C语言复习参考题(含答案)——胡春安

《C语言程序设计》复习题

一. 选择题

1.以下关于运算符优先顺序的描述中正确的是( )。

A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B.逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 2.下列选项中合法的变量名是_________

A. #define B. int C. a594_3 D. abs(x) 3.以下正确的描述是( )。

A. break语句的作用是结束整个循环的执行 B.在C程序中,注释说明只能位于一条语句的后面

C. 在循环体内使用break语句或continue语句的作用相同

D. 从多层循环嵌套中退出时, 只能使用goto语句

4.以下说法正确的是( )

A.#define 和 printf 都是 C 语句。 B.#define 是C语句,而printf不是。

C.若程序中要调用数学函数,必须在文件开头输入 #include “math.h”。 D. #define是宏命令,printf 是 C 语句。 5.下面的函数定义正确的是______________

A) float fun (float x ; float y) {return x*y;} B) float fun (float x,y) {return x*y;}

C) float fun (x,y) {int x,y;return x*y;} D) int fun (int x, int y) {return x*y;} 6.执行下面语句后的输出为( ) int i=-1;

if (i<=0) printf(“****\\n”) else printf(“%%%%\\n”)

A). **** B). %%%%

C). %%%%c D). 有语法错误,不能正确执行 7.以下程序的输出结果是( ) void main( ) {int k=17;

printf(\ }

A). 17, 21, 11 B). 17, 17, 17 C). 17, 0x11, 021 D). 17, 21, 1 8.以下不正确的叙述是 ( )

A)#define是宏定义命令

B)宏定义只是做简单的置换,不做正确性检查 C)宏定义是C语句,必须在行末加分号

D)#define 和 printf 都不是 C 语句

9.一个C语言程序是由( )

A) 一个主程序和若干子程序组成 B)若干子程序组成 C) 若干过程组成 D) 函数组成 10.C语言规定,在一个源程序中,main()函数的位置( )。 A.必须在最开始 B.必须在最后

C.可以任意 D.必须在系统调用的库函数的后面

11.以下对二维数组a的正确说明是( )。

A) int a[3][]; B) floatf a(3,4); C) char a[1][3]; D) float a(3)(5);

12.若有说明: int a[3][2]={10};则下面正确的叙述是( )

A)只有元素a[0][0]可得到初值10 。 B)此说明语句不正确:。

C)数组a中各元素都可得到初值,但其值不一定为0。 D)数组a中每个元素均可得到初值10 13.以下叙述不正确的是( )。

A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是语句

D) 只能在循环体内和switch语句体内使用break语句 14.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与( 配对。

A) 缩排位置相同的if B) 其之前最近的未配对的if C) 之后最近的if D) 同一行上的if

15.能正确表示a和b同时为正或同时为负的逻辑表达式是( ) A)(a>=0||b>=0)&&(a<0||b<0)

B)(a>0&&b>0)||(a<0&&b<0) C)(a+b>0)&&(a+b<=0) D) (a-b>0)&&(a-b<=0)

16.已知x =5,ch='A',y=0,则表达式(x > = y && ch<'a'&&!y) 的值是 ( ) A) 0 B) 语法错 C) 1 D) \假\

17.下列关于单目运算符++、--的叙述中正确的是( )

A) 它们的运算对象可以是任何变量和常量

B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量 18.下面的程序( ) void main()

{ int x=3; do {

printf(“%d\\n”,x-=2); } while(!(--x)); }

A). 输出的是1 B). 输出的是1和-2

C). 输出的是3和0 D). 是死循环 19.如下程序:

void main( )

{ int a=6; printf(“%d\\n”,(a+=3,2*a)); } 执行后,输出结果是( )

A) 9 B) 6 C) 2 D) 18 20.若有以下说明和语句,请选出哪个是对C数组元素的正确引用( ) int c[4][5], (*cp)[5]; cp=c;

A). cp+1 B). *(cp+3) C). *(cp+1)+3 D). *(*cp+2) 21.下面程序的输出是( ) main()

{ int x=023;

printf(\

A). 17 B). 18 C). 23 D). 24 22*.执行下列程序的结果是( ) main()

{ float x=1,y; y=++x*++x; printf(“%f\\n”,y); } A). 9.000000 B). 6.000000 C). 1.000000 D). 程序有错误 23.下面程序的输出是( ) int main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3];

printf(\

A). 6 B). 4 C). 1 D). 2 24.执行下面程序后输出的值是( ) main() { int a;

printf(\

A). 65 B). 20 C). 15 D). 10 25.下面程序的输出是( ) main()

{ int a=-1, b=4, k;

k=(a++<=0)&&(!(b--<=0));

printf(\ }

A). 0 0 3 B). 0 1 2 C). 1 0 3 D). 1 1 2 26.设有如下的程序段:

char str[]=\ 执行完上面的程序段后,*(ptr+5)的值为( )

A). '0' B). '\\0' C). 不确定的值 D). '0'的地址 27.在宏定义# define PI 3.14159中,用宏名PI代替一个( ) A).单精度数 B).双精度数 C).常量 D).字符串

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4