首页 C语言程序设计 第六章 函数 试题及答案

C语言程序设计 第六章 函数 试题及答案

举报
开通vip

C语言程序设计 第六章 函数 试题及答案C语言程序设计第六章函数试题及答案 1 选择题 *6.1建立函数的目的之一,以下正确的说法是。 A)提高程序的执行效率B)提高程序的可读性 C)减少程序的篇幅D)减少程序文件所占内存 参考答案:B *6.2 以下正确的说法是。 A)用户若需要调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有意义 C)用户系统根本不允许用户重新定义标准库函数 D)用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件。 参...

C语言程序设计 第六章 函数 试题及答案
C语言程序设计第六章函数试题及答案 1 选择题 *6.1建立函数的目的之一,以下正确的说法是。 A)提高程序的执行效率B)提高程序的可读性 C)减少程序的篇幅D)减少程序文件所占内存 参考答案:B *6.2 以下正确的说法是。 A)用户若需要调用 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有意义 C)用户系统根本不允许用户重新定义标准库函数 D)用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件。 参考答案:B 6.3 以下正确的函数定义形式是。 A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)doubel fun(int x;int y); 参考答案:A *6.4 以下正确的函数形式是。 A)double fun(int x,int y){z=x+y;return z;} B)double fun(int x,y){int z;return z;} C)fun(x,y){int x,y;double z; z=x+y; return z;} D)double fun(int x,int y){double z;z=x+y;return z;} 参考答案:D *6.5以下正确的说法是。 A)实参和与其对应的形参占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用一个存储单元 D)形参是虚拟的,不占用存储单元 参考答案:A 参考分析:本题并不严谨,因为实参可以是表达式,当实参为表达式时,实参并不单独占用独立的存储单元。 6.6 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数。 A)没有返回值B)返回若干个系统默认值 C)返回一个用户所希望的函数值D)返回一个不确定的值 参考答案:D 参考分析:函数有没有返回值是由函数类型所决定的,当没有retrun语句,系统不能返回一个确定的值而已。 6.7 以下不正确的说法是,C语言规定。 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以是任意类型 D)实参应与其对应的形参类型一致 参考答案:B 6.8 以下正确的说法是。 A)定义函数时,形参的类型说明可以放在函数体内 B)return后面的值不能为表达式 C)如果函数的类型与返回值类型不一致,以函数类型为准 D)如果形参与实参的类型不一致,以实参类型为准 参考答案:C 6.9 C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A)地址传递B)单向值传递 C)由实参传给形参,再由形参传回实参D)由用户指定传递方式 参考答案:B 6.10 以下程序有语法性错误,有关错误原因的正确说法是。 main() {int G=5,k; void prt_char(); ...... k=prt_char(G); ...... } A)语句void prt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 参考答案:C 6.11 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。 A)float型B)int型C)long型D)double型 参考答案:B 6.12 C语言规定,函数返回值的类型是由所决定。 A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数是系统临时指定 D)在定义该函数时所指定的函数类型 参考答案:D *6.13 下面函数调用语句含有实参的个数为。 fun((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5 参考答案:B 参考分析:该函数的实参是两个逗号表达式。 6.14 以下错误的描述是。 函数调用可以 A)出现在执行语句中B)出现在表达式中 C)作为函数的实参D)作为函数的形参 参考答案:D 6.15 以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include #include float f(float,float); main() {float x,y,z,sum; scanf("%f%f%f",&x,&y,&z); sum=f(【1】)+f(【2】); printf("sum=%f\n",sum); } float f(float a,float b) {float value; falue=a/b; return(value); } 【1】A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y 【2】A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y 参考答案:【1】B 【2】C 6.16以下正确的描述是________。 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可嵌套 D)函数的定义和函数的调用均可以嵌套 参考答案:B 6.17 以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有的这样的数及其个数。请选择填空。 sub(int k,int n) {int a1,a2; a2=【1】; a1=k-【2】; if((k%3==0&&a2==5)||(k%3==0&&a1==5)) {printf("%4d",k);n++;return n;} else return -1; } main() {int n=0,k,m; for(k=10;k<100;k++) {m=sub(k,n); if(m!=-1) n=m; } printf("\nn=%d",n); } 【1】A)k*10 B)k%10 C)k/10 D)k*10%10 【2】A)a2*10 B)a2 C)a2/10 D)a2%10 参考答案:【1】C 【2】A 6.18 以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是。 void move(char getone,char putone) {printf("%c-->%c\n",getone,putone);} void hanoi(int n,char one,char two,char three) {if(n==1) move(one,three); else {hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } } A)A-->C B)A-->C C)A-->C D)A-->C A-->B A-->B A-->B A-->B C-->B C-->A C-->B C-->B B-->A A-->B A-->C A-->C C-->B B-->C B-->A A-->B A-->C A-->C B-->C B-->C A-->B A-->B A-->C A-->C 参考答案:C 6.19 若用数组名作为函数调用的实参,传递给形参的是。 A)数组的首地址B)数组第一个元素的值 C)数组中全部元素的值D)数组元素的个数 参考答案:A 6.20 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为。 int a[3][4]; f(a); A)f(int array[][6]) B)f(int array[3][]) C)f(int array[][4]) D)f(int array[2][5]) 参考答案:B 6.21 若使用一位数组名作为函数实参,则以下正确的说法是。 A)必须在主调函数中说明此数组的大小 B)实参数组类型与形参数组类型可以不匹配 C)在被调函数中,不需要考虑形参数组的大小 D)实参数组名与形参数组名必须一致 参考答案:C 6.22 以下函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。 int binary(int a[],int m) {int low=0,high=9,mid; while(low<=high) {mid=(low+high)/2; if(ma[mid]) 【2】; else return(mid); } return(-1); } A)high=mid-1 B)high=mid+1 C)low=mid-1 D)low=mid+1 参考答案:【1】A 【2】D 6.23如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是。 A)只在该复合语句中有效B)只在该函数中有效 C)在本程序范围内均有效D)为非法变量 参考答案:A 6.24 以下不正确的说法为。 A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 参考答案:D 6.25 以下程序的正确运行结果是。 #define MAX 10 int a[MAX],i; main() {printf("\n");sub1();sub3(a);sub2();sub3(a);} sub2() {int a[MAX],i,max; max=5; for(i=0;i void num() {extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() {int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); } A)12,2 B)12,25 C)5,25 D)5,2 参考答案:C 6.27 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为。 A)auto B)static C)extern D)register 参考答案:A 6.28 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是。 A)extern B)register C)auto D)static 参考答案:D *6.29 以下程序的正确运行结果是。 main() {int a=2,i; for(i=0;i<3;i++) printf("%4d",f(a)); } int f(int a) {int b=0; static int c=3; b++;c++; return(a+b+c); } A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9 参考答案:D *6.30 以下程序的正确运行结果是。 #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); } A)8,17 B)8,16 C)8,20 D)8,8 参考答案:A 2 填空题 6.31 C语言规定,可执行程序的开始执行点是【】。 参考答案:main函数 6.32 在C语言中,一个函数一般由两个部分组成,它们是【1】和【2】。参考答案:【1】函数声明【2】函数体 *6.33 若输入的值是-125,以下程序的执行结果是。 #include main() {int n; scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=abs(n); fun(n); } fun(int n) {int k,r; for(k=2;k<=sqrt(n);k++) {r=n%k; while(r==0) {printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 参考答案:-125=-5*5*5 参考分析:本程序用来将整数分解为素数因子的乘积。 6.34 下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是【1】;改正后为【2】。 void add(float a,float b) {float c; c=a+b; return c; } 参考答案:【1】void add(float a,float b) 【2】float add(float a,float b) 6.35 以下程序的运行结果是。 main() {int i=2,x=5,j=7; fun(j,6); printf("i=%d;j=%d;x=%d\n",i,j,x); } fun(int i,int j) {int x=7; printf("i=%d;j=%d;x=%d\n",i,j,x); } 参考答案: i=7;j=6;x=7 i=2;j=7;x=5 6.36 以下程序的运行结果是。 main() {increment(); increment(); increment(); } increment() {int x=0; x+=1; printf("%d",x); } 参考答案:1 1 1 6.37 以下程序的运行结果是。 #include main() {int a=1,b=2,c; c=max(a,b); printf("max is %d\n",c); } max(int x,int y) {int z; z=(x>y)?x:y; return(z); } 参考答案:max is 2 6.38 以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"This is YES."与"This is NO."。请填空。 #include void YesNo(char ch) {switch(ch) {case 'y': case 'Y':printf("\nThis is YES.\n");【1】; case 'n': case 'N':printf("\nThis is NO.\n"); } } main() {char ch; printf("\nEnter a char 'y','Y' or 'n','N':"); ch=【2】; printf("ch:%c",ch); YesNo(ch); } 参考答案:【1】break 【2】getchar() 6.39 以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示"WELL DONE!!",否则显示计算后的值。已有函数调用语句Check(ponse,value);请填空。 void Check(int ponse,float value) {int val; val=【1】; printf("计算后的值:%d",val); if(【2】) printf("\nWELL DONE!!!\n"); else printf("\nSorry the correct answer is %d\n",val); } 参考答案:【1】value+0.5 【2】ponse==val 6.40 以下程序的功能是。 #include f(int n) {int i,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) return n; else return 0; } main() {int n,k; printf("Output"); for(n=100;n<1000;n++) {k=f(n); if(k!=0) printf("%d ",k); } printf("\n"); } 参考答案:输出所有的水仙花数。 6.41 以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,并要求绝对误差不超过0.001。请填空。 #include float f(float x) {return (2*x*x*x-4*x*x+3*x-6);} main() {float m=-100,n=90,r; r=(m+n)/2; while(f(r)*f(n)!=0) {if(【1】) m=r; else n=r; if(【2】) break; r=(m+n)/2; } printf("方程的解是%6.3f\n",r); } 参考答案:【1】f(r)*f(n)<0或f(r)*f(m)>0【2】n-m<0.001 6.42 若输入一个整数10,以下程序的运行结果是。 int sub(int a) {int c; c=a%2; return c; } main() {int a,e[10],c,i=0; printf("Input a number:"); scanf("%d",&a); while(a!=0) {c=sub(a); a=a/2; e[i]=c; i++; } for(;i>0;i--) printf("%d",e[i-1]); } 参考答案:1010 6.43 以下程序的功能是计算下面函数的值。请填空。 sin(x) sin(y) sin(z) F(x)= + + sin(x-y)*sin(x-z) sin(y-z)*sin(y-x) sin(z-x)*sin(z-y) #include #include float f(float,float,float); main() {printf("input x,y,z:\n"); scanf("%f%f%f",&x,&y,&z); sum=【1】; printf("sum=%f\n",sum); } float f(float a,float b,float c) {float value; value=【2】; return(value); } 参考答案:【1】f(x,y,z)+f(y,z,x)+f(z,x,y) 【2】sin(a)/sin(a-b)/sin(a-c) 参考分析:本题答案非常不严谨,完全可以写成多种方式,比如 【1】f(x,x-y,x-z)+f(y,y-z,y-x)+f(z,z-x,z-y) 【2】sin(a)/sin(b)/sin(c) 【1】f(x,y,z) 【2】sin(a)/sin(a-b)/sin(a-c)+sin(b)/sin(b-c)/sin(b-a)+sin(c)/sin(c-a)/sin(c-b) 6.44 已有函数pow,现要求取消变量i后pow函数的功能不变。请填空。 修改前的pow函数: int pow(int x,int y) {int i,j=1; for(i=1;i<=y;i++) j=j*x; return j; } 修改后的函数: int pow(int x,int y) {int j; for(【1】;【2】;【3】) j=j*x; return j; } 参考答案:【1】j=1【2】y>0或y>=1【3】y--或--y 6.45 以下程序的运行结果是输出如下图形。请填空。 * *** ***** ******* ***** *** * #include void a(int i) {int j,k; for(j=0;j<=7-i;j++) printf(" "); for(k=0;k<【1】;k++) printf("*"); printf("\n"); } main() {int i; for(i=0;i<3;i++) 【2】; for(i=3;i>=0;i--) 【3】; } 参考答案:【1】2*i+1 【2】a[i] 【3】a[i] 参考说明:最长的一行前面有5个空格。 6.46 以下程序的功能是求三个数的最小公倍数,请填空。 #include int max(int x,int y,int z) {if(x>y&&x>z) return(x); else if(【1】) return(y); else return(z); } main() {int x1,x2,x3,i=1,j,x0; printf("Input three number:"); scanf("%d%d%d",&x1,&x2,&x3); x0=max(x1,x2,x3); while(1) {j=x0*i; if(【2】) break; i++; } printf("zuixiaogongbeishu=%d\n",j); } 参考答案:【1】y>x&&y>z 【2】j%x1==0&&j%x2==0&&j%x3==0 参考分析:本题有错误,若x=z>y这种条件下max函数不能正确返回最大值。若将所有条件均改为>=就可以了。 6.47函数gongyue的作用是求整数num1和num2的最大公约数。请填空。 int gongyue(int num1,int num2) {int temp,a,b; if(num1【1】num2) {temp=num1;num1=num2;num2=temp;} a=num1;b=num2; while(【2】) {temp=a%b;a=b;b=temp;} return(a); } 参考答案:【1】< 【2】b 参考分析:本题需要修改,作为函数,没有必要将num1赋值给a,另外,不必须要num1大, num2小,还有【2】可以为b!=0 6.48以下程序的运行结果是。 main() {int x=2,y=3,z=0; printf("(1)x=%d y=%d z=%d\n",x,y,z); add(x,y,z); printf("(3)x=%d y=%d z=%d\n",x,y,z); } add(int x,int y,int z) {z=x+y; x=x*x; y=y*y; printf("(2)x=%d y=%d z=%d\n",x,y,z); } 参考答案: (1)x=2 y=3 z=0 (2)x=4 y=9 z=5 (3)x=2 y=3 z=0 6.49 下面函数pi的功能是:根据以下 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 ,返回满足精度(0.0005)要求的π值,请填空。 π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+… #include #include #include double pi(double eps) {double s,t; int n; for(【1】;t>eps;n++) {s+=t; t=n*t/(2*n+1); } return (【2】); } main() {double x; printf("\nPlease enter a precision:"); scanf("%lf",&x); printf("\neps=%lf,π=%lf",x,pi(x)); } 参考答案:【1】s=0,t=1,n=1 【2】2*s 6.50 下面是一个计算阶乘的程序。程序中错误的语句是【1】,应改为【2】。 #include double fac(int); main() {int n; printf("Enter an integer:"); scanf("%d",&n); printf("\n\n%d!=%lg\n\n",n,fac(fac(n)); } double fac(int n) {double result=1.0; while (n>1||n<170) result *=--n; return result; } 参考答案:【1】while(n>1||n<170) result *=--n 【2】while (n>1&&n<170) result *=n--; ***6.51函数f的形参a为一个10×10的二维数组,n的值为5,以下程序段的运行结果为。 f(int a[][20], int n) {int i,j,k; j=n/2+1; a[1][j]=1; i=1; for(k=2;k<=n*n;k++) {i=i-1;j=j+1; if(i<1&&j>n) {i=i+2;j=j-1;} else {if(i<1) i=n; if(j>n) j=1; } if(a[i][j]==0) a[i][j]=k; else {i=i+2; j=j-1; a[i][j]=k;} } } main() {int a[20][20]={0},n,i,j; scanf("%d",&n); f(a,n); for(i=1;i<=n;i++) {for(j=1;j<=n;j++) printf("%3d",a[i][j]); printf("\n"); } } 参考答案: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 参考说明:这是幻方题目 6.52 下面函数func的功能是。 #include long func(long num) {long k=1; num=labs(num); do {k*=num%10; num/=10; }while(num); return k; } main() {long n; printf("\nPlease enter a number:"); scanf("%ld",&n); printf("\nThe product of its digits is %ld.",func(n)); } 参考答案:计算一个数的各位数字之积。 6.53以下程序的运行结果是。 #include main() {printf("FACT(5):%d\n",fact(5)); printf("FACT(1):%d\n",fact(1)); fact(-5); } fact(int value) {if(value<0) {printf("FACT(<0):Error!\n"); return (-1);} else if(value==1||value==0) return(1); else return(value*fact(value-1)); } 参考答案: FACT(5):120 FACT(1):1 FACT(<0):Error! 6.54 以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。请填空。 递归公式如下: 10 n=1 age(n)=age(n-1)+2 n>1 #include age(int n) {int c; if(n==1) c=10; else c=【1】; return c; } main() {int n=5; printf("age:%d\n",【2】); } 参考答案:【1】age(n-1)+2 【2】age(n) 6.55 下面程序的功能是【1】,运行结果是【2】。 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(7); printf("k=%d\n",k); } 参考答案:【1】计算斐波那契数列第7项的值【2】k=13 6.56以下程序的运行结果是。 main() {int i=5; printf("%d\n",sub(i)); } sub(int n) {int a; if(n==1) return 1; a=n+sub(n-1); return a; } 参考答案:15 参考分析:利用递归的方法计算1+2+3+4+5 6.57 以下程序是应用递归函数算法求某数a的平方根,请填空。求平方根的迭代公式如下: x1=1/2(x0+a/x0) #include double mysqrt(double a,double x0) {double x1,y; x1=【1】; if(fabs(x1-x0)>0.00001) y=mysqrt(【2】); else y=x1; return y; } main() {double x; printf("Enter x:"); scanf("%lf",&x); printf("The sqrt of %f=%f\n",x,mysqrt(x,1.0)); } 参考答案:【1】1.0/2*(x0+a/x0) 【2】a,x1 6.58以下程序的运行结果是。 #include f(int a[]) {int i=0; while(a[i]<=10) {printf("%3d",a[i]); i++; } } main() {int a[]={1,5,10,9,11,7}; f(a+1); } 参考答案:5 10 9 6.59以下程序的运行结果是。 main() {int a[3][3]={1,3,5,7,9,11,13,15,17},sum; sum=func(a); printf("\nsum=%d\n",sum); } func(int a[][3]) {int i,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]; } return (sum); } 参考答案:sum=6 6.60 阅读下面程序,完成下列问题中的填空。 问题(1)此程序在调用函数f后的运行结果是【1】。 (2)若将函数f中的for(j=i+1;j<4;j++)改为for(j=0;j<3-i;j++),则程序的运行结果是【2】。 f(int s[][4]) {int i,j,k; for(i=0;i<3;i++) for(j=i+1;j<4;j++) {k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;} } main() {int s[4][4],i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) s[i][j]=i-j; f(s); for(i=0;i<4;i++) {printf("\n"); for(j=0;j<4;j++) printf("%4d",s[i][j]); } } 参考答案: 【1】0 1 2 3 【2】0 -1 -2 -3 -1 0 1 2 1 0 -1 -2 -2 -1 0 1 2 1 0 -1 -3 -2 -1 0 3 2 1 0 6.61 以下search函数的功能是利用顺序查找法从数组的10个元素中对关键字m进行查找。顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或找到数组尾部时结束。若找到,返回此元素的下标;若未找到,则返回-1。请填空。 #include int search(int a[10],int m) {int i; for(i=0;i<=9;i++) if(【1】) return (i); return -1; } main() {int a[10],m,i,no; … no=search(【2】); if(【3】) printf("\nOK FOUND!",no); else printf("\nSorry Not Found!"); } 参考答案:【1】a[i]==m 【2】a,m 【3】no>=0 6.62 已定义一个含有30个元素的数组s,函数fav1的功能是按顺序分别赋给各元素从2开始的偶数,函数fav2则按顺序每5个元素求一个平均值,并将该值存放在数组w中。请填空。 #define SIZE 30 fav1(float s[]) {int k,i; for(k=2,i=0;ia[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } 参考答案:【1】-7 3 5 7 10 【2】冒泡法排序 6.64以下程序的运行结果是【1】,其算法是【2】。 main() {int a[5]={9,6,8,3,-1},i,j,t,p; sort(a); for(i=0;i<=4;i++) printf("%3d",a[i]); } sort(int a[]) {int i,j,t,p; for(j=0;j<4;j++) {p=j; for(i=j;i<=4;i++) if(a[i]=a[p]&&p func(int array[][4],int m) {int i,j,k; k=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]b?a:b; return c; } main() {int a=8; printf("%d",max(a,b)); } 参考答案:8 6.78以下程序的运行结果是。 int x; main() {x=5; cude(); printf("%d\n",x); } {x=x*x*x;} 参考答案:125 参考分析:x是全局变量。 6.79以下程序的运行结果是。 main() {int i; for (i=0;i<3;i++) {funx(); funy(); } } funx() {int x=0; printf("x=%d\t",++x); } funy() {static int y=0; printf("y=%d\n",++y); } 参考答案: x=1 y=1 x=1 y=2 x=1 y=3 6.80以下程序的运行结果是。 main() {int i; for (i=0;i<3;i++) fun(); } fun() {static int x=0; x+=1; printf("%3d",x); } 参考答案: 1 2 3 6.81以下程序的运行结果是。 int n=1; main() {static int x=5; int y; y=n; printf("MAIN:x=%2d y=%2d n=%2d\n",x,y,n); func(); printf("MAIN:x=%2d y=%2d n=%2d\n",x,y,n); func(); } func() {static int x=4; int y=10; x=x+2; y=y+n; printf("FUNC:x=%2d y=%2d n=%2d\n",x,y,n); } 参考答案: MAIN:x= 5 y= 1 n=1 FUNC:x= 6 y=21 n=11 MAIN:x= 5 y= 1 n=11 FUNC:x= 8 y=31 n=21 6.82 以下程序的功能是。 int fac(int n) {static int f=1; f=f*n; return f; } main() {int i; for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i)); } 参考答案:计算并输出1到5的阶乘 3 编程题 6.83 已有变量定义和函数调用语句:int a=1,b=-5,c;c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将差值返回调用函数,请编写fun函数。 fun(int x,int y) { } 参考程序: fun(int x,int y) {if(x>y) return x-y; return y-x; } 6.84 已有变量定义和函数调用语句:int x=57; isprime(x);函数isprime()用来判断一个整型数a 是否为素数,若是素数,函数返回1,否则返回0。请编写isprime函数。 int isprime(int a) { } 参考程序: int isprime(int a) {int k; if(a==1) return 0; for(k=2;k<=a/2;k++) if(a%k==0) return 0; return 1; } 6.85 已有变量定义和函数调用语句int a,b; b=sum(a);函数sum用来求1+2+3+…+n,请编写sum函数。 int sum(int n){ } 参考程序: int sum(int n) for(k=1;k<=n;k++) s+=k; return s; } 6.86已有变量定义和函数调用语句double a=5.0; int n=5;和函数调用语句mypow(a,n);用来求a 的n次方。请编写mypow函数。 double mypow(double x,int y){ } 参考程序: double mypow(double x,int y) {double s=1; for(;y>0;y--) s=s*x; return s; } 6.87 以下程序的功能是用牛顿法求解方程f(x)=cosx-x=0。已有初始值x0=3.1415/4,要求绝对误差不超过0.001,函数f用来计算迭代公式中x0的值。请编写f函数。牛顿迭代公式是: xn+1=xn
本文档为【C语言程序设计 第六章 函数 试题及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:109KB
软件:Word
页数:69
分类:工学
上传时间:2019-04-06
浏览量:141