C语言复习60题

37 以下哪个表达式的结果是true?

A.!(4<5)

B.2>2||4==4&&1<0 C.34==33&&!false D.!false

正确答案: D、!false。

38 以下哪个表达式,当a和b中只有一个是true的时候结果为true,而如果两个都是false或都是true的时候,结果为false

A.a && b B.a || b C.a != b D.!a && !b

正确答案: C、a != b。

39 以下哪个表达式,当a和b都是true或者都是false的时候,表达式的结果为true。

A.a && b B.a || b C.a == b D.a ^ b

正确答案: C、a == b。

40 以下哪个表达式与!(a&&b)是等价的

A.!a && !b B.!a || !b C.a && b D.a || b 正确答案: B、!a || !b。

41 以下代码执行后,i的值是:

i = 3/2,3*2; 正确答案是:1。 42 以下哪句不是正确的原型?

A.int f(); B.int f(int i); C.int f(int);D.int f(int i) {} 正确答案: D、int f(int i) {}。

43 以下哪个函数的定义是错误的?

A.void f() {}

B.void f(int i) { return i+1; } C.void f(int i) {} D.int f() { return 0; }

正确答案: B、void f(int i) { return i+1; }。

44 对于不返回值而且只有一个int类型的参数的函数,以下哪些函数原型是正确的?

A.void f(int x); B.void f(); C.void f(int); D.void f(x);

正确答案: A、void f(int x);。 B、void f();。 C、void f(int);。

45 以下程序的输出是什么?

#include void swap(int a, int b); int main() { int a = 5; int b = 6; swap(a,b); printf(\ return 0; }

void swap(int a, int b) { int t = a; a = b; b = t; }

正确答案是:5-6。

46 若有定义:

int a[2][3];

则以下选项中不越界的正确的访问有:

A.a[2][0] B.a[2][3] C.a[1>2][0] D.a[0][3]

正确答案: C、a[1>2][0]。

47 以下程序片段的输出结果是:

int m[][3] = {1,4,7,2,5,8,3,6,9,}; int i,j,k=2;

for ( i=0; i<3; i++ ) {

printf(\}

A.369

B.不能通过编译 C.789

D.能编译,但是运行时数组下标越界了 正确答案: A、369。

48 假设int类型变量占用4个字节,定义数组 int x[10] = {0,2,4};

则x在内存中占据几个字节?

正确答案是:40。

49 若有:

int a[][3] = {{0},{1},{2}}; 则a[1][2]的值是?

正确答案是:0。

50 对于:

int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[5]; 则:

p[-2]的值是?

A.编译出错,因为数组下标越界了 B.运行出错,因为数组下标越界了 C.54 D.2

正确答案: C、54。

51 如果: int a[] = {0}; int *p = a;

则以下哪些表达式的结果为真?

A.p == a[0] B.p == &a[0] C.*p == a[0] D.p[0] == a[0]

正确答案: B、p == &a[0]。

C、*p == a[0]。 D、p[0] == a[0]。

52 以下变量定义:

int* p,q;

中,p和q都是指针。

A.√B.×正确答案: B、×。

53 对于:

int a[] = {5, 15, 34, 54, 14, 2, 52, 72}; int *p = &a[1]; 则:p[2]的值是?

正确答案是:54。

54 对于以下代码段,正确的说法是: char *p;

while (1) {

p = malloc(1); *p = 0; }

A.最终程序会因为没有没有空间了而退出 B.最终程序会因为向0地址写入而退出 C.程序会一直运行下去 D.程序不能被编译

正确答案: B、最终程序会因为向0地址写入而退出 55 对于以下代码段:

int a[] = {1,2,3,4,5,}; int *p = a; int *q = &a[5]; printf(\

当sizeof(int)为4时,以下说法正确的是:

A.因为第三行的错误不能编译B.因为第三行的错误运行时崩溃C.输出5D.输出20

正确答案: C、输出5。

56 使用malloc就可以做出运行时可以随时改变大小的数组

A.√B.×

正确答案: B、×。

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