资源描述
.
C语言阶段复习〔二〕
复习提纲:
第五讲 选择结构程序设计
第六讲 循环结构程序设计
分章复习:
第五讲 选择结构程序设计
容提要:
1、 关系运算符
<,>,==,!=,>=,<=
2、 逻辑运算符
&&,||,!
3、 条件运算符
?:
4、 三种if结构
1) 简单if形式
if 〔表达式〕
语句;
2) 、if-else形式
if〔表达式〕
语句1;
else
语句2;
3) if-else-if形式
if(表达式1) 语句1;
else if (表达式2) 语句2;
else if (表达式3) 语句3;
……
else if (表达式n) 语句n;
else 语句n+1;
使用if语句考前须知:
• if语句自动结合后面的一条语句,如果需要执行多条语句,需要用{ }包括所有要执行的语句。
• if后面表达式的形式很灵活,可以是常量,变量,任意类型的表达式,可以是函数,指针等。只要表达式非零时,值就为真,否那么就是假。
• if与else的匹配关系遵循“就近一致原那么〞,每个else与离他最近的没有其他else配对的if配对。
5、 switch语句
switch ( 表达式)
{ case 常量c1: 语句组 1; break;
case 常量c2 : 语句组 2; break;
…….
case 常量cn : 语句组 n; break;
[default: 语句组 ; break;]
}
swith语句使用提示:
〔1〕、swith后面的表达式一般是整型,每个case后面的“常量表达式〞的类型应该其一致。
〔2〕、每个case后面的常量表达式的值必须不一样,否那么会出现错误。
〔3〕、每个case后面必须是“常量表达式〞,不可以是变量
〔4〕、break语句的使用
〔5〕、switch语句可以嵌套
第六讲 循环结构程序设计
容提要:
1、while语句
一般形式:while (表达式)
循环体语句;
2、do-while语句
一般形式: do
循环体语句;
while(表达式);
Ø while最后面的;不要省略
Ø 如果do-while语句中的表达式值一开场就为假,循环体还是会被执行一次
int a = 0, b = 0;
do
b++;
while (a > 0) ;
3、for语句
一般形式
for (表达式1;表达式2;表达式3)
循环体语句;
表达式1:赋值表达式,给循环变量赋初值
表达式2:关系表达式,或者逻辑表达式,
作为循环控制条件
表达式3:赋值表达式,给循环变量增量或
者减量
练习题:
一、选择题
1. 假设有程序段如下:
a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c)x=3;
else x=4;
执行后,变量x的值是〔 〕
A.34 B.4 C.35 D.3
2. 以下if语句中,不正确的选项是〔 〕
A.if (x<y)scanf (“%d〞,&x)else scanf (“%d〞, &y);
B.if (x<y);
C.if (x==y)x+=y;
D.if (x<y){x++;y++;}
3. 假设有int x=3;,执行程序段:
do
{
printf("%3d",x-=2);
}while(!(--x));
输出的结果是〔 〕
A.1 3 B.1 -1 C.1 -2 D.1 -3
4. 有程序段:
int a;
for (scanf (“%d〞,&a);!a;)
printf (“continue〞);
那么for语句中的!a等价于〔 〕。
〔A〕a!=0 〔B〕a= =0 〔C〕a>0 〔D〕a>=0
5. 有如下程序段:
int x=1,y=1;
int m,n;
m=n=1;
switch (m)
{
case 0:x=x*2;
case 1:
{
switch (n)
{
case 1:x=x*2;
case 2:y=y*2;break;
case 3:x++;
}
}
case 2:x++;y++;
case 3:x*=2;y*=2;break;
default:x++;y++;
}
执行完成后,x和y的值分别是〔 〕。
〔A〕x=6 y=6 〔B〕x=2 y=1 〔C〕x=2 y=2 〔Dx=7 y=7
6. 以下描述不正确的选项是。
A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成
B.while循环是先判断表达式,后执行循环语句
C.do-while 和for循环均是先执行循环语句,后判断表达式
D.for、while 和do-while循环中的循环体均可以由空语句构成
7. 假设x是int型变量,以下程序的输出结果是。
for (x=3;x<6;x++)
printf ((x%2)?(“**%d〞):( “##%d\n〞),x);
printf (“\n〞);
A.* * 3 B.# # 3 C.# # 3 D.* * 3 # # 4
# # 4 * * 4 * * 4# # 5 * * 5
* * 5 # # 5
8. 设j为int型变量,那么下面for 循环语句的执行结果是。
for (j=10;j>3;j--)
{
if (j%3)j--;
--j;--j;
printf ("%d",j);
}
A〕6 3 B〕7 4 C〕6 2 D〕7 3
9. 以下循环体的执行次数是。
#include <stdio.h>
void main()
{
int i,j;
for (i=0,j=1;i<=j+1;i+=2,j--)
printf ("%d\n",i);
}
A〕3 B〕2 C〕1 D〕0
10. 以下程序的输出结果是。
#include <stdio.h>
void main( )
{
int a=-1,b=1,k;
if((++a<0)&&!(b--<=0)) printf("%d %d\n",a,b);
else printf("%d %d\n", b, a);
}
A〕-1 1 B〕0 1 C〕1 0 D〕0 0
11. 以下程序的输出结果是。
#include <stdio.h>
void main( )
{
int i;
for(i=1;i<6;i++)
{
if(i%2)
{
printf("#");
continue;
}
printf("*");
}
printf("\n");
}
A〕#*#*# B〕##### C〕***** D〕*#*#*
12. 在以下选项中,没有构成死循环的程序段是。
A〕int i=100 B〕for(;;); C〕int k=1000; D〕int s=36;
while(1) do while(s);
{i=i%100+1; {++k;} s++;
if(i>100)break; while(k>=10000);
}
13. 下面程序的输出结果是〔 〕。
#include <stdio.h>
void main( )
{
int x=3;
do{
printf("%3d",x+=1);
}while(--x);
}
A〕4 B〕4 4
C〕4 4 4 D〕死循环
14. 当执行以下程序段时_______。
x=-1;
do
{
x=x*x;
}while(!x)
A〕循环体将执行一次 B〕循环体将执行两次
C〕循环体将执行无限次 D〕会提示有语法错误
15. 以下表达正确的选项是_______。
A〕do-while语句构成的循环不能用其它语句构成的循环代替
B〕do-while语句构成的循环只能用break语句退出
C〕用do-while语句构成的循环,在while后的表达式为非0时完毕循环
D〕用do-while语句构成的循环,在while后的表达式为0时完毕循环
16. 以下程序执行后,sum的值是_______。
#include <stdio.h>
void main()
{
int n,sum;
for(n=1;n<6;n++)
sum+=n;
printf("%d\n",sum);
}
A〕15 B〕14 C〕0 D〕不确定
二、填空题
⒈ 结构化程序设计规定的三种根本结构是〔顺序结构〕结构、选择结构和〔循环结构〕结构。
2. break语句只能用于循环①语句和选择② 语句。
3. 在循环控制中,break语句用于完毕当前循环体①,continue语句用于完毕②本次循环 。
4. 写出程序段的输出结果1。
int a=100;
if (a>100) printf ("%d\n ",a>100);
else printf ("%d\n ",a<=100);
5. 假设变量已正确定义,以下语句段的输出结果是*#。
x=0; y=2; z=3;
switch(x)
{
case 0:
switch(y==2)
{
case 1: printf("*");break;
case 2: printf("%");break;
}
case 1:
switch(z)
{
case 1: printf("$");
case 2: printf("*");break;
default: printf("#");
}
}
6. 以下程序运行后的输出结果是3。
#include <stdio.h>
void main()
{
int p=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
7. 有以下程序
#include <stdio.h>
void main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d \n",d);
else if ((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出结果是。〔2003年4月〕
A〕2 B〕3 C〕4 D〕编译时有错,无结果
8. 在if-else结构中,else子句不能作为语句单独使用,必须与__if_配对使用,且假设if和else后面有多条语句,那么需用_大括号__将其成为一个复合语句。
9.while循环结构中,当表达式为___时执行其中的嵌语句;循环体如果包含一个以上的语句,应该用___括起来。
10. 如果表达式x>y为真或a<b为真,那么表达式(x>y&&a<b)为真。对吗?_【_1_】_。
三、编程题
⒈编一个程序,输入华氏温度〔F〕,按以下公式计算并输出对应的摄氏温度〔C〕:
C=5〔F-32〕/9
⒉编一个程序,输入一个整数,输出其符号〔假设≥0,输出1;假设<0,输出-1〕。
⒊编一个程序,输入x的值,按以下公式计算并输出y的值:
┌ x (x≤1)
y=┤ 2x-1 (1<x<10)
└ 3x-11 (10≤x)
4用三种循环语句分别编写程序显示1--100的平方值。
8 / 8
展开阅读全文