國家計算機二級考試題庫_第1頁
國家計算機二級考試題庫_第2頁
國家計算機二級考試題庫_第3頁
國家計算機二級考試題庫_第4頁
國家計算機二級考試題庫_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1.求二分之一的圓面積,函數(shù)通過形參得到

圓的半徑,函數(shù)返回二分之一的圓面積。r*r&x

x

函數(shù)fun的功能:計算S=f(-n)+f(-n+l)+,,?+£(0)+f(1)+f(2)+?,,£(n)f(x)

函數(shù)定義如下:

f(x)=

(1)錯誤:f(doublex)正確:doublef(doublex)(2)錯誤:returns正

確:returns;

編寫函數(shù)fun,功能:計算s,結(jié)果作為函數(shù)值返回;n通過形參傳入。

S=l+1/(1+2)+1/(1+2+3)+-+1/(l+2+3+-+n)

floatfun(intn)

{inti,sl=0;

floats=0.0;

for(i=l;i<=n;i++){

sl=sl+i;

s=s+l.0/sl;

}

returns;

2.請補充main函數(shù):計算兩個自然數(shù)n和m(m〈10000)之間所有數(shù)的和(n

和m從鍵盤輸入)。sum=0sum+=nId

fun函數(shù)的功能是:根據(jù)形參m,計算下列公式的值:

t=l+l/2+l/3+l/4+-+l/m

⑴錯誤:t+=1.0/k;正確:t+=1.0/I;(2)錯誤:returnI:正

確:returnt;

編寫一個函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計在tt字符串中"a"到

“z〃26個字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如,當(dāng)輸入字

符串a(chǎn)bcdefghabcdeabc后,程序的輸出結(jié)果應(yīng)該是:3332211100

00000000000000000

voidfun(char*tt,intpp[])

(

inti;

for(i=0;i<26;i++)

pp[i]=o;

for(;*tt!=,\0';tt++)

if(*tt>='az')

ppa']++;

)

3.判斷字符ch是否與串str中的某個字符相同,相同什么也不做,不同則

插在串的最后。⑴!=(2)str[l]或*(str+l)(3)s,c

函數(shù)fun的功能是:分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。例如,

給字符串s輸入:AaaaBBbl23CCccccd,則應(yīng)輸出結(jié)果:upper=5,lower=9。

⑴錯誤:voidfun(char*s,inta,intb)正確:voidfun(char*s,

int*a,int*b)

(2)錯誤:a++;正確:(*a)++;

⑶錯誤:b++;正確:(*b)++;

編寫函數(shù)fun,功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符1,則輸出3o

intfun(char*ss,charc)

(

inti=0;

for(;*ss!='\0';ss++)

if(*ss==c)

i++;

returni;

}

4.補充函數(shù)fun,功能是:把ASCII碼為偶數(shù)的字符從字符串str中刪除,

結(jié)果仍然保存在字符串str中,字符串str從鍵盤輸入,其長度作為參數(shù)傳

入函數(shù)fun。例如,輸入"abcdef",輸出"ace"。

(1)voidfun(chars[],intn)(2)j=0(3)s[j]='\0'

函數(shù)fun的功能是:計算正整數(shù)num各位上的數(shù)字之積。例如,若輸入252,

則輸出應(yīng)該是20。若輸入202,則輸出應(yīng)該是0。

(1)錯誤:longk;正確:longk=l;(2)錯誤:num\=10;正確:num/

=10;

編寫一個函數(shù)fun,它的功能是:求出1到m(含m)之內(nèi)能被7或11整除的

所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。例如,若傳給m的值

為50,則程序輸出:

711142122283335424449

voidfun(intm,int*a,int*n)

(

inti,j=0;

for(i=l;i<=m;i++)

if(i%7==0||i%ll==0)

a[j++]=i;

*n=j;

)

5.請補充函數(shù)fun:判斷某一個年份是否為閏年。

(1)n%100!=0或n%100(2)n%400==0(3)flag

下列給定程序中函數(shù)fun的功能是:計算n!o

(1)錯誤:ifn==0正確:if(n==0)(2)錯誤:result=n—;正

確:result*=n-;

請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放

在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千

位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。例如,當(dāng)

a=45,b=12,調(diào)用該函數(shù)后,c=5241o

voidfun(inta,intb,long*c)

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

}

6.函數(shù)fun的功能是求n的階乘。

⑴n>l或l〈n(2)n-l(3)1

下列給定的程序中,函數(shù)fun的功能是:計算并輸出k以內(nèi)最大的10個能

被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳入,若k的值為500,則

函數(shù)的值為4622。

⑴錯誤:if((k%13=0)||(k%17=0))正確:if((k%13==0)||(k%17==0))

⑵錯誤:缺少大括號正確:加}

請編寫函數(shù)fun,它的功能是計算:s=(In(1)+ln(2)+ln(3)+---+ln(m))

C語言中用log(n)函數(shù)求ln(n)o

doublefun(intm)

