2018年北京印刷院信息工程院827电子与通信工程综合基础[专硕]之C程序设计考研仿真模拟五套题
● 摘要
一、选择题
1. 以下叙述中正确的是( )。
A. 语句
B. 对于字符串常量D. 在语句【答案】B
【解析】B 项正确,C 编译程序将自动在字符串常量最后添加串的存储单元,因此数组str 的长度大于字符串的长度。
2. 下面关于位运算符的叙述,正确的是( )。
A.&表示“按位与”的运算 B.#表示“按位异或”的运算 C. 表示“按位或”的运算 D. 〜表示“按位异或”的运算 【答案】A
【解析】C 语言提供的六种位运算符,如下表所示,
AC 两项错误,可以直接用
字符串常量给一维字符数组赋初值,习惯上均省略花括号;D 项错误,’\0’会占用一个不属于字符
和
系统已自动在最后加入了
并不等价 字符,表示串结尾
C. 对于一维字符数组,不能使用字符串常量来赋初值
中,数组str 的大小等于字符串的长度
3. 以下能正确定义字符串的语句是( )。
A. B. C. D. 【答案】A
【解析】字符串末尾一定要有结束标记,双引号括起来的字符串系统会默认添加结束标记。A 项正确,定义 了空字符串str 。B 项错误,str 是char 类型变量,不能用字符串为其赋值;C 项错误,字符串应该用双引号括起 来;D 项错误,如果一个字符数组用来作为字符串使用,一定要人为加入字符串中
4. 若有定义语句:则执行语句:
A.-264 B.552 C.144 D.264
【答案】A
但是str 缺少结束符。
后,a 的值是( )。
【解析】赋值运算结合性为自右向左
,
5. 有以下程序段:
A. 字母A 、B 、C 之问可以用空格分隔 B. 字母A 、B 、C 之间不能有分隔符 C. 字母A 、B 、C 之间可以用回车符分隔 D. 字母A 、B 、C 之间可以用Tab 键分隔 【答案】B
【解析】在使用scanf 函数时要注意,在用
相当于
自右向左计算过程为
若要给分别输
入字母A 、B 、C , 则以下对输入形式的描述正确的是( )。
格式输入字符时,分隔符(空格符、制表符
(Tab 键)、回车符)和转义字符都将作为有效字符进行输入。题目中要求以字符形式输入三个数据,空格、回车符、Tab 键均会被视为有效字符赋给对应变量,所以字母A 、B 、C 之间不能有分隔符,故B 选项正确。
6. 有以下程序:
程序运行后输出的结果是( )。 A.12, -3, 0, 0 B.-3, -1, 1, 3
C.0, 1, 2, 3
D.-3,-3,-3,-3 【答案】B
【解析】在函数参数传递时,一维数组和二维数组都是以指针的形式。函数fun 的作用是通过二维数组a 来 给数组b 赋值,元素(从倒数0个开始)。所以,
7. 有如下定义:
以下对内嵌结构体成员的引用形式错误的是( )。
【答案】A
【解析】使用结构体指针对结构体成员进行访问时,形式为结构指针名->结构成员名,或者(*结构指针名). 结构成员名,题目中ps 为结构体指针,A 项错误。
8. 有以下程序:
程序运行后的输出结果是( )。 A.1, 2 B.3, 4 C.5, 6
D.123, 456
【答案】C
表示a 上对角线元素,表示a 中第i 行倒数第i 个