欢迎光临奥帕文库,如需获取更多资料请使用搜索功能。
奥帕文库
当前位置:首页 » 资格考试/认证 » IT认证 » 正文

C语言习题集合5(函数)

第五部分 函 数·1·第五部分 函 数5.1 选择题1. C 语言是由( )构成。

A. 主程序和子程序 B. 主函数和若干子函数 C. 一个主函数和一个其他函数 D. 主函数和子程序 2. 以下说法中正确的是( ) 。

A. C 语言程序总是从第一个的函数开始执行 B. 在 C 语言程序中,要调用的函数必须在 main()函数中定义 C. C 语言程序总是从 main()函数开始执行 D. C 语言程序中的 main()函数必须放在程序的开始部分 3. 以下对 C 语言函数的有关描述中,正确的是( ) 。

A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C 函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C 程序中有调用关系的所有函数必须放在同一个源程序文件中 4. C 语言程序中,当函数调用时( ) 。

A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元 5. 关于 return 语句,下列正确的说法是( ) 。

A. 在主函数和其他函数中均要出现 B. 必须在每个函数中出现 C. 可以在同一个函数中出现多次 D. 只能在除主函数之外的函数中出现一次 6. 一个函数返回值的类型是由( )决定的。

A. return 语句中表达式的类型 B. 在调用函数时临时指定 C. 定义函数时指定的函数类型 D. 调用该函数的主调函数的类型 7. 在 C 语言的函数中,下列正确的说法是( ) 。

A. 必须有形参 B. 形参必须是变量名 C. 可以有也可以没有形参 D. 数组名不能作形参 8. 以下描述正确的是( ) 。

A. 函数调用可以出现在执行语句或表达式中 B. 函数调用不能作为一个函数的实参

C语言习题集合5(函数)

第五部分 函 数·2·C. 函数调用可以作为一个函数的形参 D. 以上都不正确 9. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) 。

A. 地址传递 B. 单向值传递 C. 由实参传给形参,再由形参传回实参 D. 传递方式由用户指定 10.当调用函数时,实参是一个数组名,则向函数传送的是( ) 。

A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值 11.如果在一个函数的复合语句中定义了一个变量,则该变量( ) 。

A. 只在该复合语句中有效,在该复合语句外无效 B. 在该函数中任何位置都有效 C. 在本程序的源文件范围内均有效 D. 此定义方法错误,其变量为非法变量 12.下列说法不正确的是( ) 。

A. 主函数 main 中定义的变量在整个文件或程序中有效 B. 不同函数中,可以使用相同名字的变量 C. 形式参数是局部变量 D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 13.在一个源程序文件中定义的全局变量的有效范围是( ) 。

A. 本源程序文件的全部范围 B. 一个 C 程序的所有源程序文件 C. 函数内全部范围 D. 从定义变量的位置开始到源程序文件结束 14.以下叙述中不正确的是( ) 。

A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 15.如果要限制一个变量只能为本文件所使用,必须通过( )来实现。

A. 外部变量说明 B. 静态局部变量 C. 静态外部变量 D. 局部变量说明 16.下列哪种数据不存放在动态存储区中( ) 。

A. 函数形参变量 B. 局部自动变量 C. 函数调用时的现场保护和返回地址 D. 局部静态变量 17.以下叙述中不正确的是( ) 。

A. 函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B. 在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

C. 外部变量的隐含类别是自动存储类别。

D. 函数形参可以说明为 register 变量。

18.以下只有在使用时才为该类型变量分配内存的存储类说明是( ) 。

A. auto 和 static B. auto 和 register C. register 和 static D. extern 和 register 19.C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( ) 。

A. void B. int C. float D. double

C语言习题集合5(函数)

第五部分 函 数·3·20.在 C 语言中,函数的隐含存储类别是( ) 。

A. auto B. static C. extern D. 无存储类别 21.在 C 语言中,形参的缺省存储类是( ) 。

A. auto B. register C. static D. extern 22.若有以下程序 #include void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是( ) 。

