C習題函數(shù)部分_第1頁
C習題函數(shù)部分_第2頁
C習題函數(shù)部分_第3頁
C習題函數(shù)部分_第4頁
C習題函數(shù)部分_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、函數(shù)一、選擇題1以下說法中錯誤的是AC程序中可以只包含一個main函數(shù)_。BC程序由一個main函數(shù)和若干其它函數(shù)構成CC程序中可以沒有main函數(shù),但至少包含一個其他函數(shù)DC程序由函數(shù)組成,函數(shù)是構成程序的基本單位2以下說法中正確的是_。Amain函數(shù)和其他函數(shù)間可相互調(diào)用Bmain函數(shù)可以調(diào)用其他函數(shù),但其他函數(shù)不能調(diào)用main函數(shù)C因為main函數(shù)可不帶參數(shù),所以其后的參數(shù)小括號能省略D根據(jù)情況可以不寫main函數(shù)3以下正確的函數(shù)首部定義形式是_。 Adouble fun(int x,int y) Bdouble fun(int x; int y) Cdouble fun(int x,

2、int y); Ddouble fun(int x,y);4C語言規(guī)定,函數(shù)返回值的類型是由_。A return語句中的表達式類型所決定 B在定義該函數(shù)時所指定的函數(shù)類型所決定C調(diào)用該函數(shù)時系統(tǒng)臨時決定 D 調(diào)用該函數(shù)時的主調(diào)函數(shù)類型所決定5在C語言程序中,以下正確的描敘是_。A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套C函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套D函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套6以下正確的說法是_。A用戶若需調(diào)用標準庫函數(shù),調(diào)用前必須重新定義B用戶若需調(diào)用標準庫函數(shù),調(diào)用前不必使用預編譯命令將函數(shù)所在文件包括到用戶源文件中,系統(tǒng)自動去調(diào)C

3、系統(tǒng)根本不允許用戶重新定義標準庫函數(shù)D用戶可以重新定義標準庫函數(shù),若如此,該函數(shù)將失去原有含義7以下所列的各函數(shù)原型中,正確的是_。Avoid abc(var a:intergervar b:interger) Bvoid abc(int a,b)Cvoid abc(int a,int b) Dsub abc(a as interger,a as interger)8在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是_。A地址傳遞 B單向值傳遞C由實參傳給形參,再由形參傳給實參 D傳遞方式由用戶指定9在C語言中,以下正確的說法是_。A實參和與其對應的形參各占用獨立的存儲單元B實

4、參和與其對應的形參共占用一個存儲單元C只有當實參和與其對應的形參同名時才共占用存儲單元D形參是虛擬的,不占用存儲單元10下面函數(shù)調(diào)用語句含有實參的個數(shù)為_。func( (expl,exp2),(exp3,exp4,exp5) );A l B2 C4 D 511以下程序的輸出結果是_。fun(int x,int y,int z) z=x*x+y*y;main()int a=3l;fun(5,2,a);printf(“d”,a); A 0 B29 C3l D無定值11以下程序的輸出結果是_。int a,b,void fun() a=100;b=200;main() int a=5,b=7;fun(

5、);printf(ddn”,a,b);A 100 200 B5 7 C200 100 D 7 512以下程序的輸出結果是_。int d=1;fun(int p)int d=5;d+=p+;printf(“%d”,d);main() int a=3; fun(a);d+=a+;printf(“dn”,d);A 8,4 B9,6 C9,4 D 8,513以下不正確的說法為_。A在不同函數(shù)中可以使用相同名字的變量 B形式參數(shù)是局部變量C在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D在函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效14若用數(shù)組名作為函數(shù)調(diào)用的實參,傳遞給形參的是_。A數(shù)組的首地址 B數(shù)組第一

6、個元素的值C數(shù)組中全部元素的值 D數(shù)組元素的個數(shù)15已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對形參數(shù)組array的錯誤定義方式為_。int a34; f(a); Af(int array6) Bf(int array3) Cf(int array4) Df(int array25)16在C語言中,函數(shù)的隱含存儲類型是_。Aauto Btatic Cextern D無存儲類型17以下程序的輸出結果為_。main()int a=5;fun(a);printf(“n”);fun(int b) if(b>0) fun(b-1);printf(“d”,b);)A 5 4 3 2 l

7、B0 1 2 3 4 5 Cl 2 3 4 5 D 5 4 3 2 1 018以下程序的輸出結果是_。#include<stdio-h>f(int a) int b=0;static c=3;a=c+,b+;return a;main()int a=2,i,k;for(i=0;i<2;i+)k=f(a+);printf(%d”,k);A 3 B 0 C5 D 4二、填空題1C語言規(guī)定,可執(zhí)行程序的開始執(zhí)行點是 。 main函數(shù)開始2C語言中,函數(shù)的定義由函數(shù)首和_兩部分組成。函數(shù)體3.函數(shù)實參傳遞到形參有兩種方式_和_。4C語言允許函數(shù)值類型缺省定義,此時該函數(shù)值隱含的類型是

8、_。 int 5定義變量可以在函數(shù)的內(nèi)部,也可以在函數(shù)的外部,在函數(shù)外部定義的變量一般稱為_變量 全局6若自定義函數(shù)要求返回一個值,則在該函數(shù)體中應有一條_語句;若自定義函數(shù)要求不返回值,則應在該函數(shù)說明時加一個類型說明符_。return void7函數(shù)形參的作用域_,全局的外部變量與函數(shù)體內(nèi)定義的局部變量同名時,在函數(shù)體內(nèi),_變量起作用。整個函數(shù)體內(nèi) 局部8靜態(tài)局部變量的作用域_。定義它的函數(shù)或復合語句內(nèi)部9下面add函數(shù)的功能是求兩個參數(shù)的和,并將和值返回調(diào)用函數(shù)。函數(shù)中錯誤的部分是 _;改正后為_。 void float void add (float a,float b) float

9、c;c=a+b;return c; 10.在一個函數(shù)內(nèi)部調(diào)用另一個函數(shù)的調(diào)用方式稱為_。在一個函數(shù)內(nèi)部直接或間接調(diào)用該函數(shù)稱為函數(shù)_的調(diào)用方式。嵌套 遞歸11.C語言變量按其作用域分為_和_。按其生存期分為_和_。局部變量 全局變量 動態(tài)存儲變量 靜態(tài)存儲變量12.C語言變量的存儲類別有_、_、_和_。auto static register extern13.被調(diào)用函數(shù)執(zhí)行結束時,此函數(shù)中定義的_類型的變量不被釋放。靜態(tài)或static14.靜態(tài)型外部變量的作用域是 _。源程序文件15.在一個C程序中,若要定義一個只允許本文件中函數(shù)使用的全局變量,則該變量需要定義的存儲類別為_。static1

10、6.變量賦初值可以在兩個階段,即_和_。編譯階段 運行階段三、程序閱讀1分析下列程序,寫出運行結果_。15int fun(int a,int b) return(a+b);main()int x=2,y=5,z=8,r;r=fun(fun(x,y),z);printf(“dn”,r);2.以下程序的運行結果是 (4) 。i=2,j=7,x=5 i=7,j=6,x=7mian() int i=2,x=5,j=7;fun(j,6);printf(“i=d;j=d;x=dn”,i,j,x);fun(int i,int j) int x=7;printf(“i=d;j=d;x=dn”,i,j,x);3

11、.分析下列程序,寫出運行結果_。 64 #include “stdio.h”main()int x,n;long p,pw();x=2;n=6;p=pw(x,n);printf(“%ld”,p);long pw(int x,int n)int i,p=1for(i=0;i<n;i+) p*=x;return(p);4以下程序的運行結果是_. A+B=9 int a=5;int b=7; main() int a=4,b=5,c; c=plus(a,b); printf("A+B=%dn",c); plus(int x,int y) int z; z=x+y; retu

12、rn(z); 5. 分析下列程序,寫出運行結果_。 8 #include “stdio.h”int abc( );main()int a=24,b=16,c;c=abc(a,b);printf(“%dn”,c);int abc(int x,int y)int t;while(y)t=x%y;x=y;y=t;6. 分析下列程序,寫出運行結果_。 84 int d=1;fun( int p)int d;d+=p+;printf(“%d”,d);main()int a=3;fun(a);d+=a+;printf(“%dn”,d);7. 分析下列程序,寫出運行結果_。4 long fib( int n

