《大连理工程序设计-第3次上机作业(20页).doc》由会员分享,可在线阅读,更多相关《大连理工程序设计-第3次上机作业(20页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1.题目描述:编写函数,计算表达式 的值( ),形参n的值由主程序输入并传递,函数返回值为s.题目分析:主函数用循环语句计算各阶层之和,调用函数factorial(int x),用循环语句计算每个阶层。开始流程图:定义n,s,k,m;用scanf输入n循环语句计算各阶层之和调用factorial(int x)函数用循环语句计算每个阶层返回t值结束程序代码:#includevoid main()int factorial(int x);int n,s,k,m;s=0;scanf(%d,&n);for(k=1;k=n;k+)m=factorial(k); s+=m;printf(%dn,s);i
2、nt factorial(int x)int t,i;t=1;for(i=1;i=x;i+)t*=i;return(t);程序截屏:2.1 题目描述:编写数字加密函数 int encrypt(int n). 其输入为一个四位数,返回为加密后的数。其加密方法为:(1)将该数每一位上的数字加9,然后除以10 取余,作为该位上的新数字,(2).将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。题目分析:主函数输入n,并打出结果。调用int encrypt(int n)函数,在int encrypt(int n)函数里用公式将原密码加密,并返回加密后的值。开始流程图:
3、定义a,b;用scanf输入a调用int encrypt(int n)函数factorial(int x)函数用公式将原密码加密返回n值主函数用printf打出结果结束程序代码:#includevoid main()int encrypt(int n);int a,b;scanf(%d,&a);b=encrypt(a);printf(The encrypted number is %dn,b);int encrypt(int n)int i,j,p,q;i=n%10;j=n%100/10;p=n%1000/100;q=n/1000;i=(i+9)%10;j=(j+9)%10;p=(p+9)%1
4、0;q=(q+9)%10;n=j*1000+i*100+q*10+p;return n;程序截屏:.题目描述:编写数字加密函数 int decrypt(int n), 其输入为一个使用2.1 encrypt 函数加密后的四位数,返回为解密后的数。题目分析:主函数输入n,并打出结果。调用int decrypt(int n)函数,在int decrypt(int n)函数里用公式将原密码解密,并返回解密后的值。开始流程图:定义a,b;用scanf输入a调用int encrypt(int n)函数factorial(int x)函数用公式将原密码解密返回n值主函数用printf打出结果结束程序代码:
5、#includevoid main()int decrypt(int n);int a,b;scanf(%d,&a);b=decrypt(a);printf(The decrypted number is %dn,b);int decrypt(int n)int i,j,p,q;i=n%10;j=n%100/10;p=n%1000/100;q=n/1000;i=i+10-9;j=j+10-9;p=p+10-9;q=q+10-9;n=j*1000+i*100+q*10+p;return n;程序截屏:3. 题目描述:钟面上的时针和分针之间的夹角随着时间的不同而变化。举例来说,在十二点的时候两针之
6、间的夹角为0,而在六点的时候夹角为180度(时针和分针有两个夹角,其中较小的为准)。本题首先要编写函数来计算 12:00 到 11:59 之间任意一个时间的时针和分针的夹角,并利用此函数算出在什么时间二者的夹角达到最大(精确到分钟) 。计算夹角的函数angle(int h,int m)有两个输入,第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 0, 59 上 ) 。 其输出为该时刻时针和分针间的最小夹角。题目分析:主函数为时间的输入,并进行循环,循环直到输出最大角度。调用angle(int h,int m)函数,运用公式计算角度,返回值到主函数。最后输出结果
7、。开始流程图:定义a,b,t;用for循环内嵌for循环调用angle(int h,int m)函数用公式计算角度返回t值主函数用printf打出结果结束程序代码:#includemain()int angle(int h,int m);int a=1,b=0,t;for(a=12;a=1;a-)for(b=0;b=59;b+)t=angle(a,b);if(t=180)goto A;A: printf(时针和分针在:%d:%d时夹角最大,其夹角为:%dn,a,b,t);angle(int h,int m ) int t; t=h*30+m/2-m*6; if(t180) t=360-t; r
8、eturn(t); 程序截屏:4.题目描述:在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,要求用C语言编写个分数的函数来实现四则运算。题目分析:先用scanf输入运算式,再用switch函数根据符号的不同计算不同结果。最后再想办法将结果化简。开始流程图:定义a,b,c,d,x,y,i,p,q,op用print输入分数运算式用switch语句列不同表达式在不同情况里求解不同x,y用if,while语句化简结果用printf打出结果结束程序代码:#includevoid main()int a,b,c,d,x,y,i,p,q;char op;printf(输入分数运算式
9、:);A: scanf(%d/%d%c%d/%d,&a,&b,&op,&c,&d);if(b=0|d=0) printf(分母不能为0,请重新输入:); goto A; switch(op) case +:x=a*d+c*b;y=b*d;break; case -:x=a*d-c*b;y=b*d;break; case *:x=a*c;y=b*d;break; case /:x=a*d;y=b*c;break; if(xy)p=x;q=y; else p=y;q=x; while(q!=0) i=p%q; p=q; q=i; x=x/p;y=y/p; printf(%d/%d%c%d/%d=%
10、d/%dn,a,b,op,c,d,x,y);程序截屏:被打巴掌的那位差点淹死,幸好被朋友救过来了。被救起后,他拿了一把小剑在石头上刻了:“今天我的好朋友救了我一命。”一旁好奇的朋友问到:“为什么我打了你以后你要写在沙子上,而现在要刻在石头上呢?”另一个笑笑回答说:“当被一个朋友伤害时,要写在易忘的地方,风会负责抹去它;相反的如果被帮助,我们要把它刻在心灵的深处,任何风都抹不去的。”朋友之间相处,伤害往往是无心的,帮助却是真心的。在日常生活中,就算最要好的朋友也会有摩擦,也会因为这些摩擦产生误会,以至于成为陌路。友情的深浅,不仅在于朋友对你的才能钦佩到什么程度,更在于他对你的弱点容忍到什么程度。
11、学会将伤害丢在风里,将感动铭记心底,才可以让我们的友谊历久弥新!友谊是我们哀伤时的缓和剂,激情时的舒解剂;是我们压力时的流泻口,是我们灾难时的庇护所;是我们犹豫时的商议者,是我们脑子的清新剂。但最重要的一点是,我们大家都要牢记的:“切不可苛求朋友给你同样的回报,宽容一点,对自己也是对朋友。”爱因斯坦说:“世间最美好的东西,莫过于有几个头脑和心地都很正直的朋友。”他们继续往前走。走到了沃野,他们决定停下。被打巴掌的那位差点淹死,幸好被朋友救过来了。被救起后,他拿了一把小剑在石头上刻了:“今天我的好朋友救了我一命。”一旁好奇的朋友问到:“为什么我打了你以后你要写在沙子上,而现在要刻在石头上呢?”另
12、一个笑笑回答说:“当被一个朋友伤害时,要写在易忘的地方,风会负责抹去它;相反的如果被帮助,我们要把它刻在心灵的深处,任何风都抹不去的。”朋友之间相处,伤害往往是无心的,帮助却是真心的。在日常生活中,就算最要好的朋友也会有摩擦,也会因为这些摩擦产生误会,以至于成为陌路。友情的深浅,不仅在于朋友对你的才能钦佩到什么程度,更在于他对你的弱点容忍到什么程度。学会将伤害丢在风里,将感动铭记心底,才可以让我们的友谊历久弥新!友谊是我们哀伤时的缓和剂,激情时的舒解剂;是我们压力时的流泻口,是我们灾难时的庇护所;是我们犹豫时的商议者,是我们脑子的清新剂。但最重要的一点是,我们大家都要牢记的:“切不可苛求朋友给你同样的回报,宽容一点,对自己也是对朋友。”爱因斯坦说:“世间最美好的东西,莫过于有几个头脑和心地都很正直的朋友。”-第 20 页-