第3章循环结构程序设计试题

合集下载

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

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

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

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

【练习 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,不符合题目要求。

Java程序设计教程第3章3.3 循环结构(一)

Java程序设计教程第3章3.3 循环结构(一)

循环条件
System.out.println("上午阅读教材!"); System.out.println("下午上机编程!\n"); System.out.print("合格了吗?(y/n):"); answer = input.next(); } System.out.println("完成学习任务!");
System.out.println(“第4遍写:好好学习,天S天y向ste上m!.o"u);t.println("第" +i+ "遍写: 好好学习,天天向上!");
……
i ++;
System.out.println(“第9999遍写:好好学} 习,天天向上!");
System.out.println(“第10000遍写:好好学习,天天向上!");
while (循环条件){ 循环操作
}
while循环先判断,再执行 不适合描述此故事
do { 循环操作
}while ( 循环条件 );
25/38
语法
先执行一遍循环操作
什么是do-while循环
do {
循环操作

} while ( 循环条件 );
分号不可少
符合条件,循环继续执行;否则,循环退出
循环操作
决定写一万遍“好好学习,天天向上!” ,怎么办?
3/38
为什么需要循环2-2
没有使用循环结构 使用while循环
System.out.println("第1遍写:好好学习i,nt天i 天= 1向; 上!");

FORTRAN95第三章 循环程序设计

FORTRAN95第三章 循环程序设计

、continune或其他允许的可执行语句。
下面通过一个简单的例子说明计数型DO循环的应用形式:
2021/10/11
3
do i=1,5,1 write (*,*) ”happy Birthday”, i
enddo 这段程序代码中的do循环中没有使用语句标 号,循环体中只含一个write语句, 终端语句为 enddo,循环控制变量的初值为1, 终值为5,增 量为1,可以省略。 该段程序执行时,循环体将重复执行5次,即 输出5遍“happy Birthday”和i的值。
N max[INT ( m2 m1 1), 0] m3
显然,当m1>m2且m3>0时,或当m1<m2且m3<0时,都有循环次数N=0 (4)判断循环次数,若N>0,执行循环体中各语句;若N≤0,则退出
循环,去执行终端语句的下一条语句; (5)当每次执行循环体到终端语句后,循环控制变量i自动加上增值m3
时的y值,以及y的最大值和最小值。
program ex303
ymax=y
implicit none
elseif (y<ymin) then
real x, y, ymax, ymin
ymin=y
ymax=100.0
endif
ymin=100.0
print*, x, y
do x=0.0, 2.0, 0.1
行n次,每次执行到达enddo语句后,i的值会自动减1,即i的值
加上增值-1。此处的do语句也可以写成do i=1,n的形式,增值
为1被省略。对于设计增值为负值的循环,控制变量的初值一
定要2大021/于10/1终1 值,否则是不能进行循环的。
7

大学vb 第3章 循环结构

大学vb  第3章 循环结构

演示
课堂练习
1.执行下面的程序段后,s的值为【 20 】。 s=5 For i=2 To 9 Step 3 s=s+i Next i 2.编写如下事件过程: For j=10 To 6 Step -1 k=j Next j Print k ; j 程序运行后,单击窗体,其输出结果为【 C 】 。 A)5 5 B)5 6 C)6 5 D)6 6
s=0 for i=1 to 100 step 1 s=s+i Next i
i=1 : s=0 Do s=s+i i=i+1 Loop While i<=100
Do Until <条件表达式> 循环体 Loop
先判断后执行 Yes 条件表达式 成立? No 循环体
Do 循环体 Loop Until <条件表达式>
条件 T 循环体
F
Байду номын сангаас
演示
例:计算1+2+…+10,并输出。
Dim s%
s=1+2+3+4+5+6+7+8+9+10
Print "其和是" ;s
循环结构的设计: 1、循环三要素(循环变量): (1)初值 (2)更新 (3)条件 2、循环体:重复的操作
i=1 : s=0 While i<=10 s=s+i i=i+1 wend
下次课内容:
第4章 常用控件的使用
作业:
实验作业:实验作业8
先执行后判断 循环体 Yes
条件表达式 成立? No
特点:条件表达式不成立执行循环体
求∑n(n为1-100),并将结果打印出来。 i=1 : s=0 Do While i<=100 s=s+i i=i+1 Loop i=1 : s=0 Do Until i>100 s=s+i i=i+1 Loop i=1 : s=0 Do s=s+i i=i+1 Loop While i<=100 i=1 : s=0 Do s=s+i i=i+1 Loop Until i>100