A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明, 则在主函数和其后的其它函数中都可以正确调用 函数 f C. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用 void 将其类型定义为无值型 23.以下所列的各函数首部中,正确的是( ) 。

A. void play(var :Integer,var b:Integer) B. void play(int a,b) C. void play(int a,int b) D. Sub play(a as integer,b as integer) 24.有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是( ) 。

A. 3 B. 4 C. 5 D. 有语法错 25. 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参 的个数是( ) 。

A.3 B.4 C.5 D.6 26.以下函数值的类型是( ) 。

fun (float x) { float y; y= 3*x-4; return y; } A. int B. 不确定 C. void D. float 27.下列函数定义不正确的是( ) 。

A. int max() B. int max(x,y)

C语言习题集合5(函数)

第五部分 函 数·4·{int x,y,z; z=x>y?x:y; } C. int max(x,y) {int x,y,z; z=x>y?x:y; return(z); } 28.下列程序的运行结果是( ) 。

main() { int i=3; printf("%d,%d,%d\n",i,i++,i++); } A. 5,5,4 B. 3,4,5 29.以下程序的输出结果是( ) 。

fun(int x, int y, int z) { z=x*x+y*y; } main() { int a=31; fun(5,2,a); printf("%d",a); } A. 0 B. 29 30.下列程序执行后的输出结果是( ) 。

void func1(int i); void func2(int i); char st[]="hello,friend!"; void func1(int i) { printf("%c",st[i]); if(i<3){i+=2;func2(i);} } void func2(int i) { printf("%c",st[i]); if(i<3){i+=2;func1(i);} } main() { int i=0; func1(i);int x,y; { int z; z=x>y?x:y; return(z);} D. int max() { }C. 3,3,4D. 5,4,3C. 31D. 无定值

C语言习题集合5(函数)

第五部分 函 数·5·printf("\n"); } A. hello B. hel C. hlo 31.有如下程序 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("%d\n",r); } 该程序的输出的结果是( ) 。

A. 12 B. 13 C. 14 32.有以下程序 float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是( ) 。

A. 编译出错 B. 9 C. 21 33.有以下程序 #include "stdio.h" int abc(int u,int v); main () { int a=24,b=16,c; c=abc(a,b); printf("%d\n",c); } int abc(int u,int v) { int w; while(v) { w=u%v; u=v; v=w } return u; } 输出结果是( ) 。

A. 6 B. 7 C. 8D. hlmD. 15D. 9.0D. 9

C语言习题集合5(函数)

第五部分 函 数·6·34.阅读以下函数: fun(char s[],char t[]) { int i=-1; while(++i,s[i]==t[i]&&s[i]!=’\0’); return(s[i]==’\0’&&t[i]==’\0’); } 以上函数的功能是( ) 。

A. 比较串 s 和 t 的长度 B. 比较串 s 和 t 的大小 C. 比较串 s 和 t 是否相等 D. 将串 t 赋给串 s 35.以下程序的输出结果是( ) 。