(

inti;

doubles=0.0;

for(i=l;i<=m;i++)

s=s+log(i);

returnsqrt(s);

7.補充函數(shù)fun,功能是:整除x且是偶數(shù)的數(shù),把這些數(shù)保存在數(shù)組bb中,

并按從大到小的順序輸出。例如當(dāng)x=20時,依次輸出:201042O

(1)i=l(2)k%i==0&&i%2==0(3)—j或j-l

卜列給定程序中,函數(shù)fun()的功能是:根據(jù)整型形參m的值,計算如下公式

的值:

(1)錯:for(i=2;i<m;i++)正:for(i=2;i<=m;i++)(2)錯

誤:y-=l/(i*i);正:y-=l.O/(i*i);

編寫函數(shù)fun,功能是:求n以內(nèi)(不包括n)同時能被5與11整除的所有自

然數(shù)之和的平方根s,并作為函數(shù)值返回。

doublefun(intn)

{doubles=0.0;

inti;

for(i=0;i<n;i++)

if(i%5==0&&i%ll==0)

s=s+i;

s=sqrt(s);

returns;

8.補充函數(shù)fun,功能是:計算并輸出n(包括n)以內(nèi)所有能被3或7整除的

自然數(shù)的倒數(shù)之和。⑴i<=n(2)||(3)1.0或(double)1

在主函數(shù)中從鍵盤輸入若干個數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后一

個元素中。下列給定程序中,函數(shù)fun的功能是:計算數(shù)組元素中值為正數(shù)

的平均值(不包括0)。例如,數(shù)組中元素的值依次為39,-47,21,2,-8,15,0,

則程序的運行結(jié)果為19.250000o

⑴錯誤:intsum=0.0;正確:doublesum=0.0;(2)錯誤:sum\=c;正

確:sum/=c;

請編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指

數(shù)組中,非素數(shù)的個數(shù)通過k傳回。例如,輸入17,則應(yīng)輸出46891012

141516o

voidfun(intm,int*k,intxx[])

(

inti,j,n=0;

for(i=4;i<m;i++)

{for(j=2;j<i;j++)

if(i%j==0)break;

if(j<i)xx[n++]=i;

)

*k=n;

)

9.請補充main函數(shù),該函數(shù)的功能是:計算每個學(xué)生成績的平均分,并把結(jié)

果保存在數(shù)組bb中。

當(dāng)score[N][M]={{83.5,82,86,65,67},{80,91.5

,84,99,95},{90.5,95,86,95,97}}時,三個學(xué)生的平均分為

76.7,89.9,92.7。

(1)bb[i]=O(2)bb[i]+=score[i][j]

下列給定程序中,函數(shù)fun的功能是:判斷一個整數(shù)m是否是素數(shù),若是返

回1,否則返回0o在main函數(shù)中,若fun()返回1則輸出"YES",若fun()

返回0則輸出"NO!"。

(1)錯誤:k++正確:k++;(2)錯誤:if(m=k)正確:if(m==k)

編寫函數(shù)fun,它的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。m

與n為兩個正數(shù)且要求m〉n。P=m!為n!(m-n)!),例如,m=12,n=8時,運行結(jié)

果為495.OOOOOOo

floatfun(intm,intn)

(

inti;

doublep=l.0;

for(i=l;i<=m;i++)

p=p*i;/*求m!*/

for(i=l;i<=n;i++)

p=p/i;/*求m!/n!*/

for(i=l;i<=m-n;i++)

p=p/i;/*求m!/(n!(m-n)!)*/

returnp;

)

10.請補充函數(shù)fun(char*s),該函數(shù)的功能是:把字符串中的內(nèi)容逆置。

例如,字符串中原有的字符串為abcde,則調(diào)用該函數(shù)后,串中的內(nèi)容為

edcbao

(1)n一或一n或n-=l或n=nT(2)s[i]=s[N]或*(s+i)=*(s+n)

(3)s[N]=t或*8+11)=1

下列給定程序中,函數(shù)fun的功能是:按如下遞歸公式求函數(shù)值。

例如,當(dāng)給n輸入5時,函數(shù)值為18;當(dāng)給n輸入3時,函數(shù)值為14。

(1)錯誤:intfun(n)正確:intfun(intn)(2)錯誤:if(n=l)正確:if

(n==l)

請編一個函數(shù)floatfun(doubleh),函數(shù)的功能是:對變量h中的值保留

兩位小數(shù),并對第三位進行四舍五入(規(guī)定h中的值為正數(shù))。

例如,若h值為8.32433,則函數(shù)返回8.32;若h值為8.32533,則函數(shù)返

回8.330

floatfun(floath)

longt;

t=(h*1000+5)/10;

return(float)t/100;

IL請補充main函數(shù),該函數(shù)的功能是:輸出一個矩陣,要求非周邊元素賦

值0,周邊元素賦值1。

(1)i==0||i==n-l||j==0||j==n-l(2)bb[i][j]=0

函數(shù)fun的功能是:用遞歸算法計算斐波拉契級數(shù)列中第n項的值。從第

一項起,斐波拉契級數(shù)序列為1,1,2,3,5,8,13,21,…例如,若給n輸入7,

該項的斐波拉契級數(shù)值為13。

⑴錯誤:switch(g);正確:去掉分號

(2)錯誤:case1;case2:return1;正確:case1:case2:return1;

請編寫函數(shù)fun,功能是:求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二

維數(shù)組中的值在主函數(shù)中賦予。

例如,若二維數(shù)組中的值為

13579

29994

69998

13570

則函數(shù)值為61。

intfun(inta[M][N])

(

inti,j,sum=0;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

if(i==0|i==MT||j==01|j=N-l)

sum=sum+a[i][j];

returnsum;

)

