《C语言循环程序设计for语句》教学案例

2025-04-03 版权声明 我要投稿

《C语言循环程序设计for语句》教学案例(推荐6篇)

《C语言循环程序设计for语句》教学案例 篇1

漠河县职业技术学校 尘威威 《C语言循环程序设计—for语句》教学案例

漠河县职业技术学校 尘威威

C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。

案例背景:

在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。

循环结构是程序设计三种基本结构的重中之重,而循环中的for循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。

教学目标确定

(一)知识与技能

1、领会程序设计中构成循环的方法

2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。

(二)过程与方法

C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。

本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、do while语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。

(三)情感与价值观

1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。

2、培养学生学习的主动性,激发学生学习热情,以及培养团队合作的精神、自主探究,合作交流的学习方法,观察,乐于分析的学习态度。

教学重难点确定

C语言程序设计中for循环语句的重点是“for语句的结构”,分析题目意图(即算法分析),并用让学生便于理解的方式描述,学生掌握语句的结构和用法并不困难,难的是在实际的应用中那些时候该使用哪种循环来解决问题比较简洁、高效,所以我把本节课的难点确定为“for语句的应用”。

学情分析:本节课我主要针对计算机专业高三高考班的学生,在学这节课之前他们应准确掌握《C语言程序设计》中关于实现循环结构语句,如 for 或 while,do-while。并拥有能分析并描述简单算法如求累加,累乘的能力。

案例描述

案例1:教师将一张空白A4纸向学生展示,跟同学们说,今天老师给大家做个试验,让你们来猜一猜(学生的兴趣和精神一下就提起来了),然后老师边演示边讲解,将这张纸对折一下后几张?学生都能回答: 2张。继续发问,对折两下几张?学生:4张。对折三下呢?学生:8张。(这个时候学生充满疑惑,老师想干嘛呢,问这么简单的问题)接着老师提出问题:如果纸理想化的大,对折42下,这些纸的厚度将会多高?

这个教室一下就热闹起来了,学生们纷纷给出自己想像的答案,有些同学比划出手势:伸开双手说:有那么高,有人说桌子那么高的,有说房子那么高的。又有人马上否定,哪有那么高。有些同学拿起笔就开始算,算着算着就不知道该从哪儿下手了。

这个时候老师组织安静课堂,叫同学分组给出自己心里倾向的答案,可以估计,可不说理由。

四个小组分别给出的答案是:1:书桌那么高(大概50cm)。2:人的高度(大概170cm)。3:楼房的高度(大概3000cm)。4:大概10厘米。

老师不说哪一组对,只是问同学们,这个高度该怎么算? 接下来和同学一起分析得出以下结论:

1、纸张的厚度h?

2、有多少张纸n?

3、高度=h*n.解决问题1:同学自行测量(4组同学各自准备100页纸,测出总高度/100,取4个小组的平均值)。最后得出一张纸的厚度约=0.1mm。

这个环节的主要目的是让每个学生动手,锻炼他们的动手实践,合作交流的集体合作精神。

解决问题2:有多少张纸?2的42次方。接下来利用循环语句来做(即有42个2相乘)。

编写源程序

所用方法:学生自己编写,小组同学相互交流。

目的:培养并锻炼学生将心中已明确的算法落实到具体的程序语句上。

教师活动 这个时候巡查教室,检查并了解学生完成情况,对部分有小问题的同学给予及时帮助。

组上有成绩比较好的同学很快就把程序编写完毕,我看了一下,选了一个同学到教室机给大家调试展示。该同学给出的程序如下:

