当前位置:问答库>考研试题

2017年重庆师范大学计算机与信息科学学院819数据结构与程序设计之C程序设计考研强化模拟题

  摘要

一、选择题

1. 以下叙述中正确的是( )。

A. 如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while 语句

B. 对于“for (表达式1; 表达式2; 表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

C. 对于“for (表达式1; 表达式2; 表达式3)循环体”,只在个别情况下才能转换成while 语句

D. 只要适当地修改代码,就可以将do-while 与while 相互转换

【答案】D

【解析】D 项正确,C 语言中do-while 语句和while 语句作用是等价的,二者可以经过适当的修改互换。A 项错误,do-while 和for 循环也能写成死循环;B 项错误,for 循环首先执行表达式1; C 项错误,for 循环体经过适当的修改都可以转换成while 语句。

2. 表达式:的值是( )。

A.4

B.0

C.3

D.5

【答案】C 【解析】值为4,

3. 以下叙述中错误的是( )。

A. 非零的数值型常量有正值和负值的区分

B. 常量是在程序运行过程中值不能被改变的量

C. 定义符号常量必须用类型名来设定常量的类型

D. 用符号名表示的常量叫符号常量

【答案】C

【解析】在C 语言程序中,可以用一个符号名来代表一个常量,称为符号常量,符号常量在定义是不需要类型,其本身就能表达其类型。

4. 若有以下程序

第 2 页,共 42 页 值为1,相减值为3。

则程序的输出结果是( )。

A.1, 2

B.0, 2

C.1, 3

D.2, 3

【答案】A 【解析】是先判定a 是否等于0, 如果a 等于0, 跳出循环;否则进入循环;但是不管判定是否成功,判定结束后都要执行a++操作。

第一次循环,a 等于-2, 满足条件,执行a++,++b, a 变成-1,b 变成1;

第二次循环,a 等于-1,满足条件,执行a++,++b, a 变成0,b 变成2;

第三次循环,a 等于0, 不满足条件,执行a++,a 变成1,b 仍然是2。

5. 有以下程序:

程序运行后的输出结果是( )。

A.0

B. 变量无定义,输出不确定

C.-1

D.1

【答案】A

【解析】NULL 是包含在头文件stdiah 中的宏定义,其数值由编译器确定,一般情况下是0。

6. 有以下程序

程序执行后的输出结果是( )。

A.lbc ,a23

第 3 页,共 42 页

B.abc ,123

C.123,abc

D.321,cba

【答案】A

si 应该指向的是数组的首地址,【解析】字符串是一个特殊的数组,按照数组的规则,即“abc ”

的第一个字符的地址。s2指向的是“123”的第一个字符的地址。调用swap 函数之后交换的是两个字符串的第一个字符W 和T 的内容,因此打印输出为A 。

7. 为了避免在嵌套的if-else 语句中产生二义性,C 语言规定与else 子句配对是( )。

A. 与其在同一行上的if 子句

B. 在其之后最近的不带else 的if 子句

C. 与其缩排位置相同的if 子句

D. 在其之前最近的不带else 的同层if 子句

【答案】D

【解析】if 总是与它上面最近的、未配对的else 配对。

8. C 语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是 ( )。

A. 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义

B. 用户标识符可以由字母和数字任意顺序组成

C. 在标识符中大写字母和小写字母被认为是相同的字符

D. 关键字可用作用户标识符,但失去原有含义

【答案】A

【解析】C 语言允许把预定义标识符重新定义另作他用,但这将失去预先定义的原意。B 项,标识符的第一个字符必须为字母或下划线;C 项,标识符中,大写字母和小写字母被认为是两个不同的字符;D 项,关键字不能另作他用。

9. 有以下程序

程序运行后的输出结果是( )。

A.0

B. 随机值

C.15

D.16

【答案】B

【解析】sum 作为局部变量,没有显式初始化,sum 值代表原来内存中存储的对象,不可预

第 4 页,共 42 页