循环语句 (5)

循环语句 (5)
循环语句 (5)

第7课时循环语句

知识点一循环语句的概念

1.在循环语句中,下列说法正确的是()

A.UNTIL型循环可以无限循环

B.WHILE型循环可以无限循环

C.循环语句中必须有判断

D.WHILE型循环不能实现UNTIL型循环的功能

★答案★C

解析UNTIL型循环和WHILE型循环实现的功能是一样的,只是看不同条件下哪种方便而已.

2.下列关于循环语句的说法不正确的是()

A.算法中的循环结构由WHILE语句来实现

B.循环语句中有直到型语句和当型语句,即UNTIL语句和WHILE语句C.一般来说UNTIL语句和WHILE语句可以互相转换

D.算法中的循环结构由循环语句来实现

★答案★A

解析算法中的循环结构既可由WHILE语句来实现,也可以由UNTIL语

句来实现,所以A的说法是不正确的.

知识点二UNTIL语句的应用

3.下列程序中循环体运行次数是()

i=40

DO

PRINT i

i=i+10

LOOP UNTIL i>90

END

A.4 B.5 C.6 D.60

★答案★C

解析循环体第1次运行后,i=50,第2次运行后,i=60,第3次运行后,i=70,第4次运行后,i=80,第5次运行后,i=90,第6次运行后,i=100>90条件满足,循环终止,则共运行了6次.

4.根据程序框图,把程序中所缺少的语句补充完整.

程序框图:

程序:

★答案★ ①S =S +i ^2 ②i =i +1 ③i >100

解析 由程序框图可知利用了直到型循环结构,对应的语句为直到型循环语句,DO 后面执行的为循环体,故①②处应分别为“S =S +i ^2”和“i =i +1”,直到满足条件时为止,所以③处应为“i >100”.

知识点三WHILE 语句的应用

5.运行下面的程序后输出的s 的值是( )

A .11

B .15

C .17

D .19 ★答案★ B

解析 循环过程依次为:i =3,s =7;i

=5,s =11;i =7,s =15,此时不满足条件.故输出s =15.

6.读程序,回答下列问题:

INPUT n i =1S =0

WHILE i <=n

S =S +1/(i *(i +1)) i =i +1WEND PRINT S END

(1)若输入n =3,则输出的结果为________;

(2)此程序对应的计算式子是_________________________________; (3)程序中的循环语句对应________型循环结构. ★答案★ (1)34 (2)12+16+…+1

n (n +1)

(3)当

解析 (1)输入n =3,第一次循环,S =0+12=12,i =2;第二次循环,S =1

2+16=23,i =3;第三次循环,S =23+112=34,i =4,此时不满足条件,结束循环.故输出S =34.

(2)此程序的功能是计算12+1

6+…+

1

n (n +1)

的值.

(3)这是WHILE 语句,对应的是当型循环结构.

易错点混淆WHILE 语句与UNTIL 语句

7.编写程序计算2+4+6+…+100的值.

易错分析 由于对“直到型循环”与“当型循环”两种结构形式掌握不清而致误.

正解 解法一:程序如下:

sum=0

WHILE i<=100

sum=sum+i

i=i+2

WEND

PRINT sum

END

解法二:程序如下:

i=2

sum=0

DO

sum=sum+i

i=i+2

LOOPUNTIL i>100

PRINT sum

END

一、选择题

1.运行下面的循环语句,当循环终止时,i等于()

DO

i=i+1

LOOP UNTIL i>4

END

A.3 B.4 C.5 D.6

★答案★C

解析由“LOOPUNTIL i>4”,知当i=5时,循环终止.

2.执行下列程序后输出的结果是()

i=1

s=0

WHILE i<=4

s=s+i

i=i+1

WEND

PRINT s

END

A.3 B.6 C.15 D.10

★答案★D

解析运行程序,依次为s=1,i=2;s=3,i=3;s=6,i=4;s=10,i =5,此时跳出循环,输出s=10.

3.执行下面的程序后,输出的i的值是()

i=1

WHILE i<=10

i=i+5

WEND

PRINTi

END

A.5 B.6 C.10 D.11

★答案★D

解析程序执行如下:i=1,i=6,i=11,此时跳出循环并输出i=11.4.运行下面程序的结果为()

