C语言之多重循环

C语言之多重循环
C语言之多重循环

多重循环

1、s=1+ (1+2)+(1+2+3)+……前20项的和。(6_1.c)

2、输出9*9口诀。(6_2.c)

【程序分析】分行与列考虑,共9行9列,i控制行,j控制列。分析行数和输出项之间的关系。

3、百鸡百钱:公鸡5元1只,母鸡3元1只,小鸡3只1元。现用100元买了100只鸡,

编程求公鸡、母鸡、小鸡各买了多少只?(要求至少1只。)(6_3.c)

【程序分析】假设公鸡m1只,母鸡m2只,小鸡m3只,确定各自的变化范围;

1<=M1<20; 1<=m2<33; 3<=m3<=96(m3=100-m1-m2);

利用多重条件;

条件判断:(5*m1+3*m2+m3/3==100)&&(m3%3==0)

4、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的四位数?都是多少?并

求出如此组成的最大四位数。(6_4.c)

【程序分析】可填在千位、百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

最大数字应该满足千位>百位>十位>个位

5、勾股数:如果正整数x,y,z,满足,sqr(x)+sqr(y)=sqr(z),则称(x,y,z)为一组勾股数。

编程求解500以内的勾股数有多少组,分别是什么?(6_5.c)

【程序分析】最短边不超过360,(?)

结果:383个数

(6_6.c)

6、判断101-200之间有多少个素数,并输出所有素数。

【程序分析】素数的判断:用一个数分别去除2到sqrt(这个数),如果能被整除,

则表明此数不是素数,反之是素数。

注意头文件要包含#include

++++++++++++++++++++++++++++++++++++++++++++++++++++

7、求出所有满足下列条件的二位数,将此二位数的个位数字和十位数字进行交换,可得到

一个新的数,要求新数和原数之和小于100。(6_7.c)

8、硬币兑换:将100元钱换成1元、5元、10元、20元的零钱,问共有多少种兑换方案,

输出所有的兑换方案。(6_8.c)

9、1+2!+3!+...+20!的和 (6_9.c)

10、打印出如下图案(6_10.c)

【程序分析】先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。

11、要求输出国际象棋棋盘。(6_11.c)

【程序分析】用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。当i+j为偶数时,输出白格;奇数时输出黑格;

printf("%c%c", '\xA1', '\xF6'); /*白格*/

printf(" "); /*2个空格---黑色*/

12、两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽

签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 (6_12.c)

【程序分析】设定甲队三人为三个符号变量a,b,c,其值为对手对应的符号’x’,’y’,’z’;

a,b,c的变化范围都为’x’~’z’;满足的条件为互不相等,且a!=’x’ && c!=’x’ &&c!=’z’结果:

******************************

a—z b—x c—y

******************************

13、医生值班:某医院有A,B,C,D,E,F,G七位大夫,他们在一星期内每人要值班一天,

值班的要求为

?A大夫的值班日比C大夫晚一天;

?D大夫的值班日比E大夫晚2天

?B大夫的值班日比G大夫早3天

?F大夫的值班日在B,C大夫值班日之间,且在星期四

编程安排每位大夫的值班日 (6_13.c)

【操作提示】假设A~F的值为1~7,周一到周日,已知条件

1)f=4;

2)b<4,c>4

3)a-c=1;

4)d-e=2;

5)g-b=3;

利用多重循环,添加适当的循环条件,求解

答案:

A---7

B---2

C---6

D---3

E---1

F---4

G--5

14、某公司现准备提拔赵、钱、孙、李、张5位员工,去担任A,B,C,D,E5个职位。事

先董事会对5人是否能胜任这些职位做了调查,调查结果如下表所示,表中1表示能胜任此职位,0表示不能。编程输出职位的分配方案。 (6_14.c)

结果:

15、某侦察队长接到一项紧急任务,要他在代号为A,B,C,D,E,F的6个队员中选出若

干人去侦察一件案子。人选的配备必须注意到下列几点: (6_15.c)

?A,B中至少去1人;(提示:a+b>=1)

?A,D不能一起去;(提示:a+d<=1)

?若D不去,则E也不去;(提示:if d==0 e=0;)

?B,C两人都去或都不去(提示:b =c)

?C,D两人中去一人(提示:c+d==1)

?A,E,F三人中要派2人去;(提示:a+e+f==2)

结果:1—去,0—不去;

111001

