计算机二级C语言考前预测上机复习题及解析
以下是应届毕业生考试网小编为大家准备的2017年计算机二级考试C语言考前预测上机复习题及解析,更多计算机等级考试内容请关注应届毕业生考试网。
一、程序填空题
给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如,当score=(10,20,30,40,50,60,70,80,90},m= 9时,函数返回的人数应该是4,below={10,20,30,40}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include%string.h>
int fun(int score[],int m,int below[])
{
int i,j=0;
float aver=0.0;
for(i=0;i aver+=score[i]:
aver/=(float)m:
for(i=0;i if(score[i] below[j++]= 【1】 ;
return j;
}
void main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90);
n=fun(score,9, 【2】);
printf("\n Below the average score are:%d\n",n);
for(i=0;i printf("%d", 【3】 );
}
二、程序改错题
下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…
例如,若给n输入7.则该项的斐波拉契数值为l3。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
long fun(int g)
{
//****found\****
switch(g);
{
case 0:return 0;
//****found****
case 1:case 2:return 1;
}
return(fun(g-1)+fun(g-2));
}
void main()
{
long fib;int n;
printf("Input n:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n):
printf("fib=%d\n\n",fib);
}
三、程序设计题
请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的`内容为abedefg,则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS");
printf("\nPlease enter string str:");
scanf("%s",str);
proc(str,t);
printf("\nThe result is:%s\n",t);
}
上机考试试题答案与解析
一、程序填空题
【1】score[i]或*(score+i)【2】below【3】below[i]或*(below+i)
【解析】fun()函数的功能是返回低于平均成绩的人数,通过for循环遍历数组score,求和存入变量aver,然后计算出平均值。第二个循环将低于平均成绩的数据赋值数组b,因此第【1】处填“score[1]”或“*(score+i)”;在主函数中调用函数fun()时,最后一个参数应填入数组名blew,即将低分考生数据存入数组blew中,然后语句“printf("\n Be—low the average score are:%d"n);”输出低分考生个数,n 值即fun()函数返回值也就是低分考生的人数值。最后,利用循环输出below中的结果。
二、程序改错题
(1)错误:switch(g);
正确:switch(g)
(2)错误:case 1:case2:return 1;
正确:case 1;case 2:return 1;
【解析】此题考查c语言的语法规则,switch(表达式)后不应该带有“;”,case语句常量后应该是“:”。switch语句的一般形式如下:
switch(表达式){
case常量表达式1:语句1;
case常量表达式2:语句2;
case常量表达式n:语句n;
defauh:语句n+1;
}
三、程序设计题
void proc(char*str,char t[])
{
int i,j=0,k=strlen(str); //k是放字符串的K度的变量
for(i=l;i t[j++]=str[i]; //把下标为奇数的数放到t数组中
t[j]=’\0’;//因为t是字符串,冈此必须用’\0’作为结束标志
}
【解析】题目要求将下标为偶数的字符删除,其余字符放在新的字符数组t中。首先取出字符串str中下标为奇数的字符,将其赋值给新的字符串t,最后用7\o’作为字符串结束的标志。
【计算机二级C语言考前预测上机复习题及解析】相关文章: