第6章--函数

更新时间:2023-09-24 00:26:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.在C语言中,全局变量的存储类别是: A) static B) extern C) void D) register

2.C语言中,凡未指定存储类别的局部变量的隐含存储类别参传入,n的值

大于等于0。划线处应填________。 1 1 1 1 S=1 - ─ + ─ - ─ + … ─── 3 5 7 2n-1 是:

A) 自动(auto) B) 静态(static) C) 外部(extern) D) 寄存器(register)

3. 在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用

的全局变量,则该变量需要使用的存储类别是:________。 A) extern B) register C) auto D) static

4. 若有以下调用语句,则正确的fun函数首部是 main() { ∶ ∶

int a;float x; ∶ ∶ fun(x,a); ∶ ∶ }

A) void fun(int m,float x) B) void fun(float a,int x) C) void fun(int m,float x[]) D) void fun(int x,float a)

5. 有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是 A) 3 B) 4

C) 5 D) 有语法错误

6. 以下程序的运行结果是 。 #include main()

{ int k=4,m=1,p;

p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; }

A) 8,17, B) 8,17 C) 8,8 D) 4,1

7. 函数fun的功能是:根据以下公式计算并返回S,n通过形 float fun(int n)

{ float s=0.0,w,t,f=-1.0; int i;

for(i=0;i

w=f/(2*i+1); s+=w; } ____________; }

A) return (f) B) return (S) C) return (s) D) return (w)

8. 有如下程序

int func(int a,int b) { return(a+b); } main()

{ int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(\ }

该程序的输出结果是__________。 A) 12 B) 13 C) 14 D) 15

9. 以下函数返回a数组中最小值所在的下标,在划线处应 填入的是________。 fun( int a[],int n) { int i,j=0,p; p=j;

for(i=j;i

if(a[i]

A) i=p B) a[p]=a[i] C) p=j D) p=i

10. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;正确

的fun函数的首部应为________(要求形参名为b)。 main()

{ double s[10][22]; int n; ∶ ∶ fun(s); ∶

∶ }

A) void fun(double b[22]) B) void fun(double b[][22]) C) void fun(double b[][]) D) void fun(double b[22][])

11. 以下程序的输出结果是________。 void fun()

{ static int a=0; a+=2;

printf(\ } main() { int cc;

for(cc=1;cc<4;cc++) fun( ); printf(\ }

A) 2222 B) 2468 C) 222 D) 246

12. 以下程序的输出结果是 #include main()

{ char a[]=\ fun(a); puts(a); } fun( char s[]) { int x,y; char c;

for(x=0,y=(strlen(s)-1)/2; x

13. 以下程序的输出结果是________。 int d=1; fun( int p)

{ static int d=5; d+=p;

printf(\ return (d); } main()

{ int a=3; printf(\A) 6 11 11 B) 6 6 9 C) 6 12 12 D) 6 6 15

14. 下列程序的输出结果是________。 int t(int x,int y,int cp,int dp)

{ cp=x*x+y*y; dp=x*x-y*y; } main()

{ int a=4,b=3,c=5,d=6; t(a,b,c,d);

printf(\ %d\\n\ } A) 16 9 B) 4 3 C) 5 6 D) 25 9

15. 下列叙述中正确的是________。 A) C语言编译时不检查语法

B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义

D) C语言所有的函数都是外部函数

16. 以下所列的各函数首部中,正确的是________。A) void play(var a:Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b)

D) void play(a as integer,b as integer)

17. 以下程序的输出结果是 fun(int x,int y,int z) { z=x*x+y*y;} main() { int a=31; fun(5,2,a);

printf(\ }

A) 0 B) 29

C) 31 D) 无定值

18. 以下程序输出的结果是________。 long fun(int n) { long s;

if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } main()

{ printf(\A) 1 B) 2 C) 3 D) 4

19. 请读程序:

#include char fun(char c)

{ if (c<='Z' && c>='A') c-='A'-'a'; return (c); } main()

{ char s[81]; int k=0; gets(s); while(s[k])

{ s[k]=fun(s[k]); putchar(s[k]); k++;} putchar('\\n'); }

若运行时从键盘上输入 OPEN THE DOOR(表示回车),则上面程

序的输出结果是________。

A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door

20. 请读程序: #include f(int b[ ],int n) { int i,r; r=1;

for (i=0;i<=n;i++) r=r*b[i]; return r; } main()

{ int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,4);

printf(\ }

上面程序的输出结果是________。 A) 720 B) 120 C) 24 D) 6

21. 有以下程序

#inclde main()

{int k=4,m=1,p;

p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a,int b)

{ static int m=0,i=2; i=m+1; m=i+a+b; return(m); } 输出结果是________。 A) 6,6 B) 6,12 C) 6,8 D) 8,8

22. 以下程序的输出结果是________。 #include \ space(char str[ ]) {int i,t; char ts[81]; for(i=0,t=0;str[i]!= '\\0';i+=2)