16、A,B,CD,E五名学生中的部分同学参加了计算机竞赛,,根据下列条件判断哪些人

参加了竞赛:

1)A参加时,B也参加;

2)B和C只有一个人参加;

3)C和D或者都参加,或者都不参加;

4)D和E至少有一个人参加;

5)如果E参加,那么A和D也都参加;

大一上期C语言实验报告5 循环控制语句

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三 种循环语句实现循环结构; (2)掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧; (3)进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。2.实验内容 (1)输出两个整数m和n,求它们的最大公约数和最小公倍数。 要求: ①画出算法流程图,从键盘输入m和n; ②对负数和零可不做考虑; ③运行程序,对m>n、m

③按照数字、大写字母、小写字母及其他字符数的顺序输出结果 3.流程图 4.源程序

5. 运行结果 (1 ) 求最大公约数和最小公倍数 (2)求1000内最大的10个素数之和(3)计算π值

C语言for循环语句教案

for循环结构程序设计教案 课程名称:C语言程序设计 本课内容:循环结构程序设计——for 语句 一、教学目标 1、领会程序设计中构成循环的方法 2 、掌握for 语句的用法 二、教学重点 1、for 语句的一般格式 2、for语句的执行过程 三、教学难点 for 语句的综合利用 四、教学方法 1、课堂讲授,给出主要内容。 2、讲解其基本格式。 3、应用示例,结合相应的知识讲解。 4、执行过程用流程图和例题用(演示法和讲解法)进行详细说明。 五、教学过程 (一)导入 1、复习前两节课我们学习的两种循环语句——while语句和do~while 语句的基本格式和执行过程和特征。 2、给出例子如下:

main( ) {int x=1; (表达式1) s=0; while(x<=100) (表达式2) {s=s+x; x=x+1; (表达式3) } printf(“%d”,s); } 分析用while语句来完成的程序,主要完成1到100的累加和,对一个循环程序来说最关键的三个部分:循环变量的赋初值、控制循环条件、循环控制变量的更新。 (二)教学过程 1、写出本节课要介绍的for语句的一般格式 for(表达式1;表达式2;表达式3) 循环体; 2、掌握:基本格式和各个表达式的功能和特征 强调:for语句中的所有表达式和while语句中的表达式所完成的功能是相同的。 表达式1:循环变量的初始化(初始值) 表达式2:循环条件(终止值) 表达式3:循环变量自增 3、for语句的执行过程 for ( int i = 0 ; i < 10 ; i++) { printf("我最棒"); }

c语言循环语句和循环控制例题解析

一、循环控制 (一)、break语句 break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。 当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。 例如: int main(int argc, char *argv[]) { int sn=0,i; for(i=1;i<=100;i++) { if(i==51) break; /*如果i等于51,则跳出循环*/ sn+=i; /*1+2+……+50*/ } printf(%d\n,sn); } 可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了。自己写写怎样在while和do--while循环中增加break语句。 注意: 1. break语句对if-else的条件语句不起作用。 2. 在多层循环中,一个break语句只向外跳一层。 例如: int main(int argc, char *argv[]) { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) { if(j==2) break; printf(%d %d\n,i,j); } } 输出结果为: i j 0 0 0 1 1 0 1 1 当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。 (二)、continue语句

C语言 个关键字九种控制语句 种运算符

总结归纳了C语言的32个关键字 第一个关键字:auto 用来声明自动变量。可以显式的声明变量为自动变量。只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。并且只在声明它的函数内有效。而且当使用完毕后,它的值会自动还原为最初所赋的值。自动变量使用时要先赋值,因为其中包含的是未知的值。 例:auto int name=1; 第二个关键字:static 用来声明静态变量。可以显式的声明变量为静态变量。也为局部变量。只在声明它的函数内有效。它的生命周期从程序开始起一直到程序结束。而且即使使用完毕后,它的值仍旧不还原。即使没有给静态变量赋值,它也会自动初始化为0. 例:static int name=1. 第三个关键字:extern 用来声明全局变量。同时声明在main函数之前的变量也叫全局变量。它可以在程序的任何地方使用。程序运行期间它是一直存在的。全局变量也会初始化为0. 例:extern int name; 第四个关键字:register 用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。对于需要频繁使用的变量使用它来声明会提高程序运行速度。 例:register int name=1; 第五个关键字:int 用来声明变量的类型。int为整型。注意在16位和32位系统中它的范围是不同的。16位中占用2个字节。32位中占用4个字节。还可以显式的声明为无符号或有符号: unsigned int或signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。也可用short和long来声明为短整型,或长整行。 例:int num; 第六个关键字:float 用来声明变量的类型。float为浮点型,也叫实型。它的范围固定为4个字节。其中6位为小数位。其他为整数位。 例:float name;

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

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

