版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、阅读程序技巧阅读程序时要把自己模拟成一台计算机。根据冯的存储程序原理,程序可以分为数据和控制结构。阅读程序的关键是变量的数值变化,按照程序的控制结构对变量进行赋值。顺序结构:依次执行每一行代码,按照赋值语句填写变量的数值循环结构:找到与循环相关的变量,绘制循环运行的表格,填写每次循环运行时变量的数值选择结构:严格按照条件,判断程序的分支,根据其中的赋值语句追踪变量的数值变化变量的数值3.找到要输出的变量,按照赋值语句认真计算变量的数值f=112.在表格中列出变量,按照程序控制结构填写变量数值abcdef1247111.找出程序中的变量,一共是个#include using namespatd;
2、main() a,b,c,d,e,f; cina;b=a+1; c=b+2; d=c+3; e=d+4;f=(e+d+c)/b*a; coutfendl; return 0;变量数值3. 注意循环的结束条件,循环运行次数要准确2. n和cnt的值会跟随循环变化,要追踪变量的数值,画一个表格1. 程序中的变量一共有个#include using namespatd;main() t=0;cinn; while(n1) if(n%2) n=3*n+1; else n/=2; cnt+;coutcntendl; return 0;变量数值完成表格的填写循环运行次数ncnt121322122循环运行次
3、数ncnt123212116235834294567891011数组的处理 3. 与循环相关的变量i,tmp,r和p, 画表格变量数值变化4. 严格按照输出格式,写出程序运行结果2. 数组就是多个相同类型的变量放在一起,把数组全部可能的元素都用表格列出1. 程序中的变量一共有_个,其中p是数组#include using namespatd;main() constSIZE=1000; n,r,pSIZE,i,j;bool tmp; cinn; r=1; p1=2;for(i=3;i=n;i+) tmp=true; for(j=1;j=r;j+)if(i%pj=0) tmp=false; br
4、eak;if(tmp) r+;pr=i;for(i=1;i=r;i+) coutpi,;return 0;输入:10for(i=3;i=n;i+) tmp=true; for(j=1;j=r;j+)if(i%pj=0) tmp=false; break;if(tmp) r+;pr=i; 3. 与循环相关的变量i,tmp,r和p, 画表格变量数值变化数组pitmprp 0p 1p 2p 3p 4p 999循环次数13T2x23x表示未指定24F2x23T表示true35T3x235F表示false46F3x23557T4x235768F4x235779F4x2357810F4x2357数组的处理
5、 循环结束后变量的值2,3,5,7,4. 严格按照输出格式,写出程序运行结果rp 0p 1p 2p 3p 4p 9994x2357x#include using namespatd;main() constSIZE=1000; n,r,pSIZE,i,j;bool tmp; cinn; r=1; p1=2;for(i=3;i=n;i+) tmp=true; for(j=1;j=r;j+)if(i%pj=0) tmp=false; break;if(tmp) r+;pr=i;for(i=1;i=r;i+) coutpi,;return 0;输入:10练习:变量数值#includeusing na
6、mespatd;1. 找出程序关键变量constSIZE=100;main() a,b,k,i,x,tmp,count=0;cinabk; for(i=a;i=b;i+) 2. 绘制表格模拟循环,变量数值变化tmp=0; x=i;while(x) tmp+=x%10;3. 注意循环的结束循环运行次数要准条件,确x/=10;if(tmp=k) count+;coutcountendl;return 0;输入:100 200 8画表格外层循环范围确定,先把外层循环画出表格xtmpxtmp1000101110010111120102内层循环范围不确定,手动模拟,查明循环的作用循环计算x各位数字之和i
7、tmpxcount1001010120102301034010781116822002?翻译关键语句#includeusing namespamain() x,n,i;td;控制结构max=0;cinn;for(i=1;ix;if(xmax)赋值语句max=x;coutmaxendl;return 0;语句作用输入:81 9 8 6 7 13 15 5翻译关键语句 求最小值如何表示?语句作用求输入数据中最大值赋值语句当前值大于最大值,更新最大值for(i=1;ix; if(xmax) max=x;控制结构循环结构翻译关键语句#include using namespatd;main() a6
8、= 6,5,4,3,2,1;pi = 0;pj = 5; t , i;for (i = 0; i 6; i+) cout ai ,;cout endl; return 0;语句作用while (pi pj) t = api; api = apj; apj = t; pi+;pj-;赋值语句控制结构翻译关键语句语句作用反转数组交换后,pi指针后移,pj指针前移交换两个变量的值赋值语句while (pi pj) t = api;api = apj; apj = t;pi+; pj-;控制结构循环结构翻译关键语句#includeusing namespatd;constN=5;main() aN=1
9、,2,3,4,5;m,i,j;控制结构boolcinm;lse;for(i=0;iN;i+)for(j=i;jN;j+)赋值语句if(ai+aj=m)f=true;coutendl;语句作用if(f) coutYes;else coutNo; return 0;输入:8翻译关键语句 控制结构两重循环,枚举数组中两个元素的下标,允许重复 赋值语句数组中两个元素相加之和与m相等时,f为true判断m是否可以由数组中任取两个数相加得到不允许重复应该如何修改程序控制结构?语句作用for(i=0;iN;i+)for(j=i;jN;j+) if(ai+aj=m) f=true;练习:翻译关键语句输入:11
10、4 5 6 6 4 3 3 2 3 2 1#include #include using namespatd;= 100;constSIZEmain()n, cin i,n; 找出关键语句sum, x, aSIZE,max;memset(a,max=0;0, sizeof(a);for(i=1; i x; if(xmax) max=x; ax+;for(i=0; i=max; i+)couti: aiendl;return 0;语句作用赋值语句控制结构变量依赖关系#includeusing namespamain() string s;td;b200;n, i, t, res; cin s;n
11、 = s.length();分析变量bi的for (i = 0; i 200;bi = 0;i+)依赖关系for(i = 1; i = n; i+) bi = bi - 1 + si- 1 - 0;coutbi ;return 0;输入:1001101011001101变量依赖关系字符串s数组bb数组每一项都是一项的基础上加上s的第i个数字0123i-1ii+1n0123i-1ii+1nfor(i = 1; i = n; i+)bi = bi - 1 + si - 1 - 0;变量依赖关系#include using namespatd;main() 输入:30111011010101a100
12、,n,i,ans=0;char c; cinn;for(i=0;ic; ai=c-0;for(i=0;in;i+) if(ai!=0)aans+=ai;coutansendl; for(i=0;ians;i+)coutai; return 0;分析变量aans的依赖关系变量依赖关系数组a当条件ai!=0满足时将ai到aans,之后ans+101ansii+1n-1nfor(i=0;in;i+)if(ai!=0)aans+=ai;变量依赖关系#includeusing namespatd;constSIZE=100;main() aSIZE;i,j,n,p,t; cinnp;控制结构for(i=
13、1; i=n; i+) ai=i;for(i=p+1; i=i-p+1; j-)aj=aj-1;分析变量aj的依赖关系ai-p=t;语句作用for(i=1; i=n; i+)coutai;return 0;输入:5 2变量依赖关系变量t循环变量i数组a01p-1pp+1ni-pi-p+1j-1j循环变量jfor(i=p+1; i=i-p+1; j-)aj=aj-1; ai-p=t;练习:变量依赖关系#includeusing namespatd;画出变量依赖关系n,yh1010;main() cinn;yh00=1;for(i=1;i=n-1;i+) yhi0=1;for (j=1; j=i;
14、 j+) yhij=yhi-1j-1+yhi-1j;for(i=0;i=n-1;i+) for (j=0;j=i;j+)coutyhij ;coutendl;输入:5return0;练习:变量依赖关系j=0j=1j=2j=3j=4i=01i=11数组yhi=21i=31i=41yh00=1;for (i=1;i=n-1;i+) yhi0=1;for (j=1; j=i; j+) yhij=yhi-1j-1+yhi-1j;continue和break写出程序运行结果k是多少? n是多少?#include using namespatd;main() k=6,n=0;while(n=k) brea
15、k; k-;coutk nendl; return 0;#include using namespatd;main() k=6,n=0;while(nk) n+;if(n%3!=0) continue; k-;coutk nendl; return 0;continue和breakk=4 n=3k=5 n=5#include using namespatd;main() k=6,n=0;while(n=k) break; k-;coutk nendl; return 0;#include using namespatd;main() k=6,n=0;while(nk) n+;if(n%3!=0
16、) continue; k-;coutk nendl; return 0;多重循环多重循环是一类非常棘手,可以分为2类:外重循环范围确定,内重循环范围确定外重循环范围确定,内重循环范围不确定通过分类,可以找到破题的思路。对(1),画表格,明确填入两个循环变量的数值范围,模拟运行程序对(2),画表格,先确定外层循环变量的范围,手动模拟内层循环,找出内层循环的作用哥德巴赫猜想#includeusing namespamain() td;p100=-1,2,3,5,7,11,13,17,19,23,29;n,r,m,i,j;lse;boolcinm;n=10;两层循环范围都是确定的if(m=pi+p
17、j)f=true; break;if(f) break;输入:20输出:if(f) coutYes;else coutNo; return 0;for(i=1;i=n;i+) for(j=i;j=n;j+)画表格ijpi+pj12514已知两个循环变量的数值范围,直接在表格中填入 i,j的数值ijpi+pj26162720练习变量数值写出程序运行结果cnt是多少? i是多少?#include using namespatd;main() t=0;cinn; for(i=1;in;i+)cnt+; coutcnt iendl; return 0;#include using namespatd;
18、main() t=0;cinn; for(i=1;i=n;i+)cnt+; coutcnt iendl; return 0;#include using namespatd;main() t=0;cinn; for(i=0;in;i+)cnt+; coutcnt iendl; return 0;变量数值i=n#include using namespatd;main() t=0;cinn; for(i=1;in;i+)cnt+; coutcnt iendl; return 0;#includen;cnt=n i=n+1for(i=1;i=n;i+)cnt+; coutcnt iendl;ret
19、urn 0;cnt=n-1m i=n#include using namespatd;main() t=0;cinn; for(i=0;in;i+)cnt+; coutcnt iendl;return 0; cnt=n变量数值写出程序运行结果cnt是多少? a是多少?#include using namespatd;main() t=0; a=9; b=10;do cnt+; a+; while(a=b); coutcnt aendl; return 0;#include using namespatd;main() t=0; a=9; b=10;while(a=b) cnt+; a+;cou
20、tcnt aendl; return 0;变量数值cnt=2 a=11cnt=0 a=9#include using namespatd;main() t=0; a=9; b=10;do cnt+; a+; while(a=b); coutcnt aendl; return 0;#include using namespatd;main() t=0; a=9; b=10;while(a=b) cnt+; a+;coutcnt aendl; return 0;变量数值#include using namespatd;main() t; x=0; dx=1; cnt=0; cinnk; while(true) x+=dx; if(x=0|x=n) cnt+; dx=-dx;if(cntk) continue; break;coutx dxendl; return 0;输入:3 2变量数值思考:输入3 9,输出多少?xdxcnt1102103-112-111-11012不确定循环次数时,通常不需要模拟整个循环运行,而是要通过初步模拟运行找到规律,从而分析得出结果#include using namespatd;main() t; x=0; dx=1; cnt=0; cin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东广州期货交易所2026秋季招聘及2027年博士后招聘笔试模拟试题及答案详解
- 四川省盐业集团川北有限公司 2026年市场营销人员招聘考试备考题库及答案详解
- 2026辽宁科技学院面向社会公开招聘高层次和急需紧缺人才(第一批)笔试备考试题及答案详解
- 2027中国电力工程顾问集团有限公司校园招聘笔试模拟试题及答案详解
- 2026六盘水市高速公路建设指挥部招聘编外人员笔试参考题库及答案详解
- 2026年吉安县委社会工作部面向社会公开招聘“两新”组织工作人员笔试模拟试题及答案详解
- 2026泰安市文化旅游发展集团有限公司权属企业招聘考试参考题库及答案详解
- 2026福建福州市城投检测科技有限公司招聘3人考试参考试题及答案详解
- 招聘34人!青海省妇女儿童医院2026年公开招聘编制外工作人员笔试模拟试题及答案详解
- 2026四川凉山州西昌学院招聘第五批科研助理10人考试备考试题及答案详解
- 2025版临床用血技术规范解读课件
- 老年人家属必学:基础照护知识快速入门
- T∕SAASS 275-2025 滨海轻度盐碱土壤多源固碳协同小麦增产提质施肥技术规程
- 现代产业学院建设标准(定量指标)上位依据对照表、评价指标体系
- 第三单元基础达标卷(单元测试)2025-2026学年一年级数学上册人教版
- 第5课《去外婆家》第二课时(公开课一等奖创新教学设计)
- 安全生产个人述职报告范文
- 2025新疆亚新煤层气投资开发(集团)有限责任公司第三批选聘招聘考试参考题库及答案解析
- 驾驶员秋季行车安全培训课件
- GB/T 46150.1-2025锅炉和压力容器第1部分:性能要求
- 淘宝云客服考试题及答案
评论
0/150
提交评论