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. 有以下程序
码
相关内容
相关标签