國家計算機(jī)二級c語言考試模擬題
在國家的計算機(jī)二級c語言考試中,我們常常會遇到哪些題目呢?下面是學(xué)習(xí)啦小編給大家整理的計算機(jī)二級c語言考試模擬題及答案,供大家參閱!
計算機(jī)二級c語言考試模擬題
一、基本操作題
請補(bǔ)充函數(shù)proc(),該函數(shù)的功能是計算下面公式SN的值:
SN=1+1/3十4/5+...+2N-1/SN-1
例如,當(dāng)N=20時,SN=29.031674。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語句。
試題程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,sl=0.0;
int k;
for(【1】;k<=n;k++)
{
sl=S;
【2】
}
return 【3】 ;
)
void main()
{
int k=0:
double sum;
system("CLS");
printf("\nPlease input N=");
scanf("%d",&k);
sum=proc(k);
printf("\nS=%If",sum);
)
二、程序改錯題
下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計算如下公式的值:
Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)
例如,n中的值為l0,則應(yīng)輸出0.817962。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
double proc(int n)
{
double y=1.0;
f|****found****
int J=1; .
int i;
for(i=2;i<=n;i++)
{
j=-l*j;//****found****
y+=1/(i*i);
)
return(y);
)
void main()
{
int n=10:
system("CLS"):
printf("\nThe result is%lf\n",proc(n));
)
三、程序設(shè)計題
編寫一個函數(shù),從傳人的M個字符中找出最長的一個字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
#include
#include
#include
char*proc(char(*a)[81],int num)
{
)
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("輸入若干個字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")= =0)
{
i++:
gets(ssEi]);
puts(ss[i]);
)
n=i:
max=proe(SS,n);
printf("\nmax=%s\n",max);
}
計算機(jī)二級c語言考試模擬題答案
一、基本操作題程序填空題
【1】k=2【2】s+=(2*k一1)/sl【3】s
【解析】由題目中所給公式可知,多項武的第一項為1。變量s中存放多項式的和,其初始值為l。因此,循環(huán)從第二項開始,因此,【1】處填“k=2”;變量sl中存放各項表達(dá)武的值,由公式可知,【2】處填“s+=(2*k-1)/sl”;題目中要求將多項式的和返回到主函數(shù)當(dāng)中,因此,【3】處填“s”。
二、程序改錯題
(1)錯誤:int j=1;正確:double j=1.0;
(2)錯誤:y+=1/(i*i); 正確:y+=j/(i*i);
【解析】由函數(shù)proc()可知,變量j的作用是控制每一項符號的變化,并且作為運(yùn)算的分子,應(yīng)改為double型變量。因此,“int j=1;”應(yīng)改為“double j=1.0;”。變量y中存放多項式的值,多項式中的每一項符號由變量j決定。因此,“y+=1/(i*i);”應(yīng)改為“y+=j/(i*i);”。
三、程序設(shè)計題
char*proc(char(*a)[81],int M)
{
char*max;
int i=0:
max=a[O]:
for(i=0;i if(strlen(max) max=a[i];
return max; //返回最長字符串的地址
}
【解析】本題首先要定義一個字符指針用于保存最長的字符串,并使其初始值指向第一個字符串;再循環(huán)遍歷字符串?dāng)?shù)組,通過if語句比較字符串的長度,并把最長的字符串地址賦給字符指針;最后返回最長字符串的地址。
看了“國家計算機(jī)二級c語言考試模擬題”的人還看了: