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;/*满足一组同余式的判别*/
镰刀斧头的旗帜似曾相识,但今日招展在加尔各答的贫民窟里,总觉着带有几分噱闹和滑稽。
在全球一体化的21世纪,不知是经典的革命误导了善良民众?还是贱民们的'善良亵渎了神圣的革命?也许今天不兴暴力解放,应该推崇议会斗争。也许天下的无产者们要有足够的定力和体力,一俟资本家在毁灭性的经济危机中掘完了他们的坟墓,美好的大同社会才会姗姗到来。也许经过小康中康大康的万年煎熬后,才有彻底消灭私有制的全民安康。也许觉悟的老板和忏悔的穷鬼们,终于不计前嫌,握手言欢,为拯救高温下日益变暖的地球,一同商讨如何开创伟大的低碳生活,合屋抱暖,共渡时艰。也许还有更好的社会模式有待张克思、王克思们发现,以飨人类的美好未来。也许井蛙思云外,杞人忧天倾,这一切都不过然是一厢情愿的的枉然。也许复也许,也许何其多,而今赋也许,只为革命歌。
呜呼!亏了这辈子没投胎在加尔各答。
其实,俺只是个胸鸣虫鸟的遛远闲客,偶然路经此地,既无救人于水火的回天之力,也没有看同类受苦受难的“嗜痂之癖”。只是觉得浑身上下沾满了黏糊糊的臭汗,恨不得插翅高飞,飞离加尔各答的火狱,飞越广袤浩阔的塔尔沙漠,飞到清波送爽的恒河边,向瓦列纳西的大神们,问一声好。
为了不耽误取行李上路,匆匆告别“加尔各答的革命阵营”后,连名闻遐迩的维多利亚纪念馆都没来得及拜访,便抽身返回了火车站。
童年似一杯浓浓的咖啡,暖到你心窝,童年似一杯淡淡的茶,让你回味;童年似暴风雨的彩虹;五颜六色,炫丽无比;童年又似那晚霞后的余光,那么让人怀念;又似那弯弯的小路,让你成长。风儿不可能将这温馨的回忆给吹掉;雨儿不可能把这一件一件感人的旋律掩没,只有可爱的阳光将它照射,将它保存....
回想那一件件儿时不起眼的事儿来,事虽然小,但那些回忆是那样觉得感动,因为有了这些回忆才能让自己不断进步,不断追断求,这样才能成长起来,童年总叫人回想。回想那五彩缤纷的梦,回想起那丫丫学语的时候,回想起刚学走路的时候,第一次踏上舞台的时候,第一次叫出父母时,第一次......那一刻刻, 那一个个镜头,霎时间浮现在你的眼前。
那是一个无法忘记的回忆,无法忘记的童年,第一次背起了新书包上学的那一天,终干能和别的孩子一样上学,对我而言这就是我的历史性的一刻,父母拿着照相机把这最开心最难忘的模样拍照下来,这也成了父亲和母亲最安慰的一项,这也成了家里最快乐的写照,这难忘的一刻,这么美好这么甜美,它一直在我脑海里浮现。可是美好的只是过去的,在温长的日子里,一次次磨练后,把软弱的自己磨练得像钢一样坚硬,学习的压力,没有人会知道,没有人会可怜,在那树叶落光的秋天里,只有苦熬的`干劲,只有失去了的快乐,这就是苦的。儿时在百花齐放的春天,拥有着,美好梦想的童年,一晃而过。
至今在现实的残酷面前不会掉泪,泪都是会被那乌云所掩盖。儿时的泪是那么软弱,那么小气。童年的梦是五颜六色的,像百花齐放般的美好,让人回味,让人忘返,那时没有任何忧虑,没有任何烦恼。童年的梦又如在夜空中,那么宽阔,那么宁静,童年的梦又如无数的星星,它们只会眨着眼,不会说话,诚实和从容………无数的星星如无数的梦 ,灌入了小小的脑袋中, 从此我思考着无数的问题。
蓝天下的成长,夜空中的梦想又如在沙滩上堆积起一座座小小的城堡,堆积起在蓝色海边的梦;儿是总是喜欢在榕树下玩耍,又喜欢在那静静地坐着,听着老人讲那古老的故事,那时的梦是绿色的;儿时总是喜欢在老家门前坐着,在落叶的秋天里欣赏那一片片穿着金色的叶子在漫天飞舞, 那时的梦是金黄色的。儿时总是喜欢做梦,在梦里走着找不到出口迷宫,一次一次地被锁在迷宫里,心里那么迷茫,在现实生活中,激起我斗志时,那时那梦是火一般的颜色………
回忆让世界一切万物变得安静,让人变得放松,让人感到温暖,让你回想起遥远而不遥远的梦,让你回想起在雨中,那雨儿是跳动的旋律。当你摔倒时,一种力量在看着你,让你回想起在蓝天下放飞纸飞机,放飞你一个个让你期待的梦。
时钟只有前进,不可能倒退。童年只有回味和回忆……..
童年只有回忆,梦只有创造,将来只有拼搏………..
童年以是过去的事了,只有回忆起那点点滴滴的事,只有积累更多的,这路才能走得更远更宽。每个人都拥有自己五彩缤纷的童年 ,童年是人生最珍贵的东西,它是你一生的开始,拥有着它那你就拥有一生,我们应该好好地珍惜它。
梦常常都会变化着,梦是人一生中追求的目标,只有奋斗和拼搏,那才会梦想成真,那才会成为现实。
操场上,同学们的欢呼声,跺脚声融成一片。
在同学们的急切盼望下,比赛即将开始了。我是耿乐队的队员,我们队的运动员精神抖擞地上了阵,我们摆好架势,两眼注视着王京阳队,双手像铁钳一样紧紧地抓住大麻绳,只等裁判员的号令。“嘟——”哨声响了,我们就使出吃奶的劲,像一头头牛似地拼命地往后拉。我双腿弓着,左脚顶着前面同学的左脚脚后跟。有的同学脸涨的通红,一会儿工夫脸上就渗出了汗珠。好多同学的手都被绳子勒得发红,我们还是咬紧牙关,忍着疼痛,一个劲儿地拉着。由于大家喊得号子不怎么齐,绳子中间的红带子慢慢向王京阳队移去了。我队的拉拉队员见到这一情况,大声喊到:“加油!加油!我们快要输了!”对方见情况不妙也不甘示弱,在他们啦啦队员的助威下,他们的队员也一个个使出九牛二虎之力,有的鼓着腮帮,有的一边使劲拉一边吼着。绳子上的红带子在飞快的向王京阳队移动。眼看我们队就要输了,拉拉队员急了:“加油!加油!”我们怎么拉也拉不过来了。我们输了!交换场地再战。上一次我们喊得号子不齐,这次我们吸取了失败的教训,由张运宏喊号子,啦啦队有节奏地为我们喊着,我们队员的劲儿也越来越大,红带子一点一点地向我们这边移来,任凭对方怎么使劲都无济于事了。
对方不服,要求再战,老师说:“这项运动,消耗体力很大,不能再战了,明天我们再战吧。”
喔,放学了,放学了,去踢球了。放学了,许多孩子兴高采烈地朝着一片草地跑去。
来到绿茵茵的草地上,大家把书包放在地上,左边一堆,右边一堆,足球赛的球门就做好了。大家守在自己的位置上,一个戴眼镜的大个子吹了一个口哨,把球往空中一抛。两队前锋立马跃起。哎呀,不好,蓝方队员抢到了球,把脚一踢。坐在一旁的观众都目不转睛地看着这场球赛,路边经过的大叔叔也都停下来观看,坐在旁边的小弟弟随球摇晃着身体,一只小白狗也来凑热闹,它不知道人们在干什么就在一旁睡觉,坐在后面的小妹妹干脆站起身来看。球直冲球门,但红方守门员头一顶,球就飞回去了。守门员有一头金色的头发,弯着背,双脚轻轻弯曲,双手放在膝盖上,他眼睛直直地盯着足球。守门员身后站着一位身着红衣红裤的人:挺着胸,腆着肚,前后左右在不停的摇动,感觉非常紧张,好像自己就是守门员。原来他是候补守门员,他巴不得马上上场,扑住几个险球。喔……,红方队员一个倒挂金钩,一下踢了过去,蓝方一个海底捞月又还了回去。哎……观众不时发来感叹声。
嘘的一声口哨响了起来,上半场的足球赛结束了。比分:0比0。
下半场开始了,红方的人率先发球。蓝方也毫不示弱,冲过去抢球,足球如流星一般,横冲直撞。蓝方主力一下子接住了球,用绝招大力飞球足球飞过去,红方队员都没接住,守门员一个猛虎扑食把球扑住了。观众们都看了,个个呆若木鸡。守门员一脚踢了出去,他大口大口喘着粗气。红方队员高兴极了,因为只要进一个球,就算赢了。红方队员脸上露出了自信的喜悦。不一会儿,他们派三个人出去,三人一起冲了过去,两个人保护中间一个,中间人踢球,一射门,被蓝方守门员挡了回来。红方队员三人一起踢了过去,由于速度快,蓝方守门员也没接住,红方赢了。队员们高兴得又唱又跳。
一旁的观众齐声说好!。红队员挥洒着胜利的汗水,背起书包回家了。
一场精彩的足球赛就在观众欢呼声中结束了。
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.对象
“你这只懒虫,看你睡到什么时候了?”“哎,这一觉睡得可真久呀!”他们围着我又说又笑。我一看日历,心中一惊,今天是20XX年的3月28日了!而且还是我十岁的生日。怎么回事?原来我和伙伴们不小心呼吸了从太空飘散下来的花粉,竟都沉睡了七十多年。我从床上蹦起来,决定和小伙伴们出去遛一遛。
我从小泥猪里拿出零花钱,当然这还是半个多世纪以前的呢。我想,时过境迁,这些钱成了古币,不知道还能不能流通呢。我们来到古董店。古董店的老板看见我们递过来的钱,惊得直吐舌头:“你们这些钱是从哪儿来的`呀!现在,世界上仅存几张呀!”于是,我们把这些钱换给了这位老板,得到了一大笔钱。
我们买了一台车。这台车比卡丁车大一点,不仅操作便捷,而且安全性能极好,是专为小孩子设计的。我们坐上车,兴冲冲地来到一家宠物店。只见里面好是热闹,传说中的飞马、天龙、凤凰等等都有。我们挑了一匹飞马,一条天龙。接着又来到了武器店,买了一些古代打仗用的剑、盾、长矛之类的东西。
到中午了,我们的肚子都唱起了“空城计”。我和伙伴们来到一家蛋糕店,因为今天是我的生日呀。这里有最新发明的楼层蛋糕,设计人员把我们引到电脑前,让我们自己设计蛋糕的楼层和内部结构。我们一不做,二不休,设计出了一座蛋糕别墅。蛋糕店的人连忙把我们的设计存盘,说我们的设计是最有创意的,他们将会做出一个标志性的蛋糕,以展示他们店最高的水平。并且,我们的蛋糕别墅完全免费!以表示对我们创意的嘉奖和谢意。“哦!”我和伙伴们欢呼起来,把头上的帽子摘了丢来抛去。
我和伙伴们成了十足的“蛋糕寄生虫”,在蛋糕别墅里边吃边玩,还觉得不过瘾,我们又搬来了一台电脑,这台电脑是多维数码全息电脑。我们兴致勃勃地进入游戏区,用手点了一下按钮,忽然什么也看不见了,我们来到了游戏区里。一切都和真的一样,一切就像梦幻一样神奇。我们成了身穿铠甲的勇士,和一群稀奇古怪的外星人搏斗。可不一会儿,他们就把我们这些全没的外行抛了出去。我们只好灰溜溜地滚出电脑。哎,真是不幸。
正沮丧间,忽然听说有一群不明来历的人到了地球,向我们地球人挑战。这还得了!我和伙伴们二话不说,就拿着长矛、盾牌、宝剑,骑着飞马、飞龙去了。那些人是驾着最新的宇宙交通工具来的,不过都戴着面具,看不清模样,个头和我们差不多。他们看见我们的武器都哈哈大笑。他们的头儿说:“咱们先礼后兵,如果我们出的题你们做出来了,我们就不发起战争,如果做不出——”他把手臂举起来,只见上面全是机关,看来藏着非常厉害的武器。我气冲斗牛,说:“来吧!看你们有什么高招!”
那个头儿说:“一个两位数,十位数是个位的两倍,将个位与十位的数字调换,得到新的两位数,这两个两位数的和为132,求这个两位数。”我仰头大笑:“太简单啦,得84!”那些人凑在一块儿商量起来,大概是在验算吧。我心里又是一阵暗笑。
过了一会儿,他们说:“好,算你有种,再出一题。”那个头儿把手一挥,只见地上出现了五个农夫,有四个农夫脸上分别有“大、小、无、食”四个字。他指着最后那个农夫说:“你给这个农夫画张脸吧。”我还没说话,一个最会画画的小伙伴就冒冒失失地跑上去,给这个农夫画起了眼睛……我急坏了,连忙跑上前,抢过笔,在这个农夫脸上写了一个大大的“中”字。那个头儿忙问为什么,我说:“这还不简单吗?把这五个农夫想成五个手指,不就差个‘中’字吗?”那个头儿大叫佩服,伙伴们都为我鼓掌。
那个头儿一定要我和他交朋友。原来,他们是外星上的小朋友,因为老师要他们学习地球人的课程,他们做不出,没办法才到我们地球上来讨教的。我笑着拍拍他的肩,语重心长地说:“好样的,以后多动动脑子,少来点武力。有什么难题,尽管再来找我吧!”
望着他们远去的身影,我的豪情还在心中激荡。此时天色渐晚,夕阳西照,我觉得20XX年的地球好美,好美……
© 2022 xuexicn.net,All Rights Reserved.