12.請補充main函數(shù),該函數(shù)的功能是:從鍵盤輸入一個字符串及一個指定

字符,然后把這個字符及其后面的所有字符全部刪除。結(jié)果仍然保存在原

串中。

例如,輸入"abcdef”,指定字符為〃e〃,則輸出"abed”。

(1)break;(2)i++或++i或i+=l或i=i+l(3)'\0'

下列給定程序中,函數(shù)fun的功能是:求出數(shù)組中最大數(shù)和次最大數(shù),并把

最大數(shù)和a[0]中的數(shù)對調(diào)、次最大數(shù)和a[l]中的數(shù)對調(diào)。

(1)錯:voidfun(int*a,intn);IE:voidfun(int*a,intn)(2)

錯誤:m=0;正確:m=i;編寫函數(shù)fun,它的功能是:利用以下所示的簡單迭

代方法求方程cos(x)-x=0的一個實根。

xn+l=cos(xn)

迭代步驟如下:

(1)取xl初值為0.0;

(2)x0=xl,把xl的值賦給x0;

(3)xl=cos(x0),求出一個新的xl;

(4)若xO-xl,的絕對值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2);

⑸所求xl就是方程cos(x)-x=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Root=0.739085c

floatfun()

(

floatxl=0.0,xO;

do

(

x0=xl;

xl=cos(xO);

}while(fabs(x0-xl)>=le-6);

returnxl;

13.補充main函數(shù),功能是:從鍵盤輸入3個整數(shù),然后找出最大的數(shù)并輸

出。

例如,輸入12,45,43,最大值為45。

(1)max=a(2)max=b(3)max=c

下列給定程序中,函數(shù)fun的功能是:將十進制正整數(shù)m轉(zhuǎn)換成進制數(shù),并

按位輸出。例如,若輸入8和2,則應(yīng)輸出1000(即十進制數(shù)8轉(zhuǎn)換成二進

制表示是1000)o

(1)錯誤:voidfun(intm,intk);正確:voidfun(intm,intk)

(2)錯誤:aa[i]=m/k;正確:aa[i]=m%k;

(3)錯誤:printfaa[i]);

正確:printf("%d",aa[i-l]);

假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:將字

符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中

的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是

A*BC*DEF*G*******o

voidfun(char*a)

(

char*p=a;

while(*p=='*,)

p++;

for(;*p!='\0';p++,a++)

*a=*p;

*a='\0';

}

14.函數(shù)fun的功能是:從三個形參a、b、c中找出中間的數(shù),作為函數(shù)值

返回。例如,當(dāng)a=3,b=5,c=4時,中間的數(shù)為4。

(1)a(2)a(3)b

下列給定程序中,函數(shù)fun的功能是:計算函數(shù)

F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。

例如,當(dāng)x的值為9,y的值為11,z的值為15時,函數(shù)值為-3.50o

(1)錯誤:#defineFU(m,n)(m/n)正確:#defineFU(m,n)(m)/(n)

(2)錯誤:return(Value);正確:return(value);

請編寫函數(shù)fun,該函數(shù)的功能是:判斷字符串是否為回文,若是則函數(shù)返

回1,主函數(shù)中輸出“YES〃,否則返回0,主函數(shù)中輸出回文是指順讀

和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就

不是回文。

intfun(char*str)

(

inti,n=0,fg=l;

char*p=str;

while(*p)

n++;

p++;

)

for(i=0;i<n/2;i++)

if(str[i]-str[n-l-i]);

else

(

fg=0;

break;

)

returnfg;

}

15.函數(shù)fun的功能是:統(tǒng)計長整數(shù)n的各位上出現(xiàn)數(shù)字1、2、3的次數(shù),

并用外部(全局)變量cl、c2、c3返回主函數(shù)。

(1)n%10(2)break(3)break

函數(shù)fun的功能是:先將在字符串s中的字符按逆序存放到t串中,然后把

s中的字符按正序連接到t串的后面。例如,當(dāng)s中的字符串為ABCDE時,

則t中的字符串應(yīng)為EDCBAABCDEo

(1)錯誤:t[i]=s[sl,T];正確:;

請編一個函數(shù)fun(char*s),該函數(shù)的功能是把字符串中的內(nèi)容逆置。

例如,字符串中原有的字符串為abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為

gfedcba。

voidfun(char*s)

charch;

inti,m,n;

m=n=strlen(s)T;

while(i<(n+l)/2)

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m一;

)

16.請補充main函數(shù),該函數(shù)的功能是:打印出11000中滿足個位數(shù)字的

立方等于其本身所有數(shù)。本題的結(jié)果為:164125216729

(1)i%10(2)g*g*g==i

下列給定程序中,函數(shù)fun的功能是:求三個數(shù)的最小公倍數(shù)。

(1)錯誤:j=l;正確:j=0;

⑵錯:while(t!=0&&m!=0&&n!=0)正:while(t!=0||m!=0||n!=0)

請編寫一個函數(shù)fun,它的功能是:將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)。例

如,若輸入字符串“T234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值7234。

longfun(char*p)

