第五章 循环.docx
《第五章 循环.docx》由会员分享,可在线阅读,更多相关《第五章 循环.docx(16页珍藏版)》请在冰豆网上搜索。
第五章循环
第5章循环结构
(一)本章学习的目的和要求
(二)本章学习的重点
(三)复习题
1.1单选题
1.以下说法正确的是()。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为假时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为真时结束循环
C语言支持的循环语句有:
()
Afor循环Bwhile循环Cdowhile循环D以上都是
1.2多选题
1.3判断题
1.continue语句用于循环语句内部中。
当遇到continue语句之后,循环体中continue语句后面的语句将被跳过,计算机将接着开始执行下一次循环。
()
2.for(表达式1;表达式2;表达式3){},其中表达式1只执行一次。
3.若inti=0,k=8;while(i=8)i=k--;则while循环体的执行次数为0.
4.多重循环是指循环语句的循环体中,又嵌套了另一个或多个循环语句,多个内层循环可以相互交叉嵌套。
5.在复合语句中定义的变量可在该复合语句所在的函数的其它地方使用。
6.在函数体内定义的变量称全局变量,可以被程序中的所有函数引用。
7.continue语句用在循环体中,可使整个循环不结束。
8.continue 语句可以用于switch结构中。
9.break语句只能用于循环语句中。
10.do......while循环语句至少要执行一次循环体。
11.语句while(!
E);中的条件!
E等价于E==0。
12.语句for(; ; ) {循环体} 和 while
(1) {循环体}是等价的。
13.在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。
14.在while循环中允许使用嵌套循环,但只能是嵌套while循环。
15.在实际编程中,do-while循环完全可以用for循环替换。
16.continue语句只能用于三个循环语句中。
17.for循环的三个表达式可以任意省略,while,do-while也是如此。
18.while的循环控制条件比do-while的循环控制条件严格。
19.do-while循环中,根据情况可以省略while。
20.do-while循环的while后的分号可以省略。
21.C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况。
22.do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式。
23.C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况。
24.continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
25.while和do…while循环不论什么条件下它们的结果都是相同的.
26.定义在main函数后的任何函数都需在main中进行函数声明。
27.一个函数中只允许有一条return语句。
28.函数的递归调用不过是一个函数直接地调用它自身。
29.以数组名作函数参数时,数据传递的方向是“双向的”,因此我们可以说,在此情况下,函数带回的返回值可能不止一个。
30.以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关。
31.函数若无返回值,则它一定无形参.
32.函数若有形参,则它一定有返回值.
33.一个C语言源程序文件中,有且只能有一个主函数
34.函数必须有形参
35.函数必须有return语句
36.指针变量不可以为函数的参数。
37.函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5
38.函数strlen("ASDFG")的值是7。
39.定义函数时,可以有一个或多个形参,也可以没有形参。
40.如果被定义函数的返回值类型是整型或字符型,使用前可以不必进行说明。
41.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
42.如果被定义函数的返回值是整型,可以不必进行说明。
43.若某自定义函数中无return语句,则该函数一定没有返回值。
44.在函数的定义中,若函数没有参数,则可以省略函数名后的括号。
45.函数返回值的数据类型取决于函数定义时为函数指定的数据类型。
46.在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。
47.在C程序中,函数调用既可以出现在表达式语句中,也可以作为单独的语句出现。
48.在C程序中,实参可以是变量、常量或表达式。
49.静态变量的生存期与整个程序的运行期相同。
50.在main函数中定义的变量称为全局变量。
51.结构体的定义不为它分配具体的内存空间。
52.struct是关键字,不能省略:
“结构体名”用作结构体类型的标志,是用户定义的标识符。
53.结构体变量所占的内存长度等于每个成员长度之和(字符型特殊)。
54.结构体类型的数据是由不同类型的数据组合而成的。
55.一旦定义了某个结构体类型后,系统将为此类型的各个成员项分配内存单元。
56.被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。
57.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
58.在内存中存储结构体类型的变量要占连续一段的存储单元。
59.结构体类型数据在内存中所占字节数不固定。
60.结构体类型只有一种。
61.
1.4填空题
2、计算s=1+2+3+……+100。
#include
intmain(void)
{
inti,s=0;
for(i=1;i<=100;②)
③;
printf("%d",s);
return0;
}
3、判断素数
#include
intmain(void)
{
inti,m;
scanf("%d",&m);
for(i=④;i<=m/2;i++)
if(m%i==0)
⑤;
if(i>m/2)
printf("Prime");
else
printf("No");
return0;
}
功能:
通过函数的递归调用计算阶乘。
#include
longpower(intn)
{
longf;
if(n>1)
f=__
(1)__;
else
f=1;
return(f);
}
voidmain()
{
intn;
longy;
scanf("%d",&n);
y=__
(2)__;
printf("%d!
=%ld\n",n,__(3)__);
}
功能:
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为
1~100分。
选手最后得分为:
去掉一个最高分和一个最低分
后其余8个分数的平均值。
请编写一个程序实现。
#include
voidmain()
{
intscore,i,max,min,sum;
max=-32768;
min=32767;
sum=0;
for(i=1;i<=10;i++)
{
scanf("%d",__
(1)__);
sum+=score;
if(max(2)__;
if(min>score)min=score;
}
printf("Canceledmaxscore:
%d\nCanceledminscore:
%d\n",max,min);
printf("Averagescore:
%d\n",(sum-max-min)/8);
}
写出运行结果
voidmain()
{intnum=0;
while(num<=2)
{num++;
printf(”%d\n”,num);
}
}
输入一个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,如果是则输出“yes”,否则输出“no”。
其中input()函数是返回输入数据的绝对值。
fun1()函数是判断正整数n是否按数字从小到大排列。
#include
intinput();
intfun1(intm);
voidmain()
{
intn;
n=____
(1)____;
if(___
(2)___)
printf("yes\n");
elseprintf("no\n");
}
intinput()
{
intn;
scanf("%d",&n);
if(n>0)returnn;
else___(3)___;
}
intfun1(intm)
{
intk;
k=m%10;
while(m!
=0)
if(m/10%10>k)return0;
else{___(3)____;
k=m%10;
}
____(4)____;
}
以下程序从键盘中输入1个整数n,根据整数n的植,输入n个学生数据。
每个学生数据包括姓名及课程平均分。
统计平均分不及格的学生人数和平均分最高的学生姓名。
(学生人数不超过100人)
#defineN100
#include
structstudent
{charname[20];
floatscore;
};
voidmain()
{structstudentstu[N];
inti,k,n,c=0;
floatmax;
scanf("%d",&n);
for(i=0;iscanf("%s%f",stu[i].name,&stu[i].score);
for(i=0;iif(stu[i].score<60)
c++;
printf("%d\n",c);
max=__
(1)__;
k=0;
for(i=0;iif(stu[i].score>max)
{k=i;
max=__
(2)__;
}
printf("%s\n",__(3)__);
}
求100以内能被3整除且个位数字为9的所有正整数。
请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。
(公共C++实验预习1-程序填空4)
#include
usingnamespacestd;
intmain()
{
inti;
for(i=1;i<__
(1)__;i++)
{
if(i%3__
(2)__&&i%__(3)__==9)
cout<
}
return0;
}
计算1-3+5-7+…+97-99的值,以下是该函数的程序段,请将未完成的部分填入,使之完整。
#include
usingnamespacestd;
int