一、选择题
1. 有以下程序:
程序运行后的输出结果是( )。 A.3,7 B.3,5 C.1,5 D.1,3 答:C
【解析】程序执行过程:指针p 指向数组第一个元素;*(p++)先取p ,输出p 指向的元素1,之后p 加1,指向数组第二个元素;*(++P),指针p 加1指向数组第三个元素,之后输出所指元素5。
2. 以下叙述中错误的是( )。
A. 基类型不同的指针可以直接相互赋值 B. 函数可以通过指针形参向所指单元传回数据 C. 字符型指针可以指向一个字符串
D. —般情况下,指针的运用可使程序代码效率更高 答:A
【解析】把一个指针变量的值赋给另一个指针变量,但一定要确保这两个指针变量的基类型是相同的。
3. 有以下程序:
程序的运行结果是( )。 A.8 B.11 C.15 D.4 答:C
【解析】static 变量又称为静态变量,编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:执行for 循环,量i=l,for 循环实现
返回2,
主函数中
,调
,定义静态存储类别的局部变量t=l,此变量的作用域为函数fun 中,定义局部变用函数fun (2)
,静态存调用函数fun (3)
返回12
,
储类别的局部变量上次调用后结果t=2, 局部变量i=l,for 循环实现
最后输出t 为15,故C 项正确。
4. 有以下程序
程序的运行结果是( )。 A.a=2.b=l B.a_2,b-2 C.a=l, b=l D.a=l, b=0 答:A
【解析】当执行swicth 语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch 语句体内寻找与该值吻合的case 标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case 和default 中的语句,直到switch 语句体结束;每当执行到break 语句时,立即跳出switch 语句体。switch 语句通常总是和break 语句联合使用,使得switch 语句真正起到
分支的作用。x=l,首先进入外层分支1,接下来y=0,再进入内层分支0,执行a++,此时a=l,接下来遇到break ,跳出内层switch ; 由于外层分支中没有break 语句,会继续执行外层分支2,执行a++, b++,此时a=2, b=l; 然后遇到break 语句,跳出外层switch 。
5. 文件不存在或是被锁定!
答:
6. 程序运行后的输出结果是( )。
A.14.0 B.31.5 C.7.5
D. 程序有错无输出结果
答:D
【解析】宏定义有两种:无参数的宏定义,即#definePT3.5; 带参数的宏定义,不能用宏来计算,宏只能做简单的代替而不能做计算,故程序会报错。
7. 若有代数式
(其中e 仅代表自然对数的底数,不是变量),则以下能够正确表示该
代数式的C 语言表达式是( )。
答:A
【解析】math.h 是数学运算库函数的头文件名:
8. 以下叙述中正确的是( )。
A. 数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 B. —条语句只能定义一个数组
C. 每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 D. 在引用数组元素时,下标表达式可以使用浮点数 答:C
【解析】C 项正确,数组内部的变量都是同一类型,在内存中是连续存储的。A 项错误,方括号中应当是整型常量表达式,可以使用表达式,只要计算结果是整型常量即可;B 项错误,可以使用逗号隔开,来定义多个数组;D 项错误,引用数组时,下标必须是自然数,还应保证下标不越界。