- 計算機二級C語言精準(zhǔn)預(yù)測上機訓(xùn)練題 推薦度:
- 相關(guān)推薦
計算機二級C語言預(yù)測上機精選訓(xùn)練題
以下是百分網(wǎng)小編為大家整理的2017年計算機二級考試C語言預(yù)測上機精選訓(xùn)練題,希望對各位考生有所幫助!
一、程序填空題
請補充函數(shù)proc(),其功能是:計算并輸出給定10個數(shù)的方差。
例如,給定的10個數(shù)為12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,輸出為s=8.877500。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填人所編寫的若干表達式或語句。
試題程序:
#include
#include
double proc(double x[10])
{
int i;
double avg=0.0;
double sum=0.0;
double abs=0.0:
double sd;
for(i=0;i<10;i++)
【1】 ;
avg=sum/10;
for(i=0;i<10;i++)
【2】 ;
sd= 【3】 ;
return sd;
}
void main()
{
double S,str[10]={12.0,9.0,26.0,5.0,6.0,31.0,
9.0,3.0,8.0,18.0};
int i;
printf("\nThe original data is:\n");
for(i=0;i<10;i++)
printf("%6.1f",str[i]);
printf("\n\n");
s=proc(str):
printf("s=%f\n\n",s);
}
二、程序改錯題
下列給定程序中,函數(shù)proc()的功能是:從字符串str 中,刪除所有大寫字母’F’。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
void proc(char*str)
{
int i,j;
//****found****
for(i=j=0;str[i]!=’0’;i++)
if(str[i]!=’F’)
//****found****
str[j]=str[i];
str[j]=’\0’;
}
void main()
{
char str[80];
printf("\nEnter a string:");
gets(str);
printf("The original strin9:");
puts(str);
proc(str);
printf("The string after deleted:");
puts(str);
printf("\n\n");}
三、程序設(shè)計題
假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。
例如,若字符串中的內(nèi)容為****a*bc*def*g** **,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g** **。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
#include
#include
woid proc(char*st r)
{
}
void main()
char str[81];
printf("Enter a string:\n");
gets(str);
proc(str):
printf("The string after deleted:\n");
puts(str);}
上機考試試題答案與解析
一、程序填空題
【1】sum+=x[i]【2】abs+=(x[i]-avg)*(x[i]
avg) 【3】sqrt(abs/10)
【解析】由函數(shù)proc()可知,變量SHill中存放n個數(shù)的和,因此,【1】處填“sum+=x[i]”;然后求其平方差,因此,【2】處填“abs+=(x[i]- avg)*(x[i] -avg)”;最后求10 個數(shù)的方差,因此,【3】處填“sqrt(abs/10)”。
二、程序改錯題
(1)錯誤:for(i=j=0;str[i]!=’0’;i++)
正確:for(i=j=0;str[i]!=’\0’;i++)
(2)錯誤:str[j]=str[i];
正確:str[j++]=str[i];
【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫字母’F’,需要檢查字符串str中的每一個字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=’0 ’;i++)”應(yīng)改為“for(i=j=0;str[i]!=’\0 ’;i++)”;將每一個不是’F’的字符放入原來的字符串中.形成新的字符串,因此,“str[j]= str[1];”應(yīng)改為“str[j++]=str[i];”。
三、程序設(shè)計題
void proc(char*str)
{
char*p=str:
while(*p==’*’)p++;//通過P的移動來達
到使P指向第一個不是*號的字符
for(;*p!=’\0 ’;p++,str++)//把從第一個
不是*號的字符放到a中 ‘
*str=* P:
*str=’\0 ’; //最后用’\0’作為字符串結(jié)束標(biāo)志
}
【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
【計算機二級C語言預(yù)測上機訓(xùn)練題】相關(guān)文章:
2017年計算機二級C語言精準(zhǔn)預(yù)測上機訓(xùn)練題06-18
計算機二級C語言上機編程題講解07-10
2017年計算機等級二級C語言上機考前預(yù)測題04-02
計算機二級C語言上機程序填空題04-04