main(){ int i,k=1;float s;for(i=1;i<=42;i++)k=k*2;/* k是纸张的张数 */ s=k*0.1*1.0e-6;/* 将mm转换成km */ printf(“将一张纸折42下的高度为:%.2f公里”,s);} 调试结果:将一张纸折42下的高度为:0.00公里.这个时候老师提问:为什么会出现0.00的情况?请同学们为他指出问题。同学们思考了一会无人作答。这个时候老师提醒:k的值将会很大.结果部分同学作恍然大悟状态,有同学马上举手:老师,变量k的值不能定义为int,应定义为long;问他为什么?他说:int类型的取值范围是:32767,装不下k。老师微笑表扬:方向对了。改好,调试,结果还是0.00公里。这个时候又有同学发言了:老师,不会定义为long都装不下k吧。这个时候老师提问:如果整型数据long都装不下的数据该定义为什么?学生回答:实型float。

改好,调试,Ok,成功!源程序如下 main(){ int i;float s,k=1;for(i=1;i<=42;i++)k=k*2;/* k是纸张的张数 */ s=k*0.1*1.0e-6;/* 将mm转换成km */ printf(“将一张纸折42下的高度为:%.2f公里”,s);} 调试结果:调试结果:将一张纸折42下的高度为:439804.66公里.全班同学的脸上都露出成功的喜悦。可同学们看到结果,表示不太相信,问老师,是不是算错了,有这么高呀。老师作肯定的答复:没错,就有这么高。比地球到月亮的距离(384,401公里)都还要高。这里可以告诫学生,科学不是凭想像,实践出真知。

问题延伸:已知太阳离地球有1.5亿公里,如果理想化的去折纸,最多折多少下有这么高?

学生分组讨论,用什么语句最恰当。得出结论。(用 do while语句)给同学们五分钟,请同学们给出程序并且调试出结果。教师点评学生的程序,指出程序中容易出现错误的地方。源程序如下:

main(){ int i,k=1;float s;do { k=k*2;S=k*0.1*1.0e-6;i++;} while(s<=1.5e8);printf(“最多可折%d下有地球到太阳那么高”,i);} 案例反思:

通过这案例教学也给我留下了很多启示:

1、根据C语言的学科特点,和学生的现状,特别是根据学生平时厌理论而乐操作、解决实际问题能力较差的特点,采用案例教学可以充分调动学生学习C语言的兴趣和积极性,使学生处于精神集中的状态,确保学生将知识真正学到手。通过新鲜的案例引领课堂,平时上课精神不集中的学生都认真分析问题了,个别平时打瞌睡的学生精神也集中了。

《C语言循环程序设计for语句》教学案例 篇2

设计程序就好比写文章和盖房子, 写文章要有文章结构, 盖房子要事先设计房子的建筑结构, 设计程序则要有程序结构。早在1966年, Bohm和Jacopini提出了程序设计的3种基本结构:顺序结构程序设计、选择结构程序设计和循环结构程序设计, 并且已经证明所有程序都可以由这3种基本结构组合而成。其中, 循环结构程序设计是《C语言程序设计》中最重要和最难掌握的一种结构, 几乎每一个实用的程序都少不了循环结构。因此, 循环结构程序的教学内容对《C语言程序设计》的学习非常重要, 在《C语言程序设计》中提供了3种循环语句:while循环语句、do~while循环语句和for循环语句。其中, for循环语句是最难掌握和最难使用的一种语句, 是整个C语言程序结构中的一个重点内容, 也是初学者最难理解的一种语句。在《C语言程序设计》中, for循环语句是最常使用的“计数”型循环结构语句。解决实际问题时, 一般情况下, 如果题目中明确给出循环次数, 应该首选for循环语句设计程序, 因为for循环语句看起来结构最清晰、最紧凑, 在语句结构中循环结构程序设计的四要素一目了然, 而且执行效率高, 使用灵活, 可以完全取代while语句和do~while语句。当然, 对于一些循环次数不明确的问题, 同样也可以使用for语句来解决。

1 教学问题分析

