函數(shù)習(xí)題及答案_第1頁(yè)
函數(shù)習(xí)題及答案_第2頁(yè)
函數(shù)習(xí)題及答案_第3頁(yè)
函數(shù)習(xí)題及答案_第4頁(yè)
函數(shù)習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PagePAGE8ofNUMPAGES10函數(shù)習(xí)題一.選擇題1.以下正確的說法是B。A)用戶若需要調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),調(diào)用前必須重新定義B)用戶可以重新定義標(biāo)準(zhǔn)庫(kù)函數(shù),如若此,該函數(shù)將失去原有定義C)系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫(kù)函數(shù)D)用戶若需要使用標(biāo)準(zhǔn)庫(kù)函數(shù),調(diào)用前不必使用預(yù)處理命令將該函數(shù)所在的頭文件包含編譯,系統(tǒng)會(huì)自動(dòng)調(diào)用。2.以下正確的函數(shù)定義是D。A)doublefun(intx,inty)B)doublefun(intx,y){z=x+y;returnz;}{intz;returnz;}C)fun(x,y)D)doublefun(intx,inty){intx,y;doublez;{doublez;z=x+y;returnz;}returnz;}3.以下正確的說法是D。A)實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元B)實(shí)參和與其對(duì)應(yīng)的形參共占用一個(gè)存儲(chǔ)單元C)只有當(dāng)實(shí)參和與其對(duì)應(yīng)的形參同名時(shí)才共占用相同的存儲(chǔ)單元D)形參時(shí)虛擬的,不占用存儲(chǔ)單元4.以下正確的函數(shù)聲明是C。A)doublefun(intx,inty)B)doublefun(intx;inty)C)doublefun(intx,inty);D)doublefun(intx,y)5.若調(diào)用一個(gè)函數(shù),且此函數(shù)中沒有return語句,則正確的說法是D。A)該函數(shù)沒有返回值B)該函數(shù)返回若干個(gè)系統(tǒng)默認(rèn)值C)能返回一個(gè)用戶所希望的函數(shù)值D)返回一個(gè)不確定的值6.以下不正確的說法是B。A)實(shí)參可以是常量,變量或表達(dá)式B)形參可以是常量,變量或表達(dá)式C)實(shí)參可以為任意類型D)如果形參和實(shí)參的類型不一致,以形參類型為準(zhǔn)7.C語言規(guī)定,簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)的形參之間的數(shù)據(jù)傳遞方式是B。A)地址傳遞B)值傳遞C)有實(shí)參傳給形參,再由形參傳給實(shí)參D)由用戶指定傳遞方式8.C語言規(guī)定,函數(shù)返回值的類型是由D決定的。A)return語句中的表達(dá)式類型B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型C)調(diào)用該函數(shù)時(shí)由系統(tǒng)臨時(shí)D)在定義函數(shù)時(shí)所指定的函數(shù)類型9.以下正確的描述是B。A)函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B)函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C)函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套D)函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套10.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是A。A)數(shù)組的首地址B)數(shù)組中第一個(gè)元素的值C)數(shù)組中的全部元素的值D)數(shù)組元素的個(gè)數(shù)11.如果在一個(gè)函數(shù)中的復(fù)合語句中定義了一個(gè)變量,則該變量A。A)只在該復(fù)合語句中有定義B)在該函數(shù)中有定義C)在本程序范圍內(nèi)有定義D)為非法變量12.以下不正確的說法是D。A)在不同函數(shù)中可以使用相同名字的變量B)形式參數(shù)是局部變量C)在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有定義D)在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有定義13.以下不正確的說法是B。A)形參的存儲(chǔ)單元是動(dòng)態(tài)分配的B)函數(shù)中的局部變量都是動(dòng)態(tài)存儲(chǔ)C)全局變量都是靜態(tài)存儲(chǔ)D)動(dòng)態(tài)分配的變量的存儲(chǔ)空間在函數(shù)結(jié)束調(diào)用后就被釋放了14.下面程序的輸出是A。(不同的編譯系統(tǒng)可能有不同的結(jié)果,6,3,2)inti=2;printf(“%d%d%d”,i*=2,++i,i++);A)8,4,2B)8,4,3C)4,4,5D)4,5,615.已知一個(gè)函數(shù)的定義如下:doublefun(intx,doubley){……}則該函數(shù)正確的函數(shù)原型聲明為:CA)doublefun(intx,doubley)B)fun(intx,doubley)C)doublefun(int,double);D)fun(x,y);16關(guān)于函數(shù)聲明,以下不正確的說法是C。A)如果函數(shù)定義出現(xiàn)在函數(shù)調(diào)用之前,可以不必加函數(shù)原型聲明B)如果在所有函數(shù)定義之前,在函數(shù)外部已做了聲明,則各個(gè)主調(diào)函數(shù)不必再做函數(shù)原型聲明C)函數(shù)再調(diào)用之前,一定要聲明函數(shù)原型,保證編譯系統(tǒng)進(jìn)行全面的調(diào)用檢查D)標(biāo)準(zhǔn)庫(kù)不需要函數(shù)原型聲明17.以下不正確的說法是D。A)全局變量,靜態(tài)變量的初值是在編譯時(shí)指定的B)靜態(tài)變量如果沒有指定初值,則其初值為0C)局部變量如果沒有指定初值,則其初值不確定D)函數(shù)中的靜態(tài)變量在函數(shù)每次調(diào)用時(shí),都會(huì)重新設(shè)置初值18.以下不正確的說法是B。A)register變量可以提高變量使用的執(zhí)行效率B)register變量由于使用的是CPU的寄存器,其數(shù)目是有限制的C)extern變量定義的存儲(chǔ)空間按變量類型分配D)全局變量使得函數(shù)之間的“耦合性”更加緊密,不利于模塊化的要求二.填空題1.C語言函數(shù)返回類型的默認(rèn)定義類型是int。2.函數(shù)調(diào)用語句:fun((a,b),(c,d,e))實(shí)參個(gè)數(shù)為2。3.函數(shù)的實(shí)參傳遞到形參有兩種方式:值傳遞和地址傳遞。4.在一個(gè)函數(shù)內(nèi)部調(diào)用另一個(gè)函數(shù)的調(diào)用方式稱為嵌套調(diào)用。在一個(gè)函數(shù)內(nèi)部直接或間接調(diào)用該函數(shù)自身成為函數(shù)遞歸的調(diào)用方式。5.C語言變量按其作用域分為外部變量和內(nèi)部變量。按其生存期分為全局變量和局部變量。6.已知函數(shù)定義:voiddothat(intn,doublex){……},其函數(shù)聲明的兩種寫法為voiddothat(intn,doublex);和voiddothat(int,double);。7.C語言變量的存儲(chǔ)類別有auto,extern,register和static。8.凡在函數(shù)中未指定存儲(chǔ)類別的局部變量,其默認(rèn)的存儲(chǔ)類別為auto。9.在一個(gè)C程序中,若要定義一個(gè)只允許本源程序文件中所有函數(shù)使用的全局變量,則該變量需要定義的存儲(chǔ)類別為static。10.變量被賦初值可以分為兩個(gè)階段:即編譯階段和運(yùn)行階段。三.程序閱讀題1.寫出下面程序的運(yùn)行結(jié)果。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p1,p2;p1=func(k,m);p2=func(k,m);printf(“%d,%d\n”,p1,p2);}8,172.寫出下面程序的運(yùn)行結(jié)果。#defineMAX10inta[MAX],i;sub1(){for(i=0;i<MAX;i++)a[i]=i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<MAX;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf(“%d”,a[i]);printf(“\n”);}main(){sub1();sub3(a);sub2();sub3(a);}0246810121416180246810121416183.若輸入的值是-125,寫出下面程序的運(yùn)行結(jié)果。#include<math.h>fun(intn){intk,r;for(k=2;k<=sqrt(n);k++){r=n%k;while(!r){printf(“%d”,k);n=n/k;if(n>1)printf(“*”);r=n%k;}}if(n!=1)printf(“%d\n”,n);}main(){intn;scanf(“%d”,&n);printf(“%d=”,n);if(n<0)printf(“-”);n=fabs(n);fun(n);}-125=-5*5*54.寫出下面程序的運(yùn)行結(jié)果。inti=0;fun1(inti){i=(i%i)*(i*i)/(2*i)+4;printf(“i=%d\n”,i);return(i);}fun2(inti){i=i<=2?5:0;return(i);}main(){inti=5;fun2(i/2);printf(“i=%d\n”,i);fun2(i=i/2);printf(“i=%d\n”,i);fun2(i/2);printf(“i=%d\n”,i);fun1(i/2);printf(“i=%d\n”,i);}i=5i=2i=2i=4i=25.寫出下面程序的功能。func(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;return0;}main(){intn,k;for(n=100;n<1000;n++)if(k=func(n))printf(“%d”,k);}153370371407四.程序判斷題1.下面add函數(shù)求兩個(gè)參數(shù)的和;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。voidadd(inta,intb)改為int{intc;c=a+b;return(c);}2.下面函數(shù)fun的功能是:將長(zhǎng)整型數(shù)中偶數(shù)位置上的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)返回,例如,當(dāng)s中的數(shù)為:87653142時(shí),則返回的數(shù)為:8642;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。longfun(longs){longt,sl=1;intd;t=0;while(s>0){d=s%10;if(d%2=0){改為==t=d*sl+t;sl*=10;}s\=10;}return(t);}3.下面函數(shù)fun的功能是:統(tǒng)計(jì)字符串s中各元音字母(即A,E,I,O,U)的個(gè)數(shù),注意:字母不分大,小寫;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。fun(chars[],intnum[5]){intk;i=5;for(k=0;k<i;k++)num[i]=0;for(k=0;s[k];k++){i=-1;switch(s){case‘a(chǎn)’:case‘A’:i=0;break;添加紅色部分case‘e’:case‘E’:i=1;break;case‘i’:case‘I’:i=2;break;case‘o’:case‘O’:i=3;break;case‘u’:case‘U’:i=4;break;}if(i>=0)num[i]++;}}4.函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值:判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。fun(intm){doubley=0,d;inti;for(i=100;i<=m;i+=100){d=(double)i*(double)I;改為iy+=1.0/d;}return(y);}5.下面函數(shù)fun的功能是:依次取出字符串中所有數(shù)字字符,形成新的字符串,并取代原字符串;判斷下面程序的正誤,如果錯(cuò)誤請(qǐng)改正過來。voidfun(chars[]){inti,j;for(i=0,j=0;s[i]!=’\0’if(s[i]>=’0’&&s[i]<=’9s[j]=s[i];改為s[j++]s[j]=”\0”}五.程序填空題1.下面函數(shù)用“折半查找法”從有10個(gè)數(shù)的a數(shù)組中對(duì)關(guān)鍵字m查找,若找到,返回其下標(biāo)值,否則返回-1,請(qǐng)?zhí)睿?)空使程序完整。經(jīng)典算法提示:折半查找法的思路是先確定待查元素的范圍,將其分成兩半,然后比較位于中間點(diǎn)元素的值。如果該待查元素的值大于中間點(diǎn)元素的值,則將范圍重新定義為大于中間點(diǎn)元素的范圍,反之亦反。intsearch(inta[10],intm){intx1=0,x2=0,mid;while(x1<=x2){mid=(x1+x2)/2;if(m<a[mid])【1x2=mid-1】;elseif(m>a[mid])【2x1=mid+1】;elsereturn(mid);}return(-1);}2.del函數(shù)的作用是刪除有序數(shù)組a中的指定元素x,n為數(shù)組a的元素個(gè)數(shù),函數(shù)返回刪除后的數(shù)組a元素個(gè)數(shù),請(qǐng)?zhí)?2)空使程序完整。intdel(inta[10],intn,intx){intp=0,i;while(x>=a[p]&&p<n)【1p++】;for(i=p-1;i<n-1;i++)【2a[i]=a[i+1]return(n-1);}3.以下程序的功能是計(jì)算函數(shù),請(qǐng)?zhí)?3)空使程序完整。#include<stdio.h>【1floatfun(floata,floatb)】;main(){floatx,y,z,f;scanf(“%f,%f,%f”,&x,&y,&z);f=fun(【2x+y,x-y】);f+=fun(【3z+y,z-y】);printf(“f=%d”,f);}floatfun(floata,floatb){return(a/b);}4.avg函數(shù)的作用是計(jì)算數(shù)組array的平均值返回,請(qǐng)?zhí)?3)空使程序完整。floatavg(floatarray[10]){inti;floatavgr,sum=0;for(i=1;【1i<10】;i++)sum+=【2array[i]】;avgr=sum/10;【3returnavgr】;}六.編程題1.寫兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù),并輸出結(jié)果,且兩個(gè)整數(shù)的輸入也在主函數(shù)。#include<stdio.h>intmax(intm,intn){intw;while(n){w=m%n;m=n;n=w;}returnm;}intmin(intm,intn){returnm*n/max(m,n);}main(){intm,n;scanf("%d,%d",&m,&n);printf("%d,%d\n",max(m,n),min(m,n));}2.寫一個(gè)判素?cái)?shù)的函數(shù),在主函數(shù)輸入一個(gè)數(shù),輸出是否為素?cái)?shù)的信息。#include<math.h>#include<stdio.h>intprime(intm){inti;for(i=2;i<=sqrt(m);i++) if(m%i==0) return0;return1;}main(){intm;scanf("%d",&m);if(prime(m))printf("%dis\n",m);elseprintf("%disnot\n",m);}3.寫一個(gè)函數(shù),使給定的一個(gè)二維數(shù)組(N×N)轉(zhuǎn)置,即行列互換。(N是不大于10的數(shù),由輸入決定)。(可不作)4.編寫一個(gè)fun函數(shù)voidfun(chars1[],chars2[]),將兩個(gè)字符串s1和s2連接起來存放在s1中。voidfun(chars1[],chars2[]){ inti,j; for(i=0;s1[i]!=’\0’for(j=0;(s1[i]=s2[j])!=’\0’}5.編寫一個(gè)fun函數(shù):longfun(chars[]),將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù))。例如,若輸入字符串“-1234”#include<ctype.h>longfun(chars[]){ inti,n,sign;for(i=0;isspace(s[i]);i++)/*skipwhitespace*/

溫馨提示

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

評(píng)論

0/150

提交評(píng)論