C语言while、do-while、for循环课程5
课程3中,提到C语言基本语句分为:数据定义语句,数据处理语句
数据处理语句又可分为:表达式语句,函数调用语句,空语句(;,复合语句,流程控制语句。
流程控制:指程序代码执行的顺序。流程的分类:顺序、选择、循环。
C语言的循环结构通过三种语句来实现,即while、do-while、forWhile语句的一般形式while(循环条件表达式循环体语句;
功能:当循环条件表达式为真,执行循环体语句,执行完了,再判断条件表达式是否为真,为真,则再执行,直到条件表达式为假时,退出while循环。
实例1:用while语句求1~100的累加和。
#include//C语言编译预处理命令,文件包含为stdio.h
voidmain(//至少有一个用main(命名的主函数,返回值为void无值类型{
inti=1,sum=0;/*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/
while(i<=100
{
sum+=i;//sum+=i是一个复合赋值运算符,等价于sun=sun+i;i++;
}
printf("1+2+3+...+100=%d ",sum;//输出十进制数,1加到100累加器的和}
MicrosoftVisualC++6.0运行结果
使用while循环时,一定要对循环条件表达式中出现的变量提前赋值,并在循环体内修改有关变量的值,以使循环能趋于终止。
While循环为当型循环,do-while循环也叫直到型循环。
do-while语句的一般形式为:
do
{
循环体语句}while(
循环条件表达式
实例2:用do-while编制一个求n!的程序,n的值由键盘输入。
#include
voidmain(
{inti=1,n,p=1;
printf("请从键盘输入一个数,进行连乘积: ";
scanf("%d",&n;
do
{p=p*i;
i++;
}while(i<=n;
printf("连乘积的结果为p=n!:%d ",p;
}
分析:此程序,先定义三个变量i、n、p,p从p乘1开始执行,再i进行自增1,循环体中的语句执行完毕后,判断while的循环条件表达式,当i自增1为2时,看2是否<=输入的n值,若为真,则继续返回do循环,直到i自增的值比n大,则退出循环。
do-while主要用于人机交互,do-while循环是先执行后判断,do里面的循环体至少被执行一次。区别于while是先判断循环条件表达式,后执行。
for循环也叫步长型循环
一般格式:for(表达式1;表达式2;表达式3循环体语句;
功能:先执行表达式1,再执行表达式2,如果表达式2的值为真,就执行循环体语句,最后执行表达式3.完成一次循环后,从表达式2执行,直到表达式2为假,退出循环。
实例3:参考实例1,用while求1~100的累加和,现在用for语句求1~100的累
加和。
#include
intmain(void
{
inti;intsum=0;
/*初始化循环,定义变量i
和累加器sum,定义和之前,累加器清零*/
for(i=1;i<=100;i++
{
sum=sum+i;
}
printf("sum=%d ",sum;
return0;
}
实例4:爱因斯坦的`阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。
#include
main(
{intx;
for(x=7;;x+=7
if(x%3==2&&x%5==4&&x%6==5
break;
printf("Thenumberoftheladdersis:%d ",x;
}
分析:发现x一定是7的整数倍,可以依次递增地求出7的整数倍的值(7*1、7*2、7*3……),每求出一值,就用该值与2、3、5、6进行取模运算,最先得到的满足上述5个方程式的x值即为本题的答案。
用while语句,简单快速实现爱因斯坦的阶梯问题
#include
intmain(
{
inti=1;/*i为所设的阶梯数*/
while(!((i%2==1&&(i%3==2&&(i%5==4&&(i%6==5&&(i%7==0
++i;/*满足一组同余式的判别*/
1.以下正确的说法是()。
A.用户调用标准库函数前,必须重新定义
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C.系统不允许用户重新定义标准库函数
D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中答案:B
2.do语句能够改写为()语句。
A.复合
B.if
C.switch
D.while
答案:D
3.循环语句“for(inti=0;i<n;i++cout<<i*i<<’’;”中循环体执行的次数为()。
A.1
B.n-1
C.n
D.n+1
答案:C
4.在下面循环语句中循环体执行的次数为()。for(inti=0;i<n;i++if(i>n/2break;
A.n/2
B.n/2+1
C.n/2-1
D.n-1
答案:B
5.下列适宜采用inline定义函数情况是()。
A.函数体含有循环语句
B.函数体含有递归语句
C.函数代码少、频繁调用
D.函数代码多、不常调用
答案:C
6.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。
A.int*p=newint[30];
B.int*p=newint(30;
C.int*p=new[30];
D.*p=newint[30];
答案:A
7.将两个字符串连接起来组成一个字符串时,选用()函数。
A.strlen(
B.strcap(
C.strcat(
D.strcmp(
答案:C
8.switch语句能够改写为()语句。
A.for
B.if
C.do
D.while
答案:B
9.关于void指针,下列说法正确的是()。
A.void指针就是不能指向任何数据的指针
B.void指针就是已定义而未初始化的指针
C.指向任何类型数据的指针可直接赋值给一个void指针
D.void指针值可直接赋给一个非void指针
答案:C
10.循环while(inti=0i--;执行次数是()。
A.0
B.1
C.5
D.6
答案:A
11.预处理命令在程序中都是以()符号开头的。
A.*
B.#
C.&
D.@
答案:B
12.以下能正确地定义整型变量a,b和c,并为其赋初值5的语句是()。
A.inta=b=c=5;
B.inta,b,c=5;
C.a=5,b=5,c=5;
D.a=b=c=5;
答案:A
13.若有说明语句:charc='72'则变量c()。
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
答案:A
14.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORD
B.a3_b3_123YN
C.for-abcCase
D.2aDOsizeof
答案:B
15.以下标识符中不全是保留字的是()。
A.caseforint
B.defathenwhile
C.boolclasslong
D.gotoreturnchar
答案:B
16.下列变量名中,()是合法的。
A.Forest
B.byte-size
C.double
D.A+a
答案:A
17.函数调用func((exp1,exp2,(exp3,exp4,exp5中所含实参的个数为()个。
A.1
B.2
C.4
D.5
答案:B
18.this指针存在的目的是()。
A.保证基类私有成员在子类中可以被访问
B.保证基类保护成员在子类中可以被访问
C.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
D.保证基类公有成员在子类中可以被访问
答案:C
19.定义类的动态对象数组时,系统只能够自动调用该类的()对其进行初始化。
A.友员
B.析构函数
C.无参构造函数
D.类成员
答案:C
20.对两个数组a和b进行如下初始化:chara[]="ABCDEF";charb[]={‘A’,‘B’,‘C’,‘D’
A.a和b数组完全相同
B.a和b中都存放字符串
C.sizeof(a比sizeof(b大
D.sizeof(a与sizeof(b相同
答案:C
21.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。
A.N+1
B.N
C.(N+1/2
D.N/2
答案:B
22.二维数组在内存中的存放顺序是()。
A.按行存放
B.按列存放
C.由用户自己定义
D.由编译器决定
答案:A
23.假如指针p已经指向某个整型变量x,则(*p++相当于()。
A.x++
B.p++
C.*(p++
D.&x++
答案:A
24.如有数组intnum[5]={12,13,14,15,16};则num[0]的值为()。
A.12
B.13
C.14
D.15
答案:A
25.若p1、p2都是指向整型的指针,p1已经指向变量x,要使p2也指向x,正确的是()。
A.p2=p1;
B.p2=**p1;
C.p2=&p1;
D.p2=*p1;
答案:A
26.有语句inta[10]={10,9,8,7,6,5,4,3,2,1},*p=a;则数值为2的表达式是()。
A.a[9]
B.*p[8]
C.*(a+8)
D.p+8
答案:C
27.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是()。
A.*
B.<<
C.->
D.=
答案:C
28.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成()。
A.对象
B.实例
C.类
D.数组
答案:C
29.在用C++进行程序设计时,最好用()代替malloc。
A.new
B.
C.指针
D.循环
答案:A
30.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为()。
A.继承
B.访问控制
C.派生
D.多态性
答案:D
31.若定义了函数double*function(,则函数function的返回值为()。
A.实数型
B.实数的地址
C.指向函数的指针
D.函数的地址
答案:B
32.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就
A.类
B.对象
谋臣艾子上前问道:“不知大王有何打算?”
齐王说:“我要抽调大批壮丁,沿国境线修起一道长长的城墙。这道城墙东起大海,西经太行,连起轘辕山,接上武关,绵延4000里,同各个强国隔绝开来。从此,秦国无法窥伺我西部,楚国难以威胁我南边,韩国、魏国不敢牵制我左右。你们说,这不是一件很伟大、很有价值的事吗?”
艾子说:“大王,这样大的工程,百姓们能承受得了吗?”
齐王说:“是的,百姓筑城的确要吃很多苦头,但这样做能从此减少战争带来的灾难,这一劳永逸的事,谁会不拥护呢?”
艾子沉吟片刻,认真而恳切地对齐王说:“昨天一大早,天下起了大雪,我在赶赴早朝的途中,看见道旁躺着一个人,他光着身子,都快要冻僵了,却仰望着老天唱赞歌。我十分奇怪,便问他为什么这样做,他回答说:‘老天爷这场雪下得真好啊,可以料到明年麦子大丰收,人们可以吃到廉价的.麦子了。可是,明年却离我太遥远,眼下我就要被冻死了!’大王,臣以为,这件事正像您今天说的筑城墙,老百姓眼下正生活得朝不保夕,哪能奢望将来有什么大福呢?他们还不知道能不能等到修好城墙的那一天,享受永逸的将会是什么人呢!”
齐王无言以对。
所以我们在想问题、做计划时,一定要从实际出发,既要考虑将来,也要顾及当前,统筹兼顾,切实可行。否则,再美好的打算也只能流于幻想。
1、沿着这条小路走,能到张红家。(改为反问句)
2、隐藏在芦苇里的我们看见船上载着许多货物。(缩句)
3、天上的星星在闪烁。(扩句)
4、我终于做对了这道题。(改为“被”字句)
5、这是伟大的奇观。(改为反问句、感叹句)
6、同学们去参观。(扩句,两处以上)
7、李明和以前比不是变了样吗?(改为陈述句)
8、盲人的心中装着一盏明灯。(缩句)
9、奔腾的湖水从大坝的进水口直冲了下来。(缩句)
10、柔嫩的枝条随着微风轻轻地摆动。(缩句)
11、我们又把船在树下泊了片刻。(改为“被”字句)
12、你仔细看那些细小的脚。你会想起图画上蛟龙的爪子。(把两句话合并成一句话)
13、爬山虎的脚很细小。(改为比喻句)
14、爬山虎就是这样往上爬。(扩句)
15、夜晚,天上的星星闪烁。(改为拟人句)
16、森林中小鸟在鸣叫。(改为拟人句)
17、魏格纳叩开了著名科学家科彭教授的大门。(改为“把”字句、“被”字句)
1、巨人孤独的度过了漫长的严冬。(缩句)
2、巨人生活在漂亮的花园和孩子中间,感到无比的幸福。(改为反问句)3、鲜花凋谢,树叶飘落,花园又被冰雪覆盖了。(“把”字句)
4、巨人有一颗任性,冷酷的心。巨人的花园一片荒凉,冬天永驻。(把两句话合并成一句话)
5、白鹅把我下了鱼饵的一片水面,也划为自己的地盘。(改为“被”字句)6、白鹅总是高傲的,一动不动的挺着长长的脖子。(缩句)
7、说它贪玩吧,的确是呀,要不怎么会一天一夜不回家呢?(把这个句子换个说法)
8、看它那样生气勃勃,天真可爱,我喜欢还来不及,怎么会和它生气呢?(把这个句子换个说法)
9、我不敢再讨厌木鸡了。(改为反问句)
10、这样气魄雄伟的工程,在历史上是一个伟大的奇迹。(改为反问句、双重否定句、缩句)
11、长廊每一间的横廊上都有五彩的画,几千幅画没有哪一幅是相同的。(改为肯定句)
12、北京的颐和园是个美丽的大花园。(改为反问句)
13、昆明湖的两岸栽着许多数不清的垂柳。(修改病句)
14、虽然这时不是春天,但是有哪一个春天的花园能比这时的天山更美丽呢?(改为陈述句)
15、沿着这条小路走,能到张红家。(改为疑问句)
1、搭石是家乡的一道风景。(改为感叹句)
2、天气太冷了,简直叫人受不了。(改为夸张句)
3、两岸骨肉同胞用爱心架起了一座跨越海峡的生命桥。(缩句)
4、小钱被白血病折磨得脸色苍白。(改为“把”字句)
5、那血脉亲情,如同生命的火种,必将一代一代传下去。(改为反问句)6、妈妈对我说:“我和你爸爸,今晚要去参加活动,你自己准备晚饭吧。”(第三人称转述)
7、圣诞节快到了,哥哥送给保罗一辆新车作为圣诞礼物。(改为“把”字句、“被”字句)
8、进行了文明礼貌教育后,发生了很大变化。(修改病句)
9、在时,我一丝不苟的答卷和交卷。(修改病句)
10、我担心怕他忘记,再三重复地对他说:“明天一定要把那本书带来。”(修改病句)
11、他的敲门声惊醒了树上沉睡的小鸟。(缩句)
12、两个差人将贾岛带到韩愈面前。(改为“被”字句、“把”字句)
13、乌塔一听,高兴的大叫:“我是德国人,住在汉堡。”(改为第三人称转述)14、亲自来到意大利。意大利的美丽深深感动了我。(用关联词把两句话连成一句话)
15、电脑根据这些气象资料,为主人提供一个既节能又舒适的家居环境。(缩句)
16、我想念着这位没有见过面的,不知道姓名的叔叔。(缩句)
1、浪花翠绿翠绿的,绿的发光,绿的鲜亮,欢笑着,翻滚着,一层赶着一层涌向前方。(缩句)
2、恐龙世界里,有些恐龙凶猛异常,是茹毛饮血的食肉动物。(改为反问句、感叹句、双重否定句)
3、雪下得很大。(改为比喻句)
4、人们称海洋为蔚蓝色的宝库。(改为“把”字句)
5、老师提出的问题,李林答的对答如流。(修改病句)
6、那翠绿的颜色,明亮的照耀着我们的眼睛。(改为“被”字句)
7、照红了小孩子脸的是霞光。(改为“把”字句)
8、蟋蟀在平台上鸣叫。(改为拟人句)
9、蟋蟀建筑住宅有特别的工具吗?没有。(改为陈述句)
10、春天来了,小草绿了。(改为拟人句)
11、柿子挂在枝头。(改为比喻句)
12、2010年的世博会难到不是在我国上海举办吗?(改为陈述句)
13、读了这篇文章,使我又一次受到深刻的教育。(修改病句)
14、巨人看到了孩子们幸福的笑脸和欢乐的歌声。(修改病句)
15、天天听着鸟儿歌唱。(修改病句)
16、人们搭好了简易的戏台。(改为“把”字句、“被”字句)
17、花儿在晨风中摇摆。(改为拟人句)
改写句子(5)姓名
1、那颗清冷的心唤来了寒冬。(改为“把”字句、“被”字句)
2、泉口堆满了枯枝败叶。(改为“把”字句、“被”字句)
3、百灵鸟站在枝头叫。(改为拟人句)
4、我的工作对别人都是有用的,我感到很幸福。(改为反问句)
5、清澈的.泉水静静的流着。(缩句)
6、他把花园给了孩子们。(改为“被”字句)
7、即使人们怎么呼唤,猫也不肯回来。(修改病句)
8、他从容不迫的飞快的从里面跑出来。(修改病句)
9、猫在旁边,非要把老鼠等出来不可。(改为肯定句)
10、这么可爱的小生灵,谁会不喜欢呢?(改为陈述句)
11、自古以来,人们把钱塘江大潮称为天下奇观。(改为“被”字句)
12、站在山顶上仰望,山间的云像棉花在缓缓飘动。(修改病句)
13、兵马俑虽然规模宏大,但是类型众多。(修改病句)
14、登上万寿山,颐和园的景色大半全部收在眼底。(修改病句)
15、人们把散落在地上的苹果捡了起来。(改为“被”字句)
16、老师把新同学送回了家。(改为“被”字句)
17、春风把大江南北染成了一片绿色。(改为“被”字句)
18天空中飞翔着白鸽。(扩句)
© 2022 xuexicn.net,All Rights Reserved.