C语言试题及答案

C语言试题及答案

第1章C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。

A. 回车符B. 冒号C. 逗号D. 分号(2) 在 C 语言中,每个语句必须以 D 结束。

A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。

A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。

A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。

A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 37 个关键字和 9 种控制语句。

(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。

(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。

(5) C 语言的程序中有特殊含义的英语单词称为保留字。

(6) C 语言标识符的长度是前 8 位有效。

(7) C 语言中,标识符的定义规则是以字母或下划线为开头。

Python程序设计试试题题库

Python程序设计试试题题库

《Python程序设计》题库一、填空题第一章基础知识1、Python安装扩展库常用的是_______工具。

(pip)2、Python标准库math中用来计算平方根的函数是__________。

(sqrt)3、Python程序文件扩展名主要有__________和________两种,其中后者常用于GUI程序。

(py、pyw)4、Python源代码程序编译后的文件扩展名为_________。

(pyc)5、使用pip工具升级科学计算扩展库numpy的完整命令是_________________。

(pipinstall --upgrade numpy)(pip list)6、使用pip工具查看当前已安装的Python扩展库的完整命令是_____________。

7、在IDLE交互模式中浏览上一条语句的快捷键是__________。

(Alt+P)8、在Python中__________表示空类型。

(None)9、列表、元组、字符串是Python的_________(有序无序)序列。

(有序)10、查看变量类型的Python内置函数是________________。

(type())11、查看变量内存地址的Python内置函数是_________________。

(id())12、以3为实部4为虚部,Python复数的表达形式为___________或________。

(3+4j、3+4J)13、Python运算符中用来计算整商的是_________。

(ount(4) 的值为_______________。

(0)14、Python标准库random中的___________方法作用是从序列中随机选择1个元素。

(choice())15、Python标准库random中的sample(seq, k)方法作用是从序列中选择________(重复不重复)的k个元素。

(不重复)16、random模块中_____________方法的作用是将列表中的元素随机乱序。

大学《Python程序设计》试题及答案

大学《Python程序设计》试题及答案

大学《Python程序设计》试题及答案大学《Python程序设计》试题及答案一、选择题1、在Python中,以下哪个选项可以正确表示小于等于操作符? A) <=B) <* C) .≤ D) 以上都不是答案:A) <=2、下列哪个模块可用于绘制图形? A) math B) plot C) canvas D) none of the above 答案:C) canvas3、在Python中,如何将字符串转换为整数? A) str() B) int() C) float() D) 以上都不是答案:B) int()4、若要打印出所有的素数,以下哪个循环结构可以实现? A) whileB) for C) do-while D) switch-case 答案:B) for5、以下哪个选项可以用于导入模块? A) import math as m B) include math as m C) #include <math.h> D) #import <math.h> 答案:A) import math as m二、填空题1、Python中的注释符号是_____。

答案:#2、在Python中,所有变量都必须具有_____。

答案:类型(types)3、Python中的逻辑运算符用于执行_____运算。

答案:逻辑(logical)4、以下哪个函数可以用于将字符串转换为浮点数? A) str() B) int() C) float() D) none of the above 答案:C) float()5、以下哪个循环结构可以用于打印出所有的偶数? A) for i in range(0, 10): print(i2) B) for i in range(0, 10): if i % 2 == 0: print(i2) C) for i in range(0, 10): if i % 2 != 0: print(i2) D) none of the above 答案:B) for i in range(0, 10): if i % 2 == 0: print(i2)三、编程题编写一个Python程序,打印出所有的水仙花数(Narcissistic Number)。