if(!isspace(str[i]) && str[i]!= 'a') ts[t++]=toupper(str[i]); ts[t]= '\\0';

strcpy(str,ts); } main()

{char s[81]={ \ space(s); puts(s);}

A) abcdeg B) bcde C) ABCDE D) BCDE

23. 下面函数的功能是________。 sss(char s[ ],char t[ ]) { int i=0;

while( t[i]) { s[i]=t[i]; i++ ; } s[i]= '\\0'; } A) 求字符串的长度

B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中 D) 将字符串t复制到字符串s中

24. 下面函数的功能是________。 sss(char s[ ]) { int i=0;

while( s[i]) i++ ; return i; } A) 求字符串的长度

B) 比较两个字符串的大小 C) 将字符串s逆序存放 D) 功能无法确定

25. 设如下的函数

ggg(float x)

{printf(\则函数的类型________。

A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定

26. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递 方式是________。 A) 地址传递 B) 单向值传递

C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定

27. 在调用函数时,如果实参是数组名,它与对应形参之间的数据传递

方式是________。 A) 地址传递 B) 单向值传递

C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定

28. 以下函数fun形参的类型是________。 fun( float x) { float y; y=3*x-4; return y; }

A) int B) 不确定 C) void D) float

29. C语言中规定函数的返回值的类型是由________。 A) return语句中的表达式类型所决定

B) 调用该函数时的主调用函数类型所决定 C) 调用该函数时系统临时决定

D) 在定义该函数时所指定的类型所决定

30. 以下程序的输出结果是________。 func( int x) { int p;

if(x==0 || x==1) return (3); p=x-func(x-2); return p; } main( )

{ printf(\ } A) 7 B) 2 C) 0 D) 3

30. 阅读下面的程序: main()

{ int swap(); int a,b;

a=3;b=10; swap(a,b);

printf(\ swap(int a,int b) { int temp;

temp=a; a=b; b=temp; }

下面的说法中,正确的是________。

A) 在main()函数中调用swap()后,能使变量a和b的值交换 B) 在main()函数中输出的结果是:a=3,b=10

C) 程序第2行的语句int swap();是对swap()函数进行调用 D) swap()函数的类型是void

31. 下面函数的功能是________。 sss(char s[ ], char t[ ]) { int i=0;

while((s[i])&&(t[i])&&(t[i]== s[i])) i++; return (s[i]-t[i]);} A) 求字符串的长度

B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中

32. C语言中,若未说明函数的类型,则系统默认该函数的类型是________。

A) float型 B) long型 C) int型 D) double型

33. 以下程序是将输入的一个整数反序打印出来,例如,输入1234,则输出4321;输入-1234,则输出-4321,程序中划线处应分别填入________。 void printopp(long int n) {int i=0;

if(n==0) return; else

while(n)

{if(n>0||i==0) printf(\ else printf(\ i=1;

________; } } main( )

{ long int n; scanf(\ printopp(n); printf(\ }

A) n 和n=n/10 B) -n 和n=n/10 C) -n/10 和n=n D) n 和n/=10

34. 以下程序的功能是:求正整数n的各位之积,在划线处应填入________。 #include #include long func(long m) { long k=1; do

{ k*=m; m/=10; } while(________);

return (k); } main( )

{ long n; scanf(\ printf(\ } A) m B) m==0 C) m==0 D) m>=0

35. 以下程序的功能是求任意两个整数a和b的最大公约数,并予以显示,

程序的两划线处应分别填入________。 #include #include

long cod(long n1,long n2) { long t;

while(n2) {________; n1=n2;n2=t; } return ________; } main( )

{ long a,b,x;

printf(\ scanf(\ x=cod(a,b);

printf(\ } A) t=n1和n1 B) t=n2和n2

C) t=n1%n2和n1 D) t=n1%n2和n2

36. 以下程序的功能是计算并显示一个指定行数的杨辉三角形(形式如下),

应填入程序空缺处的正确选项是________。 #define N 15

void yanghui(int b[ ][N],int n) { int i,j;

for(i=0;________;i++) {b[i][0]=1;b[i][i]=1; } for(________;++i<=n; )

for(j=1;j

{ int a[N][N]={0},n;

printf(\ scanf(\ printf(\

yanghui(a,n); }

A) i

37. 下面的程序用来将一个十进制正整数转化成八进制数,

例如输入一个正整数25,则输出31,应填入划线处的选项是________。 #include main( )

{ int i=0,j=0,a,b[10 ]={0};

printf(\ sub(a,b);

for(;i<10;i++)

{if(________) j=1;

if(j!=0) printf(\ } } sub(int c,int d[ ]) { int e,i=9;

while(c!=0) { e=c%8; d[i]=e; _________; i--;} return ; }

A) b[i]==0和c/=8 B) b[i]==0和c=e/8 C) b[i]!=0和c/=8 D) b[i]!=0和c=e/8

本文来源:https://www.bwwdw.com/article/qgzd.html

Top