for循环语句是3种循环语句之一, 一般情况下, 教学是在学生掌握了《C语言程序设计》的基本语法知识、顺序结构和选择结构, 学习了while循环语句和do~while循环语句后, 对循环结构程序设计的进一步学习。for循环语句对于那些没有学习《C语言程序设计》的初学者来说, 的确有点难度。但是, 学好for循环语句对后续章节内容的学习相当重要, 因此, 作为教师一定要清楚学生学好for循环语句的重要性, 明确教学目标。对于学生而言, 能够灵活地使用for循环语句解决实际问题, 并非一件容易的事情。在多年教学实践中, 笔者发现学生学习for循环语句时主要存在以下几个方面的问题: (1) 不清楚什么样的问题需要循环结构来处理; (2) 对for循环语句的执行过程不易掌握和理解; (3) 不能灵活地使用for循环语句解决实际问题; (4) 编写的程序经常出现死循环。

2 教学问题解决

教师在教学过程中如何取得良好的教学效果, 并很好地达到教学目标, 离不开教师的“教”和学生的“学”, 如何“教”和怎样引导学生“学”是教师所要探讨的问题。整个教学过程的教学设计、教学环节、教学方法、教学手段和教学思路都特别重要。对《C语言程序设计》这门课程中的for循环语句来说, 根据知识点的特点, 主要应采用案例教学法和任务驱动教学法, 并通过迁移式指导的学习方法, 引导学生学会如何运用新知识解决实际问题。

在教学活动中, 学生掌握for循环语句的格式, 并能够正确地理解for循环语句的流程和功能, 对于学生学习和使用for循环语句来编写程序相当重要。所以, 本节课的重点确定为“掌握for循环语句的结构”。学生掌握for语句的结构和用法并不困难, 难的是在实际应用中, 如何分析问题、解决问题, 使程序变得更加简洁、高效。因此, 本节课的难点确定为“for循环语句的应用”。为了取得良好的教学效果, 让学生很好地掌握for循环语句, 根据知识点的特点, 设计的教学思路是:厚基础、抓重点、破难点。根据知识点难易程度的不同, 把教学新内容由易到难、由浅入深地划分为3个层次进行讲解。

第一:讲解for循环语句的一般格式和流程。

在教学过程中, 主要采用的办法是把教材原本复杂的内容简单化, 变得易于理解和掌握。针对语句格式, 首先讲解语句的一般格式:

for (表达式1;表达式2;表达式3)

{循环体语句;}

进一步讲解易于理解的应用格式:

for (循环变量初始化;循环控制条件;修正循环变量)

{循环体语句;}

最后讲解简化为容易掌握的四要素格式:

for (1;2;4)

{3;}

同时, 为加深学生对知识点的理解, 将for循环语句与while循环语句、do~while循环语句进行比较学习, 并且强调应用for语句格式应注意的事项。

针对语句的流程, 并没有讲解教材中描述的复杂流程图, 而是想办法把复杂内容简单化后再讲解。在for循环语句四要素格式的基础上, 给出一种能够将语句的流程在语句格式上体现得清晰、明了的“语句格式流程图”。见图1。

在讲解了语句格式和流程后, 紧接着采用案例教学法和任务驱动教学法, 引导学生自己设计一个简单程序:运用for语句在屏幕上输出20个“*”。主要目的是给学生创造一定的条件, 引导学生主动探索、独立思考、发现问题、分析问题和解决问题, 以培养学生的探索精神和自学能力, 从而提高学生学习新知识、解决新问题的能力。

第二:讲解for循环语句灵活多变的语句格式。

for循环语句灵活多变的格式是学习for循环语句的重点内容。紧抓重点, 在教学活动中主要采用迁移式指导的学习方法, 教师“举一”, 主要以输出20个“*”的问题为例, 培养学生“反三”, 反复变化for语句的格式来解决同一个问题。结合循环结构程序设计的四要素, 对for循环语句的各种形式进行详细地剖析, 并且演示程序的运行结果, 使学生完全透彻地理解for语句灵活多变的结构。从而解决教学的重点内容:for语句的结构, 并从中拓展以提高学生对知识点的学习。

第三:for循环语句的应用。

