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 页
不合法,只有在数组初始化时可以直接赋值,
如
合法,并且定义数组时必须指定数组长度,
不