考研综合练习题(答案)

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

综合练习题

一、从下列四个供选择的答案中选出正确的一个答案

1、语句printf(“%%d%d”, 123); 将输出:

A) %123%d B) %%d123 C) %d123 D)上述语句语法有错

“%%”格式表示输出一个“%”。

2、执行下列程序段后, a值为:

int a, b;

a=15; b=12;

a=(a-- ==b++)? a%5 : a/5;

A) 0 B) 2.8 C ) 4 D) 2

先计算a--==b++的值:

a--的值为15,执行后a=14;b++的值为12,执行后b=13;15==12为假执行a/5即14/5值为2 结果: a = 2

3、判断字符变量c的值为数字(‟0‟---‟9‟)则返回1,否则返回0, 可用表达式:

A) …0‟<=c<=…9‟ B) …0‟<=c && c<=…9‟C) …0‟<=c || c<= …9‟ D)以上均不是

4、对于int x, y; 语句if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于:

A) y=0; if (x>=0) if (x) y=1; else y= -1;

B) if (x!=0) if (x>0) y=1; else y= -1; else y=0;

C) if (x<0) y= -1; if (x!=0) y=1; else y=0;

D) y= -1; if (x!=0) if (x>0) y=1; else y=0;

语句if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于:

if (x < 0)

y = -1;

else {

if (!x)

y = 0;

else

y = 1;

}

即:

-1 x < 0

y = 0 x = 0

1 x > 0

5、循环for(i=0, j=5; ++i!=--j; ) printf(“%d %d”, i, j); 将执行

A) 6次B) 3次C) 0次D) 无限次

i = 0, j = 5, (++i→1) != (--j→4) 成立: i = 1, j = 4

i = 1, j = 4, (++i→2) != (--j→3) 成立: i = 2, j = 3

i = 2, j = 3, (++i→3) != (--j→2) 成立: i = 3, j = 2

……

6、下列程序段执行后s值为:

int i=5, s=0;

do if (i%2) continue; else s+=i; while (--i);

A) 15 B) 9 C) 6 D) 以上均不是

写成规范形式:

do

if (i % 2)

continue;

else

s += i;

while (--i);

i = 5, s = 0: i % 2 = 1: i = 4

i = 4, s = 0: i % 2 = 0: s = 0 + 4 = 4; i = 3

i = 3, s = 4: i % 2 = 1: i = 2

i = 2, s = 4: i % 2 = 0: s = 4 + 2 = 6; i = 1

i = 1, s = 6: i % 2 = 1: i = 0

7、对于int a,要使((1<<2>>1)|a)==a; 则a 可以是:

A) 2 B) 6 C) 10 D) 2,6,10均可

1: 0000 0000 0000 0001

1<<2: 0000 0000 0000 0100

1<<2>>1: 0000 0000 0000 0010

(1<<2>>1) | 2: 0000 0000 0000 0010 (2)

(1<<2>>1) | 6: 0000 0000 0000 0110 (6)

(1<<2>>1) | 10: 0000 0000 0000 1010 (10) 8、对于以下宏定义:

#define SQ(x) x*x

#define DD(x,y) SQ(x)-SQ(y)

宏调用DD(2*3, 2+3)执行后值为:

A) 43B) 11 C) 25 D) 以上均不是

DD(2*3,2+3)

→SQ(2*3)-SQ(2+3)

→2*3*2*3-2+3*2+3

→43

9、对于以下结构定义:

struct { int len;

char *str;

} *p;

*p->str++中的++加在

A) 指针str上B) 指针p上C) str所指的内容上D) 以上均不是

优先级: “->” > “*” = “++”, ++是右结合

*p->str++ *((p->str)++)

例子:

则*p->str++的值为…H‟, 执行后, str指向‟e‟单元.

10、将s所指节点加到p所指节点之后(如下图), 其语句应为:

A) s->next = p+1; p->next = s;

B) p->next = s; s->next = p->next;

C) s->next=p->next; p->next=s->next;

D) s->next = p->next; p->next = s;

11、语句if (a>b) k=0; else k=1; (int a, b, k) 等价于:

A) k=(a>b)?1:0; B) k=a>b; C) k=a<=b;D) 以上均不是

12、对于int i; char c, s[20];从输入序列123ab45efg中将123读入i; ‟ b‟读入c; “45efg”读入s, 则scanf语句应写为:

A) scanf(“%da%c%s”, i, c, s) B) scanf(“%d%*c%c%s”,&i, &c, s);

C) scanf(“%da%c%s”, &i,&c,&s) D) scanf(“%d%c%c%s”, &i, &c, s);

13、若有以下说明和语句, 已知int和double类型分别占2和8个字节,则sizeof(st)的值为:

struct st {

char a[10];

union {

int i;

double y;

}

};

A) 18 B) 20 C) 12 D) 以上均不是

14、对于以下程序段, 运行后i值为:

enum WEEKS {1,2,3,4,5,6,7} ;

enum WEEKS a=1;

int i=0;

相关文档
最新文档