S=0

WHILE S<=20

S=S+i

i=i+1

WEND

PRINT i

END

A.7 B.8 C.5 D.6

★答案★A

解析第一次循环,S=0+1=1,i=1+1=2;第二次循环,S=1+2=3,i=2+1=3;第三次循环,S=3+3=6,i=3+1=4;第四次循环,S=6+4=10,i=4+1=5;第五次循环,S=10+5=15,i=5+1=6;第六次循环,S=15+6=21>20,i=6+1=7.故输出i的值为7.

5.执行下面的程序,输入a=3,b=-1,n=4后,输出的结果是()

INPUT“a,b,n=”;a,b,n

i=1

WHILE i<=n

c=a+b

a=b

b=c

i=i+1

WEND

PRINT c

END

A.3 B.4 C.5 D.6

★答案★B

解析循环体被执行了四次,第一次执行循环体得到的结果是c=2,a=-1,b=2,i=2;第二次执行循环体得到的结果是c=1,a=2,b=1,i=3;第三次执行循环体得到的结果是c=3,a=1,b=3,i=4;第四次执行循环体得到的结果是c=4,a=3,b=4,i=5,此时输出c=4.

二、填空题

6.已知有如下两段程序:程序1运行的结果为________,程序2运行的结果为________.

★答案★ 0 21

解析 程序1是计数变量i =21开始,不满足i ≤20,终止循环,累加变量sum =0,这个程序计算的结果为0;程序2计数变量i =21,开始进入循环,sum =0+21=21,i =i +1=21+1=22,i >20,循环终止,此时,累加变量sum =21,这个程序运行的结果为21.

7.要使下面程序能运算出“1+2+…+100”的结果,需将语句“i =i +1”加在________处.

S =0

i =1①

WHILE i <=100 ②

S =S +i

③WEND ④

PRINT S END

★答案★ ③

解析

这是当型循环语句,当满足i ≤100时,执行S =S +i ,同时对应的计数变量要有i =i +1出现.故填③.

8.执行下面算法语句,输出的结果是________.

B=1

DO

A=A+B

B=A+B

LOOPUNTILB>15

C=A+B

PRINTC

END

★答案★34

解析循环结构中的循环体的作用是将前两个数相加,得到后一个数.如果没有循环条件的限制,程序中的循环结构将连同初始值,依次给A、B赋值为1、1,2、3,5、8,13、21,…,其中第一、三、五……个数为A的值,第二、四、六……个数为B的值.可见,当B=21时,循环结束,此时A=13,所以C=A +B=34.

三、解答题

9.下面程序的功能是输出1~100间的所有偶数.

程序:

(1)试将上面的程序补充完整;

(2)改写为WHILE型循环语句的程序.

解(1)①m=0,②i=i+1.

(2)改写为WHILE型循环语句的程序如下:

WHILE i<=100

m=iMOD 2

IF m=0THEN

PRINT i

ENDIF

i=i+1

WEND

END

10.设计一个算法,求1×22×33×…×100100的值,并画出程序框图(分别用直到型循环结构和当型循环结构表示).

解算法步骤如下(直到型循环结构):

第一步,S=1.

第二步,i=1.

第三步,S=S×i i.

第四步,i=i+1.

第五步,判断i>100是否成立.若成立,则输出S,结束算法;否则,返回第三步.

该算法的程序框图如图所示:

算法步骤如下(当型循环结构):

第一步,S=1.

第二步,i=1.

第三步,判断i≤100是否成立.若成立,则执行第四步;否则,输出S,结束算法.

第四步,S=S×i i.

第五步,i=i+1.

该算法的程序框图如图所示:

5条件语句和循环语句

第二、三课时 1.2.2-1.2.3条件语句和循环语句 教学目标: 知识与技能 (1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。 (2)会应用条件语句和循环语句编写程序。 过程与方法 经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力 情感态度与价值观 了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。 重点与难点 重点:条件语句和循环语句的步骤、结构及功能。 难点:会编写程序中的条件语句和循环语句。 学法与教学用具 计算机、图形计算器 教学设想

【创设情境】 试求自然数1+2+3+……+99+100的和。 显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题) 【探究新知】 (一)条件语句 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE 格式) 当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句1,否则执行ELSE 后的语句2。其对应的程序框图为:(如上右图)

