版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精準識別課件教學(xué)課件
- 智慧養(yǎng)老中心解決方案
- 頸椎病解刨結(jié)構(gòu)
- 2024年超高速加工中心投資項目資金申請報告書
- 車場停電應(yīng)急預(yù)案
- 第六章 機械能守恒定律-功能關(guān)系與能量守恒 2025年高考物理基礎(chǔ)專項復(fù)習(xí)
- 2-1-4 微專題1-碳酸鈉與碳酸氫鈉的相關(guān)計算 高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 骨水泥在糖尿病足的應(yīng)用
- 醫(yī)療器械合作協(xié)議書范本
- 社交網(wǎng)絡(luò)鉤機租賃合同
- 年產(chǎn)6000萬塊粉煤灰煤矸石燒結(jié)磚項目節(jié)能評估報告書
- 秘書五級總復(fù)習(xí)3 (收文發(fā)文+事務(wù)管理+自動化100)附答案
- 人教版英語九全 Unit 8 It must belong to Carla. Section A(3a-3c)教案
- 移植物抗宿主病課件
- 全面解讀2020年《中華人民共和國民法典》之物權(quán)編PPT
- 高中生物必修一新教材課后習(xí)題與參考答案
- 水利部水利建設(shè)經(jīng)濟定額站
- 大班數(shù)學(xué)《貪心的三角形》課件
- 金屬和半導(dǎo)體材料電導(dǎo)(材料物理性能)
- 最新八年級道法上冊概括與評論題角度匯編
- 酒店組織架構(gòu)圖以及各崗位職責(zé)(完整版)
評論
0/150
提交評論