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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一.选择题

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

A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符

B.逻辑运算符< 关系运算符< 算术运算符< 赋值运算符

C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符

D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符

2.下列选项中合法的变量名是_________

A.#define B.int C.a594_3D. 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("%d, %o, %x \n ", k, k, k );

}

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("%d\n", --x); }

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("%d\n", *(p+2) ); }

A). 6 B). 4 C). 1 D). 2

24.执行下面程序后输出的值是( )

main()

{ int a;

printf("%d\n", (a=3*5,a*4,a+5) ); }

A). 65 B). 20 C). 15 D). 10

25.下面程序的输出是( )

main()

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

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

printf("%d %d %d \n", k, a, b );

}

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

char str[]="Hello"; char *ptr; ptr=str;

执行完上面的程序段后,*(ptr+5)的值为( )

A). '0' B). '\0' C). 不确定的值 D). '0'的地址

27.在宏定义# define PI 3.14159中,用宏名PI代替一个( )

A).单精度数 B).双精度数C).常量 D).字符串

相关文档
最新文档