在某些情况下,也可以只使用IF-THEN 语句:(即IF-THEN 格式) 计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图) 条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。 【例题精析】 〖例1〗:编写程序,输入一元二次方程20ax bx c ++=的系数,输出它的实数根。 分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给 出的算法步骤,逐步把算法用对应的程序语句表达出来。 IF 条件 THEN 语句

第五章循环程序设计(陈)

循环程序设计 一、选择题 1.程序段如下:则以下说法中正确的是:。 int k=5; do{ k--; }while(k<=0); A. 循环执行 5 次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 2.设i 和x 都是int 类型,则for 循环语句。 for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x); A. 最多执行10 次 B. 最多执行9 次 C. 是无限循环 D. 循环体一次也不执行 3.下述for 循环语句。 int i,k; for(i=0,k=-1;k=1;i++,k++) printf("* * * *"); A. 判断循环结束的条件非法 B. 是无限循环 C. 只循环一次 D. 一次也不循环 4.程序段如下:则以下说法中正确的是:。 int k=-20; while(k=0) k=k+1; A. while 循环执行20 次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 5.下列程序段执行后k 值为。 int k=0,i,j; for(i=0;i<5;i++) for(j=0;j<3;j++) k=k+1 ; A. 15 B. 3 C. 5 D. 8 6.程序段如下:则以下说法中不正确的是:。 #include int main() { int k=2; while(k<7) {

if(k%2) {k=k+3; printf( “k=%d\n”,k);continue;} k=k+1; printf( “k=%d\n”,k); } return 0; } A. k=k+3; 执行一次 B. k=k+1; 执行2 次 C. 执行后k 值为7 D. 循环体只执行一次 二、读程序写结果 1.#include int main() { int num=0; while(num<=2) { num++; printf("%d\n",num);} return 0; } 1 2 3 2.#include int main() { int i=0,s=0; do { s+=i*2+1; printf("i=%d,s=%d\n",i,s); i++;} while(s< 10); return 0; } 3.#include int main() { int i,m=1; for(i=5;i>=1;i--) { m=(m+1)*2; printf("m=%d\n",m); } return 0; }

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语句

VB-条件语句-循环语句练习题

VB条件语句和循环语句 测试习题(满分100分) 班级姓名 一、根据程序写运行结果 1.写出下列程序的运行结果。(5分) Private sub command1_click X=VAL(text1.text) IF X<0 THEN Y=ABS(X) ELSE Y= -X END IF PRINT "Y=";Y End sub 运行结果: (1)在text1中输入99 输出 (2)在text1中输入-23 输出 2. 写出下列程序的运行结果。(5分) Private sub command1_click N=1 FOR X=3 TO 10 STEP 3 N=N*2 NEXT X PRINT "N=";N End sub 运行结果: 3.写出下列程序的运行结果。(5分) Private sub command1_click S=0 FOR X=10 TO 1 STEP 4 S=S+X NEXT X PRINT " S=";S End sub(5分) 运行结果: 4.写出下列程序运行结果。 (5分) Private sub command1_click FOR I= 1 TO 5 step 2 PRINT I, NEXT I End sub 运行结果: 5. 写出下列程序的运行结果。(5分) Private sub command1_click X=VAL(text1.text) IF X/2=Int(X/2) THEN S=X+1 ELSE S=X-1 END IF PRINT "S=";S End sub 若在text1中输入以下数字,运行结果: (1)99 (2)98 二、根据题意,完善下列程序。(每空5分) 1.请设计一个程序,将从键盘上任意输入的两个数中最大的那个选出来。 Private sub command1_click A=VAL(text1.text) B=VAL(text2.text) IF A>B THEN MAX=________ ELSE MAX= ENDIF PRINT "MAX=";MAX End sub 2.求和S=1+3+5+7+…+99 Private sub command1_click S=0 FOR I=1 TO 99 STEP S=________ NEXT I PRINT “S=”;S End sub 3.完善下列程序,使其能求出 2+4+6+……+100之和。 Private sub command1_click FOR I =____ TO 100 STEP _____ S= S+I ______ I PRINT S End sub

