- 相關(guān)推薦
計(jì)算機(jī)二級(jí)C語(yǔ)言考前預(yù)測(cè)上機(jī)復(fù)習(xí)題及解析
以下是應(yīng)屆畢業(yè)生考試網(wǎng)小編為大家準(zhǔn)備的2017年計(jì)算機(jī)二級(jí)考試C語(yǔ)言考前預(yù)測(cè)上機(jī)復(fù)習(xí)題及解析,更多計(jì)算機(jī)等級(jí)考試內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)。
一、程序填空題
給定程序的功能是計(jì)算score中m個(gè)人的平均成績(jī)aver,將低于aver的成績(jī)放在below中,通過(guò)函數(shù)名返回人數(shù)。
例如,當(dāng)score=(10,20,30,40,50,60,70,80,90},m= 9時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below={10,20,30,40}。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在橫線(xiàn)上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
#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】 );
}
二、程序改錯(cuò)題
下列給定程序中函數(shù)fun()的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第1項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…
例如,若給n輸入7.則該項(xiàng)的斐波拉契數(shù)值為l3。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
#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);
}
三、程序設(shè)計(jì)題
請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將str所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。
例如,當(dāng)str所指字符串中的內(nèi)容為abedefg,則在t所指數(shù)組中的內(nèi)容應(yīng)是bdf。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#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);
}
上機(jī)考試試題答案與解析
一、程序填空題
【1】score[i]或*(score+i)【2】below【3】below[i]或*(below+i)
【解析】fun()函數(shù)的功能是返回低于平均成績(jī)的人數(shù),通過(guò)for循環(huán)遍歷數(shù)組score,求和存入變量aver,然后計(jì)算出平均值。第二個(gè)循環(huán)將低于平均成績(jī)的數(shù)據(jù)賦值數(shù)組b,因此第【1】處填“score[1]”或“*(score+i)”;在主函數(shù)中調(diào)用函數(shù)fun()時(shí),最后一個(gè)參數(shù)應(yīng)填入數(shù)組名blew,即將低分考生數(shù)據(jù)存入數(shù)組blew中,然后語(yǔ)句“printf("\n Be—low the average score are:%d"n);”輸出低分考生個(gè)數(shù),n 值即fun()函數(shù)返回值也就是低分考生的人數(shù)值。最后,利用循環(huán)輸出below中的結(jié)果。
二、程序改錯(cuò)題
(1)錯(cuò)誤:switch(g);
正確:switch(g)
(2)錯(cuò)誤:case 1:case2:return 1;
正確:case 1;case 2:return 1;
【解析】此題考查c語(yǔ)言的語(yǔ)法規(guī)則,switch(表達(dá)式)后不應(yīng)該帶有“;”,case語(yǔ)句常量后應(yīng)該是“:”。switch語(yǔ)句的一般形式如下:
switch(表達(dá)式){
case常量表達(dá)式1:語(yǔ)句1;
case常量表達(dá)式2:語(yǔ)句2;
case常量表達(dá)式n:語(yǔ)句n;
defauh:語(yǔ)句n+1;
}
三、程序設(shè)計(jì)題
void proc(char*str,char t[])
{
int i,j=0,k=strlen(str); //k是放字符串的K度的變量
for(i=l;i t[j++]=str[i]; //把下標(biāo)為奇數(shù)的數(shù)放到t數(shù)組中
t[j]=’\0’;//因?yàn)閠是字符串,岡此必須用’\0’作為結(jié)束標(biāo)志
}
【解析】題目要求將下標(biāo)為偶數(shù)的字符刪除,其余字符放在新的字符數(shù)組t中。首先取出字符串str中下標(biāo)為奇數(shù)的字符,將其賦值給新的字符串t,最后用7\o’作為字符串結(jié)束的標(biāo)志。
【計(jì)算機(jī)二級(jí)C語(yǔ)言考前預(yù)測(cè)上機(jī)復(fù)習(xí)題及解析】相關(guān)文章:
2017計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)最終預(yù)測(cè)題07-08
2024二級(jí)c語(yǔ)言上機(jī)題庫(kù)04-18
計(jì)算機(jī)二級(jí)C語(yǔ)言考前必做題08-23
2017年3月計(jì)算機(jī)二級(jí)C語(yǔ)言預(yù)測(cè)題與答案解析07-26
計(jì)算機(jī)二級(jí)C語(yǔ)言預(yù)測(cè)試題08-14
2017計(jì)算機(jī)二級(jí)C語(yǔ)言考點(diǎn)解析10-24
計(jì)算機(jī)二級(jí)C語(yǔ)言預(yù)測(cè)試題及答案10-30
2017計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)測(cè)試題附答案10-24