




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、哈尔滨工程大学程序设计基础实验报告基础实践姓名:麦豆班级:学号:实验时间:2018年5月3日成绩哈尔滨工程大学计算机基础课程教学中心实验题目1 :写个函数,Sn=a+aa+aaa+aaa 求多项式的前n项和,其中a是一个数字。n由键盘输入设计思想:声明函数sum,利用循环求得Sum最终值并返回Sum值实验代码及注释:#i ncIude int Sum(int a, int n) ;/Sum 函数声明i nt ma i n ()int n:int a;pr intf C请输入 a, n:n):Scanf C%d%d, &a, &n);Pr intf 前(:1 项和为 d nu, n, sum(a
2、, n) ;/ 调用函数 SUm return 0;i nt sum (i nt a, i nt n)int sum二0;int i ;int count;Coun t二0;for (i=1 ; i二n ; i+)count=count*10+a; / 每次乘 10 加 aSUm二SUm+co unt:return sum;验证与O:EZ疙言犬弓谓四At r其搭冠目1 :写TX两栽 bi n D比LJg邀目仁写 (t&炖I请输入1 4n time : 3. 672 S前41页和1234process returned 0 (0X0)executicIPreSS any key to cont
3、i nue.总结与心得体会:声明函数时后面一定要有分号,但写函数时不需要。实验题目2:编程实现求10000以内的回文数。其中,函数实现判断任一 正整数是否为回文数。所谓回文数就是将一个数从左向右读与从右向左读是 一样的,例如121和1331都是回文数。设计思想:声明judje函数,判断number是否为回文数。在函数内部先 判断数字number位数,由于回文数为对称结构,故通过位数来确定判断次 数,每次判断数字首位与个位然后去掉首位与个位再次判断直至循环结束。 另外需要对个位数另行判断,个位数一定为回文数。如果为回文数返回1, 否则返回0o实验代码及注释:#i ncIudestdio.h#i
4、ncIude int judje (i nt number) :/ 声明 judje 函数i nt ma i n ()i nt i ;for (i二0; iCOOOO; i+)if(judje(i)=1)/judje 为 1 的数输出return 0;int judje(int number)/ 判断 number 是否为回文数int judje, i=0, middIe_number, par ity, j ;/ 回文数判断变量,数字 位数,数字位数中间变量,数字位数奇偶i nt mi dd I e_number2;/取掉首位个位剩余数int shouwei, gewei ;/ 首位,个位m
5、i dd I e_number2=number :/ 全部赋初值mi ddIe_numbernumber;do/判断数字位数 i+;mi dd I e_number=mi dd I e_number/10;/ 对数字除以 10 直到为0while (middIe_number!=0);parity=i/2;/ 运算次数for (j=1;j二par ity;j+) shouwe i =mi ddIe_number2/pow (10. 0, (doubIe) (i-2*j+1):/ 首位数字gewei =middIe_number2%10;/ 个位数字middIe_number2= (middIe
6、_number2-shouwei*pow(10. 0, (double) (i一2*j+1)/10;/将首位与个位去除后剩余的数i f (shouwe i =gewe i) & j=par i ty) / 个位与首位相等且都已 比较完成jud je=1;/1 为eIse i f(shouwe i !二gewe i)judje=0;break;if (par ity=0)/如果为个位数一定为回文数judje=1;return judje;殓证与结论ress any key to cont inue.S8 M9UL 292 .308444 M454595 .6747 .757898 .909144
7、1 Ml5514444 .4554A7In* K hv/J7-fniQ总结与心得体会:通过函数可以使代码更加简洁,流程更加清晰实验题目3:假设你每月在储蓄账户上存100元,年利率是5%,则 每月的利率是0.05/12=0. 00417o第一个月后,账户上的值变成100*(1+0. 00417)=100.417;第二个月后,账户上的值变成(100+100.417)*(1+0.00417)二201.252;第三个月后,账户上的值变成(100+201.252)*(1+0. 00417)=302.507,以此类推。写一个函数,根据用户输入的 每月的存款 数、年利率和月份数,计算给定月份后账户上的钱数。
8、设计思想:声明final_mOney,由题意可知每个月钱数为上个月钱数加每月存的钱数乘以每月利率,在函数内部由循环得到钱数,返回final_money。实验代码及注释:#i ncIude VStdio. hdoub I e f i na I _m on ey (doub I e mon ey, doub I e lilv, i nt n) ;/ 函数声明i nt ma i n ()double money, I i Iv;/每月存款数,年利率int n;/ 月份printf(H请输入每月存款数、年利率和存款月份数(以空格隔开):n); scanf (%lf%lf%cT, &money, &l
9、i Iv, &n);pr intf (H 账户上的剩余钱数为 %. 3lfH, f ina l_money (money, I i I v, n); return 0;doubIe final_money (doubIe money, doubIe I i I v, int n)/ 存款数、年利率 和月份数doub I e final _money=0; / 赋初值int i ;/循环变量for (i=1;i二n;i+)final_money= (final_money+money)*(1 + 1 i Iv/12) ;/ 表达式return final_money:/ 返回钱数验证与结论:D
10、;C语妄项目嘗匹次上他S验荐歎脚 M i A | %b归存歎觀q巳请输入每月存款数、年利率和存款月份数臥空格隔开)?loO 0. 05 3302. 507Process returned 0 COxO)executic | n time : ?3 - 81?sPress any key tc COntirLUe 总结与心得体会:函数参数可以是多个但返回值只有一个。 实验题目4:用递归法将一个整数n转换成字符串。例如,输入483,应输出 的字符串u 483 , n的位数不确定,可以是任意位数的整数。设计思想:声明函数,在函数将数每次除以10反复递归调用直到为0,而余数加上(T可以产生相应的字符。
11、实验代码及注释:#incIude void change(int n) ; int main()i nt n;pr intf (请输入整数 n:) : scanf (%d, &n):pr intf (输出相应字符串:);if (n0)putchar ; /先输出一个-号n=-n:/转化为正值change (n):printf (n)return 0;Vo i d Cha nge (i nt n) i=n/10;if (i !=0)Change (i);对n每次除以10反复递归调用直到为0PUtChar (n%10+O) ;/余数加上01可以产生相应的字符D ;U语言顶目僕匹次上杯其验撬土字袴吾
12、W i rAWbug慣出字答更心巳输岀相盂学符串:4貂PrOCes 三 returned 0 (0X0) e k E cut i On t i n i E : IE 200 三 Press any key to COntintie.总结与心得体会:余数可以加上48来得到相应的字符但加,会更加简单。函数递归必 须要有限制条 件,转换字符串函数限制条件就是i为0。实验题目5:用递归方法求n阶勒让德多项式的值。设计思想:直接利用函数递归,当阶数值为。返回回输1 ,阶数值为1返入的数。另外阶数值在递归时需要强制转换为式子计算float类型,否则为整型数。实验代码及注释:#incIude f I oat
13、 number (f I oat x, int n) ;/ 函数声明 i nt ma i n ()int n;/ 阶数float x;/循环变量充当输入的数pr intf (请输入x值和阶数:n); sea nf (”f%cT,&x, &n) ; pr i ntf (% 2f rT, number (x, n) ; ret urn 0;fI oat number (fIoat x, int n)if (n=0)return 1;else if (n=1)return x:return(2* n-1) *x* nu mber (x, n-1) / (f I oat) n-(nT)* nu mbe
14、r (x, n- 2) / (float) n; 递归求n阶勒让德多项式注意n为整数需要强制转换验证与 D:CBT0目雋四次上讥实脸W阶勒让逢多项式grAEbu g门阶现让舊 妄忑云宀已P青输人苴值和阶数:% 3 425946. 65IPraCeSS TetUrned 0 (OXeI) execution time : 6. 991 S fF ress any key to CDrLt i nlle 总结与心得体会:递归是C语言中最基础也是极为重要的算法,核心 是函数自 身对自身的调用。注意整型除以整型仍为整型,故需要对阶数值强制转换。实验题目6:编程求20以内正整数的阶乘。要求:写一函数求任
15、 整数的阶乘, 在函数内部通过定义静态局部变量求阶乘。设计思想:声明一个factorial函数,在函数内部定义静态变量,利用 循环求 阶乘值,由于局部静态变量会保留上一次运行的值,故求20以内正整数的阶乘 只能调用一次factor i a I函数,求19的阶乘然后利用循环从19往下输出直 到1的阶乘。实验代码及注释:#incIudestdio. hlong long factorial (int number) ;/ 函数声明i nt ma i n ()int i二19;long long x; 数据极大必须用Ion gio ng数据类型x=factor i a I (i) ;/仅调用次函数/
16、pr intf C%lcT, x);for (口9; i0; i)Printf (u%d! %lldnn, i,x) ;/long long 用 %l Id 输出x/二i;/除掉之后多余的数的到当前i的阶乘return 0;long long factorial (int number)/ 求任意整数阶乘函数static long long y=1 ;/静态变量只赋一次初值以后函数调用会保 留上一次的值int i ;for (i=1;i3556S742S096000 16! Vs209227S98 E 8000I Sig 130767436800014! Vs87178291200 13162
17、2702080012! 479001600!%3991S80% !10&362880001362880B! 1403205!%!ProeeSS returned 0 (0X0) e k seut i on t i ne : 0. 542 S Press any key to continue.总结与心得体会:局部静态变量会保留上一次运行的值,故在此题中只调用了一次函数另外由于10以上阶乘数极大,声明类型时用了 long long类型。实验题目7:编程实现两个整形变量内容互换。用带参数的宏实现变量内容的交换。设计思想:直接用带参数的宏充当函数来对两个整型变量交换。实验代码及注释:#i ncIude #define change (x,y) mid=x;x 二y;y二mid /宏定义两个整形变量内容互换i nt ma i n ()int x, y, mid;PrintfC请输入Xy的值: n);scanf (u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 凉山自治州中储粮2025秋招信息技术岗高频笔试题库含答案
- 中国移动达州市2025秋招笔试行测题库及答案供应链采购类
- 安徽地区中石油2025秋招笔试模拟题含答案油品分析质检岗
- 牡丹江市中石油2025秋招面试半结构化模拟题及答案机械与动力工程岗
- 中国移动包头市2025秋招笔试性格测评专练及答案
- 商丘市中石油2025秋招笔试模拟题含答案炼油设备技术岗
- 珠海市中石油2025秋招笔试行测50题速记
- 三明市中石油2025秋招笔试提升练习题含答案
- 国家能源吉林市2025秋招机械工程类面试追问及参考回答
- 张掖市中石油2025秋招笔试模拟题含答案安全环保与HSE岗
- 成人重症患者颅内压增高防控护理专家共识(2024版)解读课件
- 山体滑坡事故应急处理模版课件
- 体检中心投诉处理流程
- 基于学科核心素养下的教学设计
- 人教版英语七年级(全册)单词表
- 全心衰竭的治疗与护理
- 扩张型心肌病治疗及护理
- 2002版干部履历表(贵州省)
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- 行路难课件8省公开课一等奖新名师比赛一等奖课件
- 防欺凌隐患排查和矛盾化解记录表
评论
0/150
提交评论