c语言第五章
- 格式:ppt
- 大小:472.50 KB
- 文档页数:37


第五章 习题答案
一、选择题
1) 有以下程序
#include
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d %d\n",k,n);
}
程序运行后的输出结果是
A)0 2 B)1 3 C)5 7 D)1 2
2)有以下程序:
main()
{ int k=5;
while(--k) printf("%d",k-=3);
printf("\n");
}
执行后的输出结果是( )。
A)1 B)2 C)4 D)死循环
3)有以下程序
#include<stdio.h>
main()
{int y=10;
while(y--);
printf(”y=%d\n”,y);
}
程序执行后的输出结果是
A)y=0
B)y= -1 C)y=1 D)while构成无限循环
4) 若变量已正确定义,有以下程序段
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i)
其输出结果是
A)0,0 B)0,1 C)1,1 D)程序进入无限循环
5)有以下程序:
main()
{ int i;
for(i=1;i<=40;i++)
{ if(i++%5==0)
if(++i%8==0) printf("%d",i); }
printf("\n");
}
执行后的输出结果是( )。 A)5 B)24 C)32 D)40
6) 有以下程序
#includes
main()
{ int a=1,b=2;
for(;a<8;a++) {b+=a; a+=2;}
1 一、选择题
1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行
2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出1
3.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-2
4.下面循环语句中,错误的是D int a=1,b=2;do b--while(b= =0);
5.已知”int i=5;”,下列do…while循环语句的循环次数为C 5
do{printf(“%d\n”,i--);}while(i!=0);
6.循环语句”for(int i=0,j=10;i=j=10;i++,j--)”的循环次数是D 无限
7.循环语句”while(int i=0;)i--;”的循环次数是A 0
8.下述有关break语句的描述中,不正确的是 C break语句用于if语句的内嵌语句内,它结束该if语句
9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句
10.以下不是死循环的是D for(;(c=getchar()!=’\n’);)printf(“%c”,c);
11.执行语句”for(i=0;i++<3;);”后,变量i的值为C 4
12.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C 循环4次
13.与语句”while(!x);”等价的语句是A while(x= =0);
14.执行下列程序段后a的值为B 2
int a=1,b=10;
do{
b-=a;a++;
}while(b--<0)
二、编程题
1.读入用户输入的6个整数并显示其平均值。
#include
main()
第五章 选择结构程序设计
基础练习(A)
一、填空题
1、关系表达式的运算结果是 逻辑 值。C语言没有逻辑型数据,以 1 代表“真”,以 0代表“假”。
2、逻辑运算符!是 单目 运算符,其结合性是由 右结合性 。
3、C语言提供的三种逻辑运算符是 && 、 || 、 ! 。其中优先级最高的为 ! ,优先级最低的为 | | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以 0 和 非0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式 (y%2==0) 。
6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 x
7、条件“22&&x<3 。
8、判断char型变量ch是否为大写字母的正确表达式是 (ch>=‘A’)&&(ch<=‘Z’) 。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是 0 。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是 1 。
11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是 0 。
12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 1 。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为 1 。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为 1 。
!(x>y)+(y!=z)||(x+y)&&(y-z)
15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为 0 。
!(x=a)&&(y=b)&&0
第五章 选择结构程序设计
要设计选择结构程序,要考虑两个方面的问题:一是在C语言中如何来表示条件,二是在C语言中实现选择结构用什么语句。
5.1 关系运算符及其表达式
所谓“关系运算”实际上就是“比较运算”,即将两个数据进行比较,判定两个数据是否符合给定的关系。
5.1.1 关系运算符及其优先次序
1.关系运算符
C语言提供6种关系运算符:
<, <=, >, >=, ==, !=
注意:在C语言中,“等于”运算符是双等号“= =”,而不是单等号“= ”(赋值运算符)。
2.优先级
(1)在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。
a >b = = c
(2)与其它种类运算符的优先级关系 关系运算符的优先级,低于算术运算符,但高于赋值运算符。
如: h+j >= k
C = a > b
3. 结合性
关系运算符都是双目运算符,结合性从左向右。
5.1.2 关系表达式
1.关系表达式的概念
所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。
一般格式: 表达式 关系运算符 表达式
a+b>c-d,(a=3)<=(b=5),'a'+1
2.关系表达式的值
关系表达式的值是逻辑值(非“真”即“假”)。由于C语言没有逻辑型数据,所以用整数“1”表示“逻辑真”即其他语言中的True,用整数“0”表示“逻辑假”即其他语言中的False。
例如,int x=1,y=2,z=3;则
(1)x>y 的值=0。结果为假
(2)(x>y)!=z 的值=1。结果为真 (3)x
思考题:任意改变x或y的值,会影响表达式(3)的值吗?为什么?
5.2 逻辑运算符及其表达式
5.2.1 逻辑运算及其优先次序
1.逻辑运算符及其运算规则
(1)C语言提供三种逻辑运算符:
&& 逻辑与 || 逻辑或 ! 逻辑非