(

longn=0;

intflag=l;

if(*p=='」)

{p++;flag=-1;}

elseif(*p=='+')

p++;

while(*p!=,\0"

{n=n*10+*p-'O';

p++;

}

returnn*flag;

17.請補充main函數(shù),該函數(shù)的功能是:打印出滿足個位的數(shù)字、十位上的

數(shù)字和百位上的數(shù)字都相等的所有三位數(shù)。本題的結(jié)果為:111222333

444555666777888999。

(1)g==s&&s==b或者g==b&&s==b或者g==s&&g==b(2)g+s*10+b*100

下列給定程序中,函數(shù)fun的功能是:從n個學(xué)生的成績中統(tǒng)計出低于平均

分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲

單元中。例如輸入8名學(xué)生的成績:80.5607290.59851.58864則

低于平均分的學(xué)生人數(shù)為4(平均分為75.5625)。

⑴錯誤:t=s[k];正確:t+=s[k];(2)錯誤:*aver=&ave;正

確:*aver=ave;

請編寫一個函數(shù)voidfun(char*ss),其功能是:將字符串ss中所有下標

為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。例如,

若輸入abc4EFg,則應(yīng)輸出aBc4EFgo

voidfun(char*ss)

(

inti,n=0;

char*p=ss;

while(*p)

(

n++;

p++;

}

for(i=0;i<n;i++)

if((ss[i]>=,a&&ss[i]<=,z')&&i%2!=0)

ss[i]=ss[i]-32;

ss[i]=,\0);

}

18.補充main函數(shù)。該函數(shù)的功能是:求1100(不包括100)以內(nèi)所有素數(shù)

的平均值。

程序運行后的結(jié)果為42.40。

(1)j%i-0(2)flag==l(3)aver/n

下列給定程序中,函數(shù)fun的功能是:在字符串的最前端加入n個*號,形成

新串,并且覆蓋原串。注意:字符串的長度最長允許為79。

⑴錯誤:s=p;正確:p=s;

(2)應(yīng)填p++;或++p;或p+=l;或p=p+l;

(3)錯誤:a[i]='0';正確:a[i]='\0';或a[i]=O

編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在另一個字符串中

出現(xiàn)的次數(shù)。例如,假定輸入的字符串為asdasasdfgasdaszx67asdmklo,

子字符串為as,則應(yīng)當(dāng)輸出6。

intfun(char*str,char*substr)

(

inti,j=0;

for(i=0;str[i+1]!=>\0J;i++)

if(str[i]==substr[O]&&str[i+l]==substr[l])

j++;

returnj;

)

19.請補充函數(shù)fun,功能是:求一維數(shù)組x[N]的平均值,并對所得結(jié)果進行

四舍五入(保留兩位小數(shù))。

例如,當(dāng)

x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},結(jié)果

為:avg=15.030000o

(1)sum+=x[i](2)avg*1000(3)(avg+5)/IO

函數(shù)fun的功能是:刪除字符串s中所有空白字符(包括Tab符、回車符及

換行符)。輸入字符串時用〃#〃結(jié)束輸入。

(1)錯誤:c[t]=〃\O";正確:c[t]='\O';

編寫一個函數(shù),從傳入的num個字符中找出最長的一個字符串,并通過形參

指針max傳回該串地址(用****作為結(jié)束輸入的標志)。

char*fun(char(*a)[81],intnum,char*max)

(

inti=0;

max=a[0];

for(i=0;i<num;i++)

if(strlen(max)<strlen(a[i]))

max=a[i];

returnmax;

)

20.請補充函數(shù)fun,功能是:把一個整數(shù)轉(zhuǎn)換成字符串,并倒序保存在字符

數(shù)組str中。例如,當(dāng)n=13572468時,str=〃86427531"°

(1)n>0(2)n%10+'0'(3)str[i]='\0'

下列給定程序中,函數(shù)fun的功能是:先從鍵盤上輸入一個3行、3列的矩

陣的各個元素的值,然后輸出主對角線元素之和。

⑴錯誤:sum=l;正確:sum=0;

⑵錯:scanf("%d",a[i][j]);正確:scanf("%d",&a[i][j]);

編寫一個函數(shù)fun,它的功能是:實現(xiàn)兩個字符串的連接(不使用庫函數(shù)

strcat),即把p2所指的字符串連接到pl所指的字符串后。

例如,分別輸入下面兩個字符串:

FirstString

SecondString

則程序輸出:

FirstStringSecondString

voidfun(charpl[],charp2[])

inti,j;

for(i=0;pl[i]!='\0';i++);

for(j=0;p2[j]!='\0';j++)

pl[i++]=p2[j];/

pl[i]='\0';

21.請補充函數(shù)fun,該函數(shù)的功能是:將字符串tt中的大寫字母都改為對

應(yīng)的小寫字母,其他字符不變。例如,若輸入"AreyoucomefromSichuan?”,

貝輸出“areyoucomefromsichuan?”。

(1)tt[i]<=Z,(2)tt[i]+=32(3)tt

函數(shù)fun的功能是:求出字符串中最后一次出現(xiàn)的子字符串的地址,通過函

數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為

NULLo

例如,當(dāng)字符串中的內(nèi)容為abcdabfabcdx,t中的內(nèi)容為ab時,輸出結(jié)果應(yīng)

是abcdxo當(dāng)字符串中的內(nèi)容為abcdabfabcdx,t中的內(nèi)容為abd時,則程

序輸出未找到的信息“Notfound!"。

⑴錯誤:a=Null;正確:a=NULL;

(2)錯誤:if(r==p){r++;p++;}正確:if(*r==*p){r++;p++;}

請編寫函數(shù)fun,對長度為7個字符的字符串,除首、尾字符外,將其余5個

字符按ASCII碼值升序排列。例如,原來的字符串為Bdsihad,則排序后輸

出為Badhisdo

intfun(char*s,intnum)

(

chart;

inti,j;

for(i=l;i<num-2;i++)

for(j=i+l;j<num-l;j++)

if(s[i]>s[j])

(

t=sLi];

s[i]=s[j];

s[j]=t;

}

22.請補充main函數(shù),功能是:從鍵盤輸入一個長整數(shù),如果這個數(shù)是負數(shù),

則取它的絕對值,并顯示出來。例如,輸入:-3847652,結(jié)果為:3847652。

(1)〃%ld〃,&n(2)n=-n;(3)n

函數(shù)fun的功能是:將字符串tt中的小寫字母都改為對應(yīng)的大寫字母,其

他字符不變。例如,若輸入"Ab,cD〃,則輸出“AB,CD”。

⑴錯誤:II正確:&&(2)錯誤:tt[i]+=32正確:tt[i]-=32;

請編寫函數(shù)fun,功能是:統(tǒng)計各年齡段的人數(shù)。N個年齡通過調(diào)用隨機函

數(shù)獲得,并放在主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)

在d[0]中,把10至19歲年齡段的人數(shù)放在d[l]中,把20至29歲年齡段

的人數(shù)放在d[2]中,依次類推,把100歲(含100歲)以上年齡的人數(shù)都放在

d[10]中。結(jié)果在主函數(shù)中輸出。

voidfun(int*a,int*b)

(

inti,j;

for(j=0;j<M;j++)

b[j]=O;

for(i=0;i<N;i++)

if(a[i]>=100)

b[10]++;

else

b[a[i]/10]++;

23.請補充main函數(shù)功能是:從鍵盤輸入若干字符放到一個字符數(shù)組中,當(dāng)

按回車鍵時結(jié)束輸入,最后輸出這個字符數(shù)組中的所有字符。

(1)break(2)'\0'(3)*p++

下列給定程序中,函數(shù)fun的功能是:計算s所指字符串中含有t所指字符

串的數(shù)目,并作為函數(shù)值返回。

(1)錯誤:*r=t;正確:r=t;(2)應(yīng)填:r=t;或r=&t[0];

請編寫函數(shù)fun,該函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),

按列的順序依次放到一個字符串中。

例如,若二維數(shù)組中的數(shù)據(jù)為:

WWWW

SSSS

HHHII

則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHWSHo

voidfun(char(*s)[N],char*b)

(

inti,j,k=0;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

b[k++]=s[j][i];

b[k]='\0';

24.請補充main函數(shù),功能是求方程ax2+bx+c=0的兩個實數(shù)根。方程的系

數(shù)a、b、c從鍵盤輸入,如果判別式(disc=b2-4ac)小于0,則要求重新輸入

a、b、c的值。例如,當(dāng)a=l,b=2,c=l時,方程的兩個根分別是

xl=-l.00,x2=-l.00o

(1)disc<0(2)(-b+sqrt(disc))/(2*a)(3)

(-b-sqrt(disc))/(2*a)

函數(shù)fun的功能是:將長整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個

新數(shù)放在t中。高位仍在高位,低位仍在低位。例如當(dāng)s中的數(shù)為87653142

時,t中的數(shù)為7531o

⑴錯誤:t=0;正確:*t=0;(2)錯誤:if(d%2==0)正

確:if(d%2!=0)

請編寫一個函數(shù)fun,功能是:求出一個整型二維數(shù)組中最大元素的值,并

將此值返回調(diào)用函數(shù)。

fun(inta[][M])

inti,j,max=a[0][0];

for(i=0;i<2;i++)

for(j=0;j<M;j++)

if(max<a[i][j])

max=a[i][j];

returnmax;

}

25.請補充main函數(shù),功能是:從鍵盤輸入兩個字符串并分別保存在字符數(shù)

組strl和str2中,用字符串str2替換字符串strl前面的所有字符。注

意:str2的長度不大于strl,否則需要重新輸入。例如,如果輸入

strl="abced",str2="fk",則輸出"fkced"。

(1)strlen(strl)<strlen(str2)

(2)*p2(3)strl

下列給定程序中,函數(shù)fun的功能是:實現(xiàn)兩個整數(shù)的交換。例如,給a和b

分別輸入60和65,輸出為:a=65b=60

(1)錯誤:voidfun(inta,b)正確:voidfun(int*a,int*b)

(2)錯誤:t=b;b=a;a=t;確:t=*b;*b=*a;*a=t;

下列程序定義了的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)

fun(inta[][N]),該函數(shù)的功能是:使數(shù)組左下半三角元素中的值全部置

成0。例如a數(shù)組中的值為:

a=l97

238

456

則返回主程序后a數(shù)組中的值應(yīng)為:

097

008

000

intfun(inta[][N])

inti,j;

for(i=0;i<N;i++)

for(j=0;j<=i;j++)

a[i][j]=0;

}

