一.代码练习
1.观察以下代码,判断程序输出什么内容()
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void){
int x = 3;
int y = 3;
switch (x % 2){
case 1:
switch (y){
case 0:
printf("first");
case 1:
printf("second");
default:
printf("hello");
}
case 2:
printf("third");
}
getchar();
return 0;
}
A.secondthied
B.hello
C.firstsecond
D.hellothird
答案:D,我们先来分析最外层的switch语句,其语句的表达式为x%2读作x模2,也就是3%2=1,其满足case1的子语句,case1子句中嵌套了一层switch语句,其表达式为 switch(3) ,case子句中只有 0 和 1 不满足条件,所以执行default语句中的内容,输出一个hello,由于外层switch语句中case1子句并未添加break循环终止语句,所以case2子句也会被执行输出一个third,所以最终答案是hellothird,如图所示:
2.写一段代码将三个数字从大到小输出
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void){
int x, y, z;
scanf("%d %d %d",&x,&y,&z);
//目标 变量x存最大值 y次之 z存最小值
if (x < y){
int tmp = x;
x = y;
y = tmp;
}
if (x < z){
int tmp = x;
x = z;
z = tmp;
}
if (y < z){
int tmp = y;
y = z;
z = tmp;
}
printf("X=%d Y=%d Z=%d\n",x,y,z);
getchar();
getchar();
return 0;
}
3.写一段代码将1-100以内是三的倍数的数字进行输出
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void){
int i = 1;
while (i<100){
if (i % 3 == 0){
printf("%d ",i);
}
i++;
}
getchar();
return 0;
}
2023/7/28
王起舟