第七章习题答案

  • 格式:doc
  • 大小:88.00 KB
  • 文档页数:19

第七章习题一、选择题(*号题选做)(1)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是AA)main()B) float fun(int a,int b){……} {……x=fun(2,10);……} main()float fun(int a,int b){……}{……x=fun(i,j);……}C)float fun(int,int);D) main()main() { float fun(int i,int j);{……x=fun(2,10);……} ……x=fun(i,j);……}float fun(int a,int b){……} float fun(int a,int b){……}*(2)已定义以下函数int fun(int *p){return *p;}fun 函数返回值是BA)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值*(3)若有以下函数首部。

int fun(double x[10],int *n)则下面针对此函数的函数声明语句中正确的是()。

DA)int fun(double x,int *n); B)int fun(double,int);C)int fun(double *x,int n); D)int fun(double *,int*);(4)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是DA)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(5)下面的函数调用语句中func函数的是实参个数是()Afunc( f2(v1,v2)), (v3,v4,v5),(v6,max(v7,v8)));A)3 B)4 C) 5 D)8(6)以下叙述中错误的是()BA)用户定义的函数中可以没有return 语句B) 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C) 用户定义的函数中若没有return语句,则应当定义函数为void类型D)函数的return语句中可以没有表达式(7)以下关于return语句的叙述中正确的是BA)一个自定义函数中必须有一条return语句B) 一个自定义函数中可以根据不同情况设置多条return语句C)定义成viod类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(8)有以下程序int fun1(double a){return a*=a;}int fun2(double x,double y){double a=0,b=0;a=fun1(x); b=fun1(y); return (int)(a+b);}main(){double w; w=fun2(1.1,2.0);……}程序执行后变量w中的值是CA)5.21 B) 5 C) 5.0 D) 0.0(9)有以下程序:fun(int x,int y){return(x+y);}main(){int a=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。

CA)6 B)7 C)8 D)9(10)有以下程序:void fun2(char a,char b) {printf("%c,%c",a,b);}char a='A',b='B';void fun1(){ a='C'; b='D';}main(){fun1();printf("%c%c",a,b);fun2('E','F');}程序的运行结果是()。

AA)CDEF B)ABEF C)ABCD D)CDAB*(11)有以下程序main(int argc,char *argv[]){int n=0,i;for(i=1;i<argc;i++) n=n*10+*argv[i]-…0‟;printf(“%d\n”,n);}编译连接后生成可执行文件tt.exe,若运行时输入以下命令行 tt 12 345 678程序运行后的输出结果是DA) 12 B) 12345 C)12345678 D) 136 (12)有如下程序:#include <stdio.h>void fun(int a,int b){t=a;a=b;b=t;}main(){int c[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;k<10;i+=2) fun(c[i],c[i+1]);for(i=0;k<10;i++)printf("%d",c[i]);printf("\n"); }程序的运行结果是AA)1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9,(13)有以下程序#include<stdio.h>int f(int x,int y){return((y-x)*x);}main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序运行后的输出结果是BA)10B)9C)8D)7(14)有以下程序#include<stdio.h>int fun(int x,int y){if(x==y)return(x);else return((x+y)/2);}{int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c))); }程序运行后的输出结果是BA)3B)6C)8D)12(15)有以下程序#include<stdio.h>void fun(int p){int d=2;p=d++;printf("%d",p);}main(){int a=1;fun(a);printf("%d\n",a);}程序运行后的输出结果是CA)32B)12C)21D)22(16)有以下程序#include<stdio.h>int f(int x);main(){int n=1,m;m=f(f(f(n)));printf(”%d\n”,m);}int f(int x){return x*2;}程序运行后的输出结果是DA)1 B)2 C)4 D)8(17)有以下程序int fun(int n){if(n==1) return 1;elsereturn (n+fun(n-1));}main(){ int x;sca nf(“%d”,&x); x=fun(x); printf(“%d\n”,x);}程序执行时,给变量x输入10,程序的输出结果是A A)55 B) 54 C) 65 D) 45(18)有以下程序:fun(int x){int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;}main(){ printf("%d\n",fun(7));}执行后的输出结果是()。

CA)7 B)3 C)2 D)0(19)有以下程序#include <stdio.h>int f(int x){int y;if(x==0||x==1) return (3);y=x*x-f(x-2);return y;}main(){int z;z=f(3); printf(“%d\n”,z);}程序的运行结果是CA)0 B)9 C)6 D)8 (20)有以下程序#include <stdio.h>int fun(int a, int b){ if(b==0) return a;else return(fun(--a,--b)) ;}main(){ printf(“%d\n”,fun(4,2); }程序的运行结果是BA)1 B)2 C) 3 D)4(21)有以下程序#include<stdio.h>int f(int t [ ],int n);main(){int a[4]={1,2,3,4},s;s=f{a,4}; printf("%d\n",s);}int f(int t[], int n){ if (n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是BA)4 B)10 C)14 D)6(22)有以下程序#include<stdio.h>void fun(int x){if(x/2>1)fun(x/2);printf(”%d”,x);}main(){fun(7);printf(”\n”);}程序运行后的输出结果是DA)1 3 7B)7 3 1C)7 3D)3 7(23)有以下程序int fun(int x[],int n){static int sum=0,i;for(i=0;i sum+=x[i];return sum;}main(){int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4); printf(“%d\n”,s);}程序执行后的输出结果是CA)45 B)50 C)60 D)55(24)有以下程序:fun(int x, int y){static int m=0,i=2;i+=m+1; m=i+x+y; return m;}main(){int j=1,m=1,k;k=fun(j,m); printf("%d",k);k=fun(j,m); printf("%d\n",k);}执行后的输出结果是()。

BA)5,5 B)5,11 C)11,11 D)11,5(25)有以下程序int a=4;int f(int n){int t=0; static int a=5;if(n%2) {int a=6; t+=a++;}else {int a=7 ; t+=a++;}return t+a++;}main(){int s=a, i=0;for(; i<2; i++) s+=f(i);printf (“%d\n”,s);}程序运行后的输出结果是BA)24 B)28 C)32 D)36(26)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是CA)autoB)registerC)staticD)auto 或register(27)有以下程序#include<stdio.h>int f(int n);main(){int a=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}int f(int n){static int a=1;n+=a++;return n;}程序运行后的输出结果是CA)7B)8C)9D)10(28)有以下程序#include<stdio.h>int fun(){static int x=1;x*=2; return x;}main(){int i,s=1;for (i=1;i<=2;i++) s=fun();printf("%d\n",s);}程序运行后的输出结果是CA)0 B)1 C)4 D)8(29)有以下程序#include<stdio.h>int fun(){static int x=1;x+=1;return x;}main(){int i;s=1;for(i=1;i<=5;i++)s+=fun();printf(”%d\n”,s);}程序运行后的输出结果是BA)11B)21C)6D)120 (30)有以下程序:#include <stdio.h>#define N 5#define M N+1#define f(x) (x*M)main(){ int i1,i2;i1=f(2);i2=f(1+1);printf("%d %d\n",i1,i2);}程序的运行结果是()。