第五章 循环结构程序设计

第五章循环结构程序设计 循环结构是结构化程序设计的三种基本结构之一,也是最重要、最常用的一种基本结构。其特点是:在给定条件成立时,反复执行某程序段,直到给定条件不成立时为止。给定的条件称为循环条件,反复执行的程序段称为循环体。根据开始或结束循环的条件不同,在C 语言中可以用如下语句实现循环: 1. 用goto语句和if语句构成循环。 2. 用while循环语句。 3. 用do-while循环语句。 4. 用for循环语句。 5.1 语句标号、goto语句及用goto语句构成的循环 1.语句标号 语句标号就是给程序中的某一个语句定义的标识符,标号可以是任意合法的标识符,但在语句标号和它所标识的语句之间必须加一个冒号作为分隔符。C程序中的任何一个可执行语句之前都可以加上语句标号。例如:stop:printf(“END\n”);通常,语句标号只是用作goto 语句的转向目标。如:goto stop;如果程序中没有用goto语句改变程序的执行顺序,也就没有必要出现语句标号。 2.goto语句 goto语句称为无条件转向语句,goto语句的一般形式为: goto 语句标号; goto语句的作用是把程序的执行转移到语句标号所在的位置,但这个语句标号必须与此goto语句在同一个函数之内。goto语句不符合结构化程序设计的原则,因为无条件转向使得程序的结构没有规律、可读性差。对于初学者来说应尽量避免使用goto语句,但如果使用goto语句能够大大地提高程序的执行效率,也可以使用。 3.用goto语句构成的循环结构 goto语句通常与if语句配合构成条件转移语句,用来实现构成循环或跳出循环等功能。 例5.1统计从键盘输入的一行字符的个数。 #include main() { int n= 0; char ch; printf("input a string\n"); loop: ch= getchar();

条件语句、循环语句

1.2.2-1.2.3条件语句和循环语句(第二、三课时) 教学目标: 知识与技能 (1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。 (2)会应用条件语句和循环语句编写程序。 过程与方法 经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力 情感态度与价值观 了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。 重点与难点 重点:条件语句和循环语句的步骤、结构及功能。 难点:会编写程序中的条件语句和循环语句。 学法与教学用具 计算机、图形计算器 教学设想 【创设情境】 试求自然数1+2+3+……+99+100的和。

显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句。 【探究新知】 (一)条件语句 算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF -THEN -ELSE 格式) 当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句1,否则执行ELSE 后的

语句2。其对应的程序框图为:(如上右图) 在某些情况下,也可以只使用IF -THEN 语句:(即 IF -THEN 格式) 计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图) 条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。 【例题精析】 〖例1〗:编写程序,输入一元二次方程20ax bx c ++=的系数,输 IF 条件 THEN 语句 END IF

第五章 循环结构程序设计编程题(参考答案)

第五章循环结构程序设计 1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=1;i<=20;i++) printf("%d ",i); printf("\n"); } 2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=20;i>=1;i--) printf("%d ",i); printf("\n"); } 3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。 #include void main() { char c; for(c='A';c<='A'+25;c++) { putchar(c);

printf(" "); } } 4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。#include void main() { int i,j=0; for(i=100;i<=200;i++) { if(i%21==0) { j++; printf("%12d",i); if(j%4==0) printf("\n"); } } } 5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。 #include void main()

int i,j=0; for(i=1;i<=1000;i++) { if((i%3==2)&&(i%5==3)&&(i%7==2)) { j++; printf("%12d",i); if(j%5==0) printf("\n"); } } } 6.先读入一个正整数n,然后计算并显示前n个偶数的和。例如n为5,则求2+4+6+8+10的值,即sum=30。 #include void main() { int i,n,sum=0; printf("Please enter an integer n:"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=(2*i); printf("sum=%d\n",sum);

6、条件语句和循环语句

