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

2018年北京印刷院信息工程院828信息与通信工程综合基础之C程序设计考研基础五套测试题

  摘要

一、选择题

1. 以下可以将任意一个两位整数n 的个位数与十位数对换的表达式为( )。

A. (n-n/10×10)×10+n/10

B.n-n/l0×l0+n/10

C.n/10+(n-n/10)

D. (n-n/10)×10+(n/10)

【答案】A

A 项n/10得到十位数字,n-n/10得到个位数字,【解析】将个位数乘以10加上十位数字,(n-n/10

×10)×l0+n/10实现将任意一个两位整数个位数与十位数对换,A 项正确。B 项n-n/10×10得到个位数字,n/10为十位数字,n-n/10×l0+n/10实现两位整数个位数与十位数之和,B 项错误。C 项n/10+(n-n/10)=n, 不能实现题目中要求,C 项错误。D 项n/10是十位数字,n-n/10为原两位整数减去十位数字,不是个位数字,D 项错误。

2. 有以下程序:

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

A.0, 4, 5

B.4, 4, 5

C.4, 4, 4

D.0, 0, 0

【答案】A

【解析】C 语言中可以将多条语句放在同一行,用“;”隔开。赋值运算和逗号运算都是从左到右结合。首先执行A-=A-5,即A=A-(A-5),得A 的值为5, 然后执行C=(A-=A-5), 即将A 的值5赋给变量C , 使得C 的值也为5。然后执行下句逗号表达式中的A=B, 把B 的值0赋给A ,此时A 的值为0, 然后执行B=B+4, 使得B 的值为4,最后打印输出。

3. 要求通过while 循环不断读入字符,当读入字母N 时结束循环。若变量已正确定义,以下正确的程序段是( )。

A )

B )

C )

D )

【答案】D

【解析】D 项正确,ch 与

表达式从右向左计算,会把_

它等价

4. 有以下程序:

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

A.0

B.1

C.2

D.3

【答案】C

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

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

A. 当在程序的开头包含头文件

B. 函数可以返回地址值

C. 改变函数形参的值,不会改变对应实参的值

D. 可以给指针变量赋一个整数作为地址值

【答案】D

【解析】D 项错误,不能将一个整数直接赋给指针变量作为地址。A 项正确,NULL 是在头

表示先把. 赋值给函数的返回值赋值给ch ,然后判断函数的返回值是右值,A 项逻辑错误,B 项错误,是否相等。它表示读入字母’N ’时执行循环;函数的返回值,而_(等于)的优先级高于=(赋值),不可改变,出现编译错误;C 项逻辑错误,此时ch 的取值是0或1。

时,可以给指针变量赋NULL

文件中定义的符号常量;B 项正确,函数的返回值可以是地址,即指针;C 项正确,函数调用中形参值的变化不会传递给实参。

6. 有以下程序:

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

A.8,16

B.16,32

C.8,32

D.16,16

【答案】C

【解析】带参数的宏定义不是进行简单的字符串替换,而是要进行参数替换不计算,只是进行简单的替换。替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。FNA (FNB (a ))的替换过程为:FNA (2+2)替换为2+2X2+2,计算结果为8。FNB (FNA (b ))的替换过程为:FNB (4*4)替换为4X4+4X4=32。程序运行后的输出结果是8,32,故C 项正确。

7. 以下关于字符串的叙述中正确的是( )。

A.C 语言中有字符串类型的常量和变量

B. 两个字符串中的字符个数相同时才能进行字符串大小的比较

C. 可以用关系运算符对字符串的大小进行比较

D. 空串比空格打头的字符串小

【答案】D

【解析】字符串比较的方法是:依次对si 和S2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,

即由这两个字符决定所在串的大小(比较字符大小的依据是其值)。空格是一种字符,所以空串肯定比空格打头的字符串小。

8. 有以下程序