网站首页 语言 会计 互联网计算机 医学 学历 职场 文艺体育 范文
当前位置:学识谷 > 计算机 > C语言

计算机二级C语言考前预测上机复习题及解析

栏目: C语言 / 发布于: / 人气:4.94K

以下是应届毕业生考试网小编为大家准备的2017年计算机二级考试C语言考前预测上机复习题及解析,更多计算机等级考试内容请关注应届毕业生考试网。

计算机二级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:%dn",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=%dn",n);

fib=fun(n):

printf("fib=%dnn",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:%sn",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]=’’;//因为t是字符串,冈此必须用’’作为结束标志

}

【解析】题目要求将下标为偶数的字符删除,其余字符放在新的字符数组t中。首先取出字符串str中下标为奇数的字符,将其赋值给新的字符串t,最后用7o’作为字符串结束的标志。