13、) if(n>2) return(fib(n-1)+fib(n-2);else return (2);main()printf(“%dn”,fib(3);8. 分析下列程序,寫出運行結果_。1long fun( int n) long s;if(n=1|n=2) s=2else s=n-fun(n-1); return s;main()printf(“%dn”,fun(3);9. 分析下列程序,寫出運行結果_。 3600 int w=3;main()int w=10;printf(“%dn”,fun(5)*w);fun(int k)if(k=0) return w;return (fun

14、(k-1)*k);10. 分析下列程序,寫出運行結果_。 6 15 15 int d=1;fun(int p)static int d=5;d+=p; printf(“%d”,d);return(d);main()int a=3;printf(“%dn”,fun(a+fun(d);11. 分析下列程序,寫出運行結果_。 9 f( int a)int b=0; static int c=3;b+;c+;return (a+b+c);main()int a=2,i;for(i=0;i<3;i+)printf(“%d”,f(a);12. 分析下列程序,寫出運行結果_。 sum=55#inclu

15、de “stdio.h”int isum(int b)int s,i;s=i=0;while(bi!=-999)s=s+bi+;return(s);main()static int a=1,2,3,4,5,6,7,8,9,10,-999;printf(“sum=%dn”,isum(a);13. 分析下列程序,寫出運行結果_。81fun(int a5)int i;for(i=1;i<5;i+) ai=ai-1*3;main()int a5=1;fun(a);printf(“%dn”,a4);14.下面程序的輸出結果_。 3,4 main() static int a=1,2,3,4; in

16、t i, j=2; for(i=l;i<3;i+) f1(a); j+; printf(“d,dn”,a0,j); fl(int a4) int i ,j=l; for(i=l;i<4;i+) ai-l=ai; j+;15.以下程序的運行結果是_。 , 其算法是_。-737510 冒泡排序main() int a5=5,10,-7,3,7,i,t,j; sort(a); for(i=0;i<=4;i+)printf(“d”,ai);sort(inta) int i,j,t; for(i=0;i<4;i+) for(i=0;j<4-i;j+) if(aj>aj

17、+l t=-aj;aj=aj+1;aj+1=t; 16.以下程序的運行結果是_ ,其算法是_。 -13689 選擇排序 main()int a5=9,6,8,3,一1,i,t,j,p;sort(a);for(i=0;i<=4;i+)printf(“d”,ai);sort(inta) int i,j,t,p; forr(j=0;j<4;j+) p=j; for(i=j;i<=4;i+) if(ai<ap) p=i; t=ap; ap=aj; aj=t; 17. 分析下列程序,寫出運行結果_。s=-9#define N 3int fun(int aNN)main()int

18、aNN=1,-2,-5,-1,2,5,-4,4,3,s;s=fun(a);printf(“s=%dn”,s);int fun(int aNN)int i,j,sum=0;for(i=0;i<N;i+) for(j=0;j<N;j+) if(aij<i+j) sum=sum+aij;四、程序填空1.函數(shù)gongyu的作用是求整數(shù)num1和num2的最大公約數(shù),并返回該值。請?zhí)羁铡?gongyu(int num1,int num2) int temp,a,b; if(num1(_) num2) < temp=num1;num1=num2;num2=temp; a=num1;

19、b=num2; while(_) b!=0 temp=a%b;a=b;b=temp; return(a);2.下面程序的功能是在fun函數(shù)中計算20個學生的平均成績,返回主函數(shù)輸出,請?zhí)羁?。xi return(ave ) fun(a,20)float fun ( float x , int num)int i;float ave ,s=0;for(i=0;i<num;i+) s+=_ave=s/num;_#include <stdio.h>main()float a20,t;int i,n;for(i=0;i<20;i+) scanf(“%f”,&t); ai=

20、t;printf(“average=%fn”,_)3.以下函數(shù)是求x的y次方,請?zhí)羁铡?double fun(double x,double y) int x;double z=10; for(i=1; (1) ;i+) i<=y z= (2) ; z*x return z;4.下面程序的功能是:第一個數(shù)是1,從地二個數(shù)起每個數(shù)都是它的前一項加5,求第n個數(shù)是多少?請?zhí)羁眨╪從鍵盤輸入,用遞歸的方法實現(xiàn)該算法)1 add(n-1) add(n)#include <stdio.h>long add(int n)long m;if(n=1) m=_else m=5+_;retur

21、n (m);main()long m;int n;scanf(“%d”,&n);m=_printf(“%ldn”,m);5.下面程序的功能是用函數(shù)的遞歸調(diào)用求1!+2!+3!+4!+.+10!,請?zhí)羁?。n*f(n-1) 0 f(i)#include <stdio.h>long f (int n)if(n=1 );return(1);else return (_)main()int i=1;long s;s=_while(i<=10)s+=_;i+;printf(“%ld”,s);6.函數(shù)acopy將整型數(shù)組a的內(nèi)容逆序復制到整型數(shù)組b中(-999為數(shù)組的結束標志),請

22、填空。int a ,int b bj=ai bi+#include <stdio.h>void acopy(_)int i=0;j=0;while(aj!=-999) j+;bj=aj;j-;while(ai!=-999)_;i+;j-;main()static int a=1,3,5,7,9,2,4,6,7,10,-999;int b20,i=0;acopy(a,b);while(bi!=-999)printf(“%3d”,_);7.下面程序是將字符串str的字符按相反的次序存放,請?zhí)羁铡?#include<stringh> void invert(char str)

23、 int i,j,k; for(i=0,j= (1) ;i<j;i+,j-) strlen(str)-1 k=str i; (2) ;strj=k; stri=strj五、編程1.請編寫函數(shù)fun,函數(shù)的功能是:根據(jù)以下公式計算s,計算結果作為函數(shù)值返回;n通過形參傳入。S=1+1/(1+2)+1/(1+2+3)+、+1/(1+2+3+、+n)float fun( int n ) int I ,j,t=0;for( i=1;i<=n;i+) t+=i ; s=s+1.0/t; return s ;2編寫一個函數(shù),重復打印給定的字符n次。#include “stdio.h”#defi

24、ne N 10main()int i;char c;printf(“Enter a character:”);c=getchar();for(i=0;i<N;i+)printf(“%c”,c);3.編寫一個函數(shù)求出一個正整數(shù)的所有因子。如72=2*2*2*3*3#include “stdio.h”void factors(int number)int i,factor; for(i=2;i<=number;i+) if(number%2=0) factor=i; break; printf(“%d *”,factor);if(number!=i)number=number/i;fa

25、ctors(number);else for(i=0;i<2;i+) putchar(b);putchar();main()int a;printf(“please enter a numbern”);scanf(“%d”,&a);printf(“%d=”,a);factors(a);4試編程求S的值。要求在主函數(shù)中輸入n (n的值大于等于0),輸出結果S.功能函數(shù)void fun(float *sn, int n)用來計算S,計算結果通過形參指針sn傳回,n的值通過參數(shù)傳入。S的計算公式如下所示: # include <stdio.h>void fun( float

26、 *sn, int n) float s=0.0, w, f=-1.0; int i=0; for(i=0; i<=n; i+) f=1* f; w=f/(2*i+1); s+=w; *sn =s; void main() float s; int n; scanf(“%d”,&n);fun(&s,n); printf(“s=%d”,s); 5.編寫函數(shù)打印乘法口訣表。void fun( int n)int i;for(i=1;i<=n;i+) printf(“%d*%d=%2d”,n,i,n*i);printf(“n”);main() int n;for(n=1;

27、n<=9;n+) fun(n);6.通過函數(shù)調(diào)用方式將一個十進制數(shù)轉(zhuǎn)換成相應的二進制數(shù)。#include “stdio.h”int i=0void change(int a,int b)while(a!=0) bi=a%2;a=a/2; i=i+1;main()int a,b16,j;scanf(“%d”,&a);change(a,b);for(j=i-1;j>=0;j-)printf(“%d”,bj);7寫一個函數(shù),將兩個字符串聯(lián)接。char concatenate(char string1,char string2,char string) int I,j; for(I=0;string1I!=0;I+) stringI=string1I; for(

溫馨提示

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

評論

0/150

提交評論