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

2016年西北民族大学数学与计算机科学学院962C语言程序设计复试笔试最后押题五套卷

  摘要

一、选择题

1. 关于C 语言标识符,以下叙述错误的是( )。

A. 标识符可全部由数字组成 B. 标识符可全部由下划线组成 C. 标识符可全部由小写字母组成 D. 标识符可全部由大写字母组成 答:A

【解析】标识符只能由字母、数字、下划线组成,且标识符的第一个字符只能是字母或下划线。所以,B 、 C 、D 选项正确,答案为A 选项。

2. 若有定义语句:且则错误的赋值是( )。

答:A

【解析】二维数组名是指向指针的指针,所以a 和q 都为指向指针的指针,而p 为指向int 类型的指针,p 和a 不同类型,故A 项用返回整数的地址,然后复赋值P 。

3. 有以下程序:

程序运行后的输出结果是( )。 A.0 B.1 C.2 D.3 答:C

【解析】“++”和“一”运算,当以前缀形式出现时,贝U 先进行加一或减一操作,再取值,

第 2 页,共 34 页

赋值语句错误。其余选项可以正确赋值,其中D 项是

当以后缀形式出现时,则先取值,再进行加一或减一操作。a 初始定义为1,b 为0,先执行--a ,结果为0,即if 判断为假,执行b+=2; ,然后输出b 的值。即b 为2。

4. 有以下程序:

程序运行后的输出结果是( )。 A.aegi B.dfhk C.abed

D.abcdefghijk 答:A

【解析】char *a[]是定义一个指针数组,即指向指针的数组,所以,由题中初始化结果得

但是在输出语句时题中要求输出的字符

子输出第一个字符即

5. 设有定义intx=2;,以下表达式中,值不为6的是( )。

A.x*=x+l B.x++, 2*x

C.x*=(1+x) D.2*x, x+=2 答:D

,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)

即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。

6. 若有定义语句:

A.7 B.8 C.9 D.10 答:A

C 语言规定以字符【解析】

所以每个

则的值是( )。

strlen 函数返回的是字符串的长度,

作为字符串结束的标识符。

等效,所以字符串长度是7。

7. 以下合法的转义字符是( )。

A. B. C.

第 3 页,共 34 页

D. 答:D 【解析】

8. 表达式

答:B

【解析】

表示1到2位十六进制所代表的字符,D 项正确。

的值是( )。

需要注意的是,两个整数相除仍然得到整数,

小数部分被省略,

9. 以下涉及字符串数组、字符指针的程序段,不会产生编译错误的是( )。

A. B. C. D. 答:A

【解析】将字符指针变量初始化为一个字符串有两种方式,一种通过赋值运算使一个字符指针指向一个字符串常量:

并且初始化为一个字符串的首地址:变量,所以不能给一个数组名赋值,

A 选项正确。另一种是定义一个字符指针变量,

字符指针变量与字符数组都可以用来实错误,B 选项错误;(2. 字符型的指针变

现字符串的存储和运算,但二者是有区别的:(1. 数组名是一个地址常量,而字符指针变量是一个量的值是可以改变的;(3. 字符指针变量和字符数组在内存中的 存储情形不同,数组指的是按照数组长度分配的若干存储空间,而指针只是一个存储字符串首地址的存储空间,所以相同类型指针可以相互赋值,而数组不能直接用“=”赋值,C 选项错误。数组不可以直接赋值字符 串

.

合法,故D 选项错误。

10.若有定义:inta ,b :

通过语句

能把整数3赋给变量a , 5赋给变量b 的输入数据是( )。 A.3, 5 B.3;5 C.35 D.35 答:B

第 4 页,共 34 页

不合法,只有在数组初始化时可以直接赋值,

合法,并且定义数组时必须指定数组长度,