【答案】C
【解析】对局部静态变量在编译时赋初值,以后每次调用函数时一直保持不变,只是保留上次函数调用结束 时的值。在主函数中调用了两次fim0函数,所以x的值变为
6. 有以下程序
执行后的输出结果是( )。 A.1 B.2 C.4
D.死循环
【答案】A
while【解析】(--k)是先执行k减1,然后判定k是否等于0;输出1;接下来继续执行-k,k变成0,不满足条件,循环结束。
7. 下列叙述中错误的是( )。
A.C程序可以由一个或多个函数组成 B.C程序可以由多个程序文件组成 C.一个C语言程序只能实现一种算法
D.—个C函数可以单独作为一个C程序文件存在 【答案】C
【解析】一个C语言程序可以实现任意多种算法,并没有数量限制
8. 有以下程序
是先执行k-=3,
k的初始值是5,--k后k变成4,进入循环体内部,然后输出k的值。首先执行k-=3,得到k等于1,
程序的运行结果是( )。 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。
9. 有如下程序:
程序运行后的输出结果是( )。 A.56,57, B.57,58, C.57,57, D.55,57,
【答案】C
【解析】convert( )函数定义了一个形参:指针变量*data。函数体中将指针变量*data对应地址的值进行加1处理,再返回加1前data的值。main( )函数中,定义了变量data并赋初值56,调用covert( )函数,改变变量data的值,此时data=57;程序执行data=convert,函数convert( )返回的是执行前data的值,所以data=57。C项正确。 (&data)
10.有以下程序:
程序运行后的输出结果是( ) A.1,2,1,2 B.1,2,2,1 C.2,1,2,1 D.2,1,1,2 【答案】B
【解析】本题首先让指针变量p和q分别指向m和n的地址空间,然后将p赋值给r,让r 指向m,q赋值给p,让p指向n,再将r赋值给q,让q指向m,因此最后p指向n,q指向m。
二、设计题
11.请根据以下各小题的要求设计C应用程序(包括界面和代码)。请编写函数fun( ),它的功能是:将3行4列矩阵x乘以4行3列矩阵y,结果放在3行3列矩阵xy中。矩阵相乘的基本方法是:矩阵xy中行列下标分别为i,j的元素的值,是矩阵x中第i行上4个元素与矩阵y第j 列上4个元素对应相乘的和。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序如下:
【答案】
【解析】本题首先要明确矩阵xy中行列下标分别为i,j的元素的值,是矩阵x中第i行上4个元素与矩阵y第j 列上4个元素对应相乘的和。因此,每个元素的求解是循环控制来实现的,即
矩阵ab的每个元素的表示可用一个二重循环,整个函数是一个三重循环
的嵌套。
12.请根据以下各小题的要求设计C应用程序(包括界面和代码)。
,它的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获请编写函数fun( )
得,并放在主函数的 age数组中;要求函数把0至9岁年龄段的人数放在年龄段的人数放在
中,把20至29岁年龄段的人数放在
100岁)以上年龄的人数放在
注意:部分源程序给出如下。
请勿改动主函数main( )和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序如下:
P,把10至19岁
中,其余依次类推,把100岁(含
中。结果在主函数中输出。