2、两道函数编程题.doc

上传人:汽*** 文档编号:559467364 上传时间:2023-02-08 格式:DOC 页数:5 大小:57.50KB
返回 下载 相关 举报
2、两道函数编程题.doc_第1页
第1页 / 共5页
2、两道函数编程题.doc_第2页
第2页 / 共5页
2、两道函数编程题.doc_第3页
第3页 / 共5页
2、两道函数编程题.doc_第4页
第4页 / 共5页
2、两道函数编程题.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《2、两道函数编程题.doc》由会员分享,可在线阅读,更多相关《2、两道函数编程题.doc(5页珍藏版)》请在金锄头文库上搜索。

1、两道函数编程题要求在下堂课(11.22)上交书面作业0822、0823抽上台填空题课堂提问(3谢晓伟、13徐州琛、23潘佳君、29吕杨松、57周黄冬、60钱俊)一、2010秋C01上机编程题(字符指针改为字符串数组)【程序功能】字符串变换。【编程要求】1. 编写函数void change(char a, char b, char c)。函数功能是首先把b的字符串逆向存放,然后将a字符串和c字符串按排列顺序交叉合并到c的数组中,两个字符串中过长的剩余字符接在c数组的尾部。例如a字符串为“abcdef”,b字符串为“1324”时,c数组中字符串应为“a4b2c3d2efg”。2. 编写main函数

2、。函数功能是声明字符数组s1、s2和t,用测试数据初始化数组s1和s2,再用s1、s2和t作为实参调用函数change,将s1、s2和t中的字符串输出到屏幕。【测试数据与运行结果】测试数据:s1=abcdefg s2=1324屏幕输出: s1=abcdefg s2=4231 The result is :a4b2c3d1efg编程提示等同(实验六),不同的是采用函数传递方式编程。二、2010秋C02上机编程题【程序功能】在所有三位整数中找出平方数中有连续的三位数字是该数本身的数。例如,250的平方是62500,250便是所要找的一个满足条件的三位整数。【编程要求】3. 编写函数int find

3、(long a2)。函数功能是将三位数中所有满足上述条件的数及其平方数存入a指向的二维数组中,函数返回满足上述条件的三位数的个整数。4. 编写main函数。函数功能是声明二维数组a,用数组a作为实参调用函数find,输出满足条件的三位整数及其平方数到屏幕。【测试数据与运行结果】屏幕输出: i power100 10000250 62500376 141376500 250000600 360000625 390625760 577600编程提示这是一个嵌套调用(8.5)题目。函数int find(long a2)要两次调用一个长整型量i和i*i分别变为两个一维字符串数组x,y的函数void r

4、everse(long h, char y),然后比较,若x数组在y数内,且恰好为三位,则将两长整型数存入a数组内。一个长整型量h变为一维字符串数组y函数的参考程序:void reverse(long h, char y) long x=h; int k=0,i; char c; while(x0) yk+=x%10+0; x/=10; /*参见十种典型自编函数汇集.doc中第7点*/ for(i=0;ik/2;i+) c=yi;yi=yk-i-1;yk-i-1=c; /*参见十种典型自编函数汇集.doc中第8点*/ yk=0;函数int find(long a2)中判别i是否在i*i之内的部

5、份程序段(n为返回符合条件的记录数)int i,j,k,m,n=0;char x10,y10;for(i=100;i999;i+) reverse(i,x); reverse(i*i,y); k=0,m=0; for(j=0;jstrlen(y);j+) if(yj=xm&yj+1=xm+1&yj+2=xm+2) an0=i;an1=i*i;n+; 第八章填空题:3、已知方程x2-x-2=0在1.0附近有一实根。以下程序中root为递归函数,采用牛顿法计算方程在已知实数x附近的一个近似实根。算法提示:计算方程在f(x)=0在x0附近的一个近似实根的牛顿迭代公式为: ;若|f(xi+1)|,则认