26.給定程序中,函數(shù)fun的功能是:將形參指針所指結(jié)構(gòu)體數(shù)組中的三個

元素按num成員進行升序排列。

(1)std[3]>std□或*std(2)PERSON(3)std

下列給定程序中,函數(shù)fun的功能是:將一個由八進制數(shù)字字符組成的字

符串轉(zhuǎn)換為與其面值相等的十進制整數(shù)。規(guī)定輸入的字符串最多只能包含

5位8進制數(shù)字。例如,若輸入77777,則輸出將是32767。

(1)錯誤:n=*p-'o'正確:n=*p-'O'

(2)錯誤:n=n*7+*p-'o'正確:n=n*8+*p-'0'

請編寫函數(shù)fun,其功能是:計算并輸出給定10個數(shù)的方差。

其中:

例如,給定的10個數(shù)為

95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,則輸出為

S=ll.730729c

doublefun(doublex[10])

doublexl=0.0,s=0.0;

inti;

for(i=0;i<10;i++)

xl=xl+x[i];

xl=xl/10;

for(i=0;i<10;i++)

s=s+(x[i]-xl)*(x[i]-xl);

returnsqrt(s/10);

)

27.函數(shù)fun的功能是:把形參s所指字符串中下標為奇數(shù)的字符右移到下

