ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.32KB ,
资源ID:10942145      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10942145.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第七章和第八章习题.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第七章和第八章习题.docx

1、第七章和第八章习题习题(函数和指针)一、 选择题1. 若有”fun(int a,int n)”,以下说法正确的是( )。A函数的类型为单精度类型 B第一个实参应该是数组名C实参和形参之间是一个值传递的过程 D以上说法都不对2. 下列有关函数调用的说法不正确的是( )。A若用值传递方式,则形式参数在函数被调用时才分配内存B实际参数和形式参数不可以同名C主调函数和被调用函数可以不在同一个文件中D函数间传送数据可以使用外部全局变量3. 下列叙述中正确的是( )。A函数可以嵌套定义,但不能嵌套调用B函数可以嵌套调用,也可以嵌套定义C函数不可以嵌套定义,也不可以递归调用D函数可以嵌套调用,但不能嵌套定义

2、4. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A函数的实参和其对应的形参共占同一存储单元 B形参只是形式上的存在,不占用具体存储单元C同名的实参和形参占同一存储单元 D函数的形参和实参分别占用不同的存储单元5. 函数中未指定存储类型的变量,其隐含的存储类型是( )。Astatic Bauto C extern Dregister6. 在一个C语言源程序文件中所定义的全局变量,其作用域为:A 所在文件的全部范围 B 所在程序的全部范围C 所在函数的全部范围 D 由具体定义位置和extern 说明来决定范围7. 所谓静态存储即是在程序运行期间分配固定的( )。A变量名称

3、B变量值 C存储单元D作用域8. 以下只有在使用时才为该类型变量分配内存的存储类型是( )。Aauto和static Bauto和register C register和static Dextern和register9. 设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是( )。Aauto B register Cstatic Dauto或register10. 若变量定义时未初始化,则其值不确定的是( )。A静态全局变量 B静态局部变量 C局部变量 D全局变量11. 以下叙述中错误的是( )。A用户定义的函数中可以没有return 语句B用户定义的函数中可以有多个re

4、turn 语句,以便可以调用一次返回多个函数值C用户定义的函数中若没有return 语句,则应当定义函数为void 类型 D函数的return 语句中可以没有表达式12. 下列关于指针定义的描述中不正确的是( )。A指针变量是一种变量,该变量是用来存放某个变量的地址值的B指针变量的类型与它所指向的变量类型一致C指针变量的命名规则与标识符相同D在定义指针时,”*”号表示指针变量的指向13. 若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是( )。A*p=&a; scanf(“%lf”,p); B*p=&a; scanf(“%f”,p); C p=&a;

5、scanf(“%lf”,*p); Dp=&a; scanf(“%lf”,p);14. 以下叙述中错误的是( )。A改变函数形参的值,不会改变对应实参的值 B函数可以返回地址值 C可以给指针变量赋一个整数作为地址值D当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL15. 下列程序的运行结果是( )。#include stdio.hint f(int a) switch (a) case 0:return 0;case 1:case 2:return 1;return(f(a2)+f(a3);main() int b;b=f(9);printf(“%dn”,b);A10 B7 C8

6、 D916. 以下程序的输出结果是( )。int f(int b , int m, int n) int i,s=1;for(i=m;i0; k)s += k;return s; main( ) int k;k=f(2);printf(%d, %d)n , k, f(k);A(3, 3)B(1, 1)C(3, 6)D(6, 12)18. 函数f定义如下,执行语句”m=f(5);”后,m的值应为( )。int f(int k) if(k=0|k=1) return 1;else return f(k1)+f(k2);A3 B8 C5 D1319. 下列程序段的输出结果是( )。int c =1,

7、 7, 12;int *k=c+1;printf(%d,*k+);A2 B7 C8 D1220. 下列程序的运行结果是( )。main() int a=4,y;y=fun(a,+a);printf(“%d”,y);int fun(int x,int c) int b;if(xc)b=1;else if(x=c)b=0;else b=1 ;return (b);A4 B1 C1 D021. 下列程序的输出结果是( )。int f() static int i=0;int s=1;s+=i; i+;return s;main() int i, a=0;for(i=0;i6;i+)a+=f();pr

8、intf(“%dn”,a);A21B24C25D1522. 若有如下程序:void s(char *m,int n)*m=*m+3;n=n+3;printf(%c,%c,*m,n);main()char p=b,q=B;s(&q,p);printf(%c,%cn,p,q);则程序运行后的输出结果是( )。AE,e,b,EBe,E,b,FCE,e,e,EDe,E,b,E23. 函数f定义如下,执行语句”sum=f(4)+f(2);”后,sum的值应为( )。int f( int m) static int i=0; int s=0;for(;i=m;i+) s+=i; return s;A13

9、B16 C10 D824. 若有以下调用语句,则不正确的fun函数的首部为( )。main() int a50,n;fun(n, &a9);Avoid fun(int m, int x )Bvoid fun(int s, int h41)Cvoid fun(int p, int *s)Dvoid fun(int n, int a)25. 有以下程序#include int f(int x) int y;if(x=0|x=1) return(3);y=x*xf(x2);return y;main() int z;z=f(3); printf(%dn,z);程序的运行结果是A0 B9 C6 D82

10、6. 下列程序执行后的输出结果是void func(int *a,int b) b0=*a+6; main() int a,b5;a=0; b0=3;func(&a,b); printf(%dn,b0);A6 B7 C8 D927. 有以下程序#include void fun(int p) int d=2;p=d+; printf(“%d”,p);main() int a=1;fun(a); printf(“%dn”,a); 程序运行后的输出结果是A32 B12 C21 D2228. 有以下程序#include void fun( int *a,int *b) int *c; c=a;a=b