6、为xi+1是方程f(x)=0在允许误差范围内的一个实根。取值为0.000001#include #include double f( double x)return x*x-x-2; double f1( double x)return 2*x-1; double root( double x)double y; if(fabs(f(x)=1e-6) y=_(19)_; else y=root(_(20)_); return y;main()printf(n One root is %lf, root(1.0); 13、以下程序运行时输出结果是_(7)_。 #include int sum(i

7、nt k) static int x=0; return x+=k; void main() int s,i,sum(); for(i=1;i=5;i+) s=sum(i); printf(%dn ,s);23、以下程序运行时输出结果为_(6)_。/*第八章书P189用static声明局部变量*/#include int a;int m(int a) static int s; return (+s)+(-a);void main() int a=2; printf(%d,m(m(a);29题(递归调用):以下程序运行后的输出结果为_(8)_。 #include void f(long x)

8、if(x100) printf(%d, x/10); else f(x/100); printf(%d,x%100/10);main() f(123456); 57题(递归调用):以下程序运行时输出到屏幕的结果是_(12)_。 #include void fun(int m, int n) if(m=n) printf(%d, m); else fun(m+1,n); printf(%d, m);void main() fun(1,2); 60题(递归调用):以下程序运行时输出到屏幕的结果是_(11)_。#include int f(int x) if(x=0|x=1) return 3; r

9、eturn x*x-f(x-2);void main() printf(%dn , f(3); 第九章填空题:7、执行以下程序段中的语句k=M*M+1后k的值是_(4)_。#define N 2#define M N+1k=M*M+1 8、以下程序运行时输出到屏幕的结果为_(6)_。 #include #define MAX(A,B) AB?2*A:2*Bvoid main() int a=1,b=2,c=3,d=4,t; t=MAX(a+b,c+d); printf(%d n,t);9、若有以下宏定义:#define M(a,b) -a/b 则执行语句printf(%d,M(4+3,2+1)

10、;后输出结果为_(4)_。附录:调用函数的四种典型组合:1、空函数(P157):例main()等效于 void main(void)、void fun(void) 调用格式简化为:fun();2、函数返回值(P163):被调函数中应有return语句;被调函数本身应定义类型;主调函数可直接调用函数。(适用于单个变量传递) 例:int max(int x,int y) return xy?x:y; main() int a=2,b=3; printf(“max=%d”, max(a,b);3、形参与实参结合传递数据(多个变量或数组传递): 地址共享法: 利用指针变量和取地址操作方法: 例1:in

11、t max(int x,int y,int *z) *z=xy?x:y; main() int a=1,b=2,c; max(a,b,&c);printf(“max=%d”, c); 利用数组名或任一个元素地址是数组数据的首址特点,共享内存同一地址方法(P178数组元素例8.10; P179数组名例8.11): int y(int x) int t; t=x0;x0=x1;x1=t; main() int i,z3=1,2,3; y(&z1); for(i=0;i3;i+) printf(n%5d,zi); 全局变量法(P184)注意:采用指针变量和取地址操作方法受到一定的限制,表达式*z+;

12、或*z-;按照运算符优先权法则,自增或自减运算符与指针运算符同处2级,而不能获得正确结果,根据书P224第(3)提示,正确写法是为*z=*z+1;或*z=*z-1;或(*z)+;或*(z)-;后则能获得正确结果。见下例:主函数中变量y无法获得2的结果#include void gg(int *b) *b+; void main() int y=1; gg(&y); printf(%dn,y); 改成下面程序后,在VC+无法获得正确结果,而在TC3下主函数中变量y可以获得2的结果。#include void gg(int *b) (*b)+; void main() int y=1; gg(&y); printf(%dn,y); 结论:在函数传递中,建议按书P224(3)规定办理,或只作赋值也可。1、 返回指针值的函数:书265第 1 页 共 5 页

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

当前位置:首页 > 生活休闲 > 社会民生

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