一個奇數(shù)位置,最右邊被移出字符串的字符繞回放到第一個奇數(shù)位置,下

標為偶數(shù)的字符不動(注:字符串的長度不小于2)。例如,形參s所指的

字符串為:abcdefgh,執(zhí)行結(jié)果為:ahcbedgf。

(1)1(2)s[k]或*(s+k)(3)c

下列給定程序中,函數(shù)fun的功能是:用冒泡法對6個字符串按由小到大的

順序進行排序。

(1)錯誤:fun(char*pstr[6])正確:voidfun(char*pstr[6])

(2)錯誤:if(strcmp(*(pstr+i),pstr+j)>0)正

確:if(strcmp(*(pstr+i),*(pstr+j))>0)

(3)錯誤:*(pstr+i)=pstr+j;正確:*(pstr+i)=*(pstr+j);

已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)

組中。請編寫函數(shù)fun,功能是:找出成績最高的學(xué)生記錄,通過形參返回主

函數(shù)(規(guī)定只有一個最高分)。已給出函數(shù)的首部,請完成該函數(shù)。

fun(STUa[],STU*s)

inti;

*s=a[O];

for(i=0;i<N;i++)

if(s->s<a[i].s)

*s=a[i];

)

28.給定程序的功能是:分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。

例如,給字符串ss輸入:AaaaBBbl23CCccccd,則輸出結(jié)果應(yīng)

為:upper=5,lower=9o

(1)(*a)++或++(*a)或*a+=l或*a=*a+l

(2)(*b)++或++(*b)或*b+=l或*b=*b+l

(3)upper,lower

函數(shù)fun的功能是:用選擇法對數(shù)組中的n個元素按從小到大的順序進行

排序。

⑴錯誤:P=j正確:p=j;(2)錯誤:p=j;正確:p=i;

N名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表

的頭節(jié)點。請編寫函數(shù)fun,功能是:找出學(xué)生的最高分,由函數(shù)值返回。

doublefun(STREC*h)

doublemax=h->s;

while(h!=NULL)

/*通過循環(huán)找到最高分數(shù)*/

{if(max<h->s)max=h->s;

h=h->next;

returnmax;

29.請補充main函數(shù),功能是:先以只寫方式打開文件〃out29.dat〃,再把字

符串str中的字符保存到這個磁盤文件中。

(1)“out29.dat","w"(2)fputc(ch,fp)(3)fclose(fp)

N個有序整數(shù)數(shù)列已放在一維數(shù)組中,給定下列程序中,函數(shù)fun的功能是:

利用折半查找算法查找整數(shù)m在數(shù)組中的位置。若找到,則返回其下標值;

反之,則返回-1。

(1)錯誤:voidfun(inta[],intm)正確:intfun(inta[],intm)

(2)錯誤:elseif(m>=a[mid])正確:elseif(m>a[mid])

學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體

數(shù)組s中,請編寫函數(shù)fun,它的功能是:函數(shù)返回指定學(xué)號的學(xué)生數(shù)據(jù),指

定的序號在主函數(shù)中輸入。若沒找到指定的學(xué)號,在結(jié)構(gòu)體變量中給學(xué)號

置空串,給成績置-1,作為函數(shù)值返回(用于字符串比較的函數(shù)是strcmp)o

STRECfun(STREC*a,char*b)

inti;

STRECstr={"\o”,T};

for(i=0;i<N;i++)

if(strcmp(a[i].num,b)==0)

str=a[i];

returnstr;

30.請補充main函數(shù),功能是:把文本文件B中的內(nèi)容追加到文本文件A的

內(nèi)容之后。例如,文件B的內(nèi)容為"Imten.",文件A的內(nèi)容為“Ima

student!”,追加之后文件A的內(nèi)容為"Imastudent!Imten."。

(1)&&(2)fputc(ch,fpl)(3)fclose(fp)

下列給定程序是建立一個帶頭結(jié)點的單向鏈表,并用隨機函數(shù)為各結(jié)點賦

值。函數(shù)fun的功能是將單向鏈表結(jié)點(不包括頭結(jié)點)數(shù)據(jù)域為偶數(shù)的值

累加起來,并且作為函數(shù)值返回。

(1)錯誤:while(p->next)正確:while(p!=NULL)

(2)錯誤:p=h->next;正確:p=p->next;

學(xué)生的記錄由學(xué)號和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體

數(shù)組s中,請編寫函數(shù)fun,它的功能是:按分數(shù)的高低排列學(xué)生的記錄,高

分在前。

intfun(STRECa[])

inti,j

STRECt;

for(i=l;i<N;i++)

/*用冒泡法進行排序,進行N-l次比較*/

for(j=0;j<N-l;j++)

/*在每一次比較中要進行21次兩兩比較*/

if(a[j].s<a[j+l].s)

{t=a[j];a[j]=a[j+l];a[j+l]=t;}

/*按分數(shù)的高低排列學(xué)生的記錄,高分在前*/

)

31.請補充main函數(shù),該函數(shù)的功能是:求n!。例如,7!=5040o

(1)&n(2)i=l或i=2(3)f*=i

下列給定程序中,函數(shù)fun的功能是:求表達式s=aa…aa---aa-aa-a(此處

aa…aa表示n個a,a和n的值在1至9之間)的值。例如a=3,n=6,則以上

表達式為:

s=333333-33333-3333-333-33-3其值是296298。a和n是函數(shù)fun的形

參,表達式的值作為函數(shù)值傳回main函數(shù)。

(1)錯誤:longs=0,t=l;正確:longs=0,t=0;

(2)錯誤:for(j=0;j<=n;j++)正確:for(j=0;j<n;j++)

⑶錯誤:t=t%10;正確:

請編寫函數(shù)fun,其功能是計算并輸出如下多項式的值:

Sn=l+l/l!+l/2!+l/3!+l/4!+-+l/n!例如,若主函數(shù)從鍵盤給n輸入15,

則輸出為S=2.718282。注意:n的值要求大于1但不大于100。

doublefun(intn)

doublet,sn=l.0;

inti,j;

for(i=l;i<=n;i++)

(

t=l.0;

for(j=l;j<=i;j++)

t*=j;

sn+=l.0/t;

)

returnsn;

}

