一、选择题
1. 关于C 语言中数的表示,以下叙述中正确的是( )。
A. 只有整型数在允许范围内能精确无误地表示,实型数会有误差 B. 只要在允许范围内整型和实型都能精确表示
C. 只有实型数在允许范围内能精确无误地表示,整型数会有误差 D. 只有八进制表示的数才不会有误差 答:A
【解析】实型数据在内存中存储的二进制位数是有限的,而一个十进制实数转化为二进制实数时,其有效数字位数有可能会超过尾数的存储长度,从而导致有效数字丢失而产生误差。在整形数允许范围之内,二进制可以 表示任意一个整数。
2. 以下关于算法的叙述中错误的是( )
A. 算法可以用伪代码、流程图等多种形式来描述 B. —个正确的算法必须有输入 C. 一个正确的算法必须有输出
D. 用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码 答:B
【解析】一个正确的算法可以有零个或者多个输入,必须有一个或者多个输出。
3. 设有定义intx=2;,以下表达式中,值不为6的是( )。
A.x*=x+l B.x++, 2*x C.x*=(1+x) D.2*x, x+=2
答:D
,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)
即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。
4. 有以下程序
程序运行后的输出结果是( )。 A.0 B.z C. 元素的地址 D. 字符y 的地址 答:B
【解析】pc 值字符串指针,指向字符串
5. 有以下程序:
等价于
程序运行后的输出结果是( )。
答:A
【解析】main ( )函数中,首先定义两个结构体STU 类型的变量a ,b , 并对a 完成初始化,然后将a 赋值给b ,使得结构体a ,b 的值都是的功能是将形参结构体指针c 指向的结构体赋值为结构体就是b , 所以实参b 的值被修改为
6. 以下定义语句中正确的是( )。
再调用函数函数
由于形参是指针,C 指向的
而a 的值不变,A 项正确。
答:C
【解析】C 项正确,int 转换成char 类型时,按照ASCII 码表进行转换,65表示’A ’,66表示‘B ’,等价于A=‘B ’。A 项错误,b ,c 都是float*类型
,的结束,应改成逗号。
7. 以下叙述中正确的是( )。
A. 不同函数的形式参数不能使用相同名称的标识符 B. 用户自己定义的函数只能调用库函数
C. 实用的C 语言源程序总是由一个或多个函数组成 D. 在C 语言的函数内部,可以定义局部嵌套函数 答:C
【解析】C 项正确,一个实用的C 语言源程序总是由许多函数组成,这些函数都是根据实际任务,由用户自 己来编写。A 项错误,形参的作用域只在本函数内部,不同函数的形参标识符互不影响;B 项错误,可以调用C 提供的库函数,也可以调用由用户自己或他人编写的函数;D 项错误,C 语法规定,不能在函数内部定义其他函数。
8. 计算机能直接执行的程序是( )
A. 源程序 B. 目标程序 C. 汇编程序 D. 可执行程序 答:D
【解析】源程序是由程序设计语言构成的指令序列,需要特定的软件去执行。C 语言是一种高级语言,C 语 言源程序经过编译器编译后,生成.obj 文件,然后经过链接生成.exe 文件,所以源程序是不能直接执行的。
9. 有以下程序:
若想通过键盘输入,使得的值为12, a2的值为34, cl 的值为a , c2的值为b , 程序运行后的输出结果是:12,a , 34, b , 则正确的输入格式是(以下代表空格,
无
法把float**转换成float*。B 项错误,b 未定义,可改成inta ,b ; a=b=0; D 项错误,分号表示语句
代表回车)( )。