C试卷复习题

  • 格式:doc
  • 大小:89.00 KB
  • 文档页数:8

C语言复习题

一、单项选择题

1、 C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。

 A.”.c” B.“.obj” C.“.exe” D.“.bas”

2、 以下选项中不正确的整型常量是( C )。

 A. 12L B. -10 C. 1,900 D. 123U

3、 表达式( C )的值是0。

A.3%5 B.3/5.0 C.3/5 D.3<5

4、 表达式 !(x>0||y>0) 等价于( D )。

A.!x>0||!y>0 B.!(x>0)||!(y>0) C.!x>0&&!y>0 D.!(x>0)&&!(y>0)

5、 若变量已正确定义并赋值,表达式( D )不符合C语言语法。

A.4&&3 B.+a C.a=b=5 D.int(3.14)

6、 下列格式符中,可以用于以16进制形式输出整数的是( D )

A. %d B. %o C. %ld D. %x

7、 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3);时,( B )_是正确的输入。

 A.2030,40 B.20 30 40 C.20, 30 40 D.20, 30,40

8、 设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有( B )个元素。

A.12 B.13 C.14 D.15

9、 设变量定义为“int b[2]={1,3}, *p=&b[0]+1;”,则*p的值是( B )。

A.2 B.3 C.4 D.&b[0]+1

10、 设 int x=1, y=1; 表达式(!x||y--)的值是( C )

A.-1 B.0 C.1 D.2

11、 下面能正确进行字符串赋值操作的语句是 (A.

A. char s[]={ “ABCDE“}; B. char s[5]={'a','b','c','d’,'e',’\0’};

C. char *s;s=“ABCDEF“; D. char *s;scanf(“%s“,s);

12、 若变量已正确定义并赋值,表达式 -k++ 等价于( A )。

A.-(k++) B.(-k)++ C.-(k+1) D.-(++k)

13、 在C 语言程序中,在函数内部定义的变量称为( D )。

A.全局变量 B.全程变量 C.外部变量 D.内部变量

14、 下面运算符优先级最低的是(B)

A. <= B. = C. % D. &&

15、 执行语句“for(s=0,i=1;i<=10;i=i+3) s+=i;”后,变量s、i的当前值是( A )

A. 22,13 B. 12,10 C. 22,10 D. 12,13

16、 若x是整型变量,表达式 (x=10.0/4.0) 的值是( D ) 。

A.2.5 B. 2.0 C. 3 D.2

17、 以下能正确定义二维数组的是( D )

A. int b[][3]; B. int b[][3]=2{2*3};

C. int b[][3]={}; D. int b[3][2]={{1},{2},{3,4}};

18、 下列运算符中,优先级从高到低依次为( D )。

A.&&,!,|| B.||,&&,! C.&&,||,! D. !,&&,||

19、 以下选项中,非法的字符常量是 (C)

A. ‘\t’ B. ‘\17’ C)“n” D. ‘\xaa’

20、 下列条件语句中,功能与其他语句不同的是 (D)

A. if(a) printf("%d\n",x); else printf("%d\n",y);

B. if(a==0) printf("%d\n",y); else printf("%d\n",x); C. if(a!=0) printf("%d\n",x); else printf("%d\n",y);

D. if(a==0) printf("%d\n",x); else printf("%d\n",y);

21、 以下程序的输出结果是 (C)

main()

{ int i, b[10];

for(i=9;i>=0;i--) b[i]=10-i;

printf(“%d%d%d”,b[2],b[5],b[8]);

}

A. 258 B. 741 C. 852 D. 369

22、 以下程序的输出结果是(B)

main()

{ char st[20]= “hello\0\t\\”;

printf(%d %d \n”,strlen(st),sizeof(st));

}

A. 9 9 B. 5 20 C. 13 20 D. 20 20

23、 以下程序的输出结果是 (D)

main()

{ int a, b;

for(a=1, b=1; a<=100; a++)

{ if(b>=10) break;

if (b%3= =1)

{ b+=3; continue; }

}

printf(“%d\n”,A.;

}

A. 101 B. 6 C. 5 D. 4

24、 以下程序段的输出结果是 (A.

char s[]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A. 9 B. 12 C. 13 D. 14

25、 若变量c为char类型,则能正确判断出c为小写字母的表达式是( D )。

A. 'a'<=c<= 'z' B. (c>= 'a')||(c<= 'z')

C. ('a'<=C.and ('z'>=C. D. (c>= 'a')&&(c<= 'z')

26、 _( D )是合法的用户自定义标识符。

A. b-b B.float C.123a D. _isw

27、 若变量已正确定义并赋值,表达式( B )_不符合C语言语法。

A.a*b/c; B.3.14%2 C.2, b D.a/b/c

28、 ___C__是不正确的字符常量。

A.'n' B.'1' C."a" D.'101'

29、 在 C 程序中,用( B )表示逻辑值“真”。

A.1 B.非 0 的数 C.非 1 的数 D. 大于 0 的数

30、 ( C )把x、y定义成float类型变量,并赋同一初值3.14。

A.float x, y=3.14; B.float x, y=2*3.14;

C.float x=3.14, y=x=3.14; D.float x=y=3.14;

31、 若变量已正确定义,语句“if(a>B. k=0; else k=1;”和( C )等价。

A.k=(a>B.?1:0; B.k=a>b;

C.k=a<=b; D.a<=b ? 0 : 1;

32、 设变量定义为“int a, b;”,执行下列语句时,输入_D____,则a和b的值都是10。

 scanf("a=%d, b=%d",&a, &B.; A.10 10 B.10, 10 C.a=10 b=10 D.a=10, b=10

33、 下列程序的输出结果是( D )。

fun(int a, int b, int C.

{ c =a*b; }

void main( )

{ int c;

 fun(2,3,C.;

 printf(”%d\n”,C.;

}

A.0 B.1 C.6 D.无法确定

34、 在C程序中,若对函数类型未加说明,则函数的隐含类型为__A___。

A.int B.double C.void D.char

35、 表达式 strlen(”hello”) 的值是_( B )。

A. 4 B. 5 C. 6 D. 7

36、 设变量定义为“int b[4];”,则表达式( D )不符合C语言语法。

A.*a B.b[0] C.a D.a++

37、 有以下定义和语句

int b[3][2]={1,2,3,4,5,6,},*p[3];

p[0]=b[1];

则*(p[0]+1)所代表的数组元素是(C)

A. b[0][1] B. b[1][0] C. b[1][1] D. b[1][2]

38、 下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的( B )

A. float d,*p=d; B. float d,*p=&d; C. float d,p=d; D. float *p=&d,d;

39、 定义函数时,缺省函数的类型声明,则函数类型取缺省类型( D )

A. void B. char C. float D. int

40、 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( D )

A. 称为函数的直接递归调用 B. 称为函数的间接递归调用

C. 称为函数的循环调用 D. C语言中不允许这样的递归调用

41、 下列程序执行后的输出结果是(B)

A. 6 B. 8 C. 10 D. 12

#define MA(x) x*(x-1)

main()

{ int a=1,b=2; printf("%d \n",MA(1+a+b)); }

42、 设变量定义为“int x, *p=&x;”,则&*p相当于__A___。

A.p B.*p C.x D.*&x

43、 有如下程序

int runc(int a,int b)

{ return(a+b);}

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%\d\n”,r);

}

该程序的输出的结果是 (D)