第4章+循环结构(C++版)


【上机练习】
3.求整数的和与均值【1.5编程基础之循环控制03】 题目描述:读入n(1<=n<=10000)个整数,求它们的和与均值。 输入: 输入第一行是一个整数n,表示有n个整数。 第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。 输出: 输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间 用单个空格分隔。 样例输入: 4 344 222 343 222 样例输出: 1131 282.75000
第一节 for语句
二、语句执行过程 for语句的执行过程可由以下4步来描述。 (1)执行“控制变量初始化语句”,使控制变量获得一个初值。 (2)判断控制变量是否满足“条件表达式”,若满足条件则执 行一遍循环体,否则结束整个for语句,继续执行for循环下面 的句子。 (3)根据增量表达式,计算出控制变量所得到的新值 (4)自动转到第(2)步。
【上机练习】
10.与指定数字相同的数的个数【1.5编程基础之循环控制10】 题目描述:输出一个整数序列中与指定数字相同的数的个数。输入包含2 行:第1行为n和m,表示整数序列的长度(n<=100)和指定的数字;第2 行为n个整数,整数之间以一个空格分开。输出为n个数中与m相同的数 的个数。 输入: 第1行为n和m,表示整数序列的长度(n<=100)和指定的数字, 中间 用一个空格分开; 第2行为n个整数,整数之间以一个空格分开。 输出: 输出为n个数中与m相同的数的个数。 样例输入: 32 232 样例输出: 2
【方法2】在上述分析的基础上,再进一步分析:我们都知道,相邻偶数之间 的差值为2,所以,我们还可以设置变量的初值为2,增量为2的for循环,使 得循环次数减少为50次。
例4.3 利用for循环,分别计算1至100中奇数的和、偶数的和。 【分析】根据例4.2的分析,很容易找到所有的偶数和奇数,继而计算其和。 假设用变量sum1和sum2分别存放偶数与奇数和,累加就是在sum1或sum2 的基础上,加上一个数字,改变累加变量的值;再加上一个数字,改变累加 变量的值;......;如此重复下去。
第四章 循环结构
第一节 for语句 第二节 while语句 第三节 do-while语句 第四节 循环嵌套
第一节 for语句
一、语句格式
说明: 语句1是for循环语句的循环体,它将在满足条件的情况下被重复执行。
说明:循环体部分 由多个语句构成, 应由一对花括号括 起来,构成一个语 句块的形式程序风 格提示:写for循环 语句时,循环体的 语句相对于for缩进 两格。
【上机练习】
8.满足条件的数【1.5编程基础之循环控制08】 题目描述:将正整数m和n之间(包括m和n)能被17整除的数累加,其中 0<m<n<1000。 输入: 一行,包含两个整数m和n,其间,以一个空格间隔。 输出: 输出一行,包行一个整数,表示累加的结果。 样例输入: 50 85 样例输出: 204
【上机练习】
1.求平均年龄【1.5编程基础之循环控制01】 题目描述:班上有学生若干名,给出每名学生的年龄(整数),求班上 所有学生的平均年龄,保留到小数点后两位。 输入: 第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行 每行有1个整数,表示每个学生的年龄,取值为15到25。 输出: 输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点 后两位。 样例输入: 2 18 17 样例输出: 17.50
【上机练习】
6.奥运奖牌计数【1.5编程基础之循环控制06】 题目描述:2008年北京奥运会,A国的运动员参与了n天的决赛项目 (1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。 输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天 获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌 总数及总奖牌数。 输入: 输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行 是该国某一天获得的金、银、铜牌数目,以一个空格分开。 输出: 输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌 数,以一个空格分开。 样例输入: 3 103 310 030 样例输出: 4 4 3 11
第一节 for语句
三、语句格式举例
for(i=1;i<=100;i++) for(i=7;i<=77;i+=7)
for(i=100;i>=1;i--) for(int i=20;i>=2;i-=2)
控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。 for(int i=1,j=2;i<=99&&j<=100;i+=2,j+=2) 需要说明的是:可以在for循环“控制变量初始化语句”中声明变量,这些变 量只在for循环结构中有效,离开了该for结构,变量就无效了。
14.鸡尾酒疗法【1.5编程基础之循环控制15】 题目描述:鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又 提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可 用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y, 如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。 下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进 疗法。请写程序判定各种改进疗法效果如何。 输入: 第一行为整数n(1<n<=20);其余n行每行两个整数,第一个整数是临床实验的总 病例数(小于等于10000),第二个疗效有效的病例数。这n行数据中,第一行为鸡尾酒疗 法的数据,其余各行为各种改进疗法的数据。 输出: 有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果 更差,输出worse;否则输出same。 样例输入: 样例输出: 5 same 125 99 worse 112 89 better 145 99 same 99 97 123 98
【上机练习】
15.救援【1.5编程基础之循环控制16】 题目描述:救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目 以及每个屋顶的坐标和人数都将由输入决定,求出所有人都到达大本营并登陆 所用的时间。 在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人 送回大本营。坐标系中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表 示。救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶,达到一个屋 顶后,救下其上的所有人,每人上船1分钟,船原路返回,达到大本营,每人下 船0.5分钟。假设原点与任意一个屋顶的连线不穿过其它屋顶。 输入: 第一行,一个整数,表示屋顶数n。接下来依次有n 行输入,每一行上包含两 个表示屋顶相对于大本营的平面坐标位置的实数(单位是米)、一个表示人数的整 数。 输出: 救援需要的总时间,精确到分钟(向上取整)。 样例输入: 1 30 40 3 样例输出: 7
【上机练习】
9.整数的个数【1.5编程基础之循环控制09】 题目描述:给定k(1<k<100)个正整数,其中每个数都是大于等于1,小 于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。 输入: 输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两 个正整数用一个空格分开。 输出: 输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行 为10出现的次数。 样例输入: 5 1 5 8 10 5 样例输出; 1 2 1
例4.4 利Biblioteka for循环计算n!的值。n!=1*2*3…*n
【说明】: 当n>=13时,s值超过了int类型的表示范围。还有一种比int更大的类型, 称为long long,它的表示范围是-263~263-1,比-1019~1019略窄,而我 们一直使用的int范围是-231~231-1,只比-2*109~2*109略宽。
第一节 for语句
例4.1 利用for循环,计算输出1+2+…+100的和
例4.2 输出1至100之间所有偶数。 【方法1】可以想到对于1-100之间的100个数字i,直接重复进行判断,如果i 是偶数,则输出i的值。
程序中,将1-100之间的所有数字都列举出来,然后一一判断,符合偶数条 件的,就输出。这种思想,本质上是穷举。穷举法保证在求解的过程中,所 有可能解都会判断到,不会丢解。当然缺点就是有时候效率不高。
【上机练习】
7.奇数求和【1.5编程基础之循环控制07】 题目描述:计算非负整数m到n(包括m和n)之间的所有奇数的和,其中, m 不大于 n,且n 不大于300。例如 m=3, n=12, 其和则为: 3+5+7+9+11=35。 输入: 两个数 m 和 n,两个数以一个空格分开,其中 0 <= m <= n <= 300 。 输出: 输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有 奇数的和 样例输入: 7 15 样例输出: 55
11.乘方计算【1.5编程基础之循环控制11】
【上机练习】
题目描述:给出一个整数a和一个正整数n,求乘方a^n,即乘方结果。 最终结果的绝对值不超过1000000。 输入: 一行,包含两个整数a和n。-1000000 <= a <= 1000000,1 <= n <= 10000。 输出: 一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。 样例输入: 23 样例输出: 8 数据范围限制: -1000000<=a<=1000000,1<=n<=10000
【上机练习】
4.最高的分数【1.5编程基础之循环控制04】 题目描述:孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想 知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计 算机来做比较方便。你能帮孙老师解决这个问题吗? 输入: 输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的 人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所 有成绩均为0到100之间的整数。 输出: 输出一个整数,即最高的成绩。 样例输入: 5 85 78 90 99 60 样例输出: 99
合集下载

《C语言》章节列表

《C语言》章节列表

第1章程序设计和C语言1第2章算法——程序的灵魂16第3章最简单的C程序设计——顺序程序设计第4章选择结构程序设计85第5章循环结构程序设计114第6章利用数组处理批量数据1426.1怎样定义和引用一维数组1426.1.1怎样定义一维数组1436.1.2怎样引用一维数组元素1446.1.3一维数组的初始化1456.1.4一维数组程序举例1466.2怎样定义和引用二维数组1486.2.1怎样定义二维数组1496.2.2怎样引用二维数组的元素1506.2.3二维数组的初始化1516.2.4二维数组程序举例1526.3字符数组1546.3.1怎样定义字符数组1546.3.2字符数组的初始化1556.3.3怎样引用字符数组中的元素1556.3.4字符串和字符串结束标志1566.3.5字符数组的输入输出1596.3.6使用字符串处理函数1616.3.7字符数组应用举例165习题168第7章用函数实现模块化程序设计1707.1为什么要用函数1707.2怎样定义函数1727.2.1为什么要定义函数1727.2.2定义函数的方法1737.3调用函数1747.3.1函数调用的形式1747.3.2函数调用时的数据传递1757.3.3函数调用的过程1777.3.4函数的返回值1787.4对被调用函数的声明和函数原型1797.5函数的嵌套调用1827.6函数的递归调用1847.7数组作为函数参数1927.7.1数组元素作函数实参1937.7.2数组名作函数参数1947.7.3多维数组名作函数参数1977.8局部变量和全局变量1997.8.1局部变量1997.8.2全局变量2007.9变量的存储方式和生存期2047.9.1动态存储方式与静态存储方式2047.9.2局部变量的存储类别2057.9.3全局变量的存储类别2087.9.4存储类别小结2127.10关于变量的声明和定义2147.11内部函数和外部函数2157.11.1内部函数2157.11.2外部函数215习题218第8章善于利用指针2208.1指针是什么2208.2指针变量2228.2.1使用指针变量的例子2228.2.2怎样定义指针变量2238.2.3怎样引用指针变量2248.2.4指针变量作为函数参数2268.3通过指针引用数组2308.3.1数组元素的指针2308.3.2在引用数组元素时指针的运算2318.3.3通过指针引用数组元素2338.3.4用数组名作函数参数2378.3.5通过指针引用多维数组2458.4通过指针引用字符串2558.4.1字符串的引用方式 2558.4.2字符指针作函数参数2598.4.3使用字符指针变量和字符数组的比较263 8.5指向函数的指针2668.5.1什么是函数指针2668.5.2用函数指针变量调用函数2668.5.3怎样定义和使用指向函数的指针变量268 8.5.4用指向函数的指针作函数参数2708.6返回指针值的函数2748.7指针数组和多重指针2778.7.1什么是指针数组 2778.7.2指向指针数据的指针2808.7.3指针数组作main函数的形参2828.8动态内存分配与指向它的指针变量2858.8.1什么是内存的动态分配2858.8.2怎样建立内存的动态分配2858.8.3void指针类型 2878.9有关指针的小结288习题291第9章用户自己建立数据类型2939.1定义和使用结构体变量2939.1.1自己建立结构体类型2939.1.2定义结构体类型变量 2959.1.3结构体变量的初始化和引用2979.2使用结构体数组3009.2.1定义结构体数组3009.2.2结构体数组的应用举例3019.3结构体指针3039.3.1指向结构体变量的指针3039.3.2指向结构体数组的指针3049.3.3用结构体变量和结构体变量的指针作函数参数306 9.4用指针处理链表3099.4.1什么是链表 3099.4.2建立简单的静态链表3109.4.3建立动态链表3119.4.4输出链表3159.5共用体类型3179.5.1什么是共用体类型3179.5.2引用共用体变量的方式3189.5.3共用体类型数据的特点3199.6使用枚举类型3239.7用typedef声明新类型名326习题330第10章对文件的输入输出33110.1C文件的有关基本知识33110.1.1什么是文件33110.1.2文件名33210.1.3文件的分类33210.1.4文件缓冲区33310.1.5文件类型指针33310.2打开与关闭文件33510.2.1用fopen函数打开数据文件33510.2.2用fclose函数关闭数据文件33710.3顺序读写数据文件33810.3.1怎样向文件读写字符33810.3.2怎样向文件读写一个字符串34110.3.3用格式化的方式读写文件34410.3.4用二进制方式向文件读写一组数据34510.4随机读写数据文件34910.4.1文件位置标记及其定位34910.4.2随机读写 35210.5文件读写的出错检测353习题354第11章常见错误分析355附录370附录A在Visual C++ 6.0环境下运行C程序的方法370附录B常用字符与ASCII代码对照表377附录CC语言中的关键字378附录D运算符和结合性378附录EC语言常用语法提要380附录FC库函数384参考文献390第4章选择结构程序设计854.1选择结构和条件判断854.2用if语句实现选择结构874.2.1用if语句处理选择结构举例874.2.2if语句的一般形式 894.3关系运算符和关系表达式914.3.1关系运算符及其优先次序914.3.2关系表达式924.4逻辑运算符和逻辑表达式924.4.1逻辑运算符及其优先次序934.4.2逻辑表达式944.4.3逻辑型变量964.5条件运算符和条件表达式974.6选择结构的嵌套1004.7用switch语句实现多分支选择结构1024.8选择结构程序综合举例106习题112第5章循环结构程序设计1155.1为什么需要循环控制1155.2用while语句实现循环1165.3用do…while语句实现循环1185.4用for 语句实现循环1215.5循环的嵌套1255.6几种循环的比较1265.7改变循环执行的状态1265.7.1用break语句提前终止循环1275.7.2用continue语句提前结束本次循环1285.7.3break语句和continue语句的区别1295.8循环程序举例132习题141第6章利用数组处理批量数据1436.1怎样定义和引用一维数组1436.1.1怎样定义一维数组1446.1.2怎样引用一维数组元素1456.1.3一维数组的初始化1466.1.4一维数组程序举例1476.2怎样定义和引用二维数组1496.2.1怎样定义二维数组1506.2.2怎样引用二维数组的元素1516.2.3二维数组的初始化1526.2.4二维数组程序举例1536.3字符数组1556.3.1怎样定义字符数组1556.3.2字符数组的初始化1566.3.3怎样引用字符数组中的元素156 6.3.4字符串和字符串结束标志1576.3.5字符数组的输入输出1606.3.6使用字符串处理函数1626.3.7字符数组应用举例166习题169第7章用函数实现模块化程序设计171 7.1为什么要用函数1717.2怎样定义函数1737.2.1为什么要定义函数1737.2.2定义函数的方法1747.3调用函数1757.3.1函数调用的形式1757.3.2函数调用时的数据传递1767.3.3函数调用的过程1787.3.4函数的返回值1797.4对被调用函数的声明和函数原型181 7.5函数的嵌套调用1837.6函数的递归调用1857.7数组作为函数参数1937.7.1数组元素作函数实参1937.7.2数组名作函数参数1957.7.3多维数组名作函数参数1987.8局部变量和全局变量2007.8.1局部变量2007.8.2全局变量2017.9变量的存储方式和生存期2057.9.1动态存储方式与静态存储方式205 7.9.2局部变量的存储类别2067.9.3全局变量的存储类别2097.9.4存储类别小结2137.10关于变量的声明和定义2157.11内部函数和外部函数2167.11.1内部函数2167.11.2外部函数216习题219第8章善于利用指针2218.1指针是什么2218.2指针变量2238.2.1使用指针变量的例子2238.2.2怎样定义指针变量2248.2.3怎样引用指针变量2258.2.4指针变量作为函数参数2278.3通过指针引用数组2328.3.1数组元素的指针2328.3.2在引用数组元素时指针的运算2338.3.3通过指针引用数组元素2348.3.4用数组名作函数参数2398.3.5通过指针引用多维数组2478.4通过指针引用字符串2578.4.1字符串的引用方式 2578.4.2字符指针作函数参数2618.4.3使用字符指针变量和字符数组的比较265 8.5指向函数的指针2688.5.1什么是函数指针2688.5.2用函数指针变量调用函数2688.5.3怎样定义和使用指向函数的指针变量270 8.5.4用指向函数的指针作函数参数2728.6返回指针值的函数2768.7指针数组和多重指针2798.7.1什么是指针数组 2798.7.2指向指针数据的指针2828.7.3指针数组作main函数的形参2848.8动态内存分配与指向它的指针变量2878.8.1什么是内存的动态分配2878.8.2怎样建立内存的动态分配2878.8.3void指针类型 2898.9有关指针的小结290习题293第9章用户自己建立数据类型2959.1定义和使用结构体变量2959.1.1自己建立结构体类型2959.1.2定义结构体类型变量 2979.1.3结构体变量的初始化和引用2999.2使用结构体数组3029.2.1定义结构体数组3029.2.2结构体数组的应用举例3049.3结构体指针3059.3.1指向结构体变量的指针3059.3.2指向结构体数组的指针3069.3.3用结构体变量和结构体变量的指针作函数参数3089.4用指针处理链表3119.4.1什么是链表 3119.4.2建立简单的静态链表3129.4.3建立动态链表3139.4.4输出链表3179.5共用体类型3199.5.1什么是共用体类型3199.5.2引用共用体变量的方式3209.5.3共用体类型数据的特点3219.6使用枚举类型3259.7用typedef声明新类型名328习题332第10章对文件的输入输出33310.1C文件的有关基本知识33310.1.1什么是文件33310.1.2文件名33410.1.3文件的分类33410.1.4文件缓冲区33510.1.5文件类型指针33510.2打开与关闭文件33710.2.1用fopen函数打开数据文件33710.2.2用fclose函数关闭数据文件33910.3顺序读写数据文件34010.3.1怎样向文件读写字符34010.3.2怎样向文件读写一个字符串34310.3.3用格式化的方式读写文件34610.3.4用二进制方式向文件读写一组数据34710.4随机读写数据文件35110.4.1文件位置标记及其定位35110.4.2随机读写 35410.5文件读写的出错检测355习题356第11章常见错误分析374附录390附录A在Visual C++ 6.0环境下运行C程序的方法390 附录CC语言中的关键字398附录D运算符和结合性398附录EC语言常用语法提要400附录FC库函数404参考文献410。

C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

第4章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么?为什么?如果将精度改为 10-3,运行结果有变化吗?为什么?解答:如果对 item 赋初值 0,则程序运行结果是 pi=0,因为 item 为 0 时不满足 while 循环的执行条件,即不执行循环,故 pi 值为 0。

如果将精度改为10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得 while 循环次数减少,必然影响到π的值。

【练习 4-2】运行例 4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是 -1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。

如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则 while 循环条件不成立,不执行循环体。

【练习 4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数 eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps(保留6位小数)。

试编写相应程序。

解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习 4-4】如果将例 4-3 程序中的 do-while 语句改为下列 while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据 number 为 0 时,上述 while 循环将不执行,count 值仍为 0,故输出为 0,不符合题目要求。

《谭浩强《C程序设计》(第4版)笔记和课后习题详解》读书笔记模板

《谭浩强《C程序设计》(第4版)笔记和课后习题详解》读书笔记模板

第11章常见错误分 析
1.1复习笔记 1.2课后习题详解
2.1复习笔记 2.2课后习题详解
3.1复习笔记 3.2课后习题详解
4.1复习笔记 4.2课后习题详解
5.1复习笔记 5.2课后习题详解
6.1复习笔记 6.2课后习题详解
7.1复习笔记 7.2课后习题详解
8.1复习笔记 8.2课后习题详解
作者介绍
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,暂无该书作者的介绍。
谢谢观看
目录分析
第2章算法——程 序的灵魂
第1章程序设计和C 语言
第3章最简单的C程 序设计——顺序程
序设计
1
第4章选择结构 程序设计
2
第5章循环结构 程序设计
3
第6章利用数组 处理批量数据
4 第7章用函数实
现模块化程序 设计
5
第8章善于利用 指针
第10章对文件的输 入输出
第9章用户自己建 立数据类型
9.1复习笔记 9.2课后习题详解
10.1复习笔记 10.2课后习题详解
11.1复习笔记 11.2课后习题详解
读书笔记
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,可以替换为自己的心得。
精彩摘录
这是《谭浩强《C程序设计》(第4版)笔记和课后习题详解》的读书笔记模板,可以替换为自己的精彩内容 摘录。
谭浩强《C程序设计》(第4版)笔记 和课后习题详解
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
习题

计算机编程CHP4_循环结构

计算机编程CHP4_循环结构

#include <stdio.h> Int main(void) Enter grades: -1 67 88 73 54 82 { int num; Grade average mark is 0 double grade, total; num = 0; total = 0; printf(“Enter grades: \n"); scanf("%lf", &grade); /* 输入第 个数 输入第1个数 个数*/ while (grade >= 0) { /* 输入负数,循环结束 */ 输入负数, total = total + grade; num++; Enter grades: 67 88 73 54 82 -1 scanf (“%lf”, &grade); Grade average is 72.80 } if(num != 0) printf(“Grade average is %.2f\n", total/num); else printf(" Grade average is 0\n"); return 0; }
第四章
循环结构
本章教学要求
1. 理解C语言循环程序的概念与基本原理,熟 理解C 语言循环程序的概念与基本原理, 循环程序的概念与基本原理 悉循环的功能。 悉循环的功能。 循环结构程序设计的基本方法 掌握循环结构程序设计的基本方法。 2. 掌握循环结构程序设计的基本方法。 3. 正确区分while、do-while语句的异同。 正确区分while do-while语句的异同 while、 语句的异同。 掌握break continue语句在循环中的使用 break和 4. 掌握 break 和 continue 语句在循环中的使用 方法。 方法。 通过多重循环程序设计 多重循环程序设计, 5. 通过 多重循环程序设计 , 更加深入地掌握 结构化程序设计方法,进一步加深“CDIO理 结构化程序设计方法, 进一步加深“CDIO 理 在计算机编程中的应用。 念”在计算机编程中的应用。

第4章 C语言程序的基本控制结构

第4章 C语言程序的基本控制结构

#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B

表达 式

条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)