第3章 选择&循环结构程序设计

第3章 选择&循环结构程序设计

switch语句的语义
switch语句的语义如下:
计算整型表达式; 将整型表达式的值顺序地与各个case后的整常量 相比较,若与某个整常量相等,则从对应的case 之后的语句组开始往下执行,若与所有整常量均 不等,在有default的情况下,只执行语句组n。
以上语义中隐含着:
每个分支中可以有多个语句,而且不必复合。 一旦找到匹配 (或defaulte),就会一直往下执行 而非执行单个分支。若想在执行单个分支后退出, 则必须让每个语句组的最后一条语句是 break;。
与人类擅长解析和符号运算等特点不同, 计算机必须从具体数据出发,按照人为其 设计好的程序机械地进行运算。另一方面, 由于计算机的运算速度很快,因此最擅长 完成那些计算工作量很大的重复性运算。 这种重复是指运算步骤,数据则在重复中 不断地改变,每当执行这组步骤时,程序 都从变量的原值推出它的一个新值,这一 过程称为“迭代” ,是计算机得以发展的 关键因素。循环则是实现迭代的必要条件。
3.3.2 while语句
while语句的语法 while语句的语义 while语句程序实例
while语句的语法
while语句的语法是:
while (表达式) 语句
其中:
“while (表达式)”为循环控制,其中“表达式” 可以为任意类型,但其值将当作逻辑值使用。 “语句 ”为循环体,它可以是一个语句、一个由 花括弧括起来的复合语句或另一个控制结构。
如果表达式的初值为false,则一次循环也不执行 表达式的值必须在循环体中改变,否则为死循环
while语句程序实例
// 从键盘输入一组整数(以0作为输入结束的标志),打印其最大值 #include <stdio.h> int main() { int x, max; printf("输入一个整数:"); scanf("%d", &x); max = x; while (x != 0) { printf("输入一个整数:"); scanf("%d", &x); if (x > max) max = x; } printf("最大值 max = %d\n", max); return 0;

FORTRAN95第三章循环程序设计

FORTRAN95第三章循环程序设计

FORTRAN95第三章循环程序设计第三章的内容包括:1.DO循环:DO循环是FORTRAN中最基本的循环结构。

它允许我们指定循环变量的初始值、结束值和步长。

在每次循环迭代时,循环变量都会自动更新,并且在达到结束值时退出循环。

2.嵌套循环:FORTRAN也支持嵌套循环,这是在一个循环内部使用另一个循环。

嵌套循环使得我们能够处理更加复杂和具有分层结构的问题。

3.WHILE循环:FORTRAN还提供了类似于其他编程语言中的WHILE循环。

WHILE循环允许我们在循环前先检查一个条件,并且只要条件为真,就会继续执行循环体。

4.无限循环:有时候需要创建一个无限循环,即一个永远不会结束的循环。

在FORTRAN中,我们可以使用无条件的循环退出语句来跳出循环。

5.循环控制:在循环内部,我们可以使用控制语句来控制循环的执行方式。

这些控制语句包括CONTINUE、EXIT、CYCLE和END。

6.循环的应用:循环结构在许多数学和科学计算问题中都有广泛应用,如求和、求平均值、计算阶乘、寻找最大和最小值等。

循环程序设计是编程中非常重要的一部分,因为它可以帮助我们处理大数据集和执行复杂算法。

FORTRAN95提供了一系列强大的循环结构,使得我们能够更加灵活和高效地处理各种问题。

在循环程序设计中,重点应该放在优化循环的执行。

通过合理地选择循环变量的初始值、结束值和步长,以及使用合适的循环控制语句,可以使循环更加高效。

此外,避免在循环体内进行过多的计算和IO操作,可以减少循环的执行时间。

总之,循环程序设计是编程中一个基本但重要的概念。