32.請補允函數(shù)fun,該函數(shù)的功能是:計算并輸出下列多項式的值。

例如,若主函數(shù)從鍵盤給n輸入50后,則輸出為S=l.960784c

(1)double(2)j(3)1.0/t或(double)1/t

下列給定程序中,函數(shù)fun的功能是:根據(jù)整型形參m,計算如下公式的值。

例如,若m的值為5,則應(yīng)輸出:1.463611c

(1)錯誤:for(i=2;i<m;i++)正確:for(i=2;i〈=m;i++)

(2)錯誤:y+=l/(i*i);正確:y+=l.0/(i*i);

請編寫函數(shù)fun,該函數(shù)的功能是:計算并輸出

S=l+(l+20.5)+(1+20.5+30.5)+-+(1+20.5+30.5+…+n0.5)

例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=534.188884。

doublefun(intn)

(

inti;

doubles=0.0,sl=0.0;

for(i=l;i<=n;i++)

(

sl=sl+pow(i,0.5);

s=s+sl;

)

returns;

}

33程序的功能是計算。

(1)1(2)s*i或i*s(3)0(4)s+fun(k)

數(shù)列中,第一項為3,后一項都比前一項的值增5。下列給定程序中,函數(shù)fun

的功能是:計算前項的累計和。在累加過程中把那些被4除后余2的當(dāng)前

累加值放入數(shù)組中,符合此條件的累加值的個數(shù)作為函數(shù)值返回主函數(shù)

里。如當(dāng)n的值為20時,該數(shù)列為3,8,13,18,23,28,93,98。符合此條

件的累加值應(yīng)為42,126,366,570,1010。

(1)錯誤:inti,j,k,sum;正確:inti,j=0,k,sum;

(2)錯誤:if(sum%4=2)正確:if(sum%4==2)

(3)錯誤:returnj;正確:returnj++;

請編寫一個函數(shù)fun,功能是:計算并輸出給定整數(shù)n的所有因子(不包括1

與自身)之和。規(guī)定n的值不大于1000。

例如,若主函數(shù)從鍵盤給n輸入的值為856,則輸出m為sum=763。

intfun(intn)

(

ints=0,i;

for(i=2;i<=n-l;i++)

/*將n減1累加*/

if(n%i==0)

s+=i;

returns;

}

34.請補充main函數(shù),該函數(shù)的功能是:求l+2!+3!+-+N!的和。

例如,1+2!+3!+…+5!+6!的和為873。

(1)&n(2)t*i(3)s+t

下列給定程序中,函數(shù)fun的功能是:求S的值。設(shè)

S=(22/(1*3))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2kT)*(2k+l))

例如,當(dāng)k為10例函數(shù)的值應(yīng)為1.533852o

(1)錯誤:fun(intk)正確:doublefun(intk)

(2)錯誤:returns正確:returns;

請編寫函數(shù)fun,功能是:計算并輸出n(包括n)以內(nèi)所有能被5或9整除的

自然數(shù)的倒數(shù)之和。

例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為s=0.583333。

doublefun(intn)