6、条件语句和循环语句 学习目标 1.正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。 2.会应用条件语句和循环语句编写程序。 3.培养学生形成严谨的数学思维以及正确处理问题的能力。 学习过程 一、课前准备 复习:回顾三种基本算法语句。 引入:顺序结构的框图可以用输入语句,输出语句,赋值语句来表示,条件结构、循环结构的语句要转化成计算机理解的语言,我们必须学习条件语句、循环语句. 二、新课导学 探究:条件语句和循环语句 (一)条件语句 条件语句的一般格式是: . 当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句1,否则执行ELSE 后的语句2。 在某些情况下,也可以只使用 IF-THEN 语句:(即 ) 计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。 (二)循环语句 满足条件? 语句1 语句2 是 否 IF 条件 THEN 语句1 ELSE 语句2 END IF IF 条件 THEN 语句 END IF

算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有 和 两种语句结构。即WHILE 语句和UNTIL 语句。 (1)WHILE 语句的一般格式是: (2)UNTIL 语句的一般格式是: 思考:你觉得WHILE 型语句与UNTIL 型语句之间有什么区别呢? 三、典型例题 例1 编写程序,输入一元二次方程2 0ax bx c ++=的系数,输出它的实数根。 例2 编写程序,计算自然数1+2+3+……+99+100的和。 WHILE 条件 循环体 WEND 满足条件? 循环体 是 否 DO 循环体 LOOP UNTIL 条件

C语言练习2(选择和循环结构)

C语言(分支和循环结构) 一、选择题 1.以下程序输出结果是( ) main() { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--);} A)7 B)6 C)5 D)4 2以下程序的输出结果为( ) # include main ( ) { int i=0, j=0, a=6; if ((++i>0)&&(++j>0)) a++; printf ("i=%d, j=%d, a=%d\n", i,j,a);} A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=7 3有如下程序 main() { int a=2,b=-1,c=2; if(a

4若i为int型,且有程序如下,则输出结果是( ) i=111; if(i%3==0) printf("####"); printf("****"); A) #### B) **** C) ####**** D) 无输出结果 5若运行时x=12,则运行结果为( ) {int x, y; scanf("%d", &x); y=x>12 ? x+10:x-12; printf("%d\n", y);} A) 0 B) 22 C) 12 D) 10 6以下程序的输出结果是( ) main() { int i=0, j=0, k=6; if ((++i>0)||(++j>0)) k++; printf("%d, %d, %d\n", i, j, k); } A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7 7若变量都已正确说明,则以下程序段输出为( ) int a=1,b=2,c=3; if(a>b) a=b; b=c; c=a; printf("a=%d b=%d c=%d\n",a,b,c);

循环语句习题选

循环语句习题选 1. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几? [ 27 ] 2. 在400--500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少? [ 433 ] 3. 一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几? [ 9366, 1362 ] 4. 编程求一个四位自然数ABCD,它乘以A后变成DCBA. [ 共10个] 5. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和. [ 198 ] 6. 由计算机产生五个互不相同的19到87之间的随机整数(包括19,不包括87),从中找出所有的三个数之和能被3整除的数组,并按如下格式打印出来. 例如: 42 24 34 51 52 42 + 24 + 51 = 117 = 3 * 39 [ 87年北京市小学组初赛] 7. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数. [ 24080 ] 8. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来. [ 1/140 ; 4/35 ; 5/28 ; 7/20 ] 9. 求把2/7化为小数后,小数点后面1001位数字总和是多少? [ 4505 ] 10. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数. [ 14285 ] 11. 有一个六位数,其个位数字是7,现将个位数字移到首位,而其余各位数字不变,均后退一位,得到一个新的六位数,如果新的六位数是原六位数的四倍,求原来的六位数. [179487 ] 12.一个自然数的个位数字是6,如果把这个位数字移到首位,所得到的数是原数的4倍,求这个自然数. [ 153846 ] 13. 某数的末位数字是2,将2移到首位,所得到的新数正好是原数的2倍,求满足条件的最小数. [ 105263157894736842 ] 14. 有一个六位数,第一位是1,如果把它移到个位,新的六位数正好是原数的三倍,求原来的六位数. [ 142857 ] 15. 已知一个正整数的个位数字是7,将7移到该数字的首位,其他数字顺序不变, 则所得到的新数恰好是原数的7倍,编程找出满足上述要求的最小的自然数. [ 1014492753623188405797 ] 16. 一辆以固定速度行驶得汽车,司机从里程表上看到的数字是一个回文数