FORTRAN95提供了丰富的循环结构和控制语句,使得我们能够更加高效地处理各种问题。

在实际应用中,我们应该根据具体问题的要求,合理选择和优化循环结构,以求得更好的性能和效果。

C语言各章节单元测试题及答案——循环结构程序设计

C语言各章节单元测试题及答案——循环结构程序设计

第3章循环结构程序设计3.1 典型考试题剖析3.1.1 选择题【例1】若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c 均已赋值(c大于0)s=a;for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是_______。

A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;✧考点:本例考查for循环。

✧分析:初始赋值时s=a,那么s的值一定与a有关,C、D答案中不含a所以排除掉。

只用清楚for循环的次数,不管b以前的值为多少,第一次循环时b=1,当b>c时循环结束,那么显然s要加c次1。

所以s的值为a与c的和。

✧答案:B【例2】设x和y均为int型变量,则执行下面的循环后,y值为。

for(y=1,x=1;y<=50;y++){if(x>=10) break;if(x%2==1){x+=5;continue;}x-=3;}A) 2 B) 4 C) 6 D) 8✧考点:本例考查for循环中break和continue的用法,以及区别。

✧分析:break用在循环中,只能退出一层循环。

尤其是在嵌套循环中,只能退出它所在的那一层循环。

不能期望用break从最内层循环一下子退出最外层循环(可以用goto实现)。

continue语句只能用在循环中,它的作用是跳过其后面的语句,直接将控制转移到下一轮循环条件的测试。

语句“if(x>=10) break;”中的break只有当x>=10时,才会执行,并且跳出for循环;语句“x+=5;continue;”是每次执行完一次跳过其后面的语句,直接将控制转移到下一轮循环条件的测试for(y=1,x=1;y<=50;y++)中。

✧答案:C【例3】以下程序中,while循环的循环次数是_______。

main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}A) 1 B) 10 C) 6 D) 死循环,不能确定次数✧考点:本例考查while循环的用法,以及continue和break的分别。

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

《C语言程序设计》课程教案表算法2:分析:设想用sum作为累加器,初值为0,利用sum+=i(i依次取值为1、2。

100)此分析需要解决的3个问题:1)sum=0,i=1;2)每执行一次sum+=i 后,i增1(i=i+1);3)判断如果i小于或等于100,重新执行步骤(2),否则停止计算main(){int i,s=0;i=1;while(i<=100)/*i<=100为循环条件*/{s=s+i;i++; /*改变i的值*/}printf(″s=%d″,s);}运行结果:s=5050说明:循环结构的三个术语:1、循环条件:循环结构中的条件表达式如while (i<=100)其中,i<100就是循环条件。

2、循环体:在每个循环周期均要执行一次的语句序列。

如while下用{ }括起来的语句序列。

3、循环控制变量:能够决定控制条件是真是假的量。

如while(i<=100)中的变量i要写出一个正确的循环结构,对控制变量要做三方面的工作:1、对循环控制变量赋初值。

2、将循环控制变量写入正确的控制条件。

3、对循环控制变量值的更新。

使用while语句需要注意以下几点:while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。

因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。

当循环体为多个语句组成,必须用{}括起来,形成复合语句。

在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,gotowhile(s<=10){s=s+i*i;i++;}printf(“%d”,--i);}A) 4 B) 3 C) 5 D) 6对以下程序段,描述正确的是________________。

int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);A) 运行程序段后输出0 B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次下面程序段的运行结果是[ ]。

C语言程序设计习题集第4章 循环结构(答案)

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。

main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。

main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。

C语言题库(2020版)第3章 算法和控制结构(设计无答案)?√

