第七章函数练习题(1)带答案

上传人:F****n 文档编号:99559388 上传时间:2019-09-19 格式:DOC 页数:9 大小:49.50KB
返回 下载 相关 举报
第七章函数练习题(1)带答案_第1页
第1页 / 共9页
第七章函数练习题(1)带答案_第2页
第2页 / 共9页
第七章函数练习题(1)带答案_第3页
第3页 / 共9页
第七章函数练习题(1)带答案_第4页
第4页 / 共9页
第七章函数练习题(1)带答案_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《第七章函数练习题(1)带答案》由会员分享,可在线阅读,更多相关《第七章函数练习题(1)带答案(9页珍藏版)》请在金锄头文库上搜索。

1、第七章函数练习题(1)一、选择题1. 一个完整的C源程序是【 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【 】。A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【 】。A)C程序是函数的集合,包括标准

2、库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【 】。A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【 】A)floatB)longC)intD)double6. 以下关于函数叙述中,错误的是【 】。A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C

3、)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【 】。A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【 】。A)实参将其地址传递给形参,并释放原先占用的存储单元B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实参将其值传递给形参,调用结束时形参再将其值回传给实参D)实参将其值传递给形参,

4、调用结束时形参并不将其值回传给实参10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【 】。A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元11. 若用数组名作为函数调用的实参,则传递给形参的是 【 】。 A) 数组的首地址 B) 数组的第一个元素的值 C) 数组中全部元素的值 D) 数组元素的个数12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【 】。A)实参与其对应的形参共用同一段存储空间B)实参与其对应的形参占用相同的存储空间C)实参

5、将其地址传递给形参,同时形参也会将该地址传递给实参D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递二读程序写结果1. fun(int x,int y,int z) z =x*x+y*y;main ( ) int a=31; fun (6,3,a); printf (%d, a); 2. int f( ) static int i=0; int s=1;s+=i; i+;return s; main() int i,a=0; for(i=0;i5;i+) a+=f(); printf(%dn,a);3. 运行程序时,若从键盘输入asd af aa z67(回车),分析以下程序的输出结

6、果。#include int fun(char *str) int i,j=0;for(i=0;stri!= ;i+)if(stri!= ) strj+=stri; strj= ;main() char str81;int n;printf(Input a string : );gets(str);fun(str);printf(%sn,str);4.void swap(int *p1,int *p2) int *t; t=p1,p1=p2,p2=t; printf(*p1=%d,*p2=%dn,*p1,*p2);main() int x=10,y=20; swap(&x,&y); print

7、f(x=%d,y=%dn,x,y);5.#includevoidfun(int *s, intm, int n) intt; while(mn) t=sm; sm=sn; sn=t; m+; n-;main() Int a5=1,2,3,4,5,k;fun(a,0,4);for(k=0;k5;k+) printf(%d ,ak);6.int fun(char s) int n=0; while(*s=0) n=10*n+*s-0; s+; return(n);main() char s10=6,1,*,4,*,9,*,0,*; printf(%dn,fun(s); 7.#includeInt

8、fun(int x) inty; if(x=0|x=1)return(3); y=x*x-fun(x-2) returny;main() int x,y; x=fun(3); y=fun(4); printf(%d, %dn, x ,y);8.fun(int n,int *s) int f1, f2; if(n=1 | n=2) *s=1; else fun(n-1, &f1); fun(n-2, &f2); *s=f1+f2; main() int x; fun(6,&x); printf(%dn,x); 三、填空题1. 以下程序实现了计算x的n次方,请将程序填写完整。float power

9、(float x,int n) int i; float t=1; for(i=1;i=n;i+) t=t*x;return t; main( ) float x,y;int n; scanf(%f,%d,&x,&n);y=power(x,n);printf(%8.2fn,y);2. 以下程序实现了求两个数的最大公约数,请将程序填写完整。int divisor(int a,int b) int r;r=a%b;while(r!=0) a=b;b=r;r=a%b; return b;void main() int a,b,d,t;scanf(%d %d,&a,&b);if (at时返回正值,st

10、时返回负值。请将函数填写完整。my_cmp(char *s,char *t) while(*s = *t) if (*s=0) return 0; +s; +t; Return *s-*t;4. 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。请将程序填写完整。例如,若一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。#include #define N 80int fun(int a, int n)

11、 int i,j=1;for(i=1;in;i+)if(aj-1!=ai) aj+=ai; Return j;main( ) int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19;printf(The original data:n);for(i=0;in;i+) printf(“%d ”,ai);n=fun(a,n);printf(nThe data after deleted: n);for(i=0; i100) printf(%dn,(a*a+b*b)/100);else printf(%dn,a+b);2、 请编程序,根据以下函数关系,对输入的每个x值,计算出相应的y值。xyx000x10x10x201020x40-0.5x+20参考程序:main()float x,y;printf(Input x:);scanf(%f,&x);y=-1;if(x0) y=0;else if(x=10) y=x; else if(x=20) y=10; else if(x40) y=0.5*x+20 else y=-1;if (y=-1) printf(error);el

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号