运用for循环语句解决实际问题是教学的难点所在。教师在授课时应尽量结合生活中的实际问题, 讲解程序设计的基本思想和方法。既让学生掌握for循环程序设计的思路和方法, 同时教会学生学习新知识, 并培养其解决实际问题的能力。在教学活动中通过解决一个实际问题:判断素数 (输入一个正整数m, 判断它是否为素数) , 来突破教学的难点内容。教学活动中采用了案例教学法和情景教学法, 并辅以任务驱动及讨论的方式。从问题的概念出发, 教学活动通过如下的一系列问答来开展:

问:什么是素数?

答:除了1和它本身, 不能被其它数整除的数叫素数。

问:17是不是素数?

答:是。

问:你们是怎么知道17是素数的?怎么才能让计算机明白?

答:从2开始一个一个去找, 看是否能找到一个能被17整除的数, 如果找到了, 就不是素数, 如果找不到, 就是素数。

教学的目的是为学生创造自主体验的情景和语言描述的情景, 使学生在课堂上处于主体地位, 并且为学生提供良好的暗示和启迪, 从而锻炼学生的创造性思维, 以培养学生的适应能力为目标。在学生主动参与教学活动的前提下, 详细讲解算法分析, 从而获得良好的教学效果。

算法分析如下:

判断一个数m是否为素数, 需要判断该数是否能被除了1和自身以外的其它数整除, 即判断m能否能被2~m-1之间的数整除。运用C语言算术运算符中的求余运算来判断整除。

设i取值[2, m-1], 如果判断m不能被该区间上的任何一个数整除, 即对每个i, m%i都不为0, 则m是素数;但是只要m能被该区间上的某个数整除, 即只要找到一个i, 使m%i为0, 则m肯定不是素数。显然, 这个判断过程是一个循环问题。

从数学的角度考虑, m不可能被大于m/2的数整除, 所以上述i的取值区间可以缩小到[2, m/2]。

引导学生编写程序代码如下:

数学上可以充分证明, i的取值区间还可以缩小到[2, sqrt (m) ]。从减少判断范围的角度出发, 进一步优化程序的算法, 编写出更加简洁、高效的程序, 从而提高学生的程序设计能力, 激发学生的编程兴趣。

为巩固学生对新知识点的掌握, 安排课堂作业:仍然解决判断素数的问题, 在以上讲解的基础上, 引导学生从排除偶数的角度出发, 进一步优化程序的算法, 要求学生分组讨论问题, 课堂完成作业。教学设计的主要目的是实现学生情感目标的培养, 增强学生的编程兴趣, 提高学生的学习积极性。

3 循环程序实现要点

实现循环结构程序必须具备4个组成部分:循环变量的初始化;循环控制条件;循环体语句;循环变量的修改。其中, 最关键的是要确定以下两点: (1) 归纳出哪些操作需要反复执行?———循环体语句; (2) 这些操作在什么情况下重复执行?———循环控制条件。只要明确地分析出循环体语句和循环控制条件, 那么循环结构也就基本确定了, 再根据具体问题, 加上循环变量的初始化和循环变量的修改, 最后从《C语言程序设计》提供的3种循环语句中选择一种具体循环语句来实现程序代码。

4 结语

for循环语句在整个《C语言程序设计》的学习中相当重要, 在程序设计中几乎是无处不用。因此, 在教学过程中一定要想办法让学生很好地掌握for循环语句, 为学好《C语言程序设计》打下坚实的基础。

参考文献

[1]廖雷.C语言程序设计[M].北京:高等教育出版社, 2002.

[2]谭浩强.C语言程序设计[M].北京:清华大学出版社, 2000.

[3]杨起帆.C语言程序设计[M].杭州:浙江大学出版社, 2006.

[4]杨路明.C语言程序设计教程[M].北京:北京邮电大学出版社, 2006.

计算机C语言循环语句的应用研究 篇3

【关键词】计算机语言 循环语句 C语言

