1、国家二级 C语言机试(C 语言基础知识)模拟试卷 17及答案解析(总分:50.00,做题时间:90 分钟)一、选择题(总题数:25,分数:50.00)1.DOS操作系统中的文件系统是如何组织的?( )(分数:2.00)A.拓扑结构B.网状结构C.环形结构D.树形结构2.关于 C程序的编译和运行,以下叙述中错误的是( )。(分数:2.00)A.C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件B.用 C语言编写的程序是以 ASC代码形式存放在一个文本文件中C.C语言中的所有语句都将被转换成二进制的机器指令D.C语言源程序经编译后生成后缀为obj 的目标程序3.计算机程序设计的模块化一般
2、是哪一项实现的?( )(分数:2.00)A.语句B.程序行C.函数D.变量4.关于结构化程序设计的叙述中正确的是( )。(分数:2.00)A.由三种基本结构构成的程序只能解决小规模的问题B.一个结构化程序必须同时由顺序、分支、循环三种结构组成C.结构化程序使用 goto语句会很便捷D.在 C语言中,程序的模块化是利用函数实现的5.合法的 C语言常量是( )。(分数:2.00)A.20B.020C.2el0D.200e6.非法的 C语言常量是( )。(分数:2.00)A.6123e04B.6234e04C.6234e+4D.6234e07.不合法的用户标识符是( )。(分数:2.00)A._aB
3、.DaBcC.x_bD.ab8.关于数的表示的叙述中正确的是( )。(分数:2.00)A.只有用八进制表示的数才不会有误差B.只有整型数在允许范围内能精确无误的表示,实型数会有误差C.只有实型数在允许范围内能精确无误的表示,整型数会有误差D.只要允许范围内整型数和实型数都能精确的表示9.合法的 C语言常量是( )。(分数:2.00)A.432E02B.17eC.03249D.OXab10.合法的 C语言数据常量是( )。(分数:2.00)A.123LB.0328C.25e12D.o22511.合法的 C语言标识符是( )。(分数:2.00)A._1_B.2_8C.voidD.unsigned1
4、2.关于 C语言常量的叙述中错误的是( )。(分数:2.00)A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.经常被使用的变量可以定义成常量C.常量可分为数值型常量和非数值型常量D.常量分为整型常量、实型常量、字符常量和字符串常量13.合法的 C语言数值常量是( )。(分数:2.00)A.210 Xa33 45e0B.0185e30xfC.134 4el5 0abcD.0x8A 10,000 3e514.关于 C语言数制的叙述中正确的是( )。(分数:2.00)A.英文大写字母 X和英文小写字母 x都可以作为二进制数字的开头字符B.八进制数的开头要使用英文字母 o,否则不能与十进制区
5、分开C.整型变量可以分为 int型、short 型、long 型和 unsigned型四种D.在 C程序中的八进制和十六进制,可以是浮点数15.合法的 C语言实数是( )。(分数:2.00)A.10e02B.E12C.3e0D.212E16.不是 C语言字符常量的是( )。(分数:2.00)A.CB.CC.xCCD.07217.不合法的 C语言字符常量是( )。(分数:2.00)A.028B.35C.xdfD.10118.不合法的 C语言字符常量是( )。(分数:2.00)A.xB.C.018D.xcc19.若 int x=12,y=8,z;在其后执行语句 z=09+xy;则 z的值为( )。
6、(分数:2.00)A.01B.1C.2D.1420.39有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。(分数:2.00)A.a(int)(x 一 y)B.a=xyC.(a*y)bD.y=x+y=x解析:解析:选项 B中运算符不存在,选项 C中 double类型不能进行余()操作,要求两个运算数必须是整数,选项 D中 x+y=x错误。21.设 int a=2,b=3,c=4;,则以下选项中值为 0的表达式是( )。(分数:2.00)A.(!a=1)&(!b=0) B.a&bC.(ab)&!c1D.a(b+b)(ca)解析:解析:C 语言中的逻辑运算
7、主要要看运算符的优先级。选项 A中,(!a=1)中!运算优先级比=高,因此!a 为假,然后再和 1比较是否相等,因此整个表达式的结果为假,(!a=1)和(!b=0)是与的关系,前面的表达式为假,整个表达式结果就是假,选项 C中 ab 为真,!c 值为假,(ab)&!c 值为假,(ab)&!c为真;选项 B中 a&b的值为 2;选项 D中 a的值为真,表达式的结果为真。22.设 int k=0:以下选项的四个表达式中与其他三个表达式的值不相同的是( )。(分数:2.00)A.k+ B.k+1C.+kD.k+=1解析:解析:选项 B、C、D 都是对 k的值加 1,选项 A的语句 k+表示先利用 k
8、的值进行运算,然后 k值才加 1。23.以下程序的输出结果是( )。 #include main()int a=0,b=0,c=0 c=(a+=+b,b+=4); printf(d,d,dn,a,b,c);(分数:2.00)A.1,4,1B.一 1,5,4C.1,5,5 D.一 1,4,一 1解析:解析:对于语句(a+=+b,b+=4),首先计算“a=a+(+b)”,a,b 初值为 0,则计算以后 a为 1,b为 1,然后计算 b+=4,得到 b的值为 5,此时表达式 b+=4的值为整个逗号表达式的值,因此 c的值为 5。24.结果为“假”的表达式是( )。(分数:2.00)A.(34)=1B
9、.(3+3)5C.(3!=4)2 D.3=4解析:解析:关系表达式和逻辑表达式的结果为非零或者 0,其中 0表示假,而非零表示真,3!=4 的结果为真,即 1,12 的结果为假。25.关于逻辑运算符的叙述中正确的是( )。(分数:2.00)A.由&构成的逻辑表达式与由构成的逻辑表达式都有“短路”现象 B.逻辑“或”(即运算符)的运算级别比算术运算要高C.逻辑“非”(即运算符!)的运算级别是最低的D.C语言的关系表达式:0x解析:解析:逻辑表达式的运算比较复杂,有短路现象,也就是首先计算“逻辑与”或者“逻辑或”运算的第一个运算量的值,根据表达式的值决定是否进行第二个量的值的计算。“逻辑与”和“逻辑或”运算低于关系运算和算术运算。但是“逻辑非”运算却高于算术运算。