2018年华东师范大学教育学部885教育技术与C程序设计考研核心题库
● 摘要
一、选择题
1. 以下叙述中错误的是( )。
A. 在程序中凡是以“#”开始的语句行都是预处理命令行
B. 预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C 程序对预处理命令行的处理是在程序执行的过程中进行的
【答案】D
【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行”,其中的末尾不得用“;”结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。
2. 以下关于宏的叙述错误的是( )。
A. 宏替换不具有计算功能
B. 宏是一种预处理指令
C. 宏名必须用大写字母构成
D. 宏替换不占用运行时间
【答案】C
【解析】宏名习惯采用大写字母,以便与一般变量区别,但是并没有规定一定要用大写字母,因此,答案为C 选项。
3. 有以下程序
执行后的输出结果是( )。
A.32
B.24
C.5
D.40
【答案】A
【解析】自增运算符“++”分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,而后缀形式表达式的值为运算分量加1之前的值。题目中使用了一个for 循环,循环变量i 从1递增到40。在循环体中有两条嵌套的if 语句,首先判断i++%5==0,即判断i++的值(i 加1之前的值)是否能被5整除(判断后i 被加1),然后再判断++i的值(i 加1之后的值)是否能
,被8整除(判断后i 被加1)若两个条件都满足了,就输出i 的值,只有i=30时,满足i++%5==0,
此时i=31,++i%8==0成立,此时i=32。
4. 设有定义以下选项中能够使字符型指针c 正确指向一个字符串的是( )。 A. B. C. D.
【答案】A
【解析】scanfO 函数是将C 定义为一个字符数组的数组名,选项C 是将c 定义为一个字符型变量,选项 D 应该是在指针的定义同时为它赋值,否则是不合法的。选项A 中定义字符数组str ,再将字符数组stt 的首地址 赋给字符型指针C 。
5. 有如下程序:
!
程序运行后的输出结果是( )。
A.1123
B.123
C.0123
D.001
【答案】A
【解析】程序执行过程为:for 循环开始,第一次循环,输出i=l,判断i<4成立,输出i=l,循环结束后i=2; 第二次循环,判断i<4成立,输出i=2, 循环结束后i=3; 第三次循环,判断i<4成立,输出i=3, 循环结束后i=4; 第四次循环,判断i<4不成立,退出循环。程序运行后的输出结果是1123, 故A 项正确。
6. 有以下程序:
程序运行时若输入:
则输出结果是
【答案】B
【解析】scanf 语句接收字符串时遇到空格就认为字符串的结束,但是gets 函数遇到回车才认为结束。本题中将第一个空格的前半部分赋值给a , 将第一个空格以及后面的部分赋值给b 。
7. 以下叙述中错误的是( )。
A. 基类型不同的指针可以直接相互赋值
B. 函数可以通过指针形参向所指单元传回数据
C. 字符型指针可以指向一个字符串
D. —般情况下,指针的运用可使程序代码效率更高
【答案】A
【解析】把一个指针变量的值赋给另一个指针变量,但一定要确保这两个指针变量的基类型是相同的。
8. 设有chars[5],c ;, 则调用函数scanf 能正确给s 和c 读入数据的是( )。 A. B. C. D.
【答案】D 【解析】中放的是字符串,故输入的类型应该是c 中放的是字符,故输入的是要正确读入数据必须要正确指向S 和C 的地址。
9. 设a ,b ,C 是整型变量,且已正确赋初值,以下选项中错误的赋值语句是( )。
。
相关内容
相关标签