在程序编辑与设计中,C语言具有一定独特性,这种高级程序设计语言能在多种场合中灵活应用。C语言的通用型与便捷性,在循环语句中得到较好的应用。循环语句主要有while、do while、for三种,前两种循环语句也被称为条件循环,主要根据条件进行判断是否进行循环,后一种循环语句,被称为计数循环,主要根据设定执行的次数进行循环执行。这种语言不但能够作为系统描述性语言,还可用来编写系统软件,也可用来编写应用软件。

一、C语言的应用现状

计算机技术的应用普及,人们对计算机应用范围的要求逐渐增加,需要其处理更加复杂且多样的问题,能够在不同的情况下,进行操作与设计。这种情况下需要使用灵活性高的控制程序,满足人们的个人需求,实现不同方面的用途。C语言是计算机语言的基础,是一种高级语言。针对计算机语言的学习,应将其当做入门基础,掌握过程编程。C语言学习中,能够掌握多方面的功能,较好的应用在代码中。C语言能够根据不同的环境和用法进行移植,针对不同的项目产生相同的效果。C语言的优势有很多,相比而言,突出优势是在多种操作系统中运行。

二、循环语句的类型分析

2.1 while语句

这种语句通过判断循环控制条件,分析流程是否符合循环要求,其形式主要体现为:

while(表达式)

这种循环语句的执行流程,应计算表达式,如果表达式的值为非零,执行循环体,之后返回第一步,重新计算表达式;如果计算表达式结果为零,则跳出循环结构执行其它语句。注意的是,如果表达式的值最开始为零,那么语句不会被执行。

2.2 do-while语句

这种语句表达式与while有一定差异,需要先执行循环体中的语句,再通过判断表达式判断是否需要进行循环,其一般形式为:

Do

循环体语句

While(表达式)

语句执行流程为:先执行循环体语句,然后计算表达式,如果表达式的值非零,则返回第一步;如果计算表达式的值为零,结束循环。这种表达式至少执行一次。

2.3for语句

这种语句用来计算循环,其形式为:

For([表达式1];[表达式2];[表达式3])

表达式1:一般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:一般为赋值表达式,给控制变量增量或减量。

语句执行流程为:从初始化开始,执行表达式,直到达到条件要求次数。

三、循环语句的应用要点分析

C语言循环语句中,能够让同一个事物进行相同操作,降低程序的复杂性,运行更加有序且顺畅,提升系统运作效率。日常系统运行中,有很多重复的规律相同的操作,针对这些操作可以设计语句。操作不断重复使用,可以设计循环语句,如果循环操作有终止条件被触发,那么要设计终止循环。循环语句主要由两个部分构成,一是循环体,二是循环的终止条件。

3.1 while循环语句

这种循环语句中的表达式,是循环语句能否继续运行的条件,其功能是保证语句循环运行。只要表达式为真,就可以执行循环体内部语句,否则终止循环,执行循环体外部语句。

循环语句的语言流程,主要为While(v!=0){temp=u%v;/*循环体内语*/u=v;/*循环体内语句*/v=temp;/*循环体内语句*/}printf(“最大公约数是:%d\n”,u);}执行结果。

屏幕上显示,输入非负整数,150与35,结果:最大公约数为5。程序执行中,while有三条语句,要使用大括号括起来表示一个语句块。当表达式v!=0为真实存在时,程序需要重复执行循环语句中的三个条件;如果表达式v!=0为非真实时,要终止循环,执行prinff语句,最后在屏幕上显示出最大公约数。

3.2 do while循环语句

这种循环语句在循环中,应先执行循环体内语句,然后进行判断,如果结果为真就进行下一次循环,如果结果为假就停止循环。这种循环语句的特点是,表达式非真时,也需要执行循环语句。整个流程,应保证测试内容至少执行一次循环。这种语句能够写出菜单程序,在饭店中得到较好的应用。

3.3 for循环语句

这种循环语句的格式是for(a;b;c){……}

语句执行流程:应先对a进行赋值,然后判断b是否满足给定条件,如果其数值为真,那么可以进行循环,执行循环体内语句。如果不符合前两者,就会执行c,进入第二次循环,进行b项判别,否则可断定b的值为假,不满足实际条件,终止for循环,执行循环外的语句。