C语言基础 五、循环

五、循环结构程序设计 本章概述: 以笔试和上机两种形式考核。笔试中,多出现在选择题第20-23题。填空题第8、9题。分值约占12%。上机中,三种题型中均有体现,抽中几率约为37%。考生要熟练掌握。 大纲要求: 1.for循环结构。 2.while和do-while循环结构。 3.continue语句和break语句。 4.循环的嵌套。 重点难点: 1.for循环结构。 2.continue语句和break语句。 3.循环的嵌套。 考点分析: while 语句 while 语句一般形式: while (条件表达式) { 循环体 } while 语句执行过程: 先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。 说明: (1)while语句的特点是先判断,再执行。因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。 (2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。 (3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。 试题解析 1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是(A) A)while((ch=getchar())!=′N′)printf("%c",ch); B)while(ch=getchar()!=′N′)printf("%c",ch); C)while(ch=getchar()==′N′)printf("%c",ch); D)while((ch=getchar())==′N′)printf("%c",ch); 解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。直到表达式的值为假时,结束

简单的C语言选择与循环结构10个编程练习题.

简单的C语言选择与循环结构10个编程练习题 1、以下程序的输出结果是___________________: # include void main(){ int k; for (k=2;k<6;k++,k++) printf(“##%d”,k); } 2、以下程序的输出结果是___________________: # include void main(){ int y=9; for( ; y>4 ; y- -) if (y % 3 == 0) printf(“%d”,- -y); } 3、以下程序的输出结果是___________________: #include main( ) { char c1, c2; for(c1=’0’,c2=’9’;c1

1,(x>0) 6.用if语句编程,从键盘输入一个x,计算y值 y= 0,(x=0)。 -1,(x<0) 7、求sum=52+72+92+……+152 8、求sum=1/5+1/6+1/7+1/8+…+1/15 9、编写程序(提示字符变量ch从’C’到字符’N’),输出CDEFGHIJKLMN 10、打印九九表(提示:用双重循环,关键代码:printf("%d*%d=%-d",i,j,i*j);/*-3d表示左对齐,占3位*/): 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 …… 9*1=9 9*2=18 ………………9*9=81

C语言习题:顺序、选择、循环

