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

2017年南昌大学GNSS原理与应用之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.AAAA B.CC C.BBBCC D.BBBB 【答案】D

【解析】程序中声明一个3行4列的字符型数组。要求输出故ch[l]为第二行的BBBB 。

3. 以下选项中不能作为C 语言合法常量的是( )。

【答案】A

【解析】常量包括整型常量、实型常量、字符常量和字符串常量等。B 项,

第 2 页,共 25 页

由于数组下标默认从0开始,

是指数形

式的常量,是合法的;C 项,是字符串常量;D 项,是表示八进制数整型常量。A 项错误,

单引号表示字符常量,不能包含字符串,若要包含字符串,需用双引号。

4. 有以下程序:

程序的运行结果是( )。 A.1, 0, 1, 0 B.1, 1, 0, 1 C.1, 0, 0, 1 D.1, 1, 1, 0 【答案】A

【解析】本题程序执行过程为:

求解逻辑表达式

先求解++a,a=l,则整个表达式

为真,不计算++b,然后求解++c,不计算++d,最后得到a=l,b=0, c=l,d=0,故A 项正确。

5. 有以下程序:

程序运行后的输出结果是( )。 A.11, 19, 19 B.12, 20, 20 C.11, 20, 20 D.12, 19, 20 【答案】C 【解析】

将数组a 的首地址赋给指针p 。

地址,

待输出变量为

表示p 后i 个地址

的元素,

待输出变量为

取这个地址内的元素,待输出变量为

后输出为11,20,20。

6. 以下不合法的字符常量是( )。

A. B. C. D. 【答案】A

第 3 页,共 25 页

【解析】在C 语言中,含义,仅仅代的转义,

表示转义符,可以对特殊符号进行转义,此时特殊符号不再有其他

表示换行,

表示Tab 键。A 项,是指十六进制数cc 。

表示两位的八进

表普通的字符,\后面的字符取值范围应该在Ascn 码表范围。例如. 表示对双引号

表示对转义符的转义,

制数,8不是合法的八进制数字。B 项,表示双引号这个特殊字符;C 项,表示转义符这个特殊字符;D 项,表示两位十六进制数,

7. 有以下程序:

程序运行的结果是( )。

【答案】B

【解析】数组x 有4列。fan 函数中for 循环的作用是将二维数组前4

行的对角线元素赋给

在主函数中,二维数组初始化为

可以看出对角线元素为

8. 若有定义语句:

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

A. 定义语句中的p 只能存放double 类型变量的地址 B. 定义语句中的*号是一个说明符 C. 定义语句中的*号是一个间址运算符

D. 定义语句中*p=&a把变量a 的地址作为初值赋给指针变量p 【答案】C

【解析】C 项错误,只有取指针变量的值时,星号*才是间址运算符,引用指针指向的存储单元。A 项正确, p 是double 类型的指针,只能存放double 类型的地址;B 项正确,定义指针变量

第 4 页,共 25 页

所以