點(diǎn)擊查看:2015年計(jì)算機(jī)二級(jí)C語言測試題及答案解析匯總
1: 請(qǐng)編寫函數(shù)fun,其功能時(shí):將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上,b的十位和個(gè)位整數(shù)依次放在c數(shù)的百位和個(gè)位上。
答案:
void fun(int a,int b,long *c)
{*c=(a)*1000+(b/10)*100+(a/10)*10+b;}
2: 請(qǐng)編寫函數(shù)fun,其功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成新串放在t所指數(shù)組中。
答案:
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: 假定輸入的字符串中只包含字母和*號(hào),請(qǐng)編寫函數(shù)fun,它的功能是:除了字符串前導(dǎo)和尾部的*號(hào)之外,將串中其他*號(hào)全部刪除。形參h已指向字符串第一個(gè)字符,形參p已指向字符串中最后一個(gè)字母。在編寫程序時(shí),不得使用c語言提供的字符串函數(shù)。
答案:
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: 學(xué)生的記錄由學(xué)號(hào)和成績組成n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能時(shí):把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生的人數(shù)。
答案:
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: 請(qǐng)編寫函數(shù)fun ,該函數(shù)的功能:將m行n列的二維數(shù)組中的數(shù)據(jù),按列的順學(xué)依次放到一維數(shù)組中。
答案:
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: 請(qǐng)編寫函數(shù)fun,其功能時(shí):計(jì)算并輸出當(dāng)x<0.97時(shí)下列多項(xiàng)式的值,直到|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: 請(qǐng)編寫一個(gè)函數(shù)fun,其功能是:將兩個(gè)兩位數(shù)的正整數(shù)ab合并形成一個(gè)整數(shù)放在c中。合并方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的十位和千位上。
答案:
void fun(int a,int b,long *c)
{*c=(b)*1000+(a)*100+(b/10)*10+a/10;}
8: 請(qǐng)編寫函數(shù)fun,其功能是:將s所指字符串中ascii值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。
答案:
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: 已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績構(gòu)成,n名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:找出成績最低的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。
答案:
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的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:使數(shù)組左下半三角元素中的值乘以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;}
相關(guān)推薦:
各地2015上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |