2018年北京印刷院信息工程院827电子与通信工程综合基础[专硕]之C程序设计考研核心题库
● 摘要
一、选择题
1. 有以下程序:
程序的运行结果是( )。
【答案】A
【解析】程序执行过程为:将a 赋给b , 调用f 函数,将b 中name 地址与gender 和score 的值传进函数,执行函数体,strcpy 函数改变b 中name 值,但由于后两个成员为值传递不能改变b 中gender 和score 值。调用函数结束后,结构体
2. 以下叙述中正确的是( )。
A. 简单递归不需要明确的结束递归的条件
B. 任何情况下都不能用函数名作为实参
C. 函数的递归调用不需要额外开销,所以效率很高
D. 函数既可以直接调用自己,也可以间接调用自己
【答案】D
【解析】D 项正确,C 语言中的函数可以递归调用,S 卩:可以直接或间接地自己调用自己。
第 2 页,共 58 页
前者称简单递归, 后者称间接递归。A 项错误,递归必定要有一个明确的结束递归的条件;B 项错误,递归就是把函数名作为实参 的一种特殊情况;C 项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,要记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率。
3. 有以下程序:
程序运行后的输出结果是。
A.ABCDEF
B.AbCdEf
C.aBcDeF
D.abcdef
【答案】B
【解析】本题中,当i 为偶数时,即0、2、4, 执行会依次输出ACE ; 当i 为奇数时,即1、3、5,执行putchar (i+b)会依次输出bdf ,所以最终输出AbCdEf 。
4. 以下不属于C 语言位运算符的是( )。
A.! B. C.
D. 〜
【答案】A
【解析】c 语言常用的位运算符有:”按位求反,“<<”左移,“>>”右移,
按位异或,“”按位或。A 项“!”为逻辑运算符“非”。
5. 文件不存在或是被锁定!
【答案】
6. 以下叙述中正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面
B.C 程序书写格式严格,要求一行内只能写一个语句
C.C 程序书写格式自由,一个语句可以写在多行上
D. 用C 语言编写的程序只能放在一个程序文件中
第 3 页,共 58 页 按位与
,
【答案】C
【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。
7. 以下不是合法C 语言转义字符的是( )。 A. B. C. D.
【答案】A
【解析】C 语言中,表示响铃,表示退格,表示回车不换行,故答案为A 选项。
8. 若变量己正确定义并赋值,则错误的赋值语句是( )。
A.a=a+l;
B.a=sizeof(double );
C.a=dllc;
D.a+l=a;
【答案】D
【解析】赋值号的左边必须是一个代表某个存储单元的变量名,赋值号的右边必须是C 语言
中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量。
9. 以下程序段中的变量已正确定义:
程序段的输出结果是( )。 A. B. C. D.
【答案】D
【解析】for 语句在没有说明时,仅仅是跟随其后的第一条语句。这时注意第二个for 循环有一个“;”结束,所以视为空语句,表示什么也不做,然后是下一个顺序语句,即输出语句,这时没有for 循环,只输出一个“*”。
10.设有如下程序段:
语句后,以下叙述正确的是( )。
表示
第 4 页,共 58 页 则执行A. 可以用