2017計算機二級C語言提分訓練題及答案
練習是幫助我們鞏固知識的最好方法,以下是小編整理的2017計算機二級C語言提分訓練題及答案,希望對大家有幫助!
提分訓練題一
1: 第1題請編寫函數fun,其功能使:將兩個兩位正整數a b合并形成一個整數放在c中。合并的方式使:將a數的十位和個位數依次放在c數的百位和個位上,b數的十位和個位數依次放在c數的千位和十位上。
答案:
void fun(int a,int b,long *c)
{*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}
2: 第2題請編寫一個函數fun,它的功能使:計算n門課程的平均分,計算結果作為函數值返回。
答案:
float fun(float *a,int n)
{float ave=0.0;
int i;
for(i=0;i
ave+=a;
ave/=n;
return ave;}
3: 第3題假定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能使:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。
答案:
void fun(char *a)
{int i=0;
char *p,*q;
p=q=a;
while(*p)
p++;
p--;
while(*p==‘*’)
p--;
while(q<=p)
{a=*q;
i++;
q++;}
a=‘\0’;}
4: 第4題請編寫函數fun,其功能是:將兩個兩位數的正整數a b合并形成一個整數放在c中,合并的方式是:將a數的十位和個位數依次放在c的個位和百位上,b數的十位和個位數依次放在c數的千位和十位上。
答案:
void fun(int a,int b,long *c)
{c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}
5: 第5題 n名學生的成績已在主函數中放入一個帶頭節點的鏈表結構中,h指向鏈表的頭節點。請編寫函數fun,它的功能是:求出平均分,由函數值返回。
答案:
double fun(strec *h)
{double aver=0.0;
while(h!=null)
{aver+=h->s;
hy=h->next;}
aver/=n;
return aver;}
6: 第6題請編寫函數fun,計算并輸出給定10個數的方差。
答案:
double fun(double x[10])
{int i,j;
double s=0.0,s1=0.0;
for(i=0;i<10;i++)
s1+=x;
s1/=10;
for(j=0;j<10;j++)
s+=(x[j]-s1)*(x[j]-s1);
s/=10;
s=pow(s,0.5);
return s;}
7: 第7題請編寫函數fun,其功能是:將兩個兩位數的正整數a b合并形成一個整數放在c 中。合并的方式是:將a數的十位和個位數依次放在c數的千位和十位上,b數的十位和個位數依次放在c數的個位和百位上。
答案:
void fun(int a,int b,long *c)
{*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}
8: 第8題假定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能是:除了字符串前導的*號之外,將串中其他*號全部刪除。在編寫函數亞時,不得使用c語言提供的字符串函數。
答案:
void fun(char *a)
{int i=0;
char *p=a;
while(*p&&*p==‘*’)
{a=*p;
i++;
p++;}
while(*p)
{if(*p!=‘*’)
{a=*p;
i++;}
p++;}
a=‘\0’;}
9: 第9題學生的記錄是由學號和成績組成,n名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun,它的功能是:把高于等于平均分的學生數據放在b所指的數組中,高于等于平均分的學生人數**形參n傳回,平均分**函數值返回。
答案:
double fun(strec *a,strec *b,int *n)
{double aver=0.0;
int i,j=0;
for(i=0;i
aver+=a.s;
aver/=n;
for(i=0;i
if(a.s)>=aver}
{*(b+j)=a;
j++;}
*n=j;
return aver;}
10: 第10題請編寫函數fun,其功能是:計算并輸出下列多項式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
答案:
sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n).
double fun(int n)
{int i;
double sn=0.0;
for(i=1;i<=n;i++)
sn+=(1.0/(2*i-1)-1.0/(2*i));
return sn;}
提分訓練題二
1: 請編寫函數fun,其功能時:將兩個兩位數的正整數a、b合并形成一個整數放在c中,合并的方式是:將a數的十位和個位數依次放在c數的十位和千位上,b的十位和個位整數依次放在c數的百位和個位上。
答案:
void fun(int a,int b,long *c)
{*c=(a)*1000+(b/10)*100+(a/10)*10+b;}
2: 請編寫函數fun,其功能是:將s所指字符串中下標為偶數的字符刪除,串中剩余字符形成新串放在t所指數組中。
答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i
if(i%2!=0)
{t[j]=s;
j++;}
t[j]=‘\0’;}
3: 假定輸入的字符串中只包含字母和*號,請編寫函數fun,它的功能是:除了字符串前導和尾部的*號之外,將串中其他*號全部刪除。形參h已指向字符串第一個字符,形參p已指向字符串中最后一個字母。在編寫程序時,不得使用c語言提供的字符串函數。
答案:
void fun(char *a,char *h,char *p)
{int i=0;
char *q=a;
while(q
{a=*q;
q++;
i++;}
while(q
{if(*q!=‘’*)
{a=*q;
i++;}
q++;}
while(*q)
{a=*q;
i++;
q++;}
a=‘\0’;}
4: 學生的記錄由學號和成績組成n名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun,它的功能時:把分數最低的學生數據放在h所指的數組中,注意:分數最低的學生可能不止一個,函數返回分數最低的學生的人數。
答案:
int fun(strec *a,strec *b)
{int i,j=0,n=0,min;
min=a[0].s;
for(i=0;i
if(a.s
min=a.s;
for(i=0;i
if(a.s==min)
{*(b+j)=a;
j++;
n++;}
return n;}
5: 請編寫函數fun ,該函數的功能:將m行n列的二維數組中的數據,按列的順學依次放到一維數組中。
答案:
void fun(int (*s)[]10,int *b,int *n,int mm,int nn)
{int i,j;
for(j=0;j
for(i=0;i
{b[*n]=*(*(s+i)+j);
*n=*n+1;}}
6: 請編寫函數fun,其功能時:計算并輸出當x<0.97時下列多項式的值,直到|sn-s(n-1)|<0.000001為止。
Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n)
答案:
.double fun(double x)
{double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;
int n=1;
do
{s0=s1;
sum+=s0;
t*=n;
p*=(0.5-n+1)*x;
s1=p/t;
n++;}while(fabs(s1-s0)>1e-6);
return sum;}
7: 請編寫一個函數fun,其功能是:將兩個兩位數的正整數ab合并形成一個整數放在c中。合并方式是:將a數的十位和個位數依次放在c數的個位和百位上,b數的十位和個位數依次放在c數的十位和千位上。
答案:
void fun(int a,int b,long *c)
{*c=(b)*1000+(a)*100+(b/10)*10+a/10;}
8: 請編寫函數fun,其功能是:將s所指字符串中ascii值為偶數的字符刪除,串中剩余字符形成一個新串放在t所指的數組中。
答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i
if (s%2!=0)
{t[j]=s;
j++;}
t[j]=‘\0’;}
9: 已知學生的記錄由學號和學習成績構成,n名學生的數據已存入a結構體數組中。請編寫函數fun,該函數的功能是:找出成績最低的學生記錄,**形參返回主函數(規定只有一個最低分)。
答案:
void fun(stu a[],stu *s)
{int i,min;
min=a[0].s;
for(i=0;i
if(a.s
{min=a.s;
*s=a;}}
10: 程序定義了n×n的二維數組,并在主函數中自動賦值。請編寫函數fun,該函數的功能是:使數組左下半三角元素中的值乘以n。
答案:
fun(int a[][n],int n)
{int i,j;
for(i=0;i
for(j=0;j<=i;j++)
a[j]=a[j]*n;}
【計算機二級C語言提分訓練題及答案】相關文章:
2017計算機二級C語言提分訓練題10-14
2024計算機二級C語言備考提分題01-02
計算機二級《C語言》選擇題訓練題及答案09-05
2017年計算機二級C++提分訓練題10-24
2017計算機二級C語言復習訓練題及答案10-29
計算機二級考試C語言能力提高訓練題及答案08-17