f( int b[ ], int m, int n) { int i,s=0; for(i=m;i

void reverse(int a[ ],int n) { int i,t; for(i=0;i

A. 22 B. 10 C. 34 D. 30 37.请读程序: #include

C语言习题集合5(函数)

第五部分 函 数·7·func( int a, int b) { int c; c=a+b; return c; } main() { int x=6, y=7, z=8, r; r=func( (x--,y--,x+y),z--); printf("%d\n",r); } 上面程序的输出结果是( ) 。

A. 11 B. 19 C. 21 38.请读程序: #include f(in 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, 3); printf("%d\n",x); } 上面程序的输出结果是( ) 。

A. 720 B. 120 C. 24 39.下面程序的输出是( ) 。

main() { int t=1; fun(fun(t)); } fun(int h) { static int a[3]={1,2,3}; int k; for(k=0;k<3;k++) a[k]+=a[k]-h; for(k=0;k<3;k++) printf("%d",a[k]); printf("\n"); return(a[h]);D. 31D. 6

C语言习题集合5(函数)

第五部分 函 数·8·} A.1,2,3, B.1,3,5, 1,5,9, 1,3,5, 40.有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3)); } 该程序的输出结果是( )。

A. 2 B. 4 41.以下程序的输出结果是( ) 。

long fun( int n) { long s; if(n==1 || n==2) s=2; else s=n-fun(n-1); return s; } main() { printf("%ld\n", fun(3)); } A. 1 B. 2 42.以下程序的输出结果是( ) 。

func(int x) { int p; if(x==0||x==1) return(3); p=x-func(x-2); return p; } main() { printf("%d\n",func(9)); } A. 7 B. 2 43.有以下程序 int f(int n) {C. 1,3,5, 0,4,8,D. 1,3,5, -1,3,7,C. 6D. 8C. 3D. 4C. 0D. 3

C语言习题集合5(函数)

第五部分 函 数·9·if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( ) 。

A. 4 B. 3 44.下面程序的输出是( ) 。

int w=3; main() { int w=10; printf("%d\n",fun(5)*w); } fun(int k) { if(k==0) return w; return(fun(k-1)*k); } A. 360 B. 3600 45.以下程序的输出结果是( ) 。

#include "stdio.h" int i=5; main() { int i=3; { int i=10;i++;} f1(); i+=1; printf("%d\n",i); } int f1() { i=i+1; return(i); } A.7 B.4 46.以下程序的输出结果是( ) 。

int a, b; void fun()C. 2D. 1C. 1080D. 1200C.12D.6

C语言习题集合5(函数)

第五部分 函 数·10·{ a=100; b=200; } main() { int a=5, b=7; fun(); printf("%d%d\n", a,b); } A. 100200 B. 57 C. 200100 47.以下程序输出结果是( ) 。

main() { int i; for(i=0;i<2;i++) add(); } add() { int x=0;static int y=0; printf("%d,%d\n",x,y); x++; y=y+2; } A. 0,0 B. 0,0 C. 0,0 0,0 0,2 1,0 48.设有以下函数: 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\n",f(a)); } A. 7 B. 7 C. 7 8 9 10 9 11 13 49.以下程序的输出的结果是( ) 。

int x=3; main()D. 75D. 0,0 1,2D. 7 7 7

C语言习题集合5(函数)

第五部分 函 数·11·{ int i; for (i=1;i

A. 8 B. 10 51.下面程序的输出是( ) 。

fun3(int x) { static int a=3; a+=x; return(a); } main() { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d\n",n); } A. 3 B. 4 52.下面程序的输出是( ) 。

int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); } main()C. 26D. 25C. 7D. 11C. 6D. 9

C语言习题集合5(函数)

第五部分 函 数·12·{ int a=7, b=5; printf("%d\n",fun2(a,b)/m); } A. 1 B. 2 53.下列程序执行后输出的结果是( ) 。

#include 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\n",k); } A. 3 B. 0 54.下列程序执行后输出的结果是( ) 。

int d=1; fun (int p) { int d=5; d+=p++; printf("%d",d); } main( ) { int a=3; fun(a); d+=a++; printf("%d\n",d); } A. 84 B. 96 55.以下程序的输出结果是( ) 。

int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( )C. 7D. 10C. 5D. 4C. 94D. 85

C语言习题集合5(函数)

第五部分 函 数·13·{ int a=3; printf("%d \n",fun(a+fun(d))); } A. 6 9 9 B. 6 6 9C. 6 15 15D. 6 6 155.2填空题1. 下面程序的输出结果是 ________。

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 %d \n",c,d); } 2. 下面程序运行后的输出结果是________。

void fun(int x,int y) { x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y); } main() { int x=2,y=3; fun(x,y); printf(“%d,%d\n”,x,y); } 3. 下面程序的输出结果是________。

void fun() { static int a=0; a+=2; printf("%d",a); } main() { int cc; for(cc=1;cc<4;cc++) fun(); printf("\n"); }

C语言习题集合5(函数)

第五部分 函 数·14·4. 下面程序输出的最后一个值是________。

int ff(int n) { static int f=1; f=f*n; return f; } main() { int i; for(i=1;i<=5;i++) printf("%5d",ff(i)); } 5. 下面程序运行结果为________。

#include main() { int i; for(i=0;i<2;i++) as(); } as() { int lv=0; static int sv=0; printf("%d,%d\n",lv,sv); lv++;sv++; return; } 6. 下面程序的输出是________。

unsigned fun6( unsigned num) { unsigned k=1; do { k*=num%10; num/=10; } while(num); return(k); } main() { unsigned n=26; printf("%d\n", fun6(n)); } 7. 下面程序的输出结果是________。

#include

C语言习题集合5(函数)

第五部分 函 数·15·fun( int x) { int p; if( x==0||x==1) return(3); p=x-fun( x-2); return p; } main() { printf( "%d\n", fun(9)); } 8. 下面程序的输出是________。

long fun5(int n) { long s; if((n==1)||(n==2)) s=2; else s=n+fun5(n-1); return(s); } main() { long x; x=fun5(4); printf("%ld\n",x); } 9. 下面程序的输出是________。

#define MAX 5 int a[MAX],k; main() { fun1();fun3(); fun2(); fun3(); printf("\n"); } fun1() { for(k=0;k

C语言习题集合5(函数)

第五部分 函 数·16·fun3() { int k; for(k=0;k

#include main() { int k=4, m=1, p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d \n",p); } func(int a, int b) { static int m=0, i=2; i+=m+1; m=i+a+b; return m; } 11.下面程序运行结果是________。

main() { int x=2,n=3; printf("%d\n",power(x,n)); } power(int x,int n) { int p; if(n>0) p=power(x,n-1)*x; else p=1; return(p); } 12.下面程序从键盘输入:5647,输出结果是________。

#include void convert(int n) { int i; if((i=n/10)!=0) convert(i); putchar(n%10+’0’); } main() {

C语言习题集合5(函数)

第五部分 函 数·17·int number; scanf("%d",&number); if(number<0) { putchar(‘-’); number= -number; } convert(number); } 13.输入 I am a student.时,下面程序运行结果是________。

#include main() { int i,c,num=0,word=0; char string[81]; gets(string); for(i=0;c=string[i];i++) if(c==’ ’) word=0; else if(word==0) {word=1;num++;} printf("%d",num); } 14.下面程序的运行结果是________。

#include long fib(int g) { switch(g) { case 0:return 0; case 1:case 2:return(1); } return(fib(g-1)+fib(g-2)); } main() { long k; k=fib(5); printf("%d\n",k); } 15.设在主函数中有以下定义和函数调用语句,且 fun 函数为 void 类型;请写出 fun 函数 的首部 【1】 。

(要求形参名为 b。

) main() { double s[10][22];

C语言习题集合5(函数)

第五部分 函 数·18·int n; ┆ ┆ fun(s); ┆ } 16.以下程序中,主函数调用了 LineMax 函数,实现在 N 行 M 列的二维数组中,找出每一行 上的最大值。

请填空。

#define N 3 #define M 4 void LineMax(int x[N][M]) { int i,j,p; for(i=0; i

double fun( double x, int y) { int i; double z; for(i=1, z=x; i

请填空。

fun( int a[ ]) { int i; for(i=1; i<=10; i++) 【1】=i; for(i=0; i<5; i++) 【2】=a[i]; } 19.下面函数的功能是计算 s  1  double fun(int n)1 1 1   ,请填空。

1* 2 1* 2 * 3 1* 2 * 3 * 4 * * n

C语言习题集合5(函数)

第五部分 函 数·19·{ double s=0.0,fac=1.0; int i; for(i=1,i<=n;i++) { fac=fac【1】; s=s+fac; } return s; } 20.下面 pi 函数的功能是,根据以下公式返回满足精度 e 要求的 p 的值。

根据以下算法补 足所缺语句。

p  2 * (1 1 1* 2 1* 2 * 3 1* 2 * 3 ** n    ) 1* 3 1* 3 * 5 1* 3 * 5 * 7 1 * 3 * 5 * 7 * 2n  1double pi(double eps) { double s=0.0,t=1.0; int n; for(【1】 ;t>eps;n++) { s+=t; t=n*t/(2*n+1); } return(2.0* 【2】 ); } 21.读下面的程序,填空完善程序。

main() { int a,b,c; scanf("%d%d", 【1】 ); c= 【2】(a,b); printf("a=%d,b=%d,c=%d\n",a,b,c); } int max(x,y) 【3】 ; { int z; if(x>y) z=x; else z=y; 【4】 ; } 22.下面程序根据对 x 的输入,求 1 到 x 的累加和。

float fun(int n) { int i; float c;

C语言习题集合5(函数)

第五部分 函 数·20·【1】 ; for(i=1;i<=n;i++) c+=i; 【2】 ; } main() { int x; scanf("%d", 【3】 ); printf("%f\n",fun(x)); } 23.分别计算并输出 1! ,2! ,3! ,4!和 5! 。

main() { int i; for(i=1;i<=5;i++) printf("%d!=%d\n",i, 【1】 ); } int fac(int n) { 【2】 f=1; f*=n; return(f); } 24.求出数组中的最大、最小元素值以及所有元素的均值。

【1】 ; float average(int n,float array[]) { int i; float sum; max=min=sum= 【2】 ; for(i=1;iarray[i]) min=array[i]; } return(sum/n); } main() { int i; float aver,score[10]; printf("input 10 score:\n"); for(i=0;i<10;i++) scanf("%f", 【3】 ); aver=average(10,score); printf("max=%.2f\nmin=%.2f\naverage=%.2f\n",max,min,aver); }

C语言习题集合5(函数)

第五部分 函 数·21·25.下面程序的功能是找出三个字符串中最大串,填空完善程序。

【1】 #include main() { int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets( 【2】 ); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)> 【3】 ) strcpy(string,str[2]); printf("the largest string is\n%s\n",string); } 26.本程序的函数 ver 是使输入的字符串按反序存放,在主函数中输入和输出字符串。

main() { char str[100]; scanf("%s",str); ver(str); printf("%s\n",str); } ver( 【1】 ) { char t; int i,j; for(i=0,j=strlen(str);i

#define N 10 char str[N]; main() { int i,flag; for(flag=1;flag==1;) { scanf("%s",str); flag=0; printf("\n"); } sort( 【1】 ); for(i=0;i

C语言习题集合5(函数)

第五部分 函 数·22·char t; for(j=1;jstr[i+1]) {t=str[i]; 【2】 ; 【3】 ;} } 28.用选择法对数组进行由小到大排序。

void sort(n,array) 【1】 ; { int i,j,k,t; for(i=0;iarray[j]) k=j; t=array[i]; array[i]=array[k]; array[k]=t; } } main() { int i,a[10]; printf("input the array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); 【3】 ; printf("the sorted array:\n"); for(i=0;i<10;i++) printf("%6d",a[i]); } 29.用递归方法求 n!。

float fac(int n) { float f; if(n<0) printf("n<0,data error! "); else if( 【1】 ) f=1; else f= 【2】 ; return(f); } main() { int n=6; float y; printf("\n"); 【3】 ;

C语言习题集合5(函数)

第五部分 函 数·23·printf("%d!=%5.0f",n,y); } 30.程序调用 prime 函数,判断输入的一个整数是否为素数,是则打印 YES,否则打印 NO. #include "stdio.h" main() { int x; printf("输入一个整数给 x: "); scanf("%d", 【1】 ); if(prime(x)) printf("YES\n"); else printf("NO\n"); } prime(int a) { int e,i,yes; yes=1;e=a/2; i=2; while((i<=e) 【2】 ) if(a% 【3】 ==0) yes=0; else i++; 【4】 ; }5.3 答案及部分解析一.选择题答案 1.B 2.C 3.A 4.A 5.C 6.C 7.C 8.A 9.B 10.B 11.A 12.A 13.D 14.D 15.C 16.D 17.C 18.B 19.B 20.C 21.A 22.C 23.C 24.A 25.A 26.A 27.C 28.D 29.C 30.C 31.D 32.B 33.C 34.C 35.A 36.A 37.B 38.B 39.D 40.B 41.A 42.A 43.B 44.B 45.B 46.B 47.B 48.A 49.C 50.A 51.C 52.B 53.D 54.A 55.C 36.解析:此题考的知识点是数组名作为函数参数。

用数组名作函数实参时,不是把数组的 值传递给形参, 而是把实参数组的起始地址传递给形参数组, 两个数组共占用同 一段内存单元。

因而,在子函数中对数组中值的改变是“真正的改变” ,带回到 了主函数中。

45. 解析: 此题考的知识点是局部变量和全局变量。

在一个函数内部定义的变量是局部变量, 它只在本函数中有效;在复合语句中定义的变量,只在本复合语句中有效;在函 数之外定义的变量称为外部变量, 它的有效范围为从定义变量的位置开始到本源 文件结束。

在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用 范围内,外部变量被“屏蔽” 。

所以正确答案是 B。

C语言习题集合5(函数)

第五部分 函 数·24·二.填空题答案 1. 答案:56 2. 答案:3,2,2,3 解析:此题考的知识点是 C 语言中形参、实参的单向值传递。

主函数中,调用函数 fun, 将实参 x,y 的值传给形参 x,y,形参 x,y 在子函数中交换的数值,所以输出的形 参值为 3,2, 但形参无法返回给主函数中的实参 x,y, 所以输出的实参值仍为 2,3。

3. 答案:246 4. 答案:120 5. 答案:0,0 0,1 6. 答案:12 7. 答案:7 8. 答案:9 9. 答案:0246802468 10. 答案:8,17 解析:此题考的知识点是静态局部变量,用关键字 static 声明的局部变量是静态局部 变量,它在函数调用后不消失而保留原值,在下一次调用该函数时,该变量保留 上一次函数调用结束时的值。

本题中,函数 func 中变量 m,i 为静态局部变量, 初值为 0 和 2,第一次函数调用结束时值为 m=8,i=3,第二次函数调用时,变量 m 和 i 保留上一次函数调用结束时的值 8 和 3。

11. 答案:8 12. 答案:5647 13. 答案:4 14. 答案:5 15. 答案: 【1】 void fun(double b[][22]); 16. 答案: 【1】 p=j 【2】 x[i][p] 【3】 LineMax(x) 17. 答案: 【1】 x 18. 答案: 【1】 a[i-1] 【2】 a[9-i] 19. 答案: 【1】 /i 20. 答案: 【1】 n=1 【2】 s 21. 答案: 【1】 &a,&b 【2】 max 【3】 int x,y 【4】 return(z) 22. 答案: 【1】 c=0 【2】 return c 【3】 &x 23. 答案: 【1】 fac(i) 【2】 static int 24. 答案: 【1】 float max,min 【2】 array[0] 【3】 &score[i] 25. 答案: 【1】 #include 【2】 str[i] 【3】0 26. 答案: 【1】 str[ ] 【2】 str[i]=str[j-1] 【3】 str[j-1]=t 27. 答案: 【1】 str 【2】 str[i]=str[i+1] 【3】 str[i+1]=t 28. 答案: 【1】 int n,array[] 【2】 j=i+1 【3】 sort(10,a) 29. 答案: 【1】 n==0||n==1 【2】 n*fac(n-1) 【3】 y=fac(n) 30. 答案: 【1】 &x 【2】 &&yes 【3】 i 【4】return yes

C语言习题集合5(函数)

C语言习题集合5(函数)