C语言题库(2020版)第3章 算法和控制结构(设计无答案)?√
29,假定所有变量均已正确定义,下面语句段执行后的x的值是 ( B ) a = b = c = 0; x = 35;
if(!a) x--; else if(b) x++ ; if(c) x = 3; else x = 4;
30.若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给 变量b的输入数据是( C )
11.C语言中 while 和 do-while 循环的主要区别是( B )。 12.若有定义语句int a,b;double x;则下列选项中没有错误是( B )
13.设j和k都是int类型,则下面的for循环语句( C )。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A.最多执行9次 B.循环体一次也不执行 C.最多执行10次 D.是无限循环
21.执行下列程序片段时输出的结果是( C )。 int x=13,y=5; printf("%d",x%=(y/=2));
22.设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( C )
23.运行以下程序后,输出的结果是 ( A ) main() { int k = -3; if(k <= 0) printf("****\n"); else printf("&&&&\n"); }
} printf(“\n”); }
10.有以下程序,程序运行后的输出结果是( D ) #include<stdio.h> int main() {

c语言循环结构程序设计模拟题

c语言循环结构程序设计模拟题

第五章循环结构程序设计一、选择题1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为的操作,否则,循环将会无限制地进行下去。

(0级)A)0 B)1 C)成立D)22.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的不能丢,它表示do-while语句的结束。

(0级)A)0 B)1 C);D),3.for语句中的表达式可以部分或全部省略,但两个不可省略。

但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。

(0级)A)0 B)1 C);D),4.程序段如下int k=-20;while(k=0) k=k+1;则以下说法中正确的是。

(1级)A)while循环执行20次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次5.程序段如下int k=1;while(!k==0) {k=k+1;printf("%d\n",k);}说法正确的是。

(1级)A)while循环执行2次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次6.以下for循环是。

(1级)for(a=0,b=0;(b!=123)&&(a<=4);a++)A)无限循环B)循环次数不定C)执行4次D)执行5次7.在下列程序中,while循环的循环次数是。

(1级)main( ){ int i=0;while(i<10){if(i<1) continue;if(i= =5) break;i++;}......}A)1 B)10 C)6 D)死循环、不能确定次数8.程序段如下int k=0; while(k++<=2) printf("%d\n",k);则执行结果是。

(1级)A)1 B)2 C)0 D)无结果2 3 13 4 29.程序段如下int k=0;while(k++<=2); printf("last=%d\n",k);则执行结果是last= 。

计算机程序设计基础_精讲多练CC++_第3章

计算机程序设计基础_精讲多练CC++_第3章

// 累加求和
22
例 3-7:制作乘法表---多重循环结构(循环的嵌套)
#include <iostream> using namespace std; int main() { int i, j; for(i=1; i<10; i++) { for(j=1; j<=i; j++) cout << j <<"*"<< i <<"="<<i*j <<"\t"; cout << endl; } return 0; }

算法分析:

取一个百分成绩经过运算得到5级制成绩。构造什么 样的表达式呢?
“百分成绩/10 =” ?


共有5个分数档,选择分支大于2,因此用多路开关语 句switch。 计算结果应该是唯一的。转换后应从switch中break 出来。
15
#include <iostream> using namespace std; int main() { int grade; cout<<"请输入(百分制)分数:"; cin >>grade; switch (grade/10) // 根据转换值进行分支选择 { case 10: case 9: cout<<"优秀"<<endl; break; case 8: cout<<"良好"<<endl; break; case 7: cout<<"中等"<<endl; break; case 6: cout<<"及格"<<endl; break; default: cout<<"不及格"<<endl; } return 0; }

第3章_基本程序设计-1(周)

第3章_基本程序设计-1(周)

18
25 27
if (t < 18) printf("t=%f\tLower weight!\n", t); else if (t < 25) printf("t=%f\tStandard weight!\n", t); else if (t < 27) printf("t=%f\tHigher weight!\n", t); else printf("t=%f\tToo fat!\n", t); }
23
(4)for 语句的循环体还可为另一个循环语句
例如: for(i=1;i<=2;i++) for(j=1;j<=2;j++) { printf(“%3d”,i+j); printf(“\n”); } output: 2 3 3 4
24
do-while语句
do{
语句; } while(表达式); 功能:先执行循环体,然后计算表达式值, 其值若为真(非0)则继续执行循环体,直 到表达式为假时为止。
循环嵌套结构规划
外循环 入口
内循环
内循环出口