11、;b=c;main()int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf(“%d,%d,”,*p,*q);fun(&x,&y);printf(“%d,%dn”,*p,*q); 程序运行后的输出结果是A3,5,5,3 B3,5,3,5 C5,3,3,5 D5,3,5,329. 有以下程序#include void f(int *p,int *q);main() int m=1,n=2,*r=&m; f(r,&n);printf(“%d,%d”,m,n);void f(int *p,int *q) p=p+1; *q=*q+1; 程序运行后输出的结果是A1,3 B2,3

12、 C1,4 D1,230. 以下函数按每行8个输出数组中的数据void fun( int *w,int n) int i;for(i=0;in;i+) _ printf(“%d”,w); printf(“n”); 下划线处应填入的语句是Aif(i/8=0)printf(“n”); B if(i/8=0)continue;C if(i%8=0)printf(“n”); D if(i%8=0)continue;31. 有以下程序#include int fun(int x,int y) if(x=y) return(x);else return(x+y)/2);main() int a=4,b=5

13、,c=6;printf(“%dn”,fun(2*a,fun(b,c); 程序运行后的输出结果是A3 B6 C8 D1232. 有以下程序#include void fun(int a, int n) int i, t;for(i=0; in/2; i+) t=ai; ai=an1i; an1i=t;main() int k10=1,2,3,4,5,6,7,8,9,10, i;fun(k,5);for(i=2; i8; i+) printf(%d, ki);printf(n); 程序的运行结果是( )。 A345678 B876543 C1098765 D32167833. 有以下程序#incl

14、ude int fun(char s ) int n=0;while(*s=0) n=10*n+*s0; s+;return(n); main() char s10=6 , 1 , * , 4 , * , 9 , * , 0 , * ; printf(%dn,fun(s); 程序运行的结果是 ( )。 A9 B61490 C61 D534. 已定义以下函数int fun(int *p)return *p; fun函数返回值是( )。 A不确定的值 B一个整数 C形参p中存放的值 D形参p的地址值二、 填空题1. 求字符串长度的标准库函数是 。2. 从函数的形式看,函数分为_和无参函数,从用户使

15、用的角度看,函数分为_和用户自定义函数。3. 已知int a4=1,3,5,7,*q;q=a;,则*(q+1)的值为_,*q+1的值为_.4. 根据变量存储方式的不同,变量共有auto、_、_和_四种类型。5. 静态局部变量在_时被赋初值,并且如果在定义静态局部变量时不赋初值的话,则它的值为_。6. 形式参数简称_,实际参数简称_。根据形成参数的不同,实际参数传给形式参数可以分为_和地址传递两类。7. 已知函数fun()存在,并且有调用表达式fun(a,(a,b),则可以判断出此函数有_个形式参数。8. 指针变量是用于存放的变量 。9. 已知double a=9;请定义一个指针p,并指向变量a

16、,要求用一条语句实现:_.10. 已知int a=2,4,6,8,9,7,8,9,*p=a+2;则p+执行后,p指向数组a的第_个元素。三、 程序分析题1. 以下程序的输出结果是:_。float fun(int x,int y)return (x+y);main() int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),ac);2. 以下程序的运行结果是_。#include stdio.hint a=3, b=6;main() int a=4, c;c=plus(a,b);printf(“%dn”,c);plus(int x,int y) int z

17、;z=x+y;return(z);3. 以下程序的运行结果是_。#include stdio.h#include string.hmain() char str120=WO,str220=ABC;strcpy(str1,str2);printf(%s,str1);4. 以下程序运行后的输出结果是_。int x;main() x=5;cube();printf(“%dn”,x);cube() x=x*x*x; 5. 有以下程序#include int a=5;void fun(int b) int a=10;a+=b;printf(“%d”,a);main() int c=20;fun(c);a

18、+=c;printf(“%dn”,a); 程序运行后的输出结果是_。6. 有以下程序#include fun(int x) if(x/20) fun(x/2);printf(“%d “,x);main() fun(6);printf(“n”); 程序运行后的输出结果是_。7. 以下程序运行后的输出结果是_。#include int main() int a,b;int *p,*q;p=&a;q=&b;*p=3;*q=a+*p;printf(%d,%dn,a,b);return 0;8. 以下程序运行后的输出结果是_。#include void fun(double *x,double *y)

19、double *t;t=x;x=y;y=t; int main() double a=9.8,b=7.5;fun(&a,&b);printf(%.1f,%.1fn,a,b);return 0;9. 以下程序运行后的输出结果是_。#include void fun(double x,double y) double t;t=x; x=y; y=t;int main() double a=6.3,b=5.7;fun(a,b);printf(%.1f,%.1fn,a,b);return 0;四、 程序填空题1. 以下程序中,函数fun的功能是计算x22x+6,主函数中将调用fun函数计算:y1=(x

20、+8)22(x+8)+6y2=sin2(x)2sin(x)+6请填空。#include math.hdouble fun(double x) return (x*x2*x+6); main() double x,y1,y2; printf(Enter x:); scanf(%lf,&x);y1=fun( _ ); y2=fun( _ );printf(y1=%lf,y2=%lfn,y1,y2); 2. 以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空int isprime(int a) int i;for(i=2;i=a/2;i+)if(a%i=0) ; ;五、 编程题1. 编写一个函数,求三个数的最大值。函数头部为: double fun(double x,double y ,double z)2. 编写一个函数求1+2+3+n函数头部为: int fun(int n)3. 编写一个函数,求一个55整型矩阵的两条对角线元素之和。函数头部为 double fun(double a55)4. 编写一个函数,交换两个数的值,要求用指针实现。函数头部为: void fun(int *x,int *y)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2