1、2021年湖南师范大学信息科学与工程学院 967C 语言程序设计考研核心题库之C 程序设 计选择题精编 主编:掌心博阅电子 第 2 页,共 38 页 特别说明 本书根据历年考研大纲要求并结合历年考研真题对该题型进行了整理编写,涵盖了这一考研 科目该题型常考试题及重点试题并给出了参考答案,针对性强,考研复习首选资料。 版权声明 青岛掌心博阅电子书依法对本书享有专有著作权,同时我们尊重知识产权,对本电子书部分 内容参考和引用的市面上已出版或发行图书及来自互联网等资料的文字、图片、表格数据等资料, 均要求注明作者和来源。但由于各种原因,如资料引用时未能联系上作者或者无法确认内容来源 等,因而有部分未
2、注明作者或来源,在此对原作者或权利人表示感谢。若使用过程中对本书有任 何异议请直接联系我们,我们会在第一时间与您沟通处理。 因编撰此电子书属于首次,加之作者水平和时间所限,书中错漏之处在所难免,恳切希望广 大考生读者批评指正。 第 3 页,共 38 页 一、选择题 1 设有以下宏定义,则执行语句后, z 的值为 _。 A.出错 B.42 C.48 D.54 【答案】 C 【解析】 扩展带参宏, 2 若有下列定义: ,则 _不能正确表示。 A.a+1 B.ql C.+p D.+a 【答案】 D 【解析】 定义中, a 是长度为3 的整型数组, p 指向数组起始地址,q 是长度为2 的 int 型
3、指 针数组,数组的第1 个元素为数组a 的起始地址, 第 2 个元素表示的是数组元素al 的地址。这样, 选项 A 表示的是al 的地址,选项B 也是,选项C 通过指针移动得到,而选项D 却对指针常量a 进行运算,因此是错的。 3 以下符合C 语言语法的赋值表达式是 _。 A.d=9+e+f=d+9 B.d=9+e,f=d+9 C.d=9+e,e+,d+9 D.d=9+e+=d+7 【答案】 B 【解析】 选择 B 是一个逗号表达式,由于逗号的优先级最低,它由d=9+e 和 f=d+9 两部分组 成,均为合法的赋值表达式。本题答案为 B。 4 第一个结构化程序设计语言是_。 A.PASCAL
4、B.C C.BASIC D.FORTRAN 【答案】 A 【解析】 高级语言从应用角度分为基础语言、结构化语言、专用语言 3大类,PASCAL 语言 是第一个结构化程序设计语言,因此答案选A。 5 设有语句: inta=3,b=5,m; ,若执行语句改为:后,m 的值为 _。 A.0 B.1 C.2 D.3 【答案】 B 第 4 页,共 38 页 6 设有下面的程序段,则_。 A.运行后将输出China B.运行后将输出Ch C.运行后将输出Chi D.编译出错 【答案】 D 7 以下叙述中正确的是 _。 A.预处理命令行必须位于C 源程序的起始位置 B.在 C 语言中,预处理命令行都是以开头
5、 C.每个 C 源程序文件必须包含预处理命令行: D.C 语言的预处理不能实现宏定义和条件编译功能 【答案】 B 【解析】 此题考查的是编译预处理的基本概念。编译预处理命令一般位于C 源程序的起始位 置,但也可以位于程序中间,如条件编译等,故答案A 错误;答案C 错误,因为头文件主 要包括的是标准输入、输出库函数等声明,在多文件工程程序中,若某个源程序文件不需要调用 标准输入、输出库函数,则可不包含文件;答案D 显然错误。因此本题选择答案B。 8若有以下说明和语句能正确引用c数组元素的是_。 A. B. C. D. 【答案】 D 9 已知 : ,则下面叙述正确的是_。 A.T 和 C 都是结构
6、体类型的变量 B.可以用 C 定义结构体变量 C.T 是结构体类型的变量 D.C 是结构体类型的变量 【答案】 B 【解析】 C 是结构体类型,而非变量,可以用它来定义结构体变量。 10表达式 5!=9 的值是 _。 A.true B.非零值 C.0 D.1 【答案】 D 11以下叙述中正确的是_。 A.C 语言中的文件是流式文件,因此只能顺序存取数据 B.对于缓冲文件系统,程序中每执行一条读写语句都会访问一次磁盘文件 C.对文件进行了写操作后,必须先关闭该文件,然后再打开,才能读到第1 个数据 D.文件操作完后,必须将文件关闭,否则可能丢失数据 【答案】 D 第 5 页,共 38 页 【解析
7、】 C 语言文件有两种存取方式:顺序存取和随机存取,选项 A 错。对于缓冲文件系统, 写数据时数据先写入内存缓冲区中,缓冲区装满后才会写入磁盘,选项B 错。用函数可 将文件的位置指针移到文件头;也可用函数对文件指针进行定位,实现文件的直接存取, C 错。文件操作完毕后必须关闭文件,否则缓冲区中的数据可能会丢失,D 对。 12若有定义语句,则不能将 的值赋给变量的语句是 _。 A. B. C. D. 【答案】 C 13若有说明语句,则变量c包含 _个字符。 A.1 B.2 C.4 D.说明不合法 【答案】 A 14以下能正确定义一维数组的选项是_。 A. B. C. D. 【答案】 B 【解析】
8、 定义并初始化一维数组的一般形式如下: 类型标识符数组名 常量表达式 = 初始化列表 ; 当使用初始化列表来初始化数组时,初始化列表中的项数必须小于或等于常量表达式的值, 因此选项A 是错误的。在有初始化列表时常量表达式可以省略,但却不能省略方括号“”,因 此选项 C 也是错误的。只有当定义并初始化的数组是字符数组时, 初始化列表 才可以用由双引 号括起来的字符串常量代替,而选项D 定义并初始化的是一个整型数组,故使用字符串常 量初始化是错误的。我们知道,字符型数据既可以以字符形式表示,又可以以整型形式表示,故 选项 B 是正确的。故选B。 15以下叙述中错误的是_。 A.对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B.数组名代表的是数组所占存储区的首地址,其值不可改变 C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出 错信息 D.可以通过赋初值的方式确定数组元素的个数 【答案】 C