C语言循环结构-break、continue语句PPT课件

C语言循环结构-break、continue语句PPT课件
东软信息学院计算机系 2021年4月6日星期二
while语句中的continue
#include"stdio.h" main( ) { int i=1;
while(i<=10) {
printf(“i=%d\n",i); if(i==3)
continue; printf(“circle %d\n", i); i++; } printf("over"); }
{
for(j=1;j<=i;j++)
printf(“%d”,i);
printf(“\n”);
}
printf(“game over!”);
}
东软信息学院计算机系 2021年4月6日星期二
break语句
东软信息学院计算机系 2021年4月6日星期二
switch 语句中的break
• 例子 main() { int i=2;
default: printf("default");}
}
结果:i=2 i=3
东软信息学院计算机系 2021年4月6日星期二
循环语句中的break
功能:跳出该break所在的那层循环语句,提前 终止当前循环。
main()
{ int i;
for(i=1;i<=10;i++)
{ printf(“%d “,i);
东软信息学院计算机系 2021年4月6日星期二
课前回顾
在屏幕上输出如下图形: 1 12 123 1234 12345 123456 . . .
其中行数由键盘输入。
东软信息学院计算机系 2021年4月6日星期二

第4章 循环结构(C++版)_第二节 while语句-2019-01-04


【上机练习】
2.角谷猜想【1.5编程基础之循环控制18】 /ch0105/21/ :8088/problem_show.php?pid=1086 谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以 2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算 过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。 输入: 一个正整数N(N <= 2,000,000) 输出: 从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。 如果输入为1,直接输出"End"。 样例输入: 5 样例输出: 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 End
第二节 while语句
第2种方法也许更加常用(你再 最后,我们来更仔细地研究一下 也不用记住%d、%lf等恼人的占位符 输入输出。研究对象就是经典的“A+B” 问题:输入若干对整数,输出每对之和。 了): 假设每个整数不超过109,一共不超过 #include<iostream> 106个数对。 using namespace std; 第1种方法是: #include <cstdio> int main() { int a,b; while(scanf("%d%d",&a,&b)==2) printf("%d\n",a+b); return 0; } int main() { int a,b; while(cin >> a >> b ) cout << a+b <<endl; return 0; }

第4章--循环结构 - 参考答案

int k,j,s;
for(k=2;k<6;k++,k++)
{ s=1;
for(j=k;j<6;j++)
s+=j;}
printf("%d\n",s);
A) 1 B) 9
C) 11 D) 10
D
15、以下程序段的输出结果是( )。
int k,n,m;
n=10;m=1;k=1;
while (k<=n) {m*=2;k+=4;}
printf("%d\n",m);
A) 4 B) 16
C) 8 D) 32
C
16、设有如下程序段:
int i=0, sum=1;
do
{ sum+=i++;}
while(i<6);
printf("%d\n", sum);
上述程序段的输出结果是( )。
A) 11 B) 16
C) 22 D) 15
B
17、以下程序的输出结果是( )。
else printf("%d,",x++); }
程序运行后的输出结果是( )。
A) 4,3,1 B) 4,3,1,
C) 5,4,2 D) 5,3,1,
B
20、下面程序是计算n个数的平均值,请填空。
main( )
{ int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
输出结果是( )。
main( )

计算机等级考试c语言考点第4章

考点1 while 循环结构由while 语句构成的循环称为“当循环”。

(1)循环结构的形式【格式】while(表达式)循环体使用while 时应注意以下4个方面: ① while 是C 语言的关键字。

② while 后一对圆括号中的表达式可以是C 语言中任意合法的表达式,但不能为空,由它来控制循环体是否执行。

当表达式的值为整数时,表示条件为假;表达式为非整数时,表示条件为真。

③ 循环体只能是一条执行语句,若循环体内有多个语句,应该使用复合语句。

真题1 有下列程序: 【2006.9】main( ) { int k=5;考点 w h i l e 循环结构 1真题2真题3真题4考点2 do-while 循环结构(1)do-while 循环结构的形式【格式】do循环体 while(表达式);【说明】do-while 语句先执行语句,后判断表达式的值。

故do-while 语句又称“直到型”循环结构。

由于是先执行后判断,因此do-while 语句的循环语句至少被执行一次。

使用do-while 循环结构时应注意以下4.个方面...: do 是C 语言的关键字,必须和while 联合使用。

do-while 循环由do 开始,至while 结束。

while 后一对圆括号中的表达式,可以是C 语言中任意合法的表达式,该表达式决定是否继续循环。

2)do-while ① 执行do真题1 有下列程序段:【2005.9】int n,t=1,s=0; scanf("%d",&n);考点 d o -w h i l e 循环结构2在真题2真题3真题4考点3 for 循环结构for 语句构成的循环结构通常称为for 循环。

(1)for 循环结构的形式【格式】for(表达式1;表达式2;表达式3)循环体【说明】“表达式1”一般为赋值表达式,“表达式2”一般为关系表达式或逻辑表达式,用于执行循环的条件判断,“表达式3”一般为赋值表达式或自增、自减表达式,用于修改循环变量的值。

《C语言程序设计》2教学课件 第4章 循环结构程序设计


—7—
4.1 while循环
【例4.1】
计算从1到100的和。
#include<stdio.h> int main() {
int i,sum; sum=0; i=1; while(i<=100) {
sum=sum+i; i=i+1; } printf("1+2+3+...+99+100=%d",sum); return 0; }
表达式3
一般被称为“步长”,用于循 环变量的修改,该表达式是在 每次循环体执行完以后、下一 次循环条件判断之前执行的, 使循环变量经过多次循环的累 积而发生改变,最终因为不满 足循环条件退出循环。
— 26 —
4.3 for循环
【例4.7】
编程计算1到49之内的奇数和。
#include<stdio.h> int main() {
可将for循环语句改写为如下的while循环形式:
表达式1; while(表达式2) {
语句; 表达式3; }
例如:
for(i=1;i<=100;i++) sum=sum+i;
相当于:
i=1; while(i<=100) {
sum=sum+i; i++; }
— 28 —
4.3 for循环
因此,可以将例4.7用while语句进行改写如下:
/*定义及初始化变量*/ /*输出提示语*/ /*输入整数*/ /*如果输入的为负整数则取反*/
/*number整除10,即去掉最低位*/ /*位数加1*/ /*number不为0时循环*/ /*输出位数*/
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档