一、选择题
1. 若有以下程序
则程序的输出结果是( )。
A.13
B.10
C.11
D.15
答:C
【解析】default 也是关键字,起标号的作用,代表所有case 标号之外的那些标号。default 标号可以出现在语句体中任何标号位置上。在switch 语句体中也可以没有default 标号。
先判定case 语句,如果没有与判定值相等的标号,并且存在default 标号,则从default 标号后的语句开始执行。如果default 语句没有break ,则其下面的case 语句不加判定的继续执行(default
,直到遇到break 或switch 结尾。 位置在case 前面时)
①n=0,执行default ,s=4,没有遇到break ,不与case 标号比较,直接执行case 后的语句,s=5,遇到break ,跳出循环;
②n=l,s+=l,s=6;
③n=2»s+=2, s=8;
④n=Ls+=3,s=11。
2. 以下函数findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错,导致不能实现预定功能。
造成错误的原因是( )。
A. 定义语句inti ,max ; 中,max 未赋初值
B. 赋值语句max=MIN; 中,不应给max 赋MIN 值
C. 语句
答:D
【解析】该题中for 循环先将MIN 值赋值给max ,再判断x[i]与max 的值比较,即每次都是将MIN 值与X[i]值进行比较,因为MIN 被定义为整型的最小值,所以无论x[i]的值是什么都不会影响if 的判断语句,始终执行max=x[i]。所以最后返回的是最后一个x[i]的值,本题的错误在于max=MIN的位置错误,max=MIN应该放在for 循环之前,仅在循环之前赋一次值,然后在循环中不断跟新max 的值。
3. 有以下程序:
程序运行后的输出结果是( )。
答:D
【解析】程序执行过程为:定义STU 类型数组,长度为2, 并为其初始
化
调
用函数
将变量值传入函数,
则
中,判断条件设置错误 D. 赋值语句max=MIN; 放错了位置 调用函数
strcpy
使
次输出
4. 有以下程序:
程序的运行结果是( )。
A.1
B.10
C.0
D.4
答:A 函数调用结束。其中结构体数组中元素并没有发生改变,依结果为:故D 项正确。
【解析】程序的执行过程为:a=l时,条件不成立,执行语句b+=a; 得到b=l; a=2时,a%2=0条件成立,执行语句break ; 跳出循环。输出b=l, 故A 项正确。
5. 有以下程序:
程序的运行结果是( )。
A.8
B.11
C.15
D.4
答:C
【解析】static 变量又称为静态变量,编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:执行for 循环,,调
,定义静态存储类别的局部变量t=l,此变量的作用域为函数fun 中,定义局部变用函数fun (2)