顺序结构程序设计 2.3.1 要点导读 () 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include <> void main() 、 { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出 的数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 - 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。

#include <> void main() { int a=732; ) printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案:732 732 □□□□□□□732 /*□表示空格*/ , 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格)。 A)□67B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include <> #define a void main() { printf(“%f\n”,a); @ printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为。 %是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,

第五章 循环结构

第五章循环结构 5.1 选择题 1.以下程序的输出结果是( )。 main() { int n=4; while (n--) printf(〞%d〞,--n); } A.20 B.31 C.321 D.210 2.以下程序的输出结果是( )。 main() {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } A.10192 B.9876 C.10990 D.101091 3.当执行以下程序段时。 x=-1; do {x=x*x;} while (!x); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无数多次 D.系统将提示有语法错误4.执行以下程序后输出的结果是()。 main() { int y=10; do{y--;}while(--y); printf("%d\n",y--);} A.-1 B.1 C.8 D.0 5.下面程序的输出结果是()。 main() { int x=3,y=6,a=0; while (x++!=(y-=1)) {a+=1; if (y

A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=3 D.x=5,y=4,a=1 6.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是()。 for (i=5;i;i--) for (j=0;j<4;j++) {…} A.20 B.24 C.25 D.30 7.请读程序: #include main() {int x=1,y=0,a=0,b=0; switch(x) {case 1:switch(y) {case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } 上面程序的输出结果是()。 A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 8.若有以下程序段,w和k都是整型变量 w=k; LB: if(w==0) goto LE; w--; printf(〞*〞); goto LB; LE: 则不能与上面程序段等价的循环语句是()。 A. for(w=k;w!=0;w--) print(〞*〞); B. w=k; while(w--!=0) printf(〞*〞); w++; C. w=k; do {w--;printf(〞*〞);} while (w!=0); D.for (w=k;w;--w) printf(〞*〞); 9.下面程序的输出是()。

选择语句+多重循环语句

选择语句+重循环语句作业 一、填空题 1.Java中有两种类型的选择结构的控制语句,分别是if语句和switch语句。 答:此题考点---选择结构语句 If判断语句和switch选择语句 2.在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类 以及Enum类型。在JDK1.7中又加入了String 类型。 答:此题考点----JDK1.7新增功能 Switch语句当中的数据类型,新增了String类型 3.for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环 过程中只执行一次的部分是初始化表达式。 答:此题考点----for循环结构执行顺序 for(初始化表达式;循环条件表达式;步进){ 循环体; } 执行顺序:①初始化表达式②循环条件表达式③循环体④步进 执行一次只能是初始化表达式 4.在循环结构中,如果想跳出循环体,结束整个循环结构可以使用break语句。 答:此题考点------break关键字 break关键字------突破,返回 如果是多重循环,则它只能跳出当前循环语句。 5.____continue____语句用在循环语句体中,用于终止某次循环过程,即跳过循环体 中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而 不是终止整个循环的执行。 答:此题考点-----continue关键字 在循环语句当中,使用continue,结束本次循环,执行下一次循环。 6.使用Math.random( )返回带正号的double值,该值大于等于0.0且小于1.0。使用 该函数生成[30,60]之间的随机整数的语句是(int)( Math.random()*31+30) 。 答:此题考点----随机产生整数数[a,b] 格式如下: (int)(Math.random()*((b-a)+1)+a) []30,60]----(int)(Math.random()*31+30) 二、选择题 1. 以下代码的执行结果是( B )。(选择一项) boolean m = false; if(m = false){ System.out.println("false"); }else{ System.out.println("true"); } A. false B. true C. 编译错误

5.for语句的用法

在C语言中,for语句使用最为灵活,它完全可以取代while 语句。它的一般形式为: for(表达式1;表达式2;表达式3) 语句 它的执行过程如下: 1.先求解表达式1。 2.求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行 下面第3)步;若其值为假(0),则结束循环,转到第5)步。 3.求解表达式3。 4.转回上面第2)步继续执行。 5.循环结束,执行for语句下面的一个语句。 其执行过程可用下图表示。 for语句最简单的应用形式也是最容易理解的形式如下: for(循环变量赋初值;循环条件;循环变量增量) 语句 循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用“;”分开。例如: for(i=1; i<=100; i++)sum=sum+i; 先给i赋初值1,判断i是否小于等于100, 若是则执行语句,之后值增加1。再重新判断, 直到条件为假,即i>100时,结束循环。相当于: i=1;

while(i<=100) { sum=sum+i; i++; } 对于for循环中语句的一般形式,就是如下的while循环形式: 表达式1; while(表达式2) {语句 表达式3; } 使用for语句应该注意: 1.for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循 环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。 2.省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。 3.省略了“表达式2(循环条件)”,则不做其它处理时便成为死循环。 例如: for(i=1;;i++)sum=sum+i; 相当于: i=1; while(1) { sum=sum+i; i++; } 4.省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体 中加入修改循环控制变量的语句。 例如: for(i=1;i<=100;) {sum=sum+i; i++;} 5.省略了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。 例如: for(;i<=100;) {sum=sum+i; i++;} 相当于: while(i<=100) {sum=sum+i;

第五章 循环

1.有以下程序 #include main() { int y=10; while(y--); printf("y=%d\n", y); } 程序执行后的输出结果是 A) y=0 B) y=-1 C) y=1 D) while构成无限循环 参考答案:B 【解析】执行y - -直到值为0,由于y - -是先用再减,所以退出循环时,y的值为-1? 2.有以下程序 #include main() { int k=5; while(--k) printf("%d",k -= 3); printf("\n"); } 执行后的输出结果是 A) 1 B) 2 C) 4 D) 死循环 参考答案:A 【解析】--k先自减在使用,所以第一次判断条件即为while(4),条件为真执行打印k的值k=4-3,结果为1,第二次判断条件即为while(0),条件为假,结束循环,打印回车换行符?所以选择A选项?3.关于"while(条件表达式)循环体",以下叙述正确的是 A) 循环体的执行次数总是比条件表达式的执行次数多一次 B) 条件表达式的执行次数总是比循环体的执行次数多一次

C) 条件表达式的执行次数与循环体的执行次数一样 D) 条件表达式的执行次数与循环体的执行次数无关 参考答案:B 【解析】while循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项? 4.有以下函数: int fun(char *s) { char *t=s; while(*t++); return(t-s); } 该函数的功能是() A) 计算s所指字符串的长度 B) 比较两个字符串的大小 C) 计算s所指字符串占用内存字节的个数 D) 将s所指字符串复制到字符串t中 参考答案:A 【解析】首先char *s 接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char*t ,while(*t++)不断循环直到*t 为'\0',再将t-1 ,这时字符指针t 指向字符串的最后一个字符,又因为s 指向字符数组的首地址即字符串的首地址所以return(t-s) 便是返回字符数组中字符串的长度。 5.有以下程序 #include main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是