举例分析,For循环语句在程序中,for(n=1;n<=200;n++){……},括号内部三个值分别为n=1;n≤200;n++。位置a,n=1为赋初值,b为关系的表达式,n≤200,其表达式中a,b,c都为真,由此应执行{}内部语句,进入下一个循环,如果n大于200时,b为假就会终止循环。

For语句的特殊用法,for语句判断三个表达式为空,其表现为for(;;)prinff(“null”);( )中只有两个分号,并没有表达式,这表示无限循环。这种循环语句适合在菜单制作中使用。如果语句中没有(……),例如:for(;str==″;str++);语句中( )内的语句是一个分号,这种循环说明要将指针str所指流中的前导空格删除。还有一种情况,for(t=1;t;)这种语句在程序中有延长时间的作用,结合这种语句能够分析不同for应用对应不同的结果,应结合实际情况进行详细设计和规划。

通过上述三种循环形式分析,for语句应用有较强的功能性,是使用次数最多的循环语句。在该语句中,小括号内部的表达式可以随意变动,能够省略也能够增加。例如小括号内部分号之间,可以添加几个表达式等。一般将循环体的一些语句放在表达式3的位置,中间使用逗号进行分隔,这些功能都能嵌套使用,在一个循环内部包含另一个循环结构,也可互相嵌套使用,可形成多层嵌套结构。

四、结束语

《C语言循环程序设计for语句》教学案例 篇4

//// main.m// for-while//// Created by fansunion on 15/11/29.// Copyright (c) demo. All rights reserved.//#importint main(int argc, const char * argv[]) { @autoreleasepool { //for循环 int number = 10; int sum =0; //int n = 0; 也可以在上面定义int变量n for(int n=1;n<=number;n++){sum += n; } NSLog(@“The sum is %i”,sum); //while循环 int n2 = 1; int sum2 = 0; while(n2 <= 10){sum2 += n2;n2++; } NSLog(@“The sum2 is %i”,sum2); //do-while循环 int n3=1; int sum3=0; do{sum3 += n3;n3++; }while(n3<=10); NSLog(@“The sum3 is %i”,sum3); } return 0;}

程序输出

-11-29 14:25:08.975 for-while[2983:192052] The sum is 55

2015-11-29 14:25:08.977 for-while[2983:192052] The sum2 is 55

2015-11-29 14:25:08.978 for-while[2983:192052] The sum3 is 55

《C语言循环程序设计for语句》教学案例 篇5

一、选择结构部分;

1、if结构题型总结(案例1)企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高

于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提

成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于

40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于

100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

(习题1)

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

2、switch结构(案例2)

题目:输入某年某月某日,判断这一天是这一年的第几天?

(习题2)要求从键盘输入一组字符,对该组字符中的数字0-9字符个数分别进行统计,其他字符共同统计,统计完成后输出各种字符的个数。(结合数组完成)

二、循环结构

1、for循环(案例3)

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:

(习题3)按照指定的格式输出9*9乘法表。

* * * * * * * * * *

2.while循环

*

* *

* * * * * * *

*

* *

* * * * * * * * * * * *(案例4)请编写一个函数fun,它的功能是:根据以下公式求PI的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):

PI/2 = 1 + 1/3 +(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+ …… +(1*2*3*……*n)/(3*5*7*……(2*n+1))

(练习4)题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

(习题5)题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

(习题6)对数组的10个数进行排序

课后习题

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。

X(n+1)=cos(X(n))

迭代步骤如下:

(1)取x(1)初值为0.0;

(2)x(0)=x(1),把x(1)的值赋给x(0);

(3)x(1)=cos(x(0)),求出一个新的x(1);

(4)若x(0)-x(1)的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);

(5)所求x(1)就是方程cos(x)-x=0的一个实根,作为函数值返回。

(案例1)

#include“stdio.h” main(){

} long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(“%ld”,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)

