版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
請(qǐng)注意,如果要在VS2005中驗(yàn)證,函數(shù)值類(lèi)型缺省的應(yīng)加上int,因?yàn)関s2005中己經(jīng)不支
持缺省函數(shù)值類(lèi)型
以下答案除編程題外都經(jīng)過(guò)驗(yàn)證
函數(shù)
一、選擇題
1、以下正確的說(shuō)法是(B)〃此題不妥!
建立函數(shù)的目的之一是
(A)提高程序的執(zhí)行效率
(B)提高程序的可讀性
(0減少程序的篇幅
(D)減少程序文件所占內(nèi)存
2、以下正確的說(shuō)法是(B)
(A)用戶(hù)若需要調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),調(diào)用前必須重新定義
(B)用戶(hù)可以重新定義標(biāo)準(zhǔn)庫(kù)函數(shù),若如此,該函數(shù)將失去原有含義
(0系統(tǒng)根本不允許用戶(hù)重新定義標(biāo)準(zhǔn)庫(kù)函數(shù)
(D)用戶(hù)若需調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶(hù)
源文件中,系統(tǒng)自動(dòng)去調(diào)
3、以下正確的函數(shù)聲明形式是(C)
(A)doublefun(intx,inty)
(B)doublefun(intx;inty)
(C)doublefun(intx,inty);
(D)doublefun(intx,y);
4、以下正確的函數(shù)形式是(D)
(A)doublefun(intx,inty){z=x+y;returnz;}
(B)fun(intx,y){intz;returnz;}
(C)fun(x,y){intx,y;doublez;z=x+y;returnz;}
(D)doublefun(intx,inty){doublez;z=x+y;returnz;}
5、以下正確的說(shuō)法是(A)〃這個(gè)題目A答案的描述容易引起誤會(huì)且不是任何情況下都
是正確的
在C語(yǔ)言中
(A)實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元
(B)實(shí)參和與其對(duì)應(yīng)的形參共占用一個(gè)存儲(chǔ)單元
(0只有當(dāng)實(shí)參和與其對(duì)應(yīng)的形參同名時(shí)才共占用存儲(chǔ)單元
(D)形參是虛擬的,不占用存儲(chǔ)單元
6、若調(diào)用一個(gè)函數(shù),且此函數(shù)中沒(méi)有return語(yǔ)句,則正確的說(shuō)法是(A)〃答案A也不
太對(duì),應(yīng)該是返回一個(gè)空值
該函數(shù)
(A)沒(méi)有返回值
(B)返回若干個(gè)系統(tǒng)默認(rèn)值
(0能返回一個(gè)用戶(hù)所希望的函數(shù)值
(D)返回一個(gè)不確定的值
7、以下不正確的說(shuō)法是(A)〃B勉強(qiáng)也可以說(shuō)是對(duì)的
C語(yǔ)言規(guī)定
(A)實(shí)參可以是常量、變量和表達(dá)式
(B)形參可以是常量、變量和表達(dá)式
(0實(shí)參可以為任意類(lèi)型
(D)形參應(yīng)與其對(duì)應(yīng)的實(shí)參類(lèi)型一致
8、以下正確的說(shuō)法是(C)
(A)定義函數(shù)時(shí),形參的類(lèi)型說(shuō)明可以放在函數(shù)體內(nèi)
(B)return后邊的值不能為表達(dá)式
(0如果函數(shù)值的類(lèi)型與返回值類(lèi)型不一致,以函數(shù)值類(lèi)型為準(zhǔn)
(D)如果形參與實(shí)參的類(lèi)型不一致,以實(shí)參類(lèi)型為準(zhǔn)
9、C語(yǔ)言規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是(B)
(A)地址傳遞
(B)單向值傳遞
(0由實(shí)參傳給形參,再由形參傳回給實(shí)參
(D)由用戶(hù)指定傳遞方式
10、以下程序有語(yǔ)法性錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說(shuō)法是(C)
voidmain()
(
intG=5,k;
voidprt_char();
k=prt_char⑹;
)
(A)語(yǔ)句voidprt_char();有錯(cuò),它是函數(shù)調(diào)用語(yǔ)句,不能用void說(shuō)明
(B)變量名不能使用大寫(xiě)字母
(0函數(shù)說(shuō)明和函數(shù)調(diào)用之間有矛盾
(D)函數(shù)名不能使用下劃線(xiàn)
11、C語(yǔ)言允許函數(shù)值類(lèi)型缺省定義,此時(shí)該函數(shù)值隱含的類(lèi)型是(B)
(A)float型
(B)int型
(C)long型
(D)double型
12、C語(yǔ)言規(guī)定,函數(shù)返回值的類(lèi)型是由(D)
(A)return語(yǔ)句中的表達(dá)式類(lèi)型所決定
(B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類(lèi)型所決定
(0調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定
(D)在定義該函數(shù)時(shí)所指定的函數(shù)類(lèi)型所決定
13、下面函數(shù)調(diào)用語(yǔ)句含有實(shí)參的個(gè)數(shù)為(B)
func((expl,exp2),(exp3,exp4,exp5));
(A)1
(B)2
(04
(D)5
14、以下錯(cuò)誤的描述是(D)
函數(shù)調(diào)用可以
(A)出現(xiàn)在執(zhí)行語(yǔ)句中
(B)出現(xiàn)在一個(gè)表達(dá)式中
(0做為一個(gè)函數(shù)的實(shí)參
(D)做為一個(gè)函數(shù)的形參
15、以下程序的功能是計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,請(qǐng)選擇填空。①
(B)②(C)
#include<stdio.h>
#include<math.h>
floatf(float,float);
voidmain()
(
floatx,y,z,sum;
scanf&x,&y,&z);
sum=f(①)+f(②);
printf(,/sum=%f\nz,,sum);
)
floatf(floata,floatb)
(
floatvalue;
value=a/b;
return(value);
)
①(A)x-y,x+y
(B)x+y,x-y
(C)z+y,z-y
(D)z-y,z+y
②(A)x-y,x+y
(B)x+y,x-y
(C)z+y,z-y
(D)z-y,z+y
16、以下正確的描述是(B)
在C語(yǔ)言中
(A)函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
(B)函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
(0函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
(D)函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
17、以下程序是選出能被3整除且至少有一位是5的兩位數(shù),打印出所有這樣的數(shù)及其個(gè)數(shù)。
請(qǐng)選擇填空。①(C)②(A)
sub(intk,intn)
(
intal,a2;
a2=①;
al=k-②;
if((K%3=0&&a2==5)||(k%3==0&&al=5))
(
printfk);
n++;
returnn;
)
elsereturn-1;
}
voidmain()
(
intn=0,k,m;
for(k=10;k<=99;k++)
(
m=sub(k,n);
if(m!=-l)n=m;
)
printf('\nn=%d”,n);
)
①(A)k*10
(B)k%10
(C)k/10
(D)k*10%10
②(A)a2*10
(B)a2
(C)a2/10
(D)a2%10
18、以下是有關(guān)漢諾塔問(wèn)題的程序段,若在main函數(shù)中有調(diào)用語(yǔ)句hanoi(3,'A','B','C');
則符合程序運(yùn)行結(jié)果的選項(xiàng)是(C)
voidmove(chargetone,charputone)
(
printf("%c->%c\n”,getone,putone);
}
voidhanoi(intn,charone,chartwo,charthree)
(
if(n==l)move(one,three);
else
(
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
)
)
(A)A->C
A—>B
c—>B
B—>A
C—>B
A—>C
A—>B
(B)A—>C
A->B
C—>A
A—>B
B—>C
A->C
A—>B
(C)A->C
A—>B
C—>B
A—>C
B—>A
B—>C
A->C
(D)A—>C
A—>B
C—>B
A—>C
A—>B
B—>C
A->C
19、若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(A)
(A)數(shù)組的首地址
(B)數(shù)組第一個(gè)元素的值
(0數(shù)組中全部元素的值
(D)數(shù)組元素的個(gè)數(shù)
20、已有以下數(shù)組定義和f函數(shù)調(diào)用語(yǔ)句,則在f函數(shù)的說(shuō)明中,對(duì)形參數(shù)組array的錯(cuò)誤
定義方式為(B)
inta[3][4];
f(a);
(A)f(intarray[][6])
(B)f(intarray[3][])
(C)f(intarray[][4])
(D)f(intarray[2][5])
21、若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說(shuō)法是()〃這個(gè)題目供選擇的答案中
都有不明確之處,書(shū)中給出的答案是A
(A)必須在主調(diào)函數(shù)中說(shuō)明此數(shù)組的大小〃如果數(shù)組是全局變量就不需要在主調(diào)函
數(shù)中說(shuō)明數(shù)組大小
(B)實(shí)參數(shù)組類(lèi)型與形參數(shù)組類(lèi)型可以不匹配〃什么叫匹配?只要能自動(dòng)轉(zhuǎn)換類(lèi)型數(shù)組
類(lèi)型就可以不相同
(0在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小〃只要使用數(shù)組的時(shí)候不會(huì)越界就不
必考慮它的大小
(D)實(shí)參數(shù)組名與形參數(shù)組名必須一致〃只有這個(gè)顯然是錯(cuò)的
22、折半查找法的思路是:先確定待查元素的范圍,將其分成兩半,然后測(cè)試位于中間點(diǎn)元
素的值。如果該待查元素的值大于中間點(diǎn)元素,就縮小待查范圍,只測(cè)試中點(diǎn)之后的元素;
反之,測(cè)試中點(diǎn)之前的元素,測(cè)試方法同前。函數(shù)binary的作用是應(yīng)用折半查找法從存有
10個(gè)整數(shù)的a數(shù)組中對(duì)關(guān)鍵字m進(jìn)行查找,若找到,返回其下標(biāo)值;反之,返回-1。請(qǐng)選擇
填空。0(A)@(B)
binary(inta[10],intm)
(
intlow=0,high=9,mid;
while(low<=high)
(
mid=(low+high)/2;
if(m<a[mid])①;
elseif(m>a[mid])②;
elsereturnmid;
)
return-1;
}
①(A)high=midT
(B)low=mid+1
(C)high=mid+l
(D)low=mid-l
②(A)high=mid-l
(B)low=mid+l
(C)high=mid+l
(D)low=midT
23、以下正確的說(shuō)法是(A)
如果在一個(gè)函數(shù)中的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量
(A)只在該復(fù)合語(yǔ)句中有效
(B)在該函數(shù)中有效
(0在本程序范圍內(nèi)均有效
(D)為非法變量
24、以下不正確的說(shuō)法為(D)
(A)在不同函數(shù)中可以使用相同名字的變量
(B)形式參數(shù)是局部變量
(0在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
(D)在函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效
25、以下程序的正確運(yùn)行結(jié)果是(D)
#defineMAX10
inta[MAX],i;
voidsub2()
inta[MAX],i,max;
max=5;
for(i=0;i<max;i++)a[i]=i;
)
voidsubl()
(
for(i=0;i<MAX;i++)a[i]=2*i;〃原題a[i]=i+l有錯(cuò),改為a[i]=2*i
)
voidsub3(inta[])
(
inti;
for(i=0;i<MAX;i++)printf(z,%d
printf(〃\n〃);
)
voidmain()
(
printf(〃\n〃);subl();sub3(a);sub20;sub3(a);
024681012141618
01234
(B)01234
024681012141618
(C)0123456789
01234
(D)024681012141618
024681012141618
26、以下程序的正確運(yùn)行結(jié)果是(C)
#include<stdio.h>
voidnum()
externintx,y;inta=15,b=10;
x=a-b;
y=a+b;
)
intx,y;
voidmainO
(
inta=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n〃,x,y);
(A)12,2
(B)不確定
(C)5,25
(D)1,12
27、凡是函數(shù)中未指定存儲(chǔ)類(lèi)別的局部變量,其隱含的存儲(chǔ)類(lèi)別為(A)
(A)自動(dòng)(auto)
(B)靜態(tài)(static)
(C)外部(extern)
(D)寄存器(register)
28、在一個(gè)C源程序文件中,若要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則
該變量需要使用的存儲(chǔ)類(lèi)別是(D)
(A)extern
(B)register
(C)auto
(D)static
29、以下程序的正確運(yùn)行結(jié)果是(D)
voidmain()
(
inta=2,i;
for(i=0;i<3;i++)printf("%4d”,f(a));
)
f(inta)
(
intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
(A)777
(B)71013
(C)7911
(D)789
30、以下程序的正確運(yùn)行結(jié)果是(A)
#include<stdio.h>
func(inta,intb)
(
staticintm=0,i=2;
i+=m+l;
m=i+a+b;
return(m);
)
voidmain()
intk=4,m=l,p;
p=func(k,m);printf(繪d,",p);
p=func(k,m);printf("%d\n",p);
)
(A)8,17
(B)8,16
(C)8,20
(D)8,8
二、填空題
31、C語(yǔ)言規(guī)定,可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是________。程序中的main。函數(shù)
32、在C語(yǔ)言中,一個(gè)函數(shù)一般由兩個(gè)部分組成,他們是和。函數(shù)說(shuō)明部
分函數(shù)體
33、若輸入的值是T25,以下程序的運(yùn)行結(jié)果是--125=-5*5*5
#include<stdio.h>
#include<math.h>
voidfun(intn)
(
intk,r;
for(k=2;k<=sqrt(n);k++)
(
r=n%k;
while(r=0)
(
printf(線(xiàn)d",k);
n=n/k;
if(n>l)printf-*");
r=n%k;
)
)
if(n!=l)printfC%d\n",n);
}
voidmain()
{
intn;
scanf&n);
printf("肌1=”,n);
if(n<0)printf
n=fabs(n);
fun(n);
)
34、下面add函數(shù)的功能是求兩個(gè)參數(shù)的和,并將和值返回調(diào)用函數(shù)。函數(shù)中錯(cuò)誤的部分是
;改正后為ovoidadd(floata,floatb)floatadd(floata,floatb)
voidadd(floata,floatb)
floatc;
c=a+b;
returnc;
)
35、以下程序的運(yùn)行結(jié)果是o
i=7;j=6;x=7
i=2;j=7;x=5
voidfun(inti,intj)
(
intx=7;
pirntf("i=%d;j=%d;x=%d\n,z,i,j,x);
)
voidmain()
(
inti=2,x=5,j=7;
fun(j,6);
printf("i=%d;j=%d;x=%d\n”,i,j,x);
)
36、以下程序的運(yùn)行結(jié)果是o111
voidincrement()
(
intx=0;
x+=l;
printf("%d",x);
)
voidmain()
(
increment();
increment();
increment();
}
37、以下程序的運(yùn)行結(jié)果是omaxis2
max(intx,inty)
(
intz;
z=(x>y)?x:y;
return(z);
)
voidmain()
inta=l,b=2,c;
c=max(a,b);
printf(〃maxis%d\n〃,c);
38、以下程序的功能是根據(jù)輸入的〃y〃(勺〃)與〃n〃(〃N〃),在屏幕上分別顯示出〃ThisisYES.〃
與"ThisisNO."。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
voidYesNo(charch)
(
switch(ch)
(
case'y':
case'Y':printf(,z\nThisisYES.\n〃);;break
case'n:
case'N':printf(z,\nThisisNO.\n");
)
)
voidmain()
(
charch;
printf(,z\nEnterachar'y','Y‘or'n','N':〃);
ch=;getchar()
printf(〃ch:%c〃,ch);
YesNo(ch);
)
39、以下Check函數(shù)的功能是對(duì)value中的值進(jìn)行四舍五入計(jì)算,若計(jì)算后的值與ponse值
相等,則顯示〃WELLDONE!!",否則顯示計(jì)算后的值。已有函數(shù)調(diào)用語(yǔ)句Check(ponse,value);
請(qǐng)?zhí)羁铡?/p>
voidCheck(intponse,floatvalue)
(
intval;
val=;(int)((value*10+5)/10)
printf(〃計(jì)算后的值:%d\val);
if()printfCXnWELLD0NE!!!\n〃);ponse==val
elseprintf(z,\nSorrythecorrectansweris%d\n/z,val);
)
40、以下程序的功能是o打印出所有“水仙花數(shù)”
#include<stdio.h>
f(intn)
(
inti,j,k;
i=n/100;j=n/10-i*10;k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)returnn;
elsereturn0;
)
voidmain()
(
intn,k;
printf("output");
for(n=100;n<1000;n++)
{
k=f(n);
if(k!=0)printfk)
)
printf(〃\n〃);
)
41、以下程序的功能是用二分法求方程2*x*x*x-4*x*x+3x-6=0的根,并要求絕對(duì)誤差不超過(guò)
0.001o請(qǐng)?zhí)羁?/p>
#include<stdio.h>
floatf(floatx){return2*x*x*x-4*x*x+3*x-6;}
voidmain()
(
floatm二TOO,n=90,r;
r=(m+n)/2;
while(f(r)*f(n)!=0)
(
if()m=r;f(r)*f(n)<0
elsen=r;
if(________)break;n_m<0.001
r=(m+n)/2;
)
printf(?,Theisfangchengjieis%6.3f\n〃,r);
)
42、若輸入一個(gè)整數(shù)10,以下程序的運(yùn)行結(jié)果是________。1010
sub(inta)
(
intc;
c=a%2;
returnc;
)
voidmain()
(
inta,e[10],c,i=0;
printf(“輸入一整數(shù)\n〃);
scanf&a);
while(a!=0)
c=sub(a);
a=a/2;
e[i]=c;
i++;
)
for(;i>0;i-)printfe[i-l]);
)
43、以下程序的功能是計(jì)算下面函數(shù)的值,請(qǐng)?zhí)羁铡?/p>
F(x,y,z)=sin(x)/(sin(x-y)*sin(x-z))+sin(y)/(sin(y-z)*sin(y-x))+sin(z)/(sin(z
-x)*sin(z-y))
#include<stdio.h>
#include<math.h>
floatf();
voidmain()
(
floatx,y,z,sum;
printf(z,\ninputx,y,z:\n〃);
scanf&x,&y,&z);
sum=________;f(x,x-y,x-z)+f(y,y-z,y-x)+f(z,z-x,z-y)
printf(〃sum=%f\n〃,sum);
)
floatf(floata,floatb,floatc)
(
floatvalue;
value=________;sin(a)/(sin(b)*sin(c))
returnvalue;
)
44、已有函數(shù)pow,現(xiàn)要求取消變量i后pow函數(shù)的功能不變。請(qǐng)?zhí)羁铡?/p>
修改前的pow函數(shù)
pow(intx,inty)
(
inti,j=l;
for(i=l;i<=y;++i)j=j*x;
returnj;
}
修改后的pow函數(shù)
pow(intx,inty)
(
intj;
for(;;)j=j*x;j=ly>=ly-
returnj;
}
45、以下程序的運(yùn)行結(jié)果是輸出如下圖形。請(qǐng)?zhí)羁铡?/p>
***
***
*
#include<stdio.h>
voida(inti)
(
intj,k;
for(j=0;j<=7-i;j++)printfC〃);
for(k=0;k<;k++)printf(〃*〃);2*i+l
printf(〃\n〃);
)
voidmain()
(
inti;
for(i=0;i<3;i++)________;a(i)
for(i=3;i>=0;i—);a(i)
)
46、以下程序的功能是求三個(gè)數(shù)的最小公倍數(shù),請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
max(intx,inty,intz)
(
if(x>y&&y>z)returnx;
elseif()returny;y>x&&y>z
elsereturnz;
)
voidmainO
(
intxl,x2,x3,i=l,j,xO;
printf(/zInput3number:/z);
scanf(/,%d%d%d,/,&xl,&x2,&x3);
xO=max(xl,x2,x3);
while(l)
(
j=xO*i;
if()break;j%xl=0&&j%x2==0&&j%x3==0
i=i+l;
)
printf("%d%d%d的最小公倍數(shù)是%d\n,z,xl,x2,x3,j);
47、函數(shù)gongyu的作用是求整數(shù)numl和num2的最大公約數(shù),并返回該值,請(qǐng)?zhí)羁铡?/p>
gongyu(intnuml,intnum2)
(
inttemp,a,b;
if(numl________num2)>
(
temp二numl;numl=num2;num2=temp;
)
a=numl;b=num2;
while()b!=0
(
temp=a%b;a=b;b=temp;
}
returna;
)
48、以下程序的運(yùn)行結(jié)果是o
(1)x=2y=3z=0
(2)x=4y=9z=5
(3)x=2y=3z=0
add(intx,inty,intz)
(
z=x+y;x=x*x;y=y*y;
printf("(2)x=%dy=%dz=%d\n”,x,y,z)
}
voidmain()
(
intx=2,y=3,z=0;
printf(,z(l)x=%dy=%dz=%d\nz/,x,y,z);
add(x,y,z);
printf(z,(3)x=%dy=%dz=%d\n,z,x,y,z);
)
49、下面函數(shù)pi的功能是:根據(jù)以下公式,返回滿(mǎn)足精度(0.0005)要求的人的值,請(qǐng)?zhí)羁铡?/p>
n/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+...
#include<conio.h>
#include<math.h>
#include<stdio.h>
doublepi(doubleeps)
(
doubles,t;intn;
for(____;t>eps;n++)n=l,s=0.0,t=l.0
s+=t;
t=n*t/(2*n+l);
)
return;2.0*s
)
voidmain()
(
doublex;
printf(,z\nPleaseenteraprecision:〃);
scanf&x);
printf(/z\neps=%lf,n二%lf”,x,pi(x));
)
50、下面是一個(gè)計(jì)算階乘的程序。程序中的錯(cuò)誤語(yǔ)句是________,應(yīng)改為一
把factoricl函數(shù)中的語(yǔ)句while(n>l||n<170)result*=(double)--n;
改為while(n>l&&n<170)result*=(double)n-;
#include"stdio.h〃
doublefactorial(int);
voidmainO
(
intn;
printf("Enteraninteger:〃);
scanf("%d〃,&n);
printf(z/\n\n%d[=%lg\n\nz,,n,factorial(n));
}
doublefactorial(intn)
(
doubleresult=l.0;
while(n>l|n<170)result*=(double)-n;
returnresult;
)
51、娥f中的形參a為一個(gè)10X10的二維數(shù)組,n的值為5,以下程序段的作用是.
計(jì)算5階幻方并保存在數(shù)組中下面的程序有錯(cuò)誤
17241815
23571416
46132022
101219213
11182529
voidf(inta[10][10],intn)
inti,j,k;
j=n/2+l;
a[l][j]=l;
i=l;
for(k=2;k<=n*n;k++)
{
i=i-l;j=j+l;
if(i<l)&&(j>n)){i=i+2;j=j-l;}
else
(
i=n;
if(j>n)j=l;
)
if(a[il[j]==0)a[i]Cjl-k;
else{i=i+2;j=j-i;a[i][j]=k;}
}
)
52、下面函數(shù)func的功能是.計(jì)算整數(shù)num的各位數(shù)字之積
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
longfunc(longnum)
(
longk=l;
num-labs(num);
do{
k*=num%10;
num/=10;
}while(num);
returnk;
)
voidmain()
(
longn;
printf("\nPleaseenteranumber:");
scanf&n);
printf("\nTheproductofitsdigitsis%ld.",func(n));
)
53、以下程序的運(yùn)行結(jié)果是.
FACT(5):120
FACT(l):1
FACT?0):Error!
#include<stdio.h>
voidmain()
(
printf(,ZFACT(5):%d\n,z,fact(5));
printf(^FACTd):%d\n〃,fact(1));
fact(-5);
)
fact(intvalue)
(
if(value<0){printf("FACT(<0):Error!\n〃);returnT;}
elseif(value==l|Ivalue-O)return1;
elsereturn(value*fact(value-1));
)
54、以下程序的功能是用遞歸方法計(jì)算學(xué)生的年齡,已知第一位學(xué)生年齡最小,為10歲,其
余學(xué)生一個(gè)比一個(gè)大2歲,求第5位學(xué)生的年齡。請(qǐng)?zhí)羁铡?/p>
遞歸公式如下:
age(n)=10(n=l)
age(n)=age(n-1)+2(n>l)
#include<stdio.h>
age(intn)
(
intc;
if(n==l)c=10;
elsec=____;age(n-1)+2
returnc;
)
voidmain()
(
intn=5;
printfC'age:%d\n,z,________);age(5)
)
55、下面程序的功能是,運(yùn)行結(jié)果是o計(jì)算斐波拉契級(jí)數(shù)第7項(xiàng)的值k=13
longfib(intg)
(
switch(g)
(
case0:return0;
case1:case2:return1;
returnfib(g-l)+fib(g-2);
}
voidmain()
(
longk;
k=fib(7);
printf("k=%d\n〃,k);
)
56、下面程序的運(yùn)行結(jié)果是o15
sub(intn)
(
inta;
if(n==l)return1;
a=n+sub(n-1);
returna;
)
voidmain()
(
inti=5;
printf(〃%d\n”,sub(i));
)
57、以下程序是應(yīng)用遞歸算法求某數(shù)a的平方根,請(qǐng)?zhí)羁?。求平方根的迭代公式如?
xl=(xO+a/xO)/2
#include<math.h>
doublemysqrt(doublea,doublexO)
{
doublexl,y;
xl=;(xO+a/xO)/2.0
if(fabs(xl-xO)>0.00001)y=mysqrt();a,xl
elsey=xl;
returny;
}
voidmain()
(
doublex;
printf(''Enterx:〃);scanf(,z%lf,z,&x);
printf(z,Thesqrtof%f=%f\n/z,x,mysqrt(x,1,0));
)
58、以下程序的運(yùn)行結(jié)果是o5109
#include<stdio.h>
voidf(inta[])
inti=0;
while(a[i]<=10)
(
printf("%d",a[i]);
i++;
)
)
voidmain()
|
inta[]={l,5,10,9,11,7);
f(a+l);
}
59、以下程序的運(yùn)行結(jié)果是osum=6
voidmain()
(
inta[3][3]={1,3,5,7,9,11,13,15,17};intsum;
sum=func(a);
printf(,z\nsum=%d\nzz,sum);
)
func(inta[][3])
(
inti,j,sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
(
a[i][j]=i+j;
if(i==j)sum=sum+a[i][j];
)
returnsum;
)
60、閱讀下面程序,完成下列問(wèn)題中的填空。
問(wèn)題(1)此程序在調(diào)用函數(shù)f后的運(yùn)行結(jié)果是________。
0123
-1012
-2-101
-3-2-10
(2)若將函數(shù)f中的for(j=i+1;j<4;j++)改為for(j=0;j++),則程序的運(yùn)
行結(jié)果是o
0-1-2-3
10-1-2
210-1
3210
voidf(ints[][4])
(
inti,j,k;
for(i=0;i<3;i++)
for(j=i+l;j<4;j++)
(
k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;
)
)
voidmain()
(
ints[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)s[i]
f(s);
for(i=0;i<4;i++)
(
printf("\n");
for(j=0;j<4;j++)
printf("%4d",s[i][j]);
)
)
61、納search函數(shù)的功能是利用順序查找法從數(shù)組a的10個(gè)元素中對(duì)關(guān)鍵字m進(jìn)行查找。
順序查找法的思路是:從第一個(gè)元素開(kāi)始,從前向后依次與關(guān)鍵字比較,直到找到此元素或
查找到數(shù)組尾部時(shí)結(jié)束。若找到,返回此元素的下標(biāo);若仍未找到,則返回值7。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
intsearch(inta[10],intm)
(
inti;
for(i=0;i<=9;i++)if()returni;a[i]=m
return-1;
)
voidmain()
(
inta[10],m,i,no;
no=search();a,m
if()printfC\nOKFOUND!%d”,no+1);no>=0
elseprintf("\nSorryNotFound!;
)
62、已定義一個(gè)含有30個(gè)元素的數(shù)組s,函數(shù)favl的功能是按順序分別賦予各元素從2開(kāi)
始的偶數(shù),函數(shù)fav2則按順序每五個(gè)元素求一個(gè)平均值,并將該值放在數(shù)組w中。請(qǐng)?zhí)羁铡?/p>
#defineSIZE30
voidfavl(floats[])
(
intk,i;
for(k=2,i=0;i<SIZE;i++)
(
s[i]=k
k+=2;
)
}
voidfav2(floats[],floatw口)
(
floatsum;intk,i;
sum=0.0;
for(k=0,i=0;i<SIZE;i++)
(
sum+=s[i];
if(i+l)%5=0
(
w[k]=sum/5;
;sum=0
k++;
)
)
}
voidmain()
(
floats[SIZE],w[SIZE/5],sum;inti,k;
favl(s);
fav2(s,w);
)
63、以下程序的運(yùn)行結(jié)果是________,其算法是________.-735710冒泡法排序
voidsort(inta口)
(
inti,j,t;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[j]>a[j+H){t=a[j];a[j]=a[j+l];a[j+l]^t;}
)
voidmain()
inta[5]={5,10,-7,3,7},i,t,j;
sort(a);
for(i=0;i<=4;i++)printfC%d,z,a[i]);
64、以下程序的運(yùn)行結(jié)果是,其算法是o-13689選擇法排序
voidsort(inta[])
(
inti,j,t,p;
for(j=0;j<4;j++)
(
P=j;
for(i=j;i<=4;i++)
if(a[i]<a[p])p=i;
t=a[p];a[p]=a[j]
voidmain()
(
inta[5]={9,6,8,3,-1),i,t,j,p;
sort(a);
for(i=0;i<=4;i++)printf(z,%d
)
65、函數(shù)del的作用是刪除有序數(shù)組a中的指定元素x。已有調(diào)用語(yǔ)句n=del(a,n,x);其中
實(shí)參n為刪除前數(shù)組元素的個(gè)數(shù),賦值號(hào)左邊的n為刪除后數(shù)組元素的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>
del(inta[],intn,intx)
{
intp,i;
P=0;
while(x>=a[p]&&p<n);p=p+l
for(i=p-l;i<n;i++);a[i]=a[i+l]
n=n-l;
returnn;
)
66、以下程序的運(yùn)行結(jié)果是。
11357
24268
101312
thevalueis31
#include<stdio.h>
func(intarray[][4],intm)
inti,j,k;
k=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)if(array[i][j]<m)k=k+array[i][j];
returnk;
)
voidmain()
(
staticinta[3][4]={{1,13,5,7},{2,4,26,8},{10,1,3,12)};
inti,j,m;
for(i=0;i<3;i++)
(
for(j=0;j<4;j++)printf(,z%4d,z,a[i][j]);
printfC\n,z);
)
m=10;
printf(,z\nthevalueis%d\n/z,func(a,m));
}
67、函數(shù)swap(intx,inty)可完成對(duì)x和y值的交換。在運(yùn)行調(diào)用函數(shù)中的如下語(yǔ)句后,
a[0]和a[l]的值分別為,原因是。a[0]=la[l]=2值傳送,無(wú)法返回交換
后的值
a[0]=1;a[1]=2;
swap(a[0],a[l]);
68、函數(shù)swap(arr,n)可完成對(duì)arr數(shù)組從第1個(gè)元素到第n個(gè)元素兩兩交換。在運(yùn)行調(diào)用
函數(shù)中的如下語(yǔ)句后,a[0]和a[l]的值分別為_(kāi)原因是__°a[0]=2a[1]=1實(shí)
參是地址值,已對(duì)指定地址中的內(nèi)容進(jìn)行了交換
a[0]=l;a[l]=2;
swap(a,2);
69、以下程序可計(jì)算10名學(xué)生1門(mén)課成績(jī)的平均分,請(qǐng)?zhí)羁铡?/p>
floataverage(floatarray[10])
(
inti;floataver,sum=array[0];
for(i=l;;i++)sum+=;i<10array[i]
aver=sum/10;
return(aver);
)
voidmain()
(
floatscore[10],aver;inti;
printf(〃\ninput10scores:");
for(i=0;i<10;i++)scanf&score[i]);
aver=;average(score)
printf(^Xnaveragescoreis%5.2f\n,\aver);
)
70、函數(shù)yahui能夠按以下形式構(gòu)成一個(gè)揚(yáng)輝三角形,請(qǐng)?zhí)羁铡?/p>
1
11
121
1331
14641
15101051
#defineN11
yahui(inta[][N])
(
inti,j;
for(i=l;i<N;i++){a[i][l]=l;a[i][i]=l;}
for(________;i<N;i++)i=3
for(j=2;;j++)a[i][j]=+a[i-l][j];j<=i-l
a[i-l][j-l]
)
71、下面程序的功能是:從鍵盤(pán)輸入一個(gè)整數(shù)m(4WmW20),則輸出如下的整數(shù)方陣(存入
二維數(shù)組aa)。例如,若輸入〃4〃和〃5〃,則分別輸出
169412516941
941161694125
411699412516
116944125169
1251694
請(qǐng)改正程序中的錯(cuò)誤語(yǔ)句,使它能得出正確的結(jié)果。改正后的語(yǔ)句是.______和
(注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)。)for(j=0;j<n-l;j++)
printf(,/%4d/,,(*(aa+i))[j];
#include<conio.h>
#include<stdio.h>
#defineM20
voidaMatrix(intn,intxx[][M])
(
inti,j;
for(j=0;j<n;j++)xx[0][j]=(n-j)*(n-j);
for(i=l;i<n;i++)
(
for(j=0;j<n;j++)/*錯(cuò)誤語(yǔ)句*/
xx[i][j]=xx[i-l][j+1];
xx[i][n-l]=xx[i-l][0];
}
voidmain()
(
intaa[M][M],i,j,m;
printf(,z\nPleaseenteranintegernumberbetween4and20:〃);
scanf(〃%d”,&m);
aMatrix(m,aa);
printf(z,\nThe%d*%dmatrixgenerated:〃,m,m);
for(i=0;i<m;i++)
(
printf(〃\n");
for(j=0;j<m;j++)
printf(*(aa+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024秋七年級(jí)數(shù)學(xué)上冊(cè) 第1章 豐富的圖形世界1.2 展開(kāi)與折疊 1正方體的展開(kāi)與折疊說(shuō)課稿(新版)北師大版
- 2024年基于云計(jì)算技術(shù)的商務(wù)智能軟件授權(quán)使用合同
- 2024光伏發(fā)電項(xiàng)目開(kāi)發(fā)與合作建設(shè)合同
- 04阿里巴巴集團(tuán)物聯(lián)網(wǎng)平臺(tái)建設(shè)與合作合同
- 2024年家電回收交易合同
- 2(2024版)智能交通系統(tǒng)設(shè)計(jì)與實(shí)施合同
- 2024年安全員崗位環(huán)境與健康安全合同
- 2024臺(tái)北市二手房買(mǎi)賣(mài)合同及其室內(nèi)設(shè)計(jì)定制服務(wù)協(xié)議
- 2023年棗莊市市中區(qū)西王莊鎮(zhèn)城鄉(xiāng)公益性崗位考試真題
- 2024商鋪?zhàn)赓U期間廣告位使用權(quán)合同
- 跨文化溝通心理學(xué)智慧樹(shù)知到期末考試答案2024年
- 婦產(chǎn)科臨床路徑分析:優(yōu)化醫(yī)療流程
- 2023四年級(jí)學(xué)生勞動(dòng)素養(yǎng)考試試題
- 《航空法規(guī)全》課件
- 電力電纜線(xiàn)路 電纜排管敷設(shè)(建筑電氣施工)
- 綜合實(shí)踐活動(dòng)課《早餐與健康》優(yōu)質(zhì)課件
- 爆破安全工作總結(jié)
- 物業(yè)保安、保潔項(xiàng)目投標(biāo)書(shū)
- 眼視光學(xué):專(zhuān)業(yè)職業(yè)生涯規(guī)劃
- 預(yù)防母嬰傳播培訓(xùn)
- 房屋改造方案可行性分析報(bào)告
評(píng)論
0/150
提交評(píng)論