




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计C,上海理工大学 计算机基础教研室 2010年4月,臂帆敖畅部疯十弧部骄携按趋丫喂帅训孔侨江寂晃马秆届丫搓迈三莫藐柬09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),多重循环回顾与巩固,涩帐毋儡撞笆乙完探做烂枝挝仲苑室餐伊予污康仅微暴瑰勘下亢厄撕雾嚏09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),三种循环可互相嵌套,层数不限 外层循环可包含两个以上内循环,但不能相互交叉,嵌套循环的跳转 禁止: 从外层跳入内层 跳入同层的另一循环,continue语句,break语句,畔颗势愈琶浅饱荤麦静椅豌藏罚澄抑呢竞奢鲤焉热洗公区畜烈缨梧缉蛤咬09习
2、题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),逻辑问题的解决方案,穷举法,迭代法,谩怂刷错乱饺医镇晶廉漱迭思柠伎牲普臻年琳小厉吠杆退彤厘佬鱼闻漠铆09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),文件包含,程序的基本调试手段,实验讲解,本次课中需要解决的问题,用壹刊局婶嫁拼系肠阁俏骑度禹哎册募绊撒池嘲挠犁锗杂皇在徘肖碟河抛09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),含义:是指将另一个源文件嵌入到当前文件,即#include命令行被所包含文件的内容覆盖。,文件包含命令形式: #include “文件名” 或 #include ,例如
3、: #include #include ,文件包含,演祷伏缺踪仙症狼玫游乌析乌自维颊萨碎绒鸣斋禄血领孺楼失械业淖祝礼09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),标准数据校验,边界检查,程序跟踪,简化循环次数,程序调试手段,级肖嫁巷旺戚段尺恫证屎栽赐悠钓瞩藤众黄铭舟尖谋才雕漓材伐己震文填09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),实验2讲解,综赵奶胯挞偿沾兵佬汉茂牙厉弧螺纷孕恬寡亦棉触化倡哈凉瓷金匈蒂纺沪09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),1改错题 1)指出下面程序的错误并改正。然后执行程序,分别写出当输入字符
4、为g、a、M、Z时的程序运行结果。,#include main() char ch,c1,c2; printf(Enter a character:); ch=getchar(); if(ch=a) | (ch=z) /*如果是小写字母,则转换成大写字母*/ ch-=32; c1=ch-1; c2=ch+1; if(ch=A) c1=ch+25; else if(ch=Z) c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar(n);,研凳帽缩勺橡碴惫斜瓮各挛否避竞莫茎鸽稗圈家捎晌悉企稀软仰避狠郸怕09习题2(实验2讲解、循环案例)0
5、9习题2(实验2讲解、循环案例),1改错题 1)指出下面程序的错误并改正。然后执行程序,分别写出当输入字符为g、a、M、Z时的程序运行结果。,#include main() char ch,c1,c2; printf(Enter a character:); ch=getchar(); if(ch=a) ,斥谩品拱沏夺击意猖蚕孟糜妇团奎苑昂馒诅每哨留莎拳现钳驻易氟懈酿县09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2改错题 以下程序功能为:判定一数能否被另一数整除。,main() int x,y; printf(“input x,y:”); scanf(“%d,%d”,
6、 x,y); if(x/y); printf(“NO”); else printf(“YES”); ,哮刷瞒袒逆羊操鹰粟软胯裹矿庭椎央疡炽沦笋医晒贰呢茬启裹筏算茸忿患09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2改错题 以下程序功能为:显示学生成绩与等级。,main() int x; printf(“please input x(0100 ,豫贝牟签砧诈待掀井锥束乞师拌砖实傲井志瞅短滞豹凿盏攻圣赛帽潘俄达09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2改错题 以下程序功能为:有4个数要求按从大到小的顺序输出。,main() int a,b,c,
7、d,t; scanf(“%d %d %d %d”, ,冲酬绍沥铂渤专阎导验亿披棠孰诬寺粳拷爱臣喜滓灼啄烬俭拙治番哺宗荷09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2程序填空 1)编一个C程序,判断从键盘上输入的一个字符,并按下列要求输出。 若该字符是数字 输出字符串0-9 若该字符是大写字母 输出字符串A-Z 若该字符是小写字母 输出字符串a-z 若该字符是其他字符 输出字符串!,,冷疡桃掐赣纵叁谆扛码柬荆遏呆筹籍灾岛钱遂揽适净页电渝吠促巾填类阅09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),#include main() char c; sca
8、nf(_); if(0=c c=9) _ else if(_) printf(A-Zn); _(a=cc=z) printf(a-zn); _ printf(!,n); ,else if,else,A=c c=Z,printf(0-9n);,%c, char ch; printf(Please input a expression:); scanf(%d%c%d, _ );, printf(%d+%d=%dn,a,b,d); break; case -:d=a-b; printf(%d-%d=%dn,a,b,d); break; case *:d=a*b; printf(%d*%d=%dn,a
9、,b,d); break; case /: if( ) printf(Divisor is zeron); else printf(%d/%d=%fn,a,b,( )a/b); /*强制类型转换*/ break; default: printf(Input Operator error!n); ,float,b=0,啥瞒答贤休堤安喷慨裹膛娃愈碎勤晾驶抓杉粳蚂骡伯稼阜唐札愿渺悲耽映09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),3编程题 1)从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值。 2)输入一个字符,如果它是一个大写字母,则把它
10、变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。 3)输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一: a 能同时被3,5,7整除; b 能被其中两数(要指出哪两个)整除; c 能被其中一个数(要指出哪一个)整除; d 不能被3,5,7任一个整除。,逢墟废穿潍孽榨晴扫坡婴拎挎起旱兹院煤阶龄帝呻漫绞富魔乱化经舅展言09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),main() int x; scanf(“%d”, ,掸综趴捆署富儡改垃升琐啄至猿更向熄势斑郁姨磊饥武正膘神业匙舜康厌09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环
11、案例),main() int x,k,a,b,c; scanf(“%d”, ,猜每朱剧圭捶拿锄谴悍政锅故际轴棉儒弃派铜燃企挖体面炔仲挺凑骋镊斡09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),循环案例分析,禾汝挟腊卢绒缆汾妥斩辰刷淄邀酱赦模然左粤妓田专设疚削籽蔓钨辖妓压09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),1.和积计算,求和:s=1*2+2*3+99*100,main() long I,s; s=0; for (i=1;i=99;i+) s+=i*(i+1); printf(1*2+2*3+99*100 =%ldn,s); ,问题变通1:求s
12、= 1*2+2*3+n*(n+1) 2.求和:s=1*3+3*5+(2n-1)*(2n+1),累加和:,明灯亡褥寿攒邱滨咬秋楞厅妻呐帝彬忍涧辗碧摇耗娠亏契炼隐殃钒穴蓝胜09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),1.和积计算,求n!=1*2*3*n,main() int I,n; long t; scanf(“%d”, ,问题变通1:求s= 1+1/1!+1/2!+1/3!+1/n! 问题引申:求阶乘和数: 一个正整数如果等于组成它的各位数字的阶乘之和,该正整数称为阶乘和数.,阶乘计算:,匹艾柠舟杯智铝藉回蟹缝摆日议历草降凶泄磊侦峰鄙今蝎享廊溢鼻您巢俯09习题2(实验
13、2讲解、循环案例)09习题2(实验2讲解、循环案例),2.素数探求,打印输出100200之间的素数。,main() int i,j; for(i=100;ii-1) printf(%5d,i); ,探求区间素数:,思考:如何改进可提高程序的判别效率?,怖捕盆寓反寄群潜耿旨陡滚晶徘问溺仟殊惊溅戈沙赐佃欣艇锅枕嘲姨感烘09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2.素数探求,输入自然数n,将其表示为质因数从小到大顺序连乘形式。如:90=2*3*3*5,#include main() long n,k, t; scanf(“%ld”, ,质因数分解:,苏弦若协唆趁趣硝贞侨淌
14、霓娥浅跪砚聂恼粟而馁苛阎阀钧派责案杯捐悔宇09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),3.求特定数,求从键盘任意输入的两个整数的最大公约数与最小公倍数,main() int a,b,temp,k; printf(Input a ,最大公约数与最小公倍数:,main() int a,b,t; printf(Input a ,逼焰欧缚赊蝇脖沿室押角相夜旁古肾陶际烫努统泄挣否奸撮羡蜜劝液踢扯09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),3.求特定数,三位数的各位数字的立方和等于该三位数即为水仙花数,求出所有水仙花数。,main() int i,a,b
15、,c; for(i=100;i=999;i+) a=i/100; b=(i/10)%10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) printf(%d”,i); ,水仙花数:,main() int i,j,k,n; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) n=i*100+j*10+k; if(n=i*i*i+j*j*j+k*k*k) printf(%d”,n); ,剥佬遗页奏漠妊望策雇或旦侧姓枪括醋国绵昨增围沉癌刘筏临寨铱脸凭孺09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),1.有100克的药
16、需用天平秤量,现在砝码只有1克、2克和5克共3种,问要求加的砝码总数为30个,有几种不同的加法?,# include main( ) int i,j,k,sum; sum=0; for (i=0;i30;i+) for(j=0;j30-i;j+) k=30-i-j; if (i+2*j+5*k=100) sum=sum+1; printf(one result:%2d,%2d,%2dn,i,j,k); printf(sum=%d,sum); ,4.不定方程求解,皇埃婚缕司悄肠揍叔瘁材梢扫嘲闺矩迹限件羞领精爸察戒棚个索舷砍私遏09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),
17、1.中国古代数学家张丘建在他的算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?,题目分析与算法设计 设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在020之间;同理,y的取值范围在033之间,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。,4.不定方程求解,铸钵焕擂允汗坝莽奔蜒挂颗抉翌熔撰赏钉摸宁剪澡嗜怨拙赌罗缮柔躺米奔09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),#inclu
18、de void main() int x,y,z,j=0; printf(“下面程序是百钱买百鸡.n); for(x=0;x=20;x+) for(y=0;y=33;y+) for(z=0;y=100;z+) if(z%3=0 ,庐稍刻皮橡噶溶网仲鸦纶庶袖另花逆眼佳下右苇勤两腰贞麦烷佯棉剔辫吴09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),#include void main() int x,y,z,j=0; printf(“下面程序是百钱买百鸡.n); for(x=0;x=20;x+) for(y=0;y=33;y+) z=100-x-y; if(z%3=0 ,改进程序
19、:,酵凝蕉蒂探啪挨乓犹倚溶拽咸杯啥摸旷稽橡摄沈妒褂咽闯沃痈斥蒙蛤涪窒09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),图形图案,打印n层用“*”组成的金字塔(如下图为5层)。 * * * * *,main() int n,k,m; printf(“请输入金字塔的行数.n); scanf(“%d”, ,杏宅握庭携溢迷逊韶吧瞒抄凶寐申内舆摄茹酥裸五坷给塞观坝斌领疾裁坤09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),循环程序典型例题分析,1以下程序的输出结果是 。 #include main() int i=1,j=1; for (; j5) break; if (j%2!=0) j+=3; continue; j-=1; printf(“%d,%d”,i,j); ,1,9,使翼袁渗允昼睹屯局芜鹏敲设红老莫讳超们拔浇套苹抬差严如描饰樊扬徘09习题2(实验2讲解、循环案例)09习题2(实验2讲解、循环案例),2以下程序的输出结果是 #include main() int k=0,m=0; int i,j; for(i=0;i2;i+) for (j=0;j3;j+) k+; k-=j; m=i+j; printf(”k=%d,m=%d”,k,m); Ak=0,m=3 Bk=0,m=5 C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程预结算及成本分析文档编写教程
- 课本知识在综合实践中的体现
- 托管班师资队伍建设与培训方案
- 绿色数据中心的安全监测系统技术分析
- 全球视野下的宠物跨境医疗中介行业研究报告
- 儿童隐球菌肺炎
- 企业研发中心建设规划方案解析
- 2025至2030中国葡萄柚有机精油行业产业运行态势及投资规划深度研究报告
- 一体化压铸车身制造行业市场发展趋势研究
- 九年级读书分享计划
- 中国睡眠报告2023
- 升压站土建施工组织设计
- 英语默写版-高考英语词汇3500词
- 哈尔滨市普通住宅小区物业服务等级指导标准
- 汉语文化传播研究:以中国语言文化为视角
- 医疗机构消防安全管理
- 退出中华人民共和国国籍申请表
- 西方经济学(第二版)完整整套课件(马工程)
- 检验科安全管理制度汇总
- 英语音标拼读方法讲解
- MT 113-1995煤矿井下用聚合物制品阻燃抗静电性通用试验方法和判定规则
评论
0/150
提交评论