bonus=i*0.1;bonus=bonus1+(i-100000)*0.075;bonus=bonus2+(i-200000)*0.05;bonus=bonus4+(i-400000)*0.03;bonus=bonus6+(i-600000)*0.015;bonus=bonus10+(i-1000000)*0.01;else if(i<=200000)else if(i<=400000)else if(i<=600000)else if(i<=1000000)else printf(“bonus=%d”,bonus);

案例2 main(){

int day,month,year,sum,leap;printf(“nplease input year,month,dayn”);scanf(“%d,%d,%d”,&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/ { case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;

} case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf(“data error”);break;} sum=sum+day;/*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/

leap=1;leap=0;sum++;else if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ printf(“It is the %dth day.”,sum);

案例3 #include “math.h” main(){ long int i,x,y,z;for(i=1;i<100000;i++)

{ x=sqrt(i+100);

/*x为加上100后开方后的结果*/

y=sqrt(i+268);

/*y为再加上168后开方后的结果*/

if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

printf(“n%ldn”,i);

} }

(案例4)

#include #include double fun(double eps){ int i=1;double t=1.0,s=1.0;while(t>=eps){ t=t*(i*1.0)/((2.0*i+1));s=s+t;i++;} return(2*s);} main()

{ double x;int i;

printf(“eps=%lf, PI=%lfn”, x, fun(x));

} } 习题4 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.程序源代码:

/* zheng int is divided yinshu*/ main(){ int n,i;printf(“nplease input a number:n”);scanf(“%d”,&n);printf(“%d=”,n);for(i=2;i<=n;i++)

{

while(n!=i)

{

if(n%i==0)

{ printf(“%d*”,i);

n=n/i;

}

else

break;

} } printf(“%d”,n);}(习题5)main(){ int n,t,number=20;float a=2,b=1,s=0;for(n=1;n<=number;n++)

{

s=s+a/b;

t=a;a=a+b;b=t;

} printf(“sum is %9.6fn”,s);}

(课后习题6)

1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

《C语言循环程序设计for语句》教学案例 篇6

#include #include #include #include “mysql.h”#include “errmsg.h”#include “mysqld_error.h”MYSQL conn;MYSQL_RES *res_ptr;MYSQL_ROW sqlrow;void connection(const char* host, const char* user, const char* password, const char* database) { mysql_init(&conn); // 注意取地址符& if (mysql_real_connect(&conn, host, user, password, database, 0, NULL, 0)) { printf(“Connection success!”); } else { fprintf(stderr, “Connection failed!”); if (mysql_errno(&conn)) { fprintf(stderr, “Connection error %d: %s”, mysql_errno(&conn), mysql_error(&conn)); } exit(EXIT_FAILURE); }}int main (int argc, char *argv[]) { connection(“localhost”, “root”, “shuang”, “shuangde”); int res = mysql_query(&conn, “SELECT * from student”); if (res) { fprintf(stderr, “SELECT error: %s”, mysql_error(&conn)); } else { res_ptr = mysql_store_result(&conn); if (res_ptr) { printf(“Retrieved %lu rows”, (unsigned long)mysql_num_rows(res_ptr)); while ((sqlrow = mysql_fetch_row(res_ptr))) { printf(“Fetched data...”) ; } if (mysql_errno(&conn)) { fprintf(stderr, “Retrive error: %s”, mysql_error(&conn)); } mysql_free_result(res_ptr); } } mysql_close(&conn); exit(EXIT_SUCCESS);}

一次提取一行数据:mysql_use_result

使用方法和mysql_store_result完全一样,把上面代码的mysql_store_result改为mysql_use_result即可,

mysql_use_result具备资源管理方面的实质性好处,更好地平衡了网络负载,以及减少了可能非常大的数据带来的存储开销,但是不能与mysql_data_seek、mysql_row_seek、mysql_row_tell、mysql_num_rows一起使用。如果数据比较少,用mysql_store_result更好。

处理返回的数据

上一篇:离散数学期末考试题下一篇:棚户区改造课题研究