交叉循环
外循环出口
内循环出口
外循环
循环嵌套
1 2 3 4 5 6 7 8 9 -------------------------------------1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81
scanf("%d",&i);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章 循环结构程序设计3.1 典型试题剖析3.1.1 选择题【例1】若有如下程序段,其中s 、a 、b 、c 均已定义为整型变量,且a 、c 均已赋值(c 大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是_______。

A )s=a+b;B )s=a+c;C )s=s+c;D )s=b+c;✧ 考点:本例考查for 循环。

分析:初始赋值时s=a ,那么s 的值一定与a 有关,C 、D 答案中不含a 所以排除掉。

只用清楚for 循环的次数,不管b 以前的值为多少,第一次循环时b=1,当b>c 时循环结束,那么显然s 要加c 次1。

所以s 的值为a 与c 的和。

【例2】设x 和y 均为int 型变量,则执行下面的循环后,y 值为 。

for(y=1,x=1;y<=50;y++){ if(x>=10) break;if(x%2==1) { x+=5;continue; }x-=3; }✧ 考点:本例考查for 循环中break 和continue 的用法,以及区别。

✧ 分析:break 用在循环中,只能退出一层循环。

尤其是在嵌套循环中,只能退出它所在的那一层循环。

不能期望用break 从最内层循环一下子退出最外层循环(可以用goto 实现)。

continue 语句只能用在循环中,它的作用是跳过其后面的语句,直接将控制转移到下一轮循环条件的测试。

语句“if(x>=10) break;”中的break 只有当x>=10时,才会执行,并且跳出for 循环;语句“x+=5;continue;”是每次执行完一次跳过其后面的语句,直接将控制转移到下一轮循环条件的测试for(y=1,x=1;y<=50;y++)中。

【例3】以下程序中,while 循环的循环次数是_______。

main(){ i nt i=0;while(i<10){ if(i<1) continue;if(i==5) break; i++; } ...... }✧ 考点:本例考查while 循环的用法,以及continue 和break 的分别。

✧ 分析:本题要求的是循环次数,首先要检查while 中的判断条件,i<10是有限循环,然后再观察while 内部,if(i<1) continue;第一次循环i=0,满足if 条件,执行continue 直接跳出循环,不再执行循环内部的其它语句,再次执行while(i<10),而此时i 的值仍为0,无疑仍然重复以上步骤,那么i 的值没有变化,循环继续,本题是死循环。

【例4】假定a 和b 为int 型变量,则执行以下语句后b 的值为 。

a=1;b=10;do{b-=a;a++;}while(b--<0);✧ 考点:本例考查do-while 循环的用法。

分析:第一次循环a=1,b 减去a 后b=9。

然后执行“while(b--<0);”,为假跳出循环。

所以本程序的循环仅执行1次,9-1=8。

【例5】设j 为int 型变量,则下面for(j=10;j>3;j--){ if(j%3) j--;--j; --j;printf("%d ",j);}A) 6 3 B) 7 4 C) 6 2 D) 7 3【例6】在下列选项中,没有构成死循环的程序段是 。

A) int i=100 B) for(;;);int i=100;while(1){i=i%100+1;if(i>100) break; }C) int k=1000; D) int s=36;do{++k; while(s);--s;} while(k>=1000);✧ 考点:本例考查死循环。

分析:A)要退出循环必须满足i>100,但是执行语句“i=i%100+1;”后,i 不可能超过100;B)没有循环条件,显然为死循环;C)经过“k++”后,k 的值一定是大于1000的,所以也为死循环;D)中的循环控制为s ,s 每循环一次则递减,s<0时,退出循环,所以D 不是死循环。

答案:D【例7】运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为 。

#include<stdio.h>main(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a':case 'h': case 'o': v2++; default: v1++; }printf("%d,%d\n",v1,v2); }✧ 考点:本例考查switch 的用法。

