c语言用户自定义标识符选择题

全国计算机等级考试二级C语言选择题_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
全国计算机等级考试二级C语言选择题
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩11页未读,
定制HR最喜欢的简历
你可能喜欢C语言 基本选择题及答案_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言 基本选择题及答案
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩10页未读,
定制HR最喜欢的简历
你可能喜欢 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
C语言选择题
下载积分:3000
内容提示:C语言选择题
文档格式:XLS|
浏览次数:6|
上传日期: 02:43:34|
文档星级:
全文阅读已结束,如果下载本文需要使用
 3000 积分
下载此文档
该用户还上传了这些文档
C语言选择题
关注微信公众号【二级c语言】选择题考点每日练一练【全国计算机二级考试吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:26,099贴子:
【二级c语言】选择题考点每日练一练收藏
【二级c语言】选择题考点每日练一练
程序流程图中带有箭头的线段表示的是(  )。A)
图元关系B)
参考答案:C【解析】在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C)。
结构化程序设计的基本原则不包括(  )。A)
自顶向下C)
参考答案:A【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
软件设计中模块划分应遵循的准则是(  )。A)
低内聚低耦合B)
高内聚低耦合C)
低内聚高耦合D)
高内聚高耦合
参考答案:B【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
在软件开发中,需求分析阶段产生的主要文档是(  )。A)
可行性分析报告 B)
软件需求规格说明书C)
概要设计说明书D)
集成测试计划
参考答案:B【解析】A)错误,可行性分析阶段产生可行性分析报告。C)错误,概要设计说明书是总体设计阶段产生的文档。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
算法的有穷性是指(  )。A)
算法程序的运行时间是有限的B)
算法程序所处理的数据量是有限的C)
算法程序的长度是有限的D)
算法只能被有限的用户使用
参考答案:A【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(  )。A)
快速排序B)
冒泡排序C)
直接插入排序D)
参考答案:D【解析】除了堆排序算法的比较次数是,其他的都是n(n-1)/2。
下列关于栈的叙述正确的是(  )。A)
栈按&先进先出&组织数据B)
栈按&先进后出&组织数据C)
只能在栈底插入数据D)
不能删除数据
参考答案:B【解析】栈是按&先进后出&的原则组织数据的,数据的插入和删除都在栈顶进行操作。
在数据库设计中,将E-R图转换成关系数据模型的过程属于(  )。A)
需求分析阶段B)
概念设计阶段C)
逻辑设计阶段D)
物理设计阶段
参考答案:C【解析】E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为(  )。A)
课号,成绩B)
学号,成绩C)
学号,课号D)
学号,姓名,成绩
参考答案:C【解析】学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C)。
以下叙述中错误的是(  )。A)
C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B)
C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)
用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)
C语言源程序经编译后生成后缀为.obj的目标程序
参考答案:A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A)错误。由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由&连接程序&把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
以下选项中,合法的一组C语言数值常量是(  )。A)
12. 0Xa23 4.5e0B)
028 .5e-3 -0xfC)
.177 4e1.5 0abcD)
0x8A 10,000 3.e5
参考答案:A【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的开头数字是0x。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以&e&或&E&后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B)选项中 028错误,八进制中没有数字8。C)选项中4e1.5中e后面的指数不是整数。D)选项中3.e5小数点后面缺少数字。
以下叙述中正确的是(  )。A)
在C语言中,预处理命令行都以&#&开头B)
预处理命令行必须位于C源程序的起始位置C)
#include &stdio.h&必须放在C程序的开头D)
C语言的预处理不能实现宏定义和条件编译的功能
参考答案:A【解析】预处理命令是以&#&号开头的命令,它们不是C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以B),C)错误。C)语言的预处理能够实现宏定义和条件编译等功能,所以D)错误。
下列叙述中正确的是(  )。A)
循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)
在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)
在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)
循环队列中元素的个数是由队头指针和队尾指针共同决定
参考答案:D【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。
下列叙述中正确的是(  )。A)
顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)
顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)
顺序存储结构能存储有序表,链式存储结构不能存储有序表D)
链式存储结构比顺序存储结构节省存储空间
参考答案:A【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,所以B)与C)错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D)错误。
数据流图中带有箭头的线段表示的是(  )。A)
事件驱动C)
模块调用D)
参考答案:D【解析】数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
在软件开发中,需求分析阶段可以使用的工具是(  )。A)
程序流程图
参考答案:B【解析】在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表,所以选择B)。
在面向对象方法中,不属于&对象&基本特点的是(  )。A)
标识唯一性
参考答案:A【解析】对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A)。
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。A)
参考答案:B【解析】因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。
在数据管理技术发展的三个阶段中,数据共享最好的是(  )。A)
人工管理阶段B)
文件系统阶段C)
数据库系统阶段D)
三个阶段相同
参考答案:C【解析】数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择C)。
下列叙述中错误的是(  )。A)
C程序可以由多个程序文件组成B)
一个C语言程序只能实现一种算法C)
C程序可以由一个或多个函数组成D)
一个C函数可以单独作为一个C程序文件存在
参考答案:B【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B)错误。
以下选项中,能用作数据常量的是(  )。A)
参考答案:A【解析】A)选项中115L表示115是长整型数据,合法。B)选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B)错误。C)选项中e后面应该是整数不能是小数1.5,所以C)错误。D)选项中八进制常量应该是数字&0&开始,而不是字母&o&开始。
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(  )。A)
大写字母B)
数字字符D)
参考答案:D【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D)选项中的连接符不合法。
设变量已正确定义并赋值,以下正确的表达式是(  )。A)
x=y+z+5, ++y B)
int(15.8%5)C)
x=y*5=x+zD)
参考答案:A【解析】B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+y的值赋给表达式y*5,所以C)错误。
有以下程序:#include
&stdio.h&main(){  int
x=1, y=0;  if (!x)
y++;  else if (x==0)      if (x)
y+=2;      else
y+=3;  printf(&%d\n&, y);}程序运行后的输出结果是(  )。A)
参考答案:D【解析】在if else语句中 else总是与离它最近的if配对。本题目中x为1所以!x为0,所以执行else if语句中的内容,判断(x==0)是否成立,因为x为1所以条件不成立,所以else if 内部的if…else语句不再执行,所以y的值还是初始值0。
若有定义:float
a=1,b=3,c=2; 则正确的switch语句是(  )。A)
switch(a+b){ case
printf(&*\n&); case
printf(&**\n&); }B)
switch((int)x);{ case
printf(&*\n&); case
printf(&**\n&); }C)
switch(x){ case
printf(&*\n&); case
printf(&**\n&); }D)
switch(a+b){ case
printf(&*\n&); case
printf(&**\n&); }
参考答案:A【解析】B)选项中switch((int)x);语句中不应该有最后的分号。switch(expr1), 中的expr1不能用浮点类型或long类型,也不能为一个字符串,所以C)错误。case后面常量表达式的类型必须与switch后面表达式的类型一致,所以D)错误。
以下叙述中正确的是(  )。A)
当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B)
打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C)
在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D)
C语言中的文件是流式文件,因此只能顺序存取数据
参考答案:A【解析】B)选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C)选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D)选项中,C语言中的文件可以进行随机读写。
下列叙述中正确的是(  )。A)
栈是&先进先出&的线性表B)
队列是&先进后出&的线性表C)
循环队列是非线性结构D)
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
参考答案:D【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。
支持子程序调用的数据结构是(  )。A)
参考答案:A【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。A)
参考答案:C【解析】根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。
登录百度帐号当前位置: >>
C语言题库及答案(选择题)
C 语言题库(选择题)电子 Z1201 班 张斌 1.C 语言源程序的基本单位是() 。 A.过程 B.函数 C.子程序 D.标识符 2. 下列字符序列中,可用作 C 标识符的一组字符序列是() 。 A. S.b,sum,average,_above B. class,day,lotus_1,2day C. #md,&12x,month,student_n! D. D56,r_1_2,name,_st_1 3. 以下标识符中,不能作为合法的 C 用户定义标识符的是() 。 A.a3_b3 B.void C._123 D.IF 4. 以下数据中,不正确的数值或字符常量是() 。 A.0 B.5L C.o13 D.9861 5.以下数值中,不正确的八进制数或十六进制数是() 。 A.0x16 B.16 C.-16 D.0xaaaa 6.以下的选择中,正确的赋值语句是() 。 A.a=1,b=2 B.j++ C.a=b=5; D.y=int(x) 7.以下运算符中,优先级最高的运算符是() 。 A.?: B.++ C.&& D., 8.在 C 语言中,能代表逻辑值“真”的是() 。 A.TRUE B.大于 0 的数 C.非 0 整数 D.非 0 的数 9.下列变量说明语句中,正确的是() 。 A.char: B.b;c; C.z; D.int x,z; 10.下列字符序列中,不可用作 C 语言标识符的是() 。 A.b70 B.#ab C.symbol D.a_1 11.以下不正确的叙述是() 。 A.在 C 程序中所用的变量必须先定义后使用。 B.程序中,APH 和 aph 是两个不同的变量。 C.若 a 和 b 类型相同,在执行了赋值语句 a=b;后 b 中的值将放入 a 中,b 中的 值不变。 D.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实 型值。 12.以下标识符中,不能作为合法的 C 用户定义标识符的是() 。 A.For B.Printf C.WORD D.sizeof 13.以下标识符中,不能作为合法的 C 用户定义标识符的是() 。 A.answer B.to C.signed D._if 14.以下标识符中,不能作为合法的 C 用户定义标识符的是() 。 A.putchar B._double C._123 D.INT 15.以下数据中,不正确的数值或字符常量是() 。 A.8.9e1.2 B.10 C.0xff00 D.82.5 16.以下数据中,不正确的数值或字符常量是() 。 A.c B.66 C.0xaa D.50-1- 17.以下运算符中,优先级最高的运算符是() 。 A.*= B.&= C.(类型) D.+ 18.以下运算符中,优先级最高的运算符是() 。 A.|| B.% C.! D.== 19.以下运算符中,优先级最高的运算符是() 。 A.= B.!= C.*(乘号) D.() 20.以下叙述中不正确的是() 。 A.一个好的程序应该有详尽的注释 B.在 C 程序中,赋值运算符的优先级最低 C.在 C 程序中,j++;是一条赋值语句 D.C 程序中的#include 和#define 均不是 C 语句 21.设 C 语言中,int 类型数据占 2 个字节,则 long 类型数据占() 。 A.1 个字节 B.2 个字节 C.4 个字节 D.8 个字节 22.设 C 语言中,int 类型数据占 2 个字节,则 short 类型数据占() 。 A.1 个字节 B.2 个字节 C.4 个字节 D.8 个字节 23.C 语言中,double 类型数据占() 。 A.1 个字节 B.2 个字节 C.4 个字节 D.8 个字节 24.C 语言中,char 类型数据占() 。 A.1 个字节 B.2 个字节 C.4 个字节 D.8 个字节 25.设 C 语言中,int 类型数据占 2 个字节,则 unsigned 类型数据占() 。 A.1 个字节 B.2 个字节 C.4 个字节 D.8 个字节 26.下列程序的输出结果是() 。 main() {char c1=97,c2=98; printf(&%d %c&,c1,c2); } A.97 98 B.97 b C.a 98 D.a b 27.执行下列语句后变量 x 和 y 的值是() 。 y=10;x=y++; A.x=10,y=10 B.x=11,y=11 C.x=10,y=11 D.x=11,y=10 28.下列数据中,为字符串常量的是() 。 A. A B.&house& C.How do you do. D.$abc 29.先用语句定义字符型变量 c,然后要将字符 a 赋给 c,则下列语句中正确的是 A.c='a'; B.c=&a&; C.c=&97&; D.C='97' 30.下列语句的结果是() 。 main() { j=3; printf(&%d,&,++j); printf(&%d&,j++); } A.3,3 B.3,4 C.4,3 D.4,4 31.设 a=12,且 a 定义为整型变量。执行语句 a+=a-=a*=a;后 a 的值为() 。 A.12 B.144 C.0 D.132-2- 32. 已 知 year 为 整 型 变 量 , 不 能 使 表 达 式 ( year%4==0&&year%100!=0 ) ||year%400==0 的值为“真”的数据是() 。 A.1990 B.1992 C.1996 D.2000 33.下列运算符中,不属于关系运算符的是() 。 A.& B.& C.&= D.! 34.假设所有变量均为整型,表达式:a=2,b=5,a&b?a++:b++,a+b 的值是() 。 A.7 B.8 C.9 D.2 35.以下不符合 C 语言语法的赋值语句是() 。 A.a=1,b=2 B.++j; C.a=b=5; D.y=(a=3,6*5); 36.以下不符合 C 语言语法的语句是() 。 A.j++; B.j=j=5; C.k=2*4,k*4; D.y=float(j); 37.执行下列程序后,其输出结果是() 。 main() {int a=9; a+=a-=a+a; printf(&%d\n&,a); } A.18 B.9 C.-18 D.-9 38.下列语句的输出结果是() 。 printf(&%d\n&,(int)(2.5+3.0)/3); A.有语法错误不能通过编译 B.2 C.1 D.0 39.下列程序的输出结果是() 。 main() {int a=7,b=5; printf(&%d\n&,b=b/a); } A.0 B.5 C.1 D.不确定值 40.下列程序的输出结果是() 。 main() {int a=011; printf(&%d\n&,++a); } A.12 B.11 C.10 D.9 41.下列程序的输出结果是() 。 main() { printf(&%d\n&,null); } A.0 B.变量无定义 C.-1 D.1 42.若 int 类型数据占两个字节,则下列语句的输出为() 。 int k=-1; printf(&%d,%u\n&,k,k); A.-1,-1 B.-132,767 C.-132,768 D.-165,535 43.若 k,g 均为 int 型变量,则下列语句的输出为() 。 k=017; g=111; printf(&%d\t&,++k); printf(&%x\n&,g++);-3- A.15 6f B.16 70 C.15 71 D.16 6f 44.若 k 为 int 型变量,则以下程序段的执行结果是() 。 k=-8567; printf(&|%06D|\n&,k); A.格式描述符不合法,输出无定值 B.输出为|%06D| C.输出为|0-8567| D.输出为|-8567| 45.若 ch 为 char 型变量, 为 int 型变量 k (已知字符 a 的 ASCII 十进制代码为 97) , 则以下程序段的执行结果是() 。 ch='a'; k=12; printf(&%x,%o,&,ch,ch,k); printf(&k=%%d\n&,k); A.因变量类型与格式描述符的类型不匹配,输出无定值 B.输出项与格式描述符个数不符,输出为零值或不定值 C.61,141,k=%d D.61,141,k=%12 46.若有以下定义:char s='\092'; 则该语句() 。 A.使 s 的值包含 1 个字符 B.定义不合法,s 的值不确定 C.使 s 的值包含 4 个字符 D.使 s 的值包含 3 个字符 47.若 a 是 float 型变量,b 是 unsigned 型变量,以下输入语句中合法的是() 。 A.scanf(&%6.2f%d&,&a,&b); B.scanf(&%f%n&,&a,&b); C.scanf(&%f%3o&,&a,&b); D.scanf(&%f%f&,&a,&b); 48.已知字母 a 的 ASCII 十进制代码为 97,则执行下列语句后的输出结果为() 。 char a='a'; a--; printf(&%d,%c\n&,a+'2'-'0',a+'3'-'0'); A.b,c B.a--运算不合法,故有语法错 C.98,c D.格式描述和输出项不匹配,输出无定值 49.下列程序的输出结果为() 。 main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf(&%f\n&,x); } A.27 B.27.5 C.28 D.28.5 50.若给定条件表达式(M)?(a++):(a--),则其中表达式 M() 。 A.和(M==0)等价 B.和(M==1)等价 C.和(M!=0)等价 D.和(M!=1)等价 51.以下程序的输出结果是() 。 main() {int i,j,k,a=3,b=2; i=(--a==b++)?--a:++b; j=a++;k=b; printf(&i=%d,j=%d,k=%d\n&,i,j,k); }-4- A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=1,j=1,k=3 52.a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是() 。 A.a*b/a*b==1 B.a/b*b/a==1 C.a/b*b+a%b==a D.a/b*b==a 53.为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。 A.auto B.register C.static D.extern 54.以下程序的输出结果为() 。 main() {int i=010,j=10; printf(&%d,%d\n&,++i,j--); } A.11,10 B.9,10 C.010,9 D.10,9 55.C 语言中以下几种运算符的优先次序()的排列是正确的。 A.由高到低为:!,&&,||,算术运算符,赋值运算符 B.由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符 C.由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,|| D.由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符 56.设 a 为整型变量,初值为 12,执行完语句 a+=a-=a*a 后,a 的值是() 。 A.552 B.144 C.264 D.-264 57.在 TC 运行环境中经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b) 在微机上的值分别为() 。 char x=65; float y=7.3; int a=100; double b=4.5; A.2,2,2,4 B.1,2,2,4 C.1,4,2,8 D.2,4,2,8 58.用下列语句定义 a,b,c,然后执行 b=a、c='b'+b,则 b,c 的值是() 。 long a=0 A.0ffffff 和 0x61 B.-1 和 98 C.-1 和 97 D.指向同一地址 59.执行下列语句后,a 和 b 的值分别为() 。 int a,b; a=1+'a'; b=2+7%-4-'A'; A.-63,-64 B.98,-60 C.1,-60 D.79,78 60.C 语言中要求对变量作强制定义的主要理由是() 。 A.便于移植 B.便于写文件 C.便于编辑预处理程序的处理 D.便于确定类型和分配空间 61.以下程序的输出结果是() 。 main() {float x=3.6; i=(int)x; printf(&x=%f,i=%d\n&,x,i); }-5- A.x=3.600000,i=4 B.x=3,i=3 C.x=3.600000,i=3 D.x=3 i=3..经过以下语句定义后,表达式 z+=x&y?++x:++y 的值为() 。 int x=1,y=2,z=3; A.2 B.3 C.6 D.5 63.以下程序的运行结果是() 。 main() { int i=1,sum=0; while(i&10) sum=sum+1;i++; printf(&i=%d,sum=%d&,i,sum); } A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 D.运行出现错误 64.以下程序的运行结果是() 。 main() { for(n=1;n&=10;n++) { if(n%3==0) printf(&%d&,n); } } A. B.369 C.12 D. 65.在 C 语言中,if 语句后的一对原括号中,用以决定分支的流程的表达式() 。 A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式 66.在以下给出的表达式中, do--while(E)语句中的 与 (E) 不等价的表达式是 。 () A.(!E==0) B.(E&0||E&0) C.(E==0) D.(E!=0) 67.假定所有变量均已正确定义,下列程序段运行后 x 的值是() 。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3; A.14 B.4 C.15 D.3 68.执行下列语句后的输出为() 。 int j=-1; if(j&=1) printf(&****\n&); else printf(&%%%%\n&); A.**** B.%%%% C.%%%%c D.有错,执行不正确 69.下列程序的输出结果是() 。-6- main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++; case 1:b++; } case 2:a++;b++; case 3:a++;b++; } printf(&a=%d,b=%d\n&,a,b); } A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2 70.在 C 语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达 式的值应该为() 。 A.0 B.1 C.TRUE D.非 0 71.下列程序的输出为() 。 main() { int y=10; while(y--); printf(&y=%d\n&,y); } A.y=0 B.while 构成无限循环 C.y=1 D.y=-1 72.C 语言的 if 语句嵌套时,if 与 else 的配对关系是() 。 A.每个 else 总是与它上面的最近的 if 配对 B.每个 else 总是与最外层的 if 配对 C.每个 else 与 if 的配对是任意的 D.每个 else 总是与它上面的 if 配对 73.设 j 和 k 都是 int 类型,则 for 循环语句 for(j=0,k=-1;k=1;j++,k++) printf(&****\n&);() 。 A.循环结束的条件不合法 B.是无限循环 C.循环体一次也不执行 D.循环体只执行一次 74.下列数组说明中,正确的是() 。 A.int array[][4]; B.int array[][]; C.int array[][][5]; D.int array[3][]; 75.下列数组说明中,正确的是() 。 A.static char str[]=&China&; B.static char str[]; str=&China&; C.static char str1[5],str2[]={&China&}; str1=str2; D.static char str1[],str2[];str2={&China&}; strcpy(str1,str2); 76.下列定义数组的语句中正确的是() 。-7- A.#define size 10 char str1[size],str2[size+2]; B.char str[]; C.int num['10']; D.int n=5; int a[n][n+2]; 77.下列定义数组的语句中不正确的是() 。 A.static int a[2][3]={1,2,3,4,5,6}; B.static int a[2][3]={{1},{4,5}}; C.static int a[][3]={{1},{4}}; D.static int a[][]={{1,2,3},{4,5,6}}; 78.下列语句中,不正确的是() 。 A.static char a[2]={1,2}; B.static int a[2]={'1','2'}; C.static char a[2]={'1','2','3'}; D.static char a[2]={'1'}; 79.若输入 ab,程序运行结果为() 。 main() { static char a[3]; scanf(&%s&,a); printf(&%c,%c&,a[1],a[2]); } A.a,b B.a, C.b, D.程序出错 80.下列说法不正确的是() 。 A.主函数 main 中定义的变量在整个文件或程序中有效 B.不同函数中,可以使用相同名字的变量 C.形式参数是局部变量 D.在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效 81.关于 return 语句,下列正确的说法是() 。 A.不能在主函数中出现且在其他函数中均可出现 B.必须在每个函数中出现 C.可以在同一个函数中出现多次 D.只能在除主函数之外的函数中出现一次 82.在 C 语言的函数中,下列正确的说法是() 。 A.必须有形参 B.形参必须是变量名 C.可以有也可以没有形参 D.数组名不能作形参 83.在 C 语言程序中() 。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数调用均可以嵌套 D.函数的定义和函数调用不可以嵌套 84.C 语言执行程序的开始执行点是() 。 A.程序中第一条可以执行语言 B.程序中第一个函数-8- C.程序中的 main 函数 D.包含文件中的第一个函数 85.C 语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为() 。 A.void B.double C.int D.char 86.C 语言程序中,当调用函数时() 。 A.实参和形参各占一个独立的存储单元 B.实参和形参可以共用存储单元 C.可以由用户指定是否共用存储单元 D.计算机系统自动确定是否共用存储单元 87.数组名作为实参数传递给函数时,数组名被处理为() 。 A.该数组的长度 B.该数组的元素个数 C.该数组的首地址 D.该数组中各元素的值 88.以下描述中,正确的是() 。 A.预处理是指完成宏替换和文件包含中指定的文件的调用 B.预处理指令只能位于 C 源文件的开始 C.C 源程序中凡是行首以#标识的控制行都是预处理指令 D.预处理就是完成 C 编译程序对 C 源程序第一遍扫描,为编译词法和语法分析作 准备 89.以下对 C 语言函数的描述中,正确的是() 。 A.C 程序必须由一个或一个以上的函数组成 B.C 函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C 程序中有调用关系的所有函数必须放在同一个程序文件中 90.以下函数调用语句中实参的个数是() 。 exce((v1,v2),(v3,v4,v5),v6); A.3 B.4 C.5 D.6 91.以下函数调用语句中实参的个数是() 。 func((e1,e2),(e3,e4,e5)); A.2 B.3 C.5 D.语法错误 92.C 语言中函数调用的方式有() 。 A.一种:函数调用作为语句 B.一种:函数调用作为函数表达式 C.两种:函数调用作为语句或函数表达式 D.三种:函数调用作为语句、函数表达式或函数参数 93.执行下面程序后,输出结果是() 。 main() { a=45,b=27,c=0; c=max(a,b); printf(&%d\n&,c); } int max(int x,int y) { if(x&y) z=x; else z=y;-9- return(z); } A.45 B.27 C.18 D.72 94.以下程序的输出结果为() 。 main() {int a=1,b=2,c=3,d=4,e=5; printf(&%d\n&,func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); } A.15 B.13 C.9 D.函数调用出错 95.下列定义不正确的是() 。 A.#define PI 3.141592 B.#define S 345 C.int max(int x,int y); { } D. 96.下列程序运行结果为: #define P 3 #define S(a) P*a*a main() { ar=S(3+5); printf(&\n%d&,ar); } A.192 B.29 C.27 D.25 97.已知 p,p1 为整型指针变量,a 为整型数组名,j 为整型变量,下列赋值语句 中不正确的是() 。 A.p=&j,p=p1; B.p=a; C.p=&a[j]; D.p=10; 98.经过下列的语句 int j,a[10],*p=a;定义后,下列语句中合法的是() 。 A.p=p+2; B.p=a[5]; C.p=a[2]+2; D.p=&(j+2); 99.两个指针变量不可以() 。 A.相加 B.比较 C.相减 D.指向同一地址 100.若已定义 x 为 int 类型变量,下列语句中说明指针变量 p 的正确语句是() 。 A.int p=&x; B.int *p=x; C.int *p=&x; D.*p=*x; 101.关于指针概念说法不正确的是() 。 A.一个指针变量只能指向同一类型变量 B.一个变量的地址称为该变量的指针 C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D.指针变量可以由整数赋值,不能用浮点数赋值 102.设有说明 int (*ptr)[M];其中标识符 ptr 是() 。 A.M 个指向整型变量的指针 B.指向 M 个整型变量的函数指针- 10 - C.一个指向具有 M 个整型元素的一维数组的指针 D.具有 M 个指针元素的一维指针数组,每个元素都只能指向整型量 103.设 char a[5],*p=a;,下面选择中正确的赋值语句是() 。 A.p=&abcd&; B.a=&abcd&; C.*p=&abcd&; D.*a=&abcd&; 104.具有相同类型的指针变量 p 与数组 a,不能进行的操作是() 。 A.p=a; B.*p=a[0]; C.p=&a[0]; D.p=&a; 105.若有下列定义,则对 a 数组元素地址的正确引用是() 。 int a[5],*p=a; A.&a[5] B.p+2 C.a++ D.&a 106.若有下列定义和语句,则对 a 数组元素的非法引用是() 。 int a[2][3], (*pt)[3]; pt=a; A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2) 107.以下程序段的输出结果是() 。 char *alp[]={&ABC&,&DEF&,&GHI&}; puts(alp[1]); A.A B.B C.D D.DEF 108.设有以下语句, 若 0&k&4,下列选项中对字符串的非法引用是() 。 char str[4][2]={&aaa&,&bbb&,&ccc&,&ddd&},*strp[4]; for (j=0;j&4;j++) strp[j]=str[j]; A.strp B.str[k] C.strp[k] D.*strp 109.若有 int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为() 。 A.非法,2 B.&a[1][0],2 C.&a[0][1],3 D.a[0][0],4 110.若有定义:char *p1,*p2,*p3,*p4,则不能正确赋值的程序语句为() 。 A.p1=& scanf(&%c&,p1); B.p2=(char *)malloc(1);scanf(&%c&,p2); C.*p3=getchar(); D.p4=&*p4=getchar(); 111.当定义一个结构体变量时,系统分配给它的内存是() 。 A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.结构中最后一个成员所需内存量 D.成员中占内存量最大者所需的容量 112.设有如下定义: struct sk {} data,*p;若要使 p 指向 data 中的 a 域,正确的赋值语句是() 。 A.p=(struct sk*)&data.a; B.p=(struct sk*) data.a; C.p=&data.a; D.*p=data.a; 113.以下对枚举类型名的定义中正确的是() 。 A.enum a={sum,mon,tue}; B.enum a {sum=9,mon=-1,tue}; C.enum a={&sum&,&mon&,&tue&}; D.enum a {&sum&,&mon&,&tue&}; 114.在下列程序段中,枚举变量 c1,c2 的值依次是() 。 enum color {red,yellow,blue=4,green,white} c1,c2;- 11 - c1=c2= printf(&%d,%d\n&,c1,c2); A.1,6 B.2,5 C.1,4 D.2,6 115.变量 p 为指针变量,若 p=&a,下列说法不正确的是() 。 A.&*p==&a B.*&a==a C.(*p)++==a++ D.*(p++)==a++ 116.以下程序的输出结果是() 。 main() { char s[]=&123&,*p; p=s; printf(&%c%c%c\n&,*p++,*p++,*p++); } A.123 B.321 C.213 D.312 117.执行下列语句后的结果为() 。 int x=3,y; int *px=&x; y=*px++; A.x=3,y=4 B.x=3,y=3 C.x=4,y=4 D.x=3,y 不知 118.下列各 m 的值中,能使 m%3==2&&m%5==3&&m%7==2 为真的是() 。 A.8 B.23 C.17 D.6 119.若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a 和 b 的值分别是() 。 A.a=3,b=4 B.a=4,b=3 C.a=4,b=4 D.a=3,b=3 120.在位运算中,操作数每右移一位,其结果相当于() 。 A.操作数乘以 2 B.操作数除以 2 C.操作数乘以 16 D.操作数除以 16 121.fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是() 。 A.字符串读入后不会自动加入'\0' B.fp 是 file 类型的指针 C.fgets 函数将从文件中最多读入 n-1 个字符 D.fgets 函数将从文件中最多读入 n 个字符 122.C 语言中的文件类型只有() 。 A.索引文件和文本文件两种 B.ASCII 文件和二进制文件两种 C.文本文件一种 D.二进制文件一种 123.C 语言中,文件由() 。 A.记录组成 B.由数据行组成 C.由数据块组成 D.由字符(字节)序列组成 124.C 语言中的文件的存储方式有() 。 A.只能顺序存取 B.只能随机存取(或直接存取) C.可以顺序存取,也可随机存取 D.只能从文件的开头进行存取 125.下列程序的输出结果是() 。 main() { int x=1,y=0,a=0,b=0; switch(x)- 12 - { case 1:switch(y) { case 0:a++; case 1:b++; } case 2:a++;b++; case 3:a++;b++; } printf(&a=%d,b=%d\n&,a,b); } A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2 126.设 j 和 k 都是 int 类型,则下面的 for 循环语句() 。 for(j=0,k=0;j&=9&&k!=876;j++) scanf(&%d&,&k); A.最多执行 10 次 B.最多执行 9 次 C.是无限循环 D.循环体一次也不执行 127.以下程序段 char *alp[]={&ABC&,&DEF&,&GHI&}; puts(alp[1]);的输出结果是 A.A B.B C.D D.DEF 128.下列标识符中,不合法的 C 语言用户自定义标识符是() 。 A.printf B.enum C._(下划线) D.sin 129.以下字符中不是转义字符的是() 。 A.'\a' B.'\b' C.'\c' D.'\\' 130.下列程序段的输出结果为() 。 float k=0.8567; printf(&%06.1f%%&,k*100); A.0085.6%% B.85.70% C.85.60% D.0.857 131.下列程序段的输出结果为() 。 float x=213.82631; printf(&%3d&,(int)x); A.213.82 B.213.83 C.213 D.3.8 132.C 语言的注释定界符是() 。 A.{ } B.[ ] C.\* *\ D./* */ 133.下列字符序列中,是 C 语言关键字的是() 。 A.sizeof B.include C.scanf D.sqrt 134.scanf(&%lf&,&x);不可以赋值给 x 变量的常量是() 。 A.123 B.100000 C.'A' D.&abc& 135.C 语言能正确处理的指数是() 。 A.8.50E+42 B.e-32 C.1.23E+11 D.4.5e-5.6 136.下列运算符中是 C 语言关系运算符的是() 。 A.~ B.! C.& D.!= 137.以下常量中,能够代表逻辑“真”值的常量是() 。 A.'\0' B.0 C.'0' D.NULL 138.下列程序段的输出结果为() 。 int x=3,y=2;- 13 - printf(&%d&,(x-=y,x*=y+8/5)); A.1 B.7 C.3 D.5 139.下列程序段的输出结果为() 。 int a=7,b=9,t; t=a*=a&b?a:b; printf(&%d&,t); A.7 B.9 C.63 D.49 140.下列表达式中,可作为 C 合法表达式的是() 。 A.[3,2,1,0] B.(3,2,1,0) C.3=2=1=0 D.3/2/1/0 141.以下语句中,不能实现回车换行的是() 。 A.printf(&\n&); B.putchar(&\n&); C.fprintf(stdout,&\n&); D.fwrite(&\n&,1,1,stdout); 142.执行以下程序段后,输出结果和 a 的值是() 。 int a=10; printf(&%d&,a++); A.10 和 10 B.10 和 11 C.11 和 10 D.11 和 11 143.以下语句中,循环次数不为 10 次的语句是() 。 A.for(i=1;i&10;i++); B.i=1;do{i++;}while(i&=10); C.i=10;while(i&0){--i;} D.i=1;m:if(i&=10){i++;} 144.以下程序段的输出结果为() 。 for(i=4;i&1;i--) for(j=1;j&i;j++) putchar('#'); A.无 B.###### C.# D.### 145.以下程序段中,能够正确地执行循环的是() 。 for(i=1;i&10;i++) while(a) int s=6; do s-=2; while(s); int s=6; m:if(s&100) exit(0); else s-=2; goto m: 146.int a=1,b=2,c=3; if(a&b)a=b; if(a&c)a=c; 则 a 的值为() 。 A.1 B.2 C.3 D.不一定 147.int a=3,b=2,c=1;- 14 - if(a&b&c)a=b; else a=c; 则 a 的值为() 。 A.3 B.2 C.1 D.0 148.求平方根函数的函数名为() 。 A.cos B.abs C.pow D.sqrt 149.while(fabs(t)&1e-5)if(!s/10)循环结束的条件是() 。 A.t&=1e-5&&t&=-1e-5&&s&-10&&s&10 B.fabs(t)&1e-5&&!s/10 C.fabs(t)&1e-5 D.s/10==0 150.int a[10];合法的数组元素的最小下标值为() 。 A.10 B.9 C.1 D.0 151.char a[10];不能将字符串&abc&存储在数组中的是() 。 A.strcpy(a,&abc&); B.a[0]=0;strcat(a,&abc&); C.a=&abc&; D.for(i=0;i&3;i++)a[i]=i+97;a[i]=0; 152.int i,j,a[2][3];按照数组 a 的元素在内存的排列次序, 不能将数 1,2,3,4,5,6 存入 a 数组的是() 。 A.for(i=0;i&2;i++)for(j=0;j&3;j++)a[i][j]=i*3+j+1; B.for(i=0;i&3;i++)for(j=0;j&2;j++)a[j][i]=j*3+i+1; C.for(i=0;i&6;i++)a[i/3][i%3]=i+1; D.for(i=1;i&=6;i++)a[i][i]=i; 153.static char str[10]=&China&;数组元素个数为() 。 A.5 B.6 C.9 D.10 154.若 char a[10];已正确定义,以下语句中不能从键盘上给 a 数组的所有元素输 入值的语句是() 。 A.gets(a); B.scanf(&%s&,a); C.for(i=0;i&10;i++)a[i]=getchar(); D.a=getchar(); 155.char a[]=&This is a program.&;输出前 5 个字符的语句是() 。 A.printf(&%.5s&,a); B.puts(a); C.printf(&%s&,a); D.a[5*2]=0;puts(a); 156.int a[10]; 给数组 a 的所有元素分别赋值为 1、2、3、??的语句是() 。 A.for(i=1;i&11;i++)a[i]=i; B.for(i=1;i&11;i++)a[i-1]=i; C.for(i=1;i&11;i++)a[i+1]=i; D.for(i=1;i&11;i++)a[0]=1; 157.以下程序段的输出结果为() 。 char c[]=&abc&; int i=0;while(c[i++]!='\0');printf(&%d&,i-1); A.abc B.ab C.2 D.3 158.char a1[]=&abc&,a2[80]=&1234&;将 a1 串连接到 a2 串后面的语句是() 。- 15 - A.strcat(a2,a1 B.strcpy(a2,a1); C.strcat(a1,a2); D.strcpy(a1,a2); 159.若有 char s1[]=&abc&,s2[20],*t=s2;gets(t); 则下列语句中能够实现当字符串 s1 大于字符串 s2 时,输出 s2 的语句是() 。 A.if(strcmp(s1,s1)&0)puts(s2); B.if(strcmp(s2,s1)&0)puts(s2); C.if(strcmp(s2,t)&0)puts(s2); D.if(strcmp(s1,t)&0)puts(s2); 160.函数的形式参数隐含的存储类型说明是() 。 A.extern B.static C.register D.auto 161.与实际参数为实型数组名相对应的形式参数不可以定义为() 。 A.float a[]; B.float *a; C. D.float (*a)[3]; 162.C 语言中不可以嵌套的是() 。 A.函数调用 B.函数定义 C.循环语句 D.选择语句 163.用户定义的函数不可以调用的函数是() 。 A.非整型返回值的 B.本文件外的 C.main 函数 D.本函数下面定义的 164.全局变量的定义不可能在() 。 A.函数内部 B.函数外面 C.文件外面 D.最后一行 165.对于 void 类型函数,调用时不可作为() 。 A.自定义函数体中的语句 B.循环体里的语句 C.if 语句的成分语句 D.表达式 166.在 C 语言中,调用函数除函数名外,还必须有() 。 A.函数预说明 B.实际参数 C.( ) D.函数返回值 167.C 程序中的宏展开是在() 。 A.编译时进行的 B.程序执行时进行的 C.编译前预处理时进行的 D.编辑时进行的 168.C 语言中,定义结构体的保留字是() 。 A.union B.struct C.enum D.typedef 169.结构体类型的定义允许嵌套是指() 。 A.成员是已经或正在定义的结构体型 B.成员可以重名 C.结构体型可以派生 D.定义多个结构体型 170 对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是- 16 - A. . B. -& C. * D. & 171.相同结构体类型的变量之间,可以() 。 A.相加 B.赋值 C.比较大小 D.地址相同 172.使用共用体变量,不可以() 。 A.节省存储空间 B.简化程序设计 C.进行动态管理 D.同时访问所有成员 173.enum a {sum=9,mon=-1,tue};定义了() 。 A.枚举变量 B.3 个标识符 C.枚举数据类型 D.整数 9 和-1 174.在定义构造数据类型时,不能() 。 A.说明变量 B.说明存储类型 C.初始化 D.末尾不写分号 175.位字段数据的单位是()位。 A.十六进制 B.八进制 C.二进制 D.十进制 176.C 语言程序中必须有的函数是() 。 A.#include &stdio.h& B.main C.printf D.scanf 177.指针变量 p 进行自加运算(即 执行 p++;)后,地址偏移值为 1,则其数据类型 为() 。 A.int B.float C.double D.char 178.若有 int i=3,*p;p=&i;下列语句中输出结果为 3 的是() 。 A.printf(&%d&,&p); B.printf(&%d&,*i); C.printf(&%d&,*p); D.printf(&%d&,p); 179.若有 int *p=(int *)malloc(sizeof(int));则向内存申请到内存空间存入整数 123 的语句为() 。 A.scanf(&%d&,p); B.scanf(&%d&,&p); C.scanf(&%d&,*p); D.scanf(&%d&,**p); 180.若有 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为 5 的语句为() 。 A.printf(&%d&,*(a+5)); B.printf(&%d&,p[5]); C.printf(&%d&,*(p+5)); D.printf(&%d&,*p[5]); 181.char *s1=&hello&,*s2;s2=s1;则() 。 A.s2 指向不确定的内存单元 B.不能访问&hello&- 17 - C.puts(s1);与 puts(s2);结果相同 D.s1 不能再指向其它单元 182.char h,*s=&h;可将字符 H 通过指针存入变量 h 中的语句是() 。 A.*s=H; B.*s='H'; C.s=H; D.s='H' 183.若有 char a[80],*s=a;不正确的输入语句是() 。 A.scanf(&%s&,s); B.gets(s); C.fscanf(stdin,&%c&,s); D.fgets(s,80,stdin); 184.int (*p)[6]; 它的含义为() 。 A.具有 6 个元素的一维数组 B.定义了一个指向具有 6 个元素的一维数组的指针变量 C.指向整型指针变量 D.指向 6 个整数中的一个的地址 185.char *match(char c)是() 。 A.函数定义的头部 B.函数预说明 C.函数调用 D.指针变量说明 186.若有 double *p,x[10];int i=5;使指针变量 p 指向元素 x[5]的语句为() 。 A.p=&x[i]; B.p=x; C.p=x[i]; D.p=&(x+i) 187.不仅可将 C 源程序存在磁盘上, 还可将数据按数据类型分别以什么的形式存 在磁盘上() 。 A.内存 B.缓冲区 C.文件 D.寄存器 188.应用缓冲文件系统对文件进行读写操作,打开文件的函数名为() 。 A.open B.fopen C.close D.fclose 189.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为() 。 A.fclose() B.close() C.fread() D.fwrite 190.文件中有一个位置指针,指向当前读写的位置,不可使 p 所指文件的位置返 回到文件的开头的是() 。 A.rewind(p); B.fseek(p,0,SEEK_SET); C.fseek(p,0,0); D.fseek(p,-3L,SEEK_CUR); 191.从键盘上输入某字符串时,不可使用的函数是() 。 A.getchar() B.gets() C.scanf() D.fread() 192.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达 式,但其值只能被判断为“真”或“假” 。哪个数作为逻辑“假”值() 。 A.-1 B.1 C.非零的数 D.0 193.static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组 a 是地址常量, 它有 10 个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量- 18 - 是() 。 A.a[1] B.a[-1] C.a[0] D.a[10] 194.打开文件时,方式“w”决定了对文件进行的操作是() 。 A.只写盘 B.只读盘 C.可读可写盘 D.追加写盘 195.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是() 。 A.2 B.3 C.4 D.不一定 196.一个算法应该具有“确定性”等 5 个特性,下面对另外 4 个特性的描述中错 误的是() 。 A.有零个或多个输入 B.有零个或多个输出 C.有穷性 D.可行性 197.能将高级语言编写的源程序转换为目标程序的是() 。 A.链接程序 B.解释程序 C.编译程序 D.编辑程序 198.以下叙述中正确的是 () 。 A.C 程序中注释部分可以出现在程序中任意合适的地方 B.花括号“{“和”}”只能作为函数体的定界符 C.构成 C 程序的基本单位是函数,所有函数名都可以由用户命名 D.分号是 C 语句之间的分隔符,不是语句的一部分 199.下列叙述中正确的是() 。 A.C 语言编译时不检查语法 B.C 语言的子程序有过程和函数两种 C.C 语言的函数可以嵌套定义 D.C 语言所有函数都是外部函数 200.以下叙述中正确的是() 。 A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.main()函数必须放在其它函数之前 D.所有被调用的函数一定要在调用之前进行定义 201.在一个 C 程序中() 。 A.main 函数必须出现在所有函数之前 B.main 函数可以在任何地方出现 C.main 函数必须出现在所有函数之后 D.main 函数必须出现在固定位置 202.以下叙述中正确的是() 。 A.C 语言的源程序不必通过编译就可以直接运行 B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C 源程序经编译形成的二进制代码可以直接运行 D.C 语言中的函数不可以单独进行编译 203.一个 C 程序的执行是从() 。 A.本程序的 main 函数开始,到 main 函数结束 B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的 main 函数开始,到本程序文件的最后一个函数结束 D.本程序文件的第一个函数开始,到本程序 main 函数结束- 19 - 204.以下叙述中正确的是 () 。 A.C 语言比其他语言高级 B.C 语言可以不用编译就能被计算机识别执行 C.C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D.C 语言出现的最晚,具有其他语言的一切优点 205.一个 C 语言程序是由() 。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 206.C 语言规定,在一个源程序中,main 函数的位置() 。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 207.以下叙述不正确的是() 。 A.一个 C 源程序可由一个或多个函数组成 B.一个 C 源程序必须包含一个 main 函数 C.C 程序的基本组成单位是函数 D.在 C 程序中,注释说明只能位于一条语句的后面 208.以下叙述正确的是() 。 A.在 C 程序中,main 函数必须位于程序的最前面 B.C 程序的每行中只能写一条语句 C.C 语言本身没有输入输出语句 D.在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误 209.表达式 18/4*sqrt(4.0)/8 值的数据类型为() 。 A.int B.float C.double D.不确定 210.C 语言中运算对象必须是整型的运算符是() 。 A.%= B./ C.= D.〈= 211.若变量已正确定义并赋值,下面符合 C 语言语法的表达式是() 。 A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b 212.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp) 的是() 。 A.(exp==0) B.(exp!=0) C.(exp==1) D.(exp!=1) 213.设以下变量均为 int 类型,则值不等于 7 的表达式是() 。 A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1) C.(x=6,x+1,y=6,x+y)- 20 - D.(y=6,y+1,x=y,x+1) 214.在 C 语言中,int、char 和 short 三种类型数据在内存中所占用的字节数() 。 A.由用用户自己定义 B.均为 2 个字节 C.是任意的 D.由所用机器的机器字长决定 215.设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 unsigned int 型数据的 取值范围为() 。 A.0--255 B.0--32767 C.0--65535 D.0-- 216.在 C 语言中,char 型数据在内存中的存储形式是() 。 A.补码 B.反码 C.原码 D.ASCII 码 217.设变量 a 是整型,f 是实型,i 是双精度型,则表达式 10+'a'+i*f 值的数据类 型为() 。 A.int B.float C.double D.不确定 218.sizeof(float)是() 。 A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 219.若有定义:int a=7;float x=2.5,y=4.7; 则以下输出的结果是 printf(&%f&,x+a%3*(int)(x+y)%2/4);() 。 A.2.5 B.2.75 C.3.5 D.0 220.已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八 进制表示的字符常量'\101'是() 。 A.字符 A B.字符 a C.字符 e D.非法的常量 221.以下选项中合法的用户标识符是() 。 A.long B._2Test C.3Dmax D.A.dat 222.以下选项中合法的实型常数是() 。 A.5E2.0 B.E-3 C.2.00E-01 D.1.3E 223.语句 printf(&a\bre\'hi\'y\\\bou\n&);的输出结果是(说明:'\b'是退格符)() 。 A.a\bre\'hi\'y\\\bou B.a\bre\'hi\'y\bou C.re'hi'you D.abre'hi'y\bou 224.若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+3/2 的值是() 。 A.1 B.2 C.2 D.2.5 225.下列变量定义中合法的是() 。 A.short _a=1-.1e-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3;- 21 - 226.若变量 a 与 i 已正确定义,且 i 已正确赋值,合法的语句是() 。 A.a==1 B.++i; C.a=a++=5; D.a=int(i); 227.设有 int x=11; 则表达式 (x++ * 1/3) 的值是() 。 A.3 B.4 C.11 D.12 228. 若 以 下 变 量 均 是 整 型 , 且 num=sum=7; 则 计 算 表 达 式 sum=num++,sum++,++num 后 sum 的值为() 。 A.7 B.8 C.9 D.10 229.设 int x=1, y=1; 表达式(!x||y--)的值是() 。 A.0 B.1 C.2 D.-1 230.C 语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一字符 231.下面四个选项中,均是不合法的用户标识符的选项是() 。 A.A P_0 do B.float la0 _A C.b-a goto int D._123 temp int 232.下列四个选项中,均是 C 语言关键字的选项是() 。 A.auto enum include B.switch typedef continue C.signed union scanf D.if struct type 233.下列四组选项中,均不是 C 语言关键字的选项是() 。 A.define IF type B.getc char printf C.include scanf case D.while go pow 234.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是() 。 A.7 B.8 C.6 D.2 235.若有说明语句:char c='\72';则变量 c() 。 A.包含 1 个字符 B.包含 2 个字符 C.包含 3 个字符 D.说明不合法,c 的值不确定 236.下面四个选项中,均是不合法的浮点数的选项是() 。 A.160. 0.12 e3 B.123 2e4.2 .e5 C.-.18 123e4 0.0 D.-e3 .234 1e3 237.以下符合 C 语言语法的赋值表达式是() 。 A.d=9+e+f=d+9 B.d=9+e,f=d+9- 22 - C.d=9+e,e++,d+9 D.d=9+e++=d+7 238.下面不正确的字符串常量是() 。 A.'abc' B.&12'12& C.&0& D.& & 239.以下所列的 C 语言常量中,错误的是() 。 A.0xFF B.1.2e0.5 C.2L D.'\72' 240.已定义 ch 为字符型变量,以下赋值语句中错误的是() 。 A.ch='\'; B.ch=62+3; C.ch=NULL; D.ch='\xaa'; 241.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是() 。 A.-3 B.9 C.-12 D.6 242.下列选项中,合法的 C 语言关键字是() 。 A.VAR B.cher C.integer D.default 243.设有说明语句:char a='\72';则变量 a() 。 A.包含 1 个字符 B.包含 2 个字符 C.包含 3 个字符 D.说明不合法 244.以下选项中,与 k=n++完全等价的表达式是() 。 A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+1 245.以下 for 循环的执行次数是 for(x=0,y=0;(y=123)&&(x&4);x++);() 。 A.是无限循环 B.循环次数不定 C.4 次 D.3 次 246.语句 while(!E);中的表达式!E 等价于() 。 A.E==0 B.E!=1 C.E!=0 D.E==1 247.下面有关 for 循环的正确描述是() 。 A.for 循环只能用于循环次数已经确定的情况 B.for 循环是先执行循环循环体语句,后判断表达式- 23 - C.在 for 循环中,不能用 break 语句跳出循环体 D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 248.若 i 为整型变量,则以下循环执行次数是() 。 for(i=2;i==0;) printf(&%d&,i--); A.无限次 B.0 次 C.1 次 D.2 次 249.C 语言中 while 和 do-while 循环的主要区别是() 。 A.do-while 的循环体至少无条件执行一次 B.while 的循环控制条件比 do-while 的循环控制条件更严格 C.do-while 允许从外部转到循环体内 D.do-while 的循环体不能是复合语句 250.以下不是无限循环的语句为() 。 A.for(y=0,x=1;x&++y;x=i++) i=x; B.for(;;x++=i); C.while(1){x++;} D.for(i=10;;i--) sum+=i; 251.执行语句 for(i=1;i++&4;); 后变量 i 的值是() 。 A.3 B.4 C.5 D.不定 252.C 语言中用于结构化程序设计的三种基本结构是() 。 A.顺序结构、选择结构、循环结构 B.if、switch、break C.for、while、do-while D.if、for、continue 253.对 for(表达式 1; ;表达式 3) 可理解为() 。 A.for(表达式 1;0;表达式 3) B.for(表达式 1;1;表达式 3) C.for(表达式 1;表达式 1;表达式 3) D.for(表达式 1;表达式 3;表达式 3) 254.下列运算符中优先级最高的是() 。 A.& B.+ C.&& D.!= 255.printf 函数中用到格式符%5s,其中数字 5 表示输出的字符串占用 5 列,如果 字符串长度大于 5,则输出按方式() 。 A.从左起输出该字符串,右补空格 B.按原字符长从左向右全部输出 C.右对齐输出该字串,左补空格 D.输出错误信息 256.putchar 函数可以向终端输出一个() 。 A.整型变量表达式值 B.实型变量值- 24 - C.字符串 D.字符或字符型变量值 257.以下描述中正确的是() 。 A.由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能 使用复合语句 B.do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号 C.do-while 循环体中,一定要有能使 while 后面表达式的值变为零(&假&)的操作 D.do-while 循环中,根据情况可以省略 while 258.以下关于运算符优先顺序的描述中正确的是() 。 A.关系运算符&算术运算符&赋值运算符&逻辑运算符 B.逻辑运算符&关系运算符&算术运算符&赋值运算符 C.赋值运算符&逻辑运算符&关系运算符&算术运算符 D.算术运算符&关系运算符&赋值运算符&逻辑运算符 259.已知 x=43,ch='A',y=0;则表达式(x&=y&&ch&'B'&&!y)的值是() 。 A.0 B.语法错 C.1 D.&假& 260.若希望当 A 的值为奇数时,表达式的值为“真” ,A 的值为偶数时,表达式 的值为“假” ,则以下不能满足要求的表达式是() 。 A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 261.判断 char 型变量 cl 是否为小写字母的正确表达式是() 。 A.'a'&=cl&='z' B.(cl&=a)&&(cl&=z) C.('a'&=cl)||('z'&=cl) D.(cl&='a')&&(cl&='z') 262.以下不正确的 if 语句形式是() 。 A.if(x&y&&x!=y); B.if(x==y) x+=y; C.if(x!=y) scanf(&%d&,&x) else scanf(&%d&,&y); D.if(x&y) {x++;y++;} 263.为了避免在嵌套的条件语句 if-else 中产生二义性,C 语言规定:else 子句总 是与()配对。 A.缩排位置相同的 if B.其之前最近的 if C.其之后最近的 if D.同一行上的 if 264.逻辑运算符两侧运算对象的数据类型() 。 A.只能是 0 或 1 B.只能是 0 或非 0 正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 265.结构化程序设计所规定的三种基本控制结构是() 。 A.输入、处理、输出- 25 - B.树形、网形、环形 C.顺序、选择、循环 D.主程序、子程序、函数 266.以下叙述正确的是() 。 A.do-while 语句构成的循环不能用其它语句构成的循环来代替. B.do-while 语句构成的循环只能用 break 语句退出. C.用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环. D.用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环 267.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是() 。 A.将 5 个初值依次赋给 a[1]至 a[5] B.将 5 个初值依次赋给 a[0]至 a[4] C.将 5 个初值依次赋给 a[6]至 a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 268.以下不正确的定义语句是() 。 A.double x[5]={2.0,4.0,6.0,8.0,10.0}; B.int y[5]={0,1,3,5,7,9}; C.char c1[]={'1','2','3','4','5'}; D.char c2[]={'\x10','\xa','\x8'}; 269.若有说明:int a[][3]={1,2,3,4,5,6,7};则 a 数组第一维的大小是() 。 A.2 B.3 C.4 D.无确定值 270.若二维数组 a 有 m 列,则在 a[i][j]前的元素个数为() 。 A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1 271.若有说明:int a[3][4];则数组 a 中各元素() 。 A.可在程序的运行阶段得到初值 0 B.可在程序的编译阶段得到初值 0 C.不能得到确定的初值 D.可在程序的编译或运行阶段得到初值 0 272.设有数组定义: char array [ ]=&China&; 则数组 array 所占的空间为() 。 A.4 个字节 B.5 个字节 C.6 个字节 D.7 个字节 273.以下能正确定义数组并正确赋初值的语句是() 。 A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}}; C.int c[2][]={{1,2},{3,4}}; D.int d[3][2]={{1,2},{34}}; 274.以下对二维数组 a 的正确说明是() 。 A.int a[3][] B.float a(3,4) C.double a[1][4] D.float a(3)(4) 275.若有说明:int a[10];则对 a 数组元素的正确引用是() 。 A.a[10] B.a[3,5] B.a(5) D.a[10-10] 276.在 C 语言中,一维数组的定义方式为:类型说明符数组名() 。 A.[常量表达式] B.[整型表达式] C.[整型常量]或[整型表达式] D.[整型常量] 277.以下能对一维数组 a 进行正确初始化的语句是() 。 A.int a[10]=(0,0,0,0,0) B.int a[10]={}; C.int a[]={0}; D.int a[10]={10*1}; 278.以下对一维整型数组 a 的正确说明是() 。- 26 - A.int a(10); B.int n=10,a[n]; C. scanf(&%d&,&n); int a[n]; D.#define SIZE 10 (换行) int a[SIZE]; 279.若有说明 int a[3][4];则对 a 数组元素的正确引用是() 。 A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 280.若有说明 int a[3][4];则 a 数组元素的非法引用是() 。 A.a[0][2*1] B.a[1][3] C.a[4-2][0] D.a[0][4] 281.以下能对二维数组 a 进行正确初始化的语句是() 。 A.int a[2][]={{1,0,1},{5,2,3}}; B.int a[][3]={{1,2,3},{4,5,6}}; C.int a[2][4]={{1,2,3},{4,5},{6}}; D.int a[][3]={{1,0,1}{},{1,1}}; 282.以下不能对二维数组 a 进行正确初始化的语句是() 。 A.int a[2][3]={0}; B.int a[][3]={{1,2},{0}}; C.int a[2][3]={{1,2},{3,4},{5,6}}; D.int a[][3]={1,2,3,4,5,6}; 283.若有说明: int a[3][4]={0};则下面正确的叙述是() 。 A.只有元素 a[0][0]可得到初值 0 B.此说明语句不正确 C.数组 a 中各元素都可得到初值,但其值不一定为 0 D.数组 a 中每个元素均可得到初值 0 284.若有说明: int a[][4]={0,0};则下面不正确的叙述是() 。 A.数组 a 的每个元素都可得到初值 0 B.二维数组 a 的第一维大小为 1 C.因为二维数组 a 中第二维大小的值除经初值个数的商为 1,故数组 a 的行数为 1 D.有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得不到初值 0 285.以下定义语句中,错误的是() 。 A.int a[]={1,2}; B.char *a[3]; C.char s[10]=&test&; D.int n=5,a[n]; 286.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是() 。 A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 287.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是() 。 A.char s[10]=&abcdefg&; B.char t[]=&abcdefg&,*s=t; C.char s[10];s=&abcdefg&; D.char s[10];strcpy(s,&abcdefg&); 288.以下不能正确定义二维数组的选项是() 。 A.int a[2][2]={{1},{2}}; B.int a[][2]={1,2,3,4};- 27 - C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}}; 289.假定 int 类型变量占用两个字节, 其有定义:int x[10]={0,2,4};则数组 x 在内存 中所占字节数是() 。 A.3 B.6 C.10 D.20 290.以下数组定义中不正确的是() 。 A.int a[2][3]; B.int b[][3]={0,1,2,3}; C.int c[100][100]={0}; D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 291.以下不能正确进行字符串赋初值的语句是() 。 A.char str[5]=&good!&; B.char str[]=&good!&; C.char *str=&good!&; D.char str[5]={'g','o','o','d',0}; 292.若使用一维数组名作函数实参,则以下正确的说法是() 。 A.必须在主调函数中说明此数组的大小 B.实参数组类型与形参数组类型可以不匹配 C.在被调用函数中,不需要考虑形参数组的大小 D.实参数组名与形参数组名必须一致 293.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为() 。 A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register) 294.在 C 语言中,函数的隐含存储类别是() 。 A.auto B.static C.extern D.无存储类别 295.以下正确的描述是:在 C 语言程序中() 。 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套 296.C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是() 。 A.void B.int C.float D.double 297.以下不正确的说法是:C 语言规定() 。 A.实参可以是常量,变量或表达式 B.形参可以是常量,变量或表达式 C.实参可以为任何类型 D.形参应与其对应的实参类型一致 298.以下正确的函数定义形式是() 。 A.double fun(int x,int y) B.double fun(int y) C.double fun(int x,int y); D.double fun(int x,y); 299.以下正确的说法是:在 C 语言中() 。 A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元- 28 - C.只有当实参和与其对应的形参同名时才共占用存储单元 D.形参是虚拟的,不占用存储单元 300 若调用一个函数, 且此函数中没有 return 语句, 则正确的说法是: 该函数 。 () A.没有返回值 B.返回若干个系统默认值 C.能返回一个用户所希望的值 D.返回一个不确定的值 301.以下叙述中正确的是() 。 A.全局变量的作用域一定比局部变量的作用域范围大 B.静态(static)类别变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量 D.未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值 302.以下正确的说法是() 。 A.用户若需调用标准库函数,调用前必须重新定义 B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C.系统根本不允许用户重新定义标准库函数 D.用户若需调用标准库函数, 调用前不必使用预编译命令将该函数所在文件包括 到用户源文件中,系统自动去调 303.若用数组名作为函数的实参,传递给形参的是() 。 A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数 304.以下正确的说法是() 。 A.定义函数时,形参的类型说明可以放在函数体内 B.return 后边的值不能为表达式 C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参类型不一致,以实参类型为准 305.C 语言允许函数类型缺省定义,此时函数值隐含的类型是() 。 A.float B.int C.long D.double 306.C 语言规定,函数返回值的类型是由() 。 A.return 语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定 307.以下错误的描述是:函数调用可以() 。 A.出现在执行语句中 B.出现在一个表达式中 C.做为一个函数的实参 D.做为一个函数的形参 308.关于建立函数的目的,以下正确的说法是() 。 A.提高程序的执行效率 B.提高程序的可读性 C.减少程序的篇幅- 29 - D.减少程序文件所占内存 309.以下只有在使用时才为该类型变量分配内存的存储类说明是() 。 A.auto 和 static B.auto 和 register C.register 和 static D.extern 和 register 310.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是() 。 A.函数调用可以作为独立的语句存在 B.函数调用可以作为一个函数的实参 C.函数调用可以出现在表达式中 D.函数调用可以作为一个函数的形参 311.当调用函数时,实参是一个数组名,则向函数传送的是() 。 A.数组的长度 B.数组的首地址 C.数组每一个元素的地址 D.数组每个元素中的值 312.在 C 语言中,形参的缺省存储类别是() 。 A.auto B.register C.static D.extern 313.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 314.以下运算符中优先级最低的是() 。 A.&& B.& C.|| D.| 315.在 C 语言中,要求运算数必须是整型或字符型的运算符是() 。 A.&& B.& C.! D.|| 316.在 C 语言中,要求运算数必须是整型的运算符是() 。 A.^ B.% C.! D.& 317.在位运算中,操作数每左移一位,其结果相当于() 。 A.操作数乘以 2 B.操作数除以 2 C.操作数除以 4 D.操作数乘以 4 318.表达式,0x13&0x17 的值是() 。 A.0x17 B.0x13 C.0xf8 D.0xec 319.若 a=1,b=2 则 a|b 的值是() 。 A.0 B.1 C.2 D.3 320.以下叙述中不正确的是() 。 A.预处理命令行都必须以#号开始 B.在程序中凡是以#号开始的语句行都是预处理命令行 C.C 程序在执行过程中对预处理命令行进行处理 D.以下是正确的宏定义 #define IBM_PC 321.设 char 型变量 x 中的值为 ,则表达式(2+x)^(~3)的值是() 。- 30 - A. B. C. D..若要说明一个类型名 STP,使得定义语句 STP s 等价于 char *s,以下选项中 正确的是() 。 A.typedef STP char *s; B.typedef *char STP; C.typedef stp * D.typedef char* STP; 323.以下叙述中正确的是() 。 A.在程序的一行上可以出现多个有效的预处理命令行 B.使用带参的宏时,参数的类型应与宏定义时的一致 C.宏替换不占用运行时间,只占编译时间 D.在以下定义中 C R 是称为&宏名&的标识符 #define C R 045 324.以下各选项企图说明一种新的类型名,其中正确的是() 。 A.typedef v1 B.typedef v2= C.typedef int v3; D.typedef v4: 325.以下叙述正确的是() 。 A.可以把 define 和 if 定义为用户标识符 B.可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符 C.可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符 D.define 和 if 都不能定义为用户标识符 326.以下叙述中不正确的是() 。 A.表达式 a&=b 等价于 a=a&b B.表达式 a|=b 等价于 a=a|b C.表达式 a!=b 等价于 a=a!b D.表达式 a^=b 等价于 a=a^b 327.设 int b=2;表达式(b&&2)/(b&&1)的值是() 。 A.0 B.2 C.4 D.8 328.若 x=2,y=3 则 x&y 的结果是() 。 A.0 B.2 C.3 D.5 329.整型变量 x 和 y 的值相等、 且为非 0 值,则以下选项中,结果为零的表达式是 A.x || y B.x | y C.x & y D.x ^ y 330.下面说明不正确的是() 。 A.char a[10]=&china&; B.char a[10],*p=a;p=&china& C.char *a;a=&china&; D.char a[10],*p;p=a=&china& 331.设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正 确执行的赋值语句是() 。 A.c=*p1+*p2; B.p2=c; C.p1=p2; D.c=*p1*(*p2); 332.设 char *s=&\ta\017bc&;则指针变量 s 指向的字符串所占的字节数是() 。 A.9 B.5 C.6 D.7 333.对于基本类型相同的两个指针变量之间,不能进行的运算是() 。 A.& B.= C.+ D.334.若有以下的定义:int t[3][2];能正确表示 t 数组元素地址的表达式是() 。- 31 - A.&t[3][2] B.t[3] C.&t[1] D.t[2] 335.变量的指针,其含义是指该变量的() 。 A.值 B.地址 C.名 D.一个标志 336.若有语句 int *point,a=4;和 point=&a;下面均代表地址的一组选项是() 。 A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point 337.若有说明:int *p,m=5,n;以下正确的程序段是() 。 A.p=&n;scanf(&%d&,&p); B.p=&n;scanf(&%d&,*p) C.scanf(&%d&,&n);*p=n; D.p=&n;*p=m; 338.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是() 。 A.p1=&m;p2=&p1 B.p1=&m;p2=&n;*p1=*p2; C.p1=&m;p2=p1; D.p1=&m;*p2=*p1; 339.下面判断正确的是() 。 A.char *a=&china&;等价于 char *a;*a=&china&; B.char str[10]={&china&};等价于 char str[10];str[]={&china&}; C.char *s=&china&;等价于 char *s;s=&china&; D.char c[4]=&abc&,d[4]=&abc&;等价于 char c[4]=d[4]=&abc&; 340.若定义:int a=511,*b=&a;, 则 printf(&%d\n&,*b);的输出结果为() 。 A.无确定值 B.a 的地址 C.512 D.511 341.若有定义:int *p[3];,则以下叙述中正确的是() 。 A.定义了一个基类型为 int 的指针变量 p,该变量具有三个指针 B.定义了一个指针数组 p,该数组含有三个元素,各元素都是基类型为 int 的指针 C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素 D.定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型 元素 342.下列选项中正确的语句组是() 。 A.char s[8]; s={&Beijing&}; B.char *s; s={&Beijing&}; C.char s[8]; s=&Beijing&; D.char *s; s=&Beijing&; 343.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是() 。 A.p=q; B.*p=*q; C.n=*q; D.p=n; 344.在说明语句:int *f();中,标识符 f 代表的是() 。 A.一个用于指向整型数据的指针变量 B.一个用于指向一维数组的行指针 C.一个用于指向函数的指针变量 D.一个返回值为指针型的函数名 345.若有定义:int aa[ 8];则以下表达式中不能代表数组元 aa[1]的地址的是() 。 A.&aa[0]+1 B.&aa[1] C.&aa[0]++ D.aa+1 346.若有说明:int i, j=2,*p=&i;,则能完成 i=j 赋值功能的语句是() 。 A.i=*p; B.*p=*&j; C.i=&j; D.i=**p;- 32 - 347.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是() 。 A.p=1; B.*q=2; C.q=p; D.*p=5; 348.fscanf 函数的正确调用形式是() 。 A.fscanf(fp,格式字符串,输出表列); B.fscanf(格式字符串,输出表列,fp); C.fscanf(格式字符串,文件指针,输出表列); D.fscanf(文件指针,格式字符串,输入表列); 349.系统的标准输入文件是指() 。 A.键盘 B.显示器 C.软盘 D.硬盘 350.函数 ftell(fp) 的作用是() 。 A.得到流式文件中的当前位置 B.移到流式文件的位置指针 C.初始化流式文件的位置指针 D.以上答案均正确 351.函数 rewind 的作用是() 。 A.使位置指针重新返回文件的开头 B.将位置指针指向文件中所要求的特定位置 C.使位置指针指向文件的末尾 D.使位置指针自动移至下一个字符位置 352.fseek 函数的正确调用形式是() 。 A.fseek(文件类型指针,起始点,位移量) B.fseek(fp,位移量,起始点) C.fseek(位移量,起始点,fp) D.fseek(起始点,位移量,文件类型指针) 353.利用 fseek 函数可以实现的操作是() 。 A.改变文件的位置指针 B.文件的顺序读写 C.文件的随机读写 D.以上答案均正确 354.函数调用语句:fseek(fp,-20L,2);的含义是() 。 A.将文件位置指针移到距离文件头 20 个字节处 B.将文件位置指针从当前位置向后移动 20 个字节 C.将文件位置指针从文件末尾处退后 20 个字节 D.将文件位置指针移到离当前位置 20 个字节处 355.若调用 fputc 函数输出字符成功,则其返回值是() 。 A.EOF B.1 C.0 D.输出的字符 356.在执行 fopen 函数时,ferror 函数的初值是() 。 A.TRUE B.-1 C.1 D.0 357.fwrite 函数的一般调用形式是() 。 A.fwrite(buffer,count,size,fp); B.fwrite(fp,size,count,buffer); C.fwrite(fp,count,size,buffer); D.fwrite(buffer,size,count,fp); 358.以下 fread 函数的调用形式中,参数类型正确的是() 。- 33 - A.fread(int fd,char *buf,int count) B.fread(int *buf,int fd,int count) C.fread(int fd,int count,char *buf) D.fread(int count,char *buf,int fd) 359.已知函数的调用形式:fread(buffer,size,count,fp);其中 buffer 代表的是() 。 A.一个整数,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 360.当顺利执行了文件关闭操作时,fclose 函数的返回值是() 。 A.-1 B.TRUE C.0 D.1 361.若以&a+&方式打开一个已存在的文件,则以下叙述正确的是() 。 A.文件打开时,原文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B.文件打开时,原文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C.文件打开时,原有文件内容被删除,只可作写操作 D.以上各种说法皆不正确 362.若要用 fopen 函数打开一个新的二进制文件,该文件要既能读也能写,则文 件方式字符串应是() 。 A.&ab++& B.&wb+& C.&rb+& D.&ab& 363.若执行 fopen 函数时发生错误,则函数的返回值是() 。 A.地址值 B.0 C.1 D.EOF 364.以下叙述中不正确的是() 。 A.C 语言中的文本文件以 ASCⅡ码形式存储数据 B.C 语言中对二进制文件的访问速度比文本文件快 C.C 语言中,随机读写方式不适用于文本文件 D.C 语言中,顺序读写方式不适用于二进制文件 365.以下可作为函数 fopen 中第一个参数的正确格式是() 。 A.c:user\text.txt B.c:\user\text.txt C.&c:\user\text.txt& D.&c:\\user\\text.txt& 366.fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是() 。 A.只写 B.追加 C.读或读写 D.答案 B 和 C 都正确 367.以下叙述中错误的是() 。 A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B.在程序结束时,应当用 fclose 函数关闭已打开的文件 C.在利用 fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素读 入数据 D.不可以用 FILE 定义指向二进制文件的文件指针 368.下列关于 C 语言数据文件的叙述中正确的是() 。 A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件 B.文件由二进制数据序列组成,C 语言只能读写二进制文件 C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件- 34 - 369.若 fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp) 的值为() 。 A.0 B.1 C.-1 D.一个非 0 值 370.若要打开 A 盘上 user 子目录下名为 abc.txt 的文本文件进行读、写操作,下 面符合此要求的函数调用是() 。 A.fopen(&A:\user\abc.txt&,&r&) B.fopen(&A:\\user\\abc.txt&,&r+&) C.fopen(&A:\user\abc.txt&,&rb&) D.fopen(&A:\\user\\abc.txt&,&w&) 371.在 C 程序中,可把整型数以二进制形式存放到文件中的函数是() 。 A.fprintf 函数 B.fread 函数 C.fwrite 函数 D.fputc 函数 372.若 fp 是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值 是() 。 A.EOF B.0 C.非零值 D.NULL 373.C 语言结构体类型变量在程序执行期间() 。 A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中 374.当说明一个结构体变量时系统分配给它的内存是() 。 A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 375.下列变量中合法的是 A. B.C.Tom B.3a6b C._6a7b D.$ABC 376.整型变量 x=1,y=3,经下列计算后,x 的值不等于 6 的是 A.x=(x=1+2,x*2) B.x=y&2?6:5 C.x=9-(--y)-(y--) D.x=y*4/2 377.能正确表示逻辑关系:& a≥10 或 a≤0 &的 C 语言表达式是 A.a&=10 or a&=0 B.a&=0 | a&=10 C.a&=10 && a&=0 D.a&=10 || a&=0 378.C 程序的基本结构单位是 A.文件 B.语句 C.函数 D.表达式 379.设有说明: 则表达式 w*x+z-y 值的数据类型为 A.float B.int C.char D.double 380.已定义两个字符数组 a,b,则以下正确的输入格式是 A.scanf(&%s%s&, a, b); B.get(a, b); C.scanf(&%s%s&, &a, &b);- 35 - D.gets(&a&),gets(&b&); 381.C 语言中,逻辑&真&等价于 A.大于零的数 B.非零的数 C.大于零的整数 D.非零的整数 382.函数调用:strcat(strcpy(str1,str2),str3)的功能是 A.将串 str1 复制到串 str2 中后再连接到串 str3 之后 B.将串 str1 连接到串 str2 之后再复制到串 str3 之后 C.将串 str2 连接到串 str1 之后再将串 str1 复制到串 str3 中 D.将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后 383.任何一个 C 语言的可执行程序都是从____开始执行的. A.程序中的第一个函数 B.main( )函数的入口处 C.程序中的第一条语句 D.编译预处理语句 384.下面叙述中错误的是 A.函数的形式参数,在函数未被调用时就不被分配存储空间 B.若函数的定义出现在主调函数之前,则可以不必再加说明 C.若一个函数没有 return 语句,则什么值也不会返回 D.一般来说,函数的形参和实参的类型要一致 385.在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全 局变量,则该变量需要使用的存储类型是 A.extern B.register C.auto D.static 386.若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a; 不能表示 a 数组元素的表达式是 A.*p B.a[9] C.*p++ D.a[*p-a] 387.C 语言函数的隐含存储类别是 A.static B.auto C.register D.extern 388.下面说法中错误的是 A.共用体变量的地址和它各成员的地址都是同一地址 B.共用体内的成员可以是结构变量,反之亦然 C.在任一时刻,共用体变量的各成员只有一个有效 D.函数可以返回一个共用体变量 389.设变量定义为&int x, *p=&x;&,则&(*p)相当于 A.p B.*p C.x D.*(&x) 390.以下程序的执行结果是 main() { int x = 0, s = 0; while( !x != 0 ) s += ++x; printf( &%d &,s ); } A.0 B.1 C.语法错误 D.无限循环 391.执行下列程序段后,m 的值是________. int w=2,x=3,y=4,z=5,m;- 36 - m=(w&x)?w:x; m=(m&y)?m:y; m=(m&z)?m:z; A.4 B.3 C.5 D.2 392.C 语言的 switch 语句中 case 后 A.只能为常量 B.只能为常量或常量表达式 C.可为常量或表达式或有确定值的变量及表达式 D.可为任何量或表达式 393.C 语言的 if 语句中,用作判断的表达式为 A.任意表达式 B.逻辑表达式 C.关系表达式 D.算术表达式 394.C 语言程序的三种基本结构是顺序结构、选择结构和______结构. A.循环 B.递归 C.转移 D.嵌套 395.若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j 和 k 的值为 A.j=3, k=3 B.j=3, k=4 C.j=4, k=4 D.j=4, k=3 396.下列语句定义 pf 为指向 float 类型变量 f 的指针,_____是正确的. A.float f, *pf = B.float f, *pf = &f; C.float *pf = &f, D.float f, pf 397.设变量定义为&int a,&,执行下列语句时,输入_____,则 a 和 b 的值都是 10. scanf(&a=%d, b=%d&,&a, &b); A.10 10 B.10, 10 C.a=10 b=10 D.a=10, b=10 398.C 语言源程序名的后缀是 A..exe B..c C..obj D..cp 399.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是 A.均占 4 个字节 B.根据数据的大小来决定所占内存的字节数 C.由用户自己定义 D.由 C 语言编译系统决定 400.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是 A.x=n/2.5; B.x==5; C.x+n=I; D.5=x=4+1; 401.已知字符'A'的 ASCⅡ代码值是 65,字符变量 c1 的值是'A',c2 的值是'D'.执行语 句 printf(&%d,%d&,c1,c2-2);后,输出结果是 A.A,B B.A,68 C.65,66 D.65,68 402.以下叙述中错误的是 A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到&见名知意& C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识- 37 - 403.以下叙述中错误的是 A.可以通过 typedef 增加新的类型 B.可以用 typedef 将已存在的类型用一个新的名字来代表 C.用 typedef 定义新的类型名后,原有类型名仍有效 D.用 typedef 可以为各种类型起别名,但不能为变量起别名 404.下列( )表达式的值为真,其中 a=5;b=8;c=10;d=0 A.a*2&8+2 B.a&&d C.(a*2-c)||d D.a-b&c*d 405.下列字符数组长度为 5 的是 A.char a[]={'h', 'a', 'b', 'c', 'd'}; B.char b[]= {'h', 'a', 'b', 'c', 'd', '\0'}; C.char c[10]= {'h', 'a', 'b', 'c', 'd'}; D.char d[6]= {'h', 'a', 'b', 'c', '\0' }; 406.从循环体内某一层跳出,继续执行循环外的语句是 A.break 语句 B.return 语句 C.continue 语句 D.空语句 407.下列数据中属于&字符串常量&的是 A.ABC B.&ABC& C.'ABC' D.'A' 408.C 语言源程序文件经过 C 编译程序编译连接之后生成一个后缀为( )的可执 行文件 A..c B..obj C..exe D..bas 409.若有定义 int a[10],*p=a;,则 p+5 表示 A.元素 a[5]的地址 B.元素 a[5]的值 C.元素 a[6]的地址 D.元素 a[6]的值 410.定义结构体的关键字是 A.union B.enum C.struct D.typedef 411.为了避免在嵌套的条件语句 if―else 中产生二义性,C 语言规定:else 总与( ) 配对 A.缩排位置相同的 if B.其之前最近的未配对的 if C.其之后最近的 if D.同一行上的 if 412.下列正确的标识符是 A._do B.6a C.%y D.a+b 413.设有说明:则表达式 c*x+z 值的数据类型为 A.float B.int C.char D.double 414.下列说法中错误的是 A.一个数组只允许存储同种类型的变量 B.如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的 数组元素会被自动初始化为最后一}

我要回帖

更多关于 计算机二级c语言题库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信