(

inti;

doublesum=0.0;

for(i=l;i<=n;i++)

if(i%5==0||i%9==0)

sum+=l.0/i;

returnsum;

35.給定程序的功能是:計算并輸出下列級數(shù)的前N項之和SN,直到SN大于

q為止,q的值通過形參傳入。

例如,若q的值為50.0,則函數(shù)值為50.416687c

(1)<=(2)n++或n+=l或n=n+l(3)returns或return(s)

下列給定程序中,函數(shù)fun的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平

均值以上(含平均值)的實數(shù)個數(shù)。例如,n=8時,輸入

193,199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,

所得平均值為195.838745,在平均值以上的實數(shù)個數(shù)應(yīng)為5。

⑴錯誤:缺{正確:加{

請編寫函數(shù)fun,功能是:求出1到1000之內(nèi)能被7或11整除但不能同時

被7和11整除的所有整數(shù),并將它們放在a所指的數(shù)組中,通過n返回這

些數(shù)的個數(shù)。

voidfun(int*a,int*n)

(

inti,j=0;

for(i=l;i<=1000;i++)

if((i%7==0||i%ll==0)&&i%77!=0)

a[j++]=i;

*n=j;

)

36.請在函數(shù)fun的橫線上填寫若干表達式,使從鍵盤上輸入一個整數(shù)n,

輸出n對應(yīng)的斐波拉契數(shù)列。斐波拉契數(shù)列是一整數(shù)數(shù)列,該數(shù)列自第三

項開始,每數(shù)等于前面兩數(shù)之和,即0,1,1,2,3,5,8,13,21,34,55,…

(1)n==0(2)n==l(3)fun(n-l)+fun(n-2)

下列給定程序中,函數(shù)fun的功能是:根據(jù)整型形參n,計算如下公式的值。

Al=l,A2=1/(1+A1),A3=l/(1+A2),An=l/(1+A(n-l))

例如,若n=10,則應(yīng)輸出0.617977o

(1)錯誤:intfun(intn)正確:floatfun(intn)

(2)錯誤:for(i=2;i<n;i++)正確:for(i=2;i<=n;i++)

請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放

在c中。合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的千位和十位

上,b數(shù)的十位和個位依次放在c數(shù)的個位和百位上。

例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后,c=4251。

voidfun(inta,intb,long*c)

(

*c=(a/10)*1000+(b%10)*100+(a%10)*10+b/10;

}

37.請補充函數(shù)fun,該函數(shù)的功能是:把從鍵盤輸入的3個整數(shù)按從小到大

輸出。

例如,輸入“337825〃,結(jié)果輸出“253378"。

(1)x>y(2)x>z(3)y>z

下列給定程序中,函數(shù)fun的功能是:找出100到n(不大于1000)之間三個

位上的數(shù)字都相等的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個數(shù)作為

函數(shù)值返回。

⑴錯誤:k=n正確:k=i;

⑵錯誤:b=k/10;正確:b=k%10;

請編寫函數(shù)fun,其實現(xiàn)的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一

個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的個

位和百位上,b數(shù)的十位和個位依次放在c數(shù)的十位和千位上。例如,當(dāng)

a=45,b=12,調(diào)用該函數(shù)后,c=2514o

voidfun(inta,intb,long*c)

*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;

38.請補充main函數(shù),該函數(shù)的功能是:計算三名學(xué)生學(xué)科的平均成績。

例如,當(dāng)

score[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90,95,86,95

,97})時,五門學(xué)科的平均分為平4.5,89.5,85.3,86.3,86.3。

(1)N(2)M(3)bb[i]/N

下列給定程序中,函數(shù)fun的功能是:求k!(k<13),所求階乘的值作為函數(shù)

值返回。例如,若k=10,則應(yīng)輸出3628800o

錯誤:ifk>l正確:if(k>l)

請編寫一個函數(shù)unsignedfun(unsignedw),w是一個大于10的無符號整

數(shù),若w是位的整數(shù),則函數(shù)求出w的后n-1位的數(shù)作為函數(shù)值返回。

例如,w值為5923,則函數(shù)返回923;若w值為923,則函數(shù)返回23。

unsignedfun(unsignedw)

if(w>=10000)

returnw%10000;/*求出n位整數(shù)w的后n-1位的數(shù)*/

if(w>=1000)

returnw%1000;

if(w>=100)

returnw%100;

if(w>=10)

returnw%10;

39.請補充函數(shù)fun,該函數(shù)的功能是:判斷一個數(shù)的個位數(shù)字和百位數(shù)字

之和是否等于其十位上的數(shù)字,是則返回〃yes!〃,否則返回“no!〃。

(1)n/100%10(2)"yes!"(3)"no!”

下列給定程序中,函數(shù)fun的功能是:傳入一個整數(shù)m,計算如下公式的值。

t=l/2-l/3——1/m例如,若輸入5,則應(yīng)輸出-0.283333c

(1)錯誤:t=l.OT/i;正確:t-=l.0/i;(2)錯誤:;正確:returnt

請編寫函數(shù)fun,其功能是:計算并輸出3到n之間所有素數(shù)的平方根之和。

例如,若主函數(shù)從鍵盤給n輸入100后,則輸出為sum=148.874270。

注意:n的值要大于2但不大于100o部分源程序給出如下。

doublefun(intn)

intm,k,i;

doubles=0.0;

for(m=3;m<=n;m++)

(

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>=k+l)

s+=sqrt(m);

returns;

40.數(shù)組xx[N]保存著一組3位數(shù)的無符號正整數(shù),其元素的個數(shù)通過變量

num傳入函數(shù)fun。請補充函數(shù)fun,該函數(shù)的功能是:從數(shù)組xx中找出個

位和百位的數(shù)字相等的所有無符號整數(shù),結(jié)果保存在數(shù)組yy中,其個數(shù)由

函數(shù)fun返回。例

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論