循环结构程序设计:三种循环语句

一、循环结构(Iteration Structure)的概述 1.目的 为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。 2.类型 (1)当型循环结构 (2)直到型循环结构 二、循环语句 1.while语句 ①功能:实现当型循环结构。 ②形式 while(表达式){ 循环体 } ③特点:先判断后执行。 ④举例:(累加和问题)编程计算整数1~100的和。 int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 while( i <= 100){ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 } 2.do-while语句 ①功能:实现直到型循环结构。 ②形式 do{ 循环体

}while(表达式); //注意最后的分号 ③特点:先执行后判断。 ④举例:修改上例。 /*利用do-while语句编程实现整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 i = 1 ; //循环变量i赋初值 do{ sum = sum + i ; //循环变量累加到sum中 i = i + 1; //改变循环变量i的值 }while(i<=100);//注意最后的分号 3.for语句 ①功能:实现当型循环结构。 ②形式 for(表达式1;表达式2;表达式3){ 循环体 } ③特点:先判断后执行;使用频率最高。 ④举例:修改上例。 /*使用for语句编程计算整数1~100的和。*/ int i ; //循环变量 int sum = 0 ; //累加和清0 for( i = 1 ; i <=100 ; i++ ){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值 sum = sum + i ; //循环变量累加到sum中 } 4.几种循环语句的比较 ①由于while语句和for语句均实现当型循环结构,两者是完全等价的。 for(表达式1;表达式2;表达式3){

第5章 循环结构

第五章循环结构 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.执行下面程序段后,输出字符B的个数是() x=0; while(x<=5) {printf("B"); x+=2;} A.0个B.3个C.5个D.6个 2.在下述程序中,for循环执行的次数是() main( ) {int i =0,j=10,k=2,s=0; for(; ;) {i+=k; if(i>j) {printf("%d\n",s); break;} s+=i; } } A.4 B.5 C.6 D.7 3.执行下面程序段后,输出字符A的个数是() for(i=0;i<=5;i+=2) printf(“A”); A.0个B.3个C.5个D.6个 4.执行while(表达式)循环的条件是() A.当表达式的值为0时B.仅当表达式的值为1时 C.当表达式的值非0时D.当表达式的值不为1时 5.下列程序段输出的结果是() for(i=1;i<3;i+ +) for(j=1;j<3;j+ +) printf("%d",i+j); A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 6.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体

B.循环体至少被执行一次 C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次 7.只能在循环语句中用于结束本轮循环的语句是() A.break; B.continue; C.goto D.if 10.下列程序段的输出结果是() i=1; while(i<3) {j=1; while(j<=i) {printf(“%d”,i+j); j++;} i++; printf(“\n”); } A. 2 3 3 4 B. 2 3 4 C. 2 3 D. 2 3 4 3 4 8.下列程序段的输出结果是() a=100; do a=a+l; while(a>120); printf(“%d”,a); A.100 B.101 C.120 D.121 9.关于break和continue语句,下列说法正确的是() A.在循环体中可以用break语句结束本次循环 B.在循环体中可以用continue语句结束本次循环 C.break语句仅能使用在switch结构中 D.可以使用continue语句跳出switch结构 10.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是() A.表达式1 B.表达式2 C.表达式3 D.表达式l和表达式3 11.下列语句中不能 ..实现循环结构的语句是() A.if语句 B.while语句 C.do—while语句 D.for语句 12.以下程序的输出结果是() main()

相关文档
最新文档