《C语言循环程序设计—for语句》教学案例 漠河县职业技术学校尘威威 C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。 案例背景: 在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。 循环结构是程序设计三种基本结构的重中之重,而循环中的for 循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导

学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。 教学目标确定 (一)知识与技能 1、领会程序设计中构成循环的方法 2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。 (二)过程与方法 C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。 本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、do while语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。 (三)情感与价值观 1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。

C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

C语言循环结构测习题带答案

精心整理 第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ? ? ? ? 1. C. A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 (5)以下程序段C。 intx=-1; do { x=x*x; } while(!x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误 (6)下列语句段中不是死循环的是__C__。 A.i=100; while(1) { i=i%100+1; if(i==20)break; } B.for(i=1;;i++) sum=sum+1; C. C. COUT< main() { intnum=0; while(num<=2) {

num++; cout< else ++i; }while(s<15); Cout< main() { inti,j; for(i=4;i>=1;i--) {

for循环使用详解(c语言版)

for循环使用详解(c语言版) 说明:c语言的很多语法部分都和JAVA,AS等相同特别是for的用法. c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句. for(表达式 1;表达式 2;表达式 3)语句 它的执行过程如下: (1)先求表达式 1. (2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步做若为 假(值为0),则结束循环,转到第5步. (3)求解表达式3 (4)转回上面第(2)步骤继续执行; (5)结束循环,执行for语句下面的一个语句; for(循环变量赋初值;循环条件;循环变量增值)语句 如 for(i=1;i =100;i++)sum=sum+i; 它的执行相当于 i=1; while(i =100){ sum=sum+i; i++; } 显然,用for语句更简单、方便。 说明: (1)for语句的一般形式中的”表达式1”可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i =100;i++){....}; (2)如果表达式2省略即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真. 例如:for(i=1;;i++){.....}; 相当于 i=1; while(1) {sum=sum+1; i++; } (3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如: for(i=1;i =100;) {sum=sum+1; i++;

C语言的32个关键字和9种控制语句

C语言的32个关键字和9种控制语句 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

c语言循环控制语句

循环控制结构(又称重复结构)是程序中的另一个基本结构.在实际问题中,常常需要 进行大量的重复处理,循环结构可以使我们只写很少的语句,而让计算机反复执行,从而完成大量类同的计算. C语言提供了while语句、do...while语句和for语句实现循环结构. 3.4.1while语句 while语句是当型循环控制语句,一般形式为: while<表达式>语句; 语句部分称为循环体,当需要执行多条语句时,应使用复合语句. while语句的流程图见图3-8,其特点是先判断,后执行,若条件不成立,有可能一次也不执行. [例3-11]求n! 分析:n!=n*(n-1)*(n-2)*..2*1,0!=1.即S0=1,Sn=Sn-1*n.可以从S0开始,依次求出S1、S2、...Sn. 统一令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每一步令S=S*i,则最终S中的值就是n!. 流程图见图3-9,程序如下:

考察图3-9中循环部分的流程图可以看出,在循环前各变量应有合适的值(s=1),另外,控制循环结束的变量(此处为i)必须在循环体中被改变,否则,循环将无限进行下去,成为死循环.

本题中,将多项式的每一项用t表示,s代表符号,在每一次循环中,只要改变s、n的值,

就可求出每一项t. 一般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,而且该表达式的值会在循环中被改变,如同例3-12的情况一样. 3.4.2do...while语句 在C语句中,直到型循环的语句是do...while,它的一般形式为: do语句while<表达式> 其中语句通常为复合语句,称为循环体. do...while语句的流程图见图3-10,其基本特点是:先执行后判断,因此,循环体至少被执行一次. 但需要注意的是,do...while与标准的直到型循环有一个极为重要的区别,直到型循环是当条件为真时结束循环,而do...while语句恰恰相反,当条件为真时循环,一旦条件为假,立即结束循环,请注意do...while语句的这一特点. 例[3-13]计算sin(x)=x-x3/3!+x5/5!-x7/7!+... 直到最后一项的绝对值小于1e-7时为止. 分析:这道题使用递推方法来做. 让多项式的每一项与一个变量n对应,n的值依次为1,3,5,7,...,从多项式的前一项算后一项,只需将前一项乘一个因子: (-x2)/((n-1)*n) 用s表示多项式的值,用t表示每一项的值,程序如下: #include # include m a i n ( ) { double s,t,x ; int n ; printf("please input x :"); scanf("%lf",&x); t=x; n=1; s=x; do { n=n+2; t=t*(-x*x)/((float)(n)-1)/(float)(n); s=s+t;

c语言循环结构练习

2015-2016(2)循环结构练习题 一、单选题(共40题,共100分) 1. 以下正确的描述是()(2分) 语句的作用是结束整个循环的执行 B.只能在循环体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用相同 D.从多层循环嵌套中退出时,只能使用goto语句 标准答案:B 考生答案: 2. 下面的关键字中,不能够从循环体中跳出循环体外的是()(2分) 标准答案:D 考生答案: 3. 以下叙述中错误的是()(2分) A.语句标号是由合法的标识符后面加一个冒号构成 语句的作用是把程序的执行转向语句标号所在的位置 语句必须与语句标号在同一个函数内 D.结构化程序设计主张使用goto语句,使用goto语句的程序可读性强标准答案:D 考生答案: 4. 有以下程序段,while 循环执行的次数是() int k=0; while(k=1)k++; (2分) A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次 标准答案:A 考生答案: 5. 运行以下程序的结果为() main() { int num=0; while (num<=2) {num++; printf("%d",num); } } (2分) 标准答案:B 考生答案: 6. 下述程序的输出结果是()。 #include<> main() { int Y=100; while(Y--);

printf("y=%d",Y); (2分) =0 =1 =随机值 =-1 标准答案:D 考生答案: 7. 执行下面的程序后的输出结果为() int x,y,z; x=20,y=40,z=15; while(y>x) x+=4,y-=4; z/=2; printf("%d,%d,%d",x,y,z); (2分) ,36,30 ,8,7 ,28,7 ,28, 标准答案:C 考生答案: 8. 以下程序段的输出结果是() int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); (2分) ,2,0 ,2,-1 ,3,-1 ,-2,-5 标准答案:B 考生答案: 9. 下述语句执行后,变量k的值是() int k=1; while(k++<10); (2分) D.此为无限循环,值不定 标准答案:B 考生答案: 10. 下面程序的运行结果是()。 main() { int c1=2, c2=0; while(!c2--) printf("%d,%d", c1--, c2); } (2分) ,-1 B.不输出任何内容 ,-1 ,0 标准答案:C 考生答案: 11. 运行以下程序后,如果从键盘上输入china#main( ) { int v1=0,v2=0; char ch ; while((ch=getchar())!='#') switch(ch) { case 'a': case 'h': default: v1++; case '0': v2++;

c语言之whlie循环语句

本来说好讲讲除了scanf和printf以外例如gets、puts,petchar、putchar等输入输出函数。但准备了半天东西发现牵扯的知识太多,并且很多东西我自己也没有弄清楚。所以啦,我就打算先讲讲程序中最常见的两种循环语句,分别是while 循环语句和for循环语句。 这个while啊,我们都学过英语都知道有“当....的时候”的意思。对,学c语言时就当这个意思就行。 这个例题也没找到什么好的,就搬来了《c程序设计语言》上的例子,如果看过来就当是复习吧。 请看题: 使用公式℃=(5/9)(℉-32),打印下列华氏温度与摄氏温度的对照表。 0 -17 20 -6 40 4 60 15 80 26 100 37 120 48 140 60 160 71 180 82 200 93

220 104 240 115 260 126 280 137 300 148 我们的答案如下 #include /*当fahr=0,20,40,...,300时,打印华氏温度与摄氏温度对照表*/ main() { int fahr,celsius; int lower,upper,step; lower=0; /*华氏温度下限*/ upper=300;/*华氏温度上限*/ step=20;/*步长*/ fahr=lower; while(fahr<=upper) { celsius=5*(fahr-32)/9; printf("%d\t%d\n",fahr,celsius); fahr=fahr+step; }

} 值得高兴的是,我们又遇到了很多没有见过的东西,总是能见到新东西总是让人感到高兴的。 先是fahr、celsius等几个没见过的单词。这个其实不用说也都知道是啥东西,也就是几个可能原来不认识的变量名,并不是函数。 接下来是/**/格式的几个句子 /*当fahr=0,20,40,...,300时,打印华氏温度与摄氏温度对照表*/ /*华氏温度下限*/ /*华氏温度上限*/ /*步长*/ 这种在/*和*/之间加东西的东西叫做注释。和它的名字一样,仅作为注释,在程序运行过程就会被编译器忽略,因为编译器只对文章正文感兴趣。 这东西存在的主要价值基本上就是帮助看你程序的人或在你检查自己程序时可以快速理解你写的这一部分是干啥用的。因此注释在每个语句的句尾都可以加,在任何可以跳格也就是可以打空格或制表符的地方也都可以加。 剩下我们可能看不懂的大概也就剩while的循环语句了:while(fahr<=upper) { celsius=5*(fahr-32)/9;

C语言三种循环语句

三种基本的循环语句: for语句、while语句和do-while语句。 一、循环语句 (一)、for循环它的一般形式为: for(<初始化>;<条件表过式>;<增量>) 语句; 初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。 例如: for(i=1;i<=10;i++) 语句; 上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。 注意: (1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。 (2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环

控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。 (3).for循环可以有多层嵌套。 例如: for(;;) 语句; for(i=1;;i+=2) 语句; for(j=5;;) 语句; 这些for循环语句都是正确的。 main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) printf(%d %d\n,i,j); } 输出结果为: i j 0 0 0 1 0 2

1 0 1 1 1 2 用for循环求1+2+……+100的和: main() { int sn=0,i; for(i=1;i<=100;i++) sn+=i; /*1+2+……+100*/ printf(%d\n,sn); } 从程序可以看出,使用循环语句可以大大简化代码。(二)、while循环它的一般形式为: while(条件) 语句; while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。 例如: #include stdio.h main() {

C语言循环练习

1以下不是死循环的语句是 C 。 A、for(i=10; ; i++ ) sum+=i; B、while (1){x++;} C、for(; (c=getchar())!=?\n?;) printf(“%c”, c); D、for(;; x+= i); 2以下程序的输出结果是 A main() { int x, i; for(i = 1; i <= 100; i++) { x = i; if( ++x % 2 == 0) if( ++x % 3 == 0 ) if( ++x % 7 == 0) printf(“%d “, x); } printf(“\n”); } A、28 70 B、39 81 C、42 84 D、26 68 3. 以下程序段的输出结果是 B 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、15 B、10 C、24 D、9 4以下程序的输出结果是 B main() { int i, sum; for(i = 1; i < 6; i++) sum += i; printf(“%d\n” sum); } A、15 B、不确定 C、16 D、0 有以下程序 main() { int i; for(i=0; i<3; i++) switch(i)

{ case 1: printf("%d", i); case 2: printf("%d", i); default : printf("%d", i); } } 执行后输出结果是 A A、011122 B、120 C、012020 D、012 以下程序段的输出结果是 C 。 int n=10; while(n>7) { n--; Pr intf(“%d”, n ); } A、1098 B、10987 C、987 D、9876 下面程序的运行结果是 A #include main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); } A、0 B、1 C、8 D、-1 以下程序段的输出结果是 C int i, j, m = 0; for(i = 1; i <= 15; i += 4) for(j = 3; j <= 19; j += 4) m++; printf(“%d\n”, m); A、15 B、12 C、20 D、25 以下程序段的输出结果是 B int x= 3; do {pritnf(“%3d”, x-=2); } while (!(--x));

C语言循环结构练习题带答案

第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ?循环结构的嵌套 ?使用goto语句实现循环结构 ?穷举法程序设计方法 ?迭代程序设计方法 5.2练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 A.e==0 B.e!=1 C.e!=0 D.~e (2)下面有关for循环的正确描述是D。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。 A.不能使用do-while语句构成的循环 B.do-while语句构成的循环必须用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是A。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句

(5)以下程序段C。 intx=-1; do { x=x*x; } while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。 A.i=100; while(1) { i=i%100+1; if(i==20)break; } B.for(i=1;;i++) sum=sum+1; C.k=0; do { ++k; }while(k<=0); D.s=3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } A.while(a) B.while(c) {if(!b)c;} {if(!b)break;c;} C.while(c) D.while(a)

C语言循环结构练习题带答案

第5章循环结构程序设计 基本知识点 while语句的使用格式和注意事项 do-while语句的使用格式和注意事项 for语句的使用格式和注意事项 break和continue语句在循环语句中的应用 循环结构的嵌套 使用goto语句实现循环结构 穷举法程序设计方法 迭代程序设计方法 练习题5 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格

C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误(6)下列语句段中不是死循环的是__C__。 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B. for (i=1;;i++) sum=sum+1; C. k=0; do { ++k; } while (k<=0); D. s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; }(8)以下程序的输出结果是_B___。

c语言循环语句

Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句。 一、循环语句 (一)、for循环它的一般形式为: for(<初始化>;<条件表过式>;<增量>) 语句; 初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。 例如: for(i=1;i<=10;i++) 语句; 上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。注意: (1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。 (2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。 (3).for循环可以有多层嵌套。 例如: for(;;) 语句; for(i=1;;i+=2) 语句; for(j=5;;) 语句; 这些for循环语句都是正确的。 main() { int i,j; printf(i j\n); for(i=0;i<2;i++) for(j=0;j<3;j++) printf(%d %d\n,i,j); }

输出结果为: i j 0 0 0 1 0 2 1 0 1 1 1 2 用for循环求1+2+……+100的和: main() { int sn=0,i; for(i=1;i<=100;i++) sn+=i; /*1+2+……+100*/ printf(%d\n,sn); } 从程序可以看出,使用循环语句可以大大简化代码。 (二)、while循环它的一般形式为: while(条件) 语句; while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。 例如: #include stdio.h main() { char c; c='\0'; /*初始化c*/ while(c!='\n') /*回车结束循环*/ c=getche(); /*带回显的从键盘接收字符*/ } 上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

(完整版)C语言循环习题答案

循环习题集锦 一.选择题 1.for(i=0;i<10;i++);结束后,i 的值是;(10) A 9 B 10 C 11 D 12 2.下面程序的循环次数是:(D) int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; } A. 5 B 6 C 4 D 死循环,不能确定循环次数 3.下面程序的输出结果是(10) main() { int s,k; for(s=1,k=2;k<5;k++) s+=k; printf(“%d\n”,s); } A 1 B 9 C 10 D 15

4.要使下面程序输出10 个整数,则在下画线处填入正确的数是:(c) for(i=0;i<= ;) printf(“%d\n”,i+=2); A 9 B 10 C 18 D 20 5.运行下面程序:(B) main() { int i=10,j=0; do { j=j+i; i--; }while(i>5); printf(“%d\n”,j); } 输出结果是: A 45 B 40 C 34 D 55 6.运行下面程序 #include “stdio.h” main() { int k=0,a=1; while(k<10) {

for( ; ;) { if((k%10)==0) break; else k--; } k+=11; a+=k; } printf(“%d %d\n”,k,a); } 则输出的结果是(C) A 21 32 B 21 33 C 11 12 D 10 11 7.以下叙述正确的是:(D) A.do---while 语句构成的循环不能用其他语句构成的循环来代替。 B.do---while 语句构成的循环只能用break 语句退出。 C.用do---while 语句构成的循环,在while 后的表达式为非零时结束循环。 D.用do---while 语句构成的循环,在while 后的表达式为零时结束循环。 8.有如下程序: main()

C语言循环控制练习题

循环控制练习题 1.设有程序段int k=10; while (k=0) k=k-1; 则下面描述中正确的是() A while循环执行10次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句执行一次 2.设有以下程序段int x=0,s=0; while(!x!=0)s+=++x;printf("%d",s) ;则() A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无限次 3、语句while(!E);中的表达式!E特等价于() A、E==0B、E!=1C、E!=0D、E==1 4、下面程序段的执行结果是() a=1;b=2;c=2; while(a

while(x<15) y++,x+=++y; printf("%d,%d",y,x); A、20,7 B、6,12 C、20,8 D 8,20 6、下面程序段的运行结果是() int n=0; while (n++<=2); printf("%d",n); A,2 B、3 C、4 D 有语法错误 7、设有程序段 t=0; while(printf("*")) {t++; if(t<3) break;}下面描述正确的是() A、其中循环控制表达式与0等价 B、其中循环控制表达式与’0‘等价 C 、其中循环表达式是不合法的 D、以上说法都不对 8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等的数时结束循环,请选择填空。 main()

相关文档
最新文档