2017年南京师范大学教育科学学院630C语言与WEB技术考研强化模拟题
● 摘要
一、选择题
1. 有以下函数:
程序运行时从第一行开始输入A. B.this is a C. D. 【答案】C
则输出结果是( )。
【解析】scanf 语句接收字符串时遇到空格就认为字符串的结束,所以a 数组中为this , b数组中为is ,但是 gets 函数遇到回车才认为结束,所以c 数组为
2. 以下叙述中正确的是( )。
A. 函数的形参类型不能是指针类型 B. 函数的类型不能是指针类型 C. 设有指针变量为【答案】C
【解析】C 项正确,一般情况下,double 类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A 项错误,函数的形参可以是数值类型,也可以是指针类型;B 项错误,C 语言中有指向函数的指针,称为函数指针;D 项错误,int 类型的指针只能指向int ,不能指向double ,指针变量不能混用。
3. 设有以下程序段:
则变量y 的取值范围是( )。
第 2 页,共 42 页
则p+1将指针p 移动8个字节
D. 基类型不同的指针变量可以相互混用
【答案】B
【解析】本题考点为
求余符号。rand ( )产生随机整数,任何整数对30求余得到
或者说
故B 选项正确。
的整数范围为0〜29, 则y 的取值范围为
4. 有以下程序:
程序运行后的输出结果是( )。 A.4 B.10 C.14 D.6
【答案】B
f ), 【解析】函数f 的功能是通过递归计算数组t 中元素的和。在主函数中调用了递归函数(将
递
归
函
数
f
(
5. 有以下程序:
程序的运行结果是( )。 A.21,18 B.81,81 C.21,21 D.18,18 【答案】A
,替换过程是,用宏调用提供的实参字符串,【解析】带参数的宏的调用格式:宏名(实参表)S 直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。(k+j+2•被置换成k+j+2*k+j+2,
第 3 页,共 42 页
) 的递归式展开
,
计算时先计算2*k,结果为21; S (j+k+2.被置换成j+k+2*j+k+2,计算时先计算2*j,结果为18。程序的运行结果是21,18,故A 选项正确。
6. 以下不属于C 语言位运算符的是( )。
A.! B. C.
D. 〜 【答案】A
【解析】c 语言常用的位运算符有:”按位求反,“<<”左移,“>>”右移,按位异或,“”按位或。A 项“!”为逻辑运算符“非”。
7. 以下关于C 语言的叙述中正确的是( )。
A.C 语言中的注释不可以夹在变量名或关键字的中间 B.C 语言中的变量可以在使用之前的任何位置进行定义
C. 在C 语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D.C 语言的数值常量中夹带空格不影响常量值的正确表示 【答案】B
【解析】A 项错误,C 语言中,程序中的注释可以出现在程序中任何合适的地方,为了方便程序理解,一般不建议写在变量名或关键字的中间;C 项错误,在C 语言的算术运算符中,取余运算符
的两个运算分量必须是整数,但对于其他运算符,如
来说,两侧的运算符
类型也可以不一样,例如左侧为一个字符类型,右侧为一个整数类型,系统在执行程序时会自动将字符类型转换为
D 项错误,C 语言的 数值表示时各个数位必须紧靠在一起,值进行运算;
否则编译系统只会识别紧靠运算符的一部分数值,另一部分数值会发生语法错误。
8. 若有定义inta=l,b=2,c=3;,则执行表达式II (a=b+c)(++b)后a 、b 、c 的值依次为( )。
A.1、2、3 B.5、3、2 C.5、2、3 D.5、3、3 【答案】C
【解析】根据优先级规则,晒边都是括号,则从左至右执行括号中的表达式,将b+c的值赋值给a ,即a 为5, 不为0, 则II 右边的括号不需要再执行。
9. 以下选项中不合法的标识符是
A.print
B.FOR
D._00
第 4 页,共 42 页
按位与
,
相关内容
相关标签