第6章循环结构程序设计
- 格式:pptx
- 大小:419.42 KB
- 文档页数:34
1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。
2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。
递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。
*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。
第六章习题(1)复习题1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。
自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。
用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。
这些使用助记符语言的语言后来就被称之为汇编语言。
(P135P136)2、什么是高级程序设计语言?它有什么特点?高级语言是汇编语言的一种抽象。
高级语言的设计目标就是使程序员摆脱汇编语言细节的繁琐。
高级语言同汇编语言都有一个共性,那就是:它们必须被转化为机器语言,这个转化的过程称为解释或编译。
(1)高级语言接近算法语言,易学、易掌握;(2)高级语言设计出来的程序可读性好,可维护性强,可靠性高;(3)高级语言与具体的计算机硬件关系不大,其程序可移植性好,重用率高;(4)高级语言自动化程度高,开发周期短,利于提高程序的质量。
(P138)3、列举程序设计语言的几种范型。
程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。
(P138-140)4、简述语言虚拟机。
提示:语言虚拟机是某种语言的解释器。
语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。
这样使得硬件系统能够支持这种语言编写的程序的有效执行。
目前最流行的语言虚拟机是Java虚拟机。
(P147)5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。
编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。
编译方式是一次编译,然后执行程序可以反复多次执行。
解释是另一种将高级语言转换为可执行程序的方式。
第6章循环结构程序设计1.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。
B、d o-while语句构成的循环只能用break语句退出。
C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D、用do-while语句构成的循环,在while后的表达式为零时结束循环。
答案:D2.以下程序的输出结果是( )A、10,1 9,2B、9,8 7,6C、10,9 9,0D、10,10 9,1main( ){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}答案:D注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。
3.以下程序的输出结果是( )A、2 0B、3 1C、3 2 1D、2 1 0main( ){ int n=4;while(n--) printf("%d ",--n);}答案:A4.以下程序的输出结果是( )A、#*#*#B、#####C、*****D、*#*#*main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");}答案:A注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。
5.以下程序的输出结果是( )A、编译不通过,无输出B、acegC、acegiD、abcdefghimain( ){ int i;for(i='A';i<'I';i++,i++) printf("%c",i+32);printf(" \n");}答案:B注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。
高中信息技术教案循环结构程序设计粤教版必修第一章:循环结构概述1.1 循环结构的概念介绍循环结构的基本概念和作用解释循环结构在程序设计中的应用1.2 循环结构的类型介绍for循环和while循环的定义和特点比较for循环和while循环的适用场景1.3 循环结构的基本语法介绍for循环和while循环的基本语法结构解释循环控制变量的作用和初始化第二章:for循环2.1 for循环的基本语法详细解释for循环的语法结构,包括初始化、循环条件和迭代语句2.2 for循环的执行过程通过图解和实例演示for循环的执行过程解释循环控制变量的变化和循环次数的计算2.3 for循环的嵌套介绍for循环的嵌套结构和应用场景通过实例演示嵌套for循环的执行过程第三章:while循环3.1 while循环的基本语法详细解释while循环的语法结构,包括循环条件和迭代语句3.2 while循环的执行过程通过图解和实例演示while循环的执行过程解释循环控制变量的变化和循环次数的计算3.3 while循环的嵌套介绍while循环的嵌套结构和应用场景通过实例演示嵌套while循环的执行过程第四章:循环结构的控制语句4.1 循环控制语句的概念介绍循环控制语句的作用和重要性4.2 break语句解释break语句的作用和用法通过实例演示break语句在循环中的作用4.3 continue语句解释continue语句的作用和用法通过实例演示continue语句在循环中的作用第五章:循环结构的应用5.1 数列的求和与求积介绍使用循环结构求解数列的求和与求积问题通过实例演示循环结构在求和与求积中的应用5.2 冒泡排序算法介绍冒泡排序算法的原理和步骤通过实例演示循环结构在冒泡排序算法中的应用5.3 矩阵的乘法介绍矩阵乘法的原理和步骤通过实例演示循环结构在矩阵乘法中的应用第六章:嵌套循环结构6.1 嵌套循环结构的概念解释嵌套循环结构的作用和特点展示嵌套循环结构在程序设计中的应用场景6.2 嵌套循环的基本语法介绍嵌套循环的语法结构,包括内部循环和外部循环解释嵌套循环中循环控制变量的作用和初始化6.3 嵌套循环的执行过程通过图解和实例演示嵌套循环的执行过程分析嵌套循环的循环次数和时间复杂度第七章:循环结构与函数7.1 循环结构与函数的关系解释循环结构与函数的相互作用和关系展示循环结构在函数中的应用场景7.2 循环结构中的函数调用介绍循环结构中函数的调用方式和注意事项通过实例演示循环结构中函数的调用和执行过程7.3 循环结构与递归函数介绍循环结构与递归函数的关系和特点通过实例演示循环结构在递归函数中的应用第八章:循环结构的优化8.1 循环结构优化的概念解释循环结构优化的意义和目的展示循环结构优化在提高程序效率中的应用场景8.2 循环结构的常见优化方法介绍循环结构的常见优化方法,如循环展开、循环分解和循环合并通过实例演示循环结构优化前后的执行过程和性能比较8.3 循环结构优化的注意事项分析循环结构优化中可能存在的问题和风险提出循环结构优化时应遵循的原则和策略第九章:循环结构在实际应用中的案例分析9.1 循环结构在数据分析中的应用分析循环结构在数据分析中的作用和重要性通过实例演示循环结构在数据分析中的应用和效果9.2 循环结构在图像处理中的应用分析循环结构在图像处理中的作用和重要性通过实例演示循环结构在图像处理中的应用和效果9.3 循环结构在其他领域的应用分析循环结构在其他领域中的应用和重要性通过实例演示循环结构在其他领域的应用和效果第十章:总结与拓展10.1 循环结构程序设计的重要性总结循环结构程序设计在计算机科学中的重要性强调循环结构在实际应用中的作用和价值10.2 循环结构程序设计的拓展学习推荐循环结构程序设计的进一步学习资料和资源鼓励学生探索循环结构在新技术和新领域中的应用10.3 课程回顾与展望回顾整个教案的内容和学习目标展望循环结构程序设计在未来的发展趋势和应用前景重点和难点解析重点环节1:循环结构的概念和作用重点关注循环结构在程序设计中的应用场景和作用理解循环结构的基本概念和重要性重点环节2:循环结构的类型和特点重点关注for循环和while循环的定义、特点和适用场景比较for循环和while循环的异同点重点环节3:循环结构的基本语法重点关注for循环和while循环的基本语法结构理解循环控制变量的作用和初始化重点环节4:循环结构的执行过程重点关注for循环和while循环的执行过程和循环次数的计算理解循环控制变量的变化和循环过程的图解演示重点环节5:循环结构的嵌套重点关注嵌套循环结构的应用场景和语法结构理解嵌套循环的执行过程和时间复杂度分析重点环节6:循环结构与函数的关系重点关注循环结构在函数中的应用场景和调用方式理解循环结构与递归函数的关系和特点重点环节7:循环结构的优化重点关注循环结构优化方法的应用和执行过程的性能比较理解循环结构优化的重要性和注意事项重点环节8:循环结构在实际应用中的案例分析重点关注循环结构在数据分析、图像处理等领域的应用案例理解循环结构在不同领域的应用和重要性重点环节9:循环结构程序设计的总结与拓展重点关注循环结构程序设计的重要性和拓展学习资源理解循环结构程序设计在未来的发展趋势和应用前景全文总结和概括:本教案主要介绍了循环结构程序设计的概念、类型、语法、执行过程、嵌套、与函数的关系、优化方法和实际应用案例。
6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<stdio.h>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误?当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何?6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include"stdio.h"void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗?6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<stdio.h>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么?没有此语句将会是什么状况?6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
C语言程序设计-第三版-谭浩强主编第6—8章课后习题答案第六章循环语句6.1输入两个正数,求最大公约数和最小公倍数.#includevoidmain(){inta,b,num1,num2,temp;printf(\请输入两个正整数:\\n\canf(\if(num1temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf(\它们的最大公约数为:%d\\n\printf(\它们的最小公倍数为:%d\\n\}编译已通过6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解:#includevoidmain(){charc;intletter=0,pace=0,degit=0,other=0;printf(\请输入一行字符:\\n\while((c=getchar())!='\\n'){if(c>='a'&&c<='z'||c>'A'&&c<='Z')letter++;eleif(c=='')pace++;eleif(c>='0'&&c<='9')digit++;eleother++;}printf(\其中:字母数=%d空格数=%d数字数=%d其它字符数=%d\\n\digit,other);}6.3求(n)=a+aa+aaa++aaa之值,其中a是一个数字,n表示a的位数。
解:voidmain(){inta,n,count=1,n=0,tn=0;printf(\请输入a和n的值:\\n\canf(\printf(\while(count<=n){tn=tn+a;n=n+tn;a=a某10;++count;}printf(\\\n\}6.4求(即1+2!+3!+4!++20!)voidmain(){floatn,=0,t=1;for(n=1;n<=20;n++){t=t某n;=+t;}printf(\\\n\}阶乘利用递归,再求和:#includeuingnamepacetd;longFunc(intn){ if(1==n)returnn;if(n>1)returnn某Func(n-1);}main(){long=0;inti=1;while(i<=6){=+Func(i);i++;}cout<6.5求voidmain(){intk,N1=100,N2=50,N3=10;float1=0.0,2=0.0,3=0.0;for(k=1;k<=N1;k++)/某计算1到100的和某/{1=1+k;}for(k=1;k<=N2;k++)/某计算1到50各数平方和某/{2=2+k某k;}for(k=1;k<=N3;k++)/某计算1到10各数倒数之和某/{3=3+1.0/k;}printf(\总和=%8.2f\\n\}已通过intmain(){intk=1,i=11,j=51;float=0.0;while(k<=10){=+k+k某k+1.0/k;while(k==10&&i<=50){=+i+i某i;while(i=50&&j<=100){ =+j;j++;}i++;}k++;}}6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。
第6章循环控制本章要求:1、初步熟悉用计算机解决问题的思路。
2、掌握while、do-while、for语句的特点和使用方法。
3、掌握break、continue语句的用法。
4、熟悉一些常见问题的算法及其C语言实现。
§6.1 概述循环:反复执行称为“循环体”的程序段。
循环控制常用于数学迭代、对象遍历等问题的求解,几乎所有实用程序都包含循环。
特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。
Intel公司为了加快循环程序的执行,在CPU硬件中加入多媒体扩展指令MMX(Multi-Media-eXtension );AMD在CPU中加入3D Now!指令。
循环结构是结构化程序三种基本结构之一。
(顺序结构、分支结构)。
根据开始循环的初始条件和结束循环的条件不同,C语言中用如下语句实现循环1、用goto语句和if语句构成循环。
2、用while语句。
3、用do-while语句。
4、用for语句。
§6.2 goto语句一般形式:goto 语句标号作用:无条件转向“语句标号”处执行。
“语句标号”是一个标识符,它表示程序指令的地址。
goto语句不符合结构化程序设计准则,因为无条件转向使程序结构无规律、可读性差。
一般应避免使用goto语句,但如果能大大提高程序的执行效率,也可以使用。
[例6.1] 用if语句和goto语句构成循环,求。
main(){int i,sum=0;i = 1;loop:if (i <= 100){ sum = sum + i;i++;goto loop;}printf("%d",sum);}§6.3 while语句一般形式:while(表达式) 语句作用:实现“当型”循环。
当“表达式”非0(真)时,执行“语句”。
“语句”是被循环执行的程序,称为“循环体”。
特点:先判“表达式(条件)”。
[例6.2]main(){int i,sum=0;i = 1;whie (i <= 100){sum = sum + i;i++;}printf("%d",sum);}注意:1、注意给出循环的初始条件,如本例中“sum=0、i=1”。