分析:本题的程序是为了检查输入字符中a 、h 、o 的个数。

【例8】以下程序的输出结果是 。

main(){ int a=0,i;for(i=1;i<5;i++){ switch(i){ case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5; } }printf("%d\n",a); }✧ 考点:本例考查for 循环中switch 的用法。

✧ 分析:可以看出此题和上一例题类型一样,只不过上一例题考的是while 和switch ,而此题考查的是for 和switch 。

大家在分析历年考题时会发现很多题型多次重复出现,所以我们在复习的过程中对以前试题要详加分析。

分析本题得到,for 一共循环4次,每次循环内部再执行switch ,但是有一个问题,本题的case 没有break 语句结束,所以要从case i 一直执行到default ,这一点一定要注意!不难发现,i=1时,a=a+3+5=8;i=2时,a=a+3+5=16;i=3时,a=a+2+3+5=16+10=26;i=4时,a=a+5=31。

【例9】以下程序的输出结果是 。

main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<3;j++){ if(j%2) continue;x++; } }printf("x=%d\n",x); }A)x=4 B)x=8 C)x=6 D)x=12【例10】运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为 。

main(){ int m,n;printf("Enter m,n:");scanf("%d,%d",&m,&n);while(m!=n){ while(m>n) m-=n;while(n>m) n-=m; }printf("m=%d\n",m); } ✧ 考点:本例考查while 嵌套。

分析:本题主要是为了比较m 和n 的大小,用了两层while 循环,直到m=n 了才退出循环(注意循环结束的条件)。

开始循环m=65 n=14,65>14,所以执行”while(m>n)m -=n;”,m=m-n=65-14=51,又51>14,接着m=m-n=51-14=37,直到m<n ,m=9,n=14,继续执行”while(n>m)n -=m;”,n=n-m=14-9=5,再执行”while(m>n)m -=n;”,m=m-n=9-5=4。

4<5,再执行”while(n>m)n -=m;”,n=n-m=5-4=1,接下来m>n ,再继续m=m-n ,一直到m=1,此时m=n=1不再循环。

本题还可以这样看,当m>n 时,循环执行m-n ,所以65除以14,商4余9,9是最终执行m-n 的结果m=9;再来当n>m 时,循环执行n-m ,所以14除以9,商1余5,此时n=5,m=9,接着m>n ,再执行m-n ,同样9除以5,商1余4,m=4,n=5,再来用5除以4,余1,此时n=1,最后不难得到m=1,m=n=1,不再循环。

本题可以看作是求m 和n 的公因数。

【例11】有以下程序main(){ int i=0,s=0;do {if (i%2) { i++; continue; }i++;s += i;} while(i<7);printf("%d\n", s); }执行后输出结果是 。

A )16B )12C )28D )213.1.2填空题【例1】以下程序运行后的输出结果是 。

main(){int i,m=0,n=0,k=0;for(i=9; i<=11;i++)switch(i/10){ case 0: m++;n++;break;case 10: n++; break;default: k++;n++;}printf("%d %d %d\n",m,n,k); }【例2】以下程序的功能是调用函数fun 计算:m=1-2+3-4+…+9-10,并输出结果。

请填空。

int fun( int n){ int m=0,f=1,i;for(i=1; i<=n; i++){ m+=i*f;f= 【1】 ; }return m; }main(){ printf("m=%d\n", 【2】 ); }【例3】下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。

main(){int a,b,c,i;a=c=0;for(i=0;i<10;i+=2){ a+=i;;c+=b; }printf("偶数之和=%d\n",a); printf("奇数之和}【例4】下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include <stdio.h>main(){ int i, j;for(i=0; 【1】 ; i++){ j=i*10+6;if( 【2】 ) continue; printf("%d",j);} }【例5】以下程序运行后的输出结果是_ 。

main() { int x=15;while(x>10 && x<50) { x++;if(x/3){x++;break;}else continue; }printf(“%d \n”,x); }。

相关文档
最新文档