




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 习题一、选择题(*号题选做)(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 x10,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(%dn,sum);执行后的输出结果是( )。CA)6B)7C)8D)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)ABEFC)ABCDD)CDAB*(11)有以下程序main(int argc,char *argv)int n=0,i;for(i=1;iargc;i+) n=n*10+*argvi-0;printf(“%dn”,n); 编译连接后生成可执行文件tt.exe,若运行时输入以下命令行tt 12 345 678程序运行后的输出结果是DA) 12 B) 12345 C)12345678 D) 136(12)有如下程序: #include void fun(int a,int b) int t; t=a;a=b;b=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; for(i=0;k10;i+=2) fun(ci,ci+1);for(i=0;k10;i+)printf(%d,ci);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)有以下程序#includeintf(intx,inty)return(y-x)*x);main()inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(%dn,d);程序运行后的输出结果是BA)10B)9C)8D)7(14)有以下程序#includeintfun(intx,inty)if(x=y)return(x);elsereturn(x+y)/2);main()inta=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是BA)3B)6C)8D)12(15)有以下程序#includevoidfun(intp)intd=2;p=d+;printf(%d,p);main()inta=1;fun(a);printf(%dn,a);程序运行后的输出结果是CA)32B)12C)21D)22(16)有以下程序includestdiohint f(int x);main()int n=1,m;m=f(f(f(n);printf(”%dn”,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;scanf(“%d”,&x); x=fun(x); printf(“%dn”,x);程序执行时,给变量x输入10,程序的输出结果是AA)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(%dn,fun(7);执行后的输出结果是( )。CA)7B)3C)2D)0(19)有以下程序 #include 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(“%dn”,z); 程序的运行结果是 CA)0 B)9 C)6 D)8 (20)有以下程序#include int fun(int a, int b) if(b=0) return a; else return(fun(-a,-b) ;main() printf(“%dn”,fun(4,2); 程序的运行结果是BA)1 B)2 C) 3 D)4(21)有以下程序#includeint f(int t ,int n);main()int a4=1,2,3,4,s;s=fa,4; printf(%dn,s);int f(int t, int n) if (n0) return tn-1+f(t,n-1);else return 0;程序运行后的输出结果是BA)4 B)10 C)14 D)6(22)有以下程序includestdiohvoid fun(int x)if(x21)fun(x2);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+=xi;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(“%dn”,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(%dn,k);执行后的输出结果是( )。BA)5,5B)5,11C)11,11D)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(; i2; i+) s+=f(i);printf (“%dn”,s);程序运行后的输出结果是BA)24 B)28 C)32 D)36(26)设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是CA)autoB)registerC)staticD)auto 或register(27)有以下程序#includeintf(intn);main()inta=3,s;s=f(a);s=s+f(a);printf(%dn,s);intf(intn)staticinta=1;n+=a+;returnn;程序运行后的输出结果是CA)7B)8C)9D)10(28)有以下程序#includeint fun()static int x=1;x*=2; return x;main()int i,s=1;for (i=1;i=2;i+) s=fun();printf(%dn,s);程序运行后的输出结果是CA)0 B)1 C) 4 D)8(29)有以下程序includestdiohint fun()static int x=1;x+=1;return x;main()int i;s=1;for(i=1;i=5;i+)s+=fun();printf(”dn”,s);程序运行后的输出结果是BA)11B)21C)6D)120(30)有以下程序:#include #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 %dn,i1,i2);程序的运行结果是( )。BA)12 12 B)11 7C)11 11D)12 7(31)若程序中有宏定义行:#define N 100 则以下叙述中正确的是BA)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC)对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N(32)以下叙述中错误的是 DA)在程序中凡是以“”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的 (33)以下关于宏的叙述中正确的是 ( )CA)宏名必须用大写字母表示B) 宏定义必须位于源程序中所有语句之前C) 宏替换没有数据类型限制D)宏调用比函数调用耗费时间(34)有以下程序#include#definePT3.5;#defineS(x)PT*x*x;main()inta=1,b=2;printf(%4.1fn,S(a+b);程序运行后的输出结果是CA)14.0B)31.5C)7.5D)程序有错无输出结果(35)有以下程序#include#definef(x)x*x*xmain()inta=3,s,t;s=f(a+1);t=f(a+1);printf(%d,%dn,s,t);程序运行后的输出结果是AA)10,64B)10,10C)64,10D)64,64(36)以下程序#include #define SUB(a) (a)-(a)main()int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(%dn,d);程序运行后的结果是CA)0 B)-12 C)-20 D)10二 填空题(1)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空int isprime(int a) int i;for(i=2;i=a/2;i+)if(a%i=0) _15_; /return 0_16_; /return 1(2)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。#include math.hdouble fun(double x) return(x*x-2*x+6); main() double x,y1,y2; printf(Enter x:); scanf(%lf,&x); y1=fun( 【11】 ); /x+8 y2=fun( 【12】 ); /sin(x) printf(y1=%lf,y2=%lfn,y1,y2); (3)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空.#include viod f(int x,int n) int p0,p1,i,j,t,m; i=j=x0; p0=p1=0; for(m=0;mi) i=xm; p0=m; else if(xmj) j=xm; p1=m;t=xp0; xp0=xn-1; xn-1=t;t=xp1;xp1= _14_; _15_=t;/ x0, x0main() int a10,u; for(u=0;u10;u+) scanf(%d,&au);f(a,10);for(u=0;u10;u+) printf(%d,au);printf(n);(4)请将以下程序中的函数声明语句补充完整。#includeint【12】;/max(int ,int)main()intx,y,(*p)();scanf(%d%d,&x,&y);p=max;printf(%dn,(*p)(x,y);intmax(inta,intb)return(ab?a:b);(5)以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)iint fun(int xN)int i,k=0;for(i=0;iN; i+)if(xixk)k= 【10】 ;return xk;(6)以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)arowcolint fun(int aNM)int i,j,row=0,col=0; for(i=0;iN;i+) for(j=0;j=2) m=fun(t,n-1); return m;main()int a=11,4,6,3,8,2,3,5,9,2;printf(“%dn”,fun(a,10);(8)下面程序的运行结果是 【17】 。18 #include int f(int a,int n) if(n1) return a0+f(a+1,n-1); else return a0; main() int aa10=1,2,3,4,5,6,7,8,9,10,s; s=f(aa+2,4); printf(%dn,s);(9)以下程序的输出结果是【13】。 1 3#include void fun(int x) if(x/20) fun(x/2); printf(“%d ”,x); main() fun(3); printf(“n”); (10)以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入标志。请填空。#include long【14】;main() long n; n=func(); printf(n=%ldn,n);long func() long m; for(m=0; getchar()!=; 【15】); return m;答案:func();m+(11)有以下程序#includefun(intx)if(x/20)fu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉字视觉联想反思课件
- 汉字甲课件教学课件
- 海南省省直辖县级行政单位琼海市2024-2025学年八年级下学期7月期末考试数学试卷(含答案)
- 2024-2025学年辽宁省鞍山市铁西区人教版四年级下册期末考试数学试卷(含答案)
- 汉字基本知识培训心得
- 房屋代持协议书4篇
- 通讯网络互联网行业前瞻报告
- 2025合同的订立与履行
- DB46-T 546-2021 非公路用旅游观光车安全管理与服务规范
- 2024年秋新北师大版数学一年级上册教学课件 第四单元 10以内数加与减 第11课时 做个加法表
- 中国卒中患者高血压管理专家共识(2024)解读
- 小艇行业跨境出海战略研究报告
- 三会一课培训内容
- GB/T 45309-2025企业采购物资分类编码指南
- 膜性肾病护理进展
- 销售过程管理培训课件
- 医院医保智能审核与规则解释
- 篮球裁判员手册
- 电焊工安全用电培训
- 安宁疗护服务规范
- 《高血压的护理常规》课件
评论
0/150
提交评论