02-条件与循环控制
1. if 条件判断
条件表达式是用来执行不同的计算,key 根据条件的结果是真还是假走不通的执行逻辑。
1.1 if 语句
if 语句称为条件控制结构,因为它在一个表达式为真时执行语句。由于这个原因,if 也称为决策结构。它的形式为:
if (expression) {
// code to be executed if the condition is true
statements
}
表达式 expression
为真或假,执行语句 statements
可以是单个语句或由大括号 { }
包围的代码块。
例如:
#include <stdio.h>
int main() {
int score = 89;
if (score > 75)
printf("You passed.\n");
return 0;
}
int x = 10;
if (x > 5) {
printf("x is greater than 5");
}
在上面的代码中,我们检查变量 score
是否大于 75,如果条件为真,则打印一条信息。
填空,如果变量 a
大于 b
则打印 "hello":
int a = 13;
int b = 12;
___(a >___) {
printf("hello");
}
获取用户输入,判断用户输入的是奇数还是偶数。
1.2 关系运算符
有 6 个关系运算符可以用来形成一个条件表达式(也称为布尔表达式),它返回真或假:
<
: 小于<=
: 小于或等于>
: 大于>=
: 大于或等于==
: 等于!=
: 不等于
例如:
#include <stdio.h>
int main() {
int num = 41;
num += 1;
// 判断num 是否等于42
if (num == 42) {
printf("You won!");
}
}
结果为非零值的表达式被认为是真的。
例如:
#include <stdio.h>
int main() {
int in_stock = 20;
if (in_stock)
// in_stock 非0,所以为真
printf("Order received.\n");
}
下面哪些是用于判断相等的关系运算符?
A. !=
B. *
C. +=
D. ==
1.3 if-else 语句
如果你想在条件为真时执行一个代码块,而在条件为假时执行另一个代码块,你可以使用 if-else
。
if 语句可以包括一个可选的 else 子句,当表达式为假时执行 else 语句。
语法:
if (condition) {
// code to be executed if the condition is true
} else {
// code to be executed if the condition is false
}
例如,下面的程序先评估表达式,然后执行 else 子句:
#include <stdio.h>
int main() {
int score = 89;
if (score >= 90)
printf("Top 10%%.\n");
else
printf("Less than 90.\n");
return 0;
}
int x = 3;
if (x > 5) {
printf("x is greater than 5");
} else {
printf("x is 5 or less");
}
填空,如果变量people
大于10,则打印"More than 10",否则打印"Less than 10":
int people = 12;
___(people ___ 10)
printf("More than 10.\n");
___
printf("Less than 10.\n");
1.4 if-else if-else 语句
当你有多个条件要检查时,可以使用 if-else if-else
。
当需要在三个或更多条件中做出决定时,可以使用 if-else if 语句。
if (condition1) {
// code to be executed if condition1 is true
} else if (condition2) {
// code to be executed if condition2 is true
} else {
// code to be executed if neither condition is true
}
int x = 5;
if (x > 10) {
printf("x is greater than 10");
} else if (x > 5) {
printf("x is greater than 5 but less than or equal to 10");
} else {
printf("x is 5 or less");
}
#include <stdio.h>
int main() {
int score = 89;
if (score >= 90)
printf("%s", "Top 10% \n");
else if (score >= 80)
printf("%s", "Top 20% \n");
else if (score > 75)
printf("%s", "You passed.\n");
else
printf("%s", "You did not pass.\n");
}
在编写一个 if-else if 语句时,要仔细考虑其中的逻辑。程序逐个检测每个分支,并执行第一个表达式为真的语句,其余的表达式都不会被测试。
尽管缩进不会影响编译后的代码,但当 else 语句对齐时,if-else if 的逻辑更易阅读理解。
注意
在可能的情况下,if-else if 语句比嵌套的 if 语句要好,这样更加清晰易懂。
填空,如果数字 num
为正数,则打印"positive";如果 num
是负数,则打印 "negative";否则就打印 "zero"。
int num = -14;
if (num > 0)
printf("positive");
else ___(num < 0)
printf("negative");
___
printf("zero");
1.5 嵌套的 if 语句
你可以在另一个 if
语句内部使用 if
语句。
一个 if 语句可以包括另一个 if 语句,形成一个嵌套的条件语句。嵌套的 if 可以形成复杂的条件判断。
if (condition1) {
// code
if (condition2) {
// code
}
}
int x = 15, y = 20;
if (x > 10) {
if (y > 15) {
printf("Both conditions are true.");
}
}
if (profit > 1000)
if (clients > 15)
bonus = 100;
else
bonus = 25;
适当地缩进嵌套语句将有助于向读者阐明其含义。然而,一定要明白,除非用大括号 { }
来改变关联,否则 else 语句是与最接近的 if 相关的。
if (profit > 1000) {
if (clients > 15)
bonus = 100;
}
else
bonus = 25;
补全嵌套if语句中缺失的部分,并打印相应的信息。
int x = 37;
if (x > 22) {
___ (x > 31) {
___ ("x is greater than 22 and 31");
}
}
1.6 条件表达式「三元操作符」
除了 if-else
,C 语言还提供了一个有用的条件操作符,有时也被称为三元操作符。
另一种类似 if-else 语句的语法是在条件表达式中使用
?:
操作符。
?:
是 C 语言中的三目运算符,可以用来替代 if—else
语句。
?:
的使用方法为:
<表达式1>?<表达式2>:<表达式3>
condition ? value_if_true : value_if_false;
它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式 2 的值;如果为假,则返回表达式 3 的值。
#include <stdio.h>
int main() {
int y;
int x = 3;
y = (x >= 5) ? 5 : x;
/* 这等价于
if (x >= 5)
y = 5;
else
y = x;
*/
return 0;
}
// 写出她的等价表达式「拆开的 if」
int x = 10, y = 20;
int max;
max = (x > y) ? x : y; // max will be 20
填空,使用 ?:
运算符,如果 x
大于或等于 5,将 8 赋值给 y
; 如果 x
小于5,将 x
的值赋值给 y
。
int x = 12;
int y = (x >= 5) ___ 8 ___ x;
1.7 小试牛刀
1.7.1 Question 1 找出最大值
获取用户输入三个值,并赋值给三个变量,找出三个变量中的最大值并输出。
Answer
#include <stdio.h>
int main() {
int a, b, c, max;
// 获取用户输入
printf("Enter three integers separated by spaces: ");
scanf("%d %d %d", &a, &b, &c);
// 初始假设a是最大的
max = a;
// 检查b是否比当前的max大
if (b > max) {
max = b;
}
// 检查c是否比当前的max大
if (c > max) {
max = c;
}
// 输出最大值
printf("The largest number is: %d\n", max);
return 0;
}
1.7.2 Question 2 连续整数序列判断
描述:给定三个整数,编写一个程序来检查它们是否形成一个连续的整数序列。
示例输入:
3 2 4
示例输出:
Yes
Answer
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三个数字: ");
scanf("%d %d %d", &a, &b, &c);
// 对数字进行排序,使得后续的检查更加简单。
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
if (a > b) {
int temp = a;
a = b;
b = temp;
}
// 排序后,如果数字是连续的,那么 b 应该是 a + 1,c 应该是 b + 1
if (b == a + 1 && c == b + 1) {
printf("是\n");
} else {
printf("否\n");
}
return 0;
}
1.7.3 Question 3 奇偶性和正负性组合判断
描述:输入两个整数,编写一个程序来判断它们的奇偶性和正负性,并输出以下其中一个结果:
- Both numbers are positive and even.
- Both numbers are positive and odd.
- Both numbers are negative and even.
- Both numbers are negative and odd.
- One number is positive and even, while the other is positive and odd.
...(其他组合)
示例输入:
4 -3
示例输出:
One number is positive and even, while the other is negative and odd.
Answer
#include <stdio.h>
int main() {
int x, y;
printf("请输入两个数字: ");
scanf("%d %d", &x, &y);
// 检查数字的正负性以及奇偶性
if (x > 0 && y > 0) {
if (x % 2 == 0 && y % 2 == 0) {
printf("两个数字都是正的并且是偶数。\n");
} else if (x % 2 != 0 && y % 2 != 0) {
printf("两个数字都是正的并且是奇数。\n");
} else {
printf("一个数字是正的偶数,另一个是正的奇数。\n");
}
} else if (x < 0 && y < 0) {
if (x % 2 == 0 && y % 2 == 0) {
printf("两个数字都是负的并且是偶数。\n");
} else if (x % 2 != 0 && y % 2 != 0) {
printf("两个数字都是负的并且是奇数。\n");
} else {
printf("一个数字是负的偶数,另一个是负的奇数。\n");
}
} else {
if ((x > 0 && x % 2 == 0) || (y > 0 && y % 2 == 0)) {
printf("一个数字是正的偶数,另一个是负数。\n");
} else {
printf("一个数字是正的奇数,另一个是负数。\n");
}
}
return 0;
}
1.7.4 Question 4 日期有效性检查
描述:输入一个日期(由日、月和年组成),检查其是否是有效的。考虑平年和闰年。请注意,你只需要使用 if
语句,并且不需要使用其他知识点。
示例输入:
29 2 2023
示例输出:
Invalid date
Answer
#include <stdio.h>
int main() {
int day, month, year;
printf("请输入一个日期 (日 月 年): ");
scanf("%d %d %d", &day, &month, &year);
int max_day = 31; // 假设默认每个月都有31天
if (month == 2) {
// 检查是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
max_day = 29; // 闰年的2月有29天
} else {
max_day = 28; // 非闰年的2月有28天
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
max_day = 30; // 有些月份只有30天
}
// 判断日期的有效性
if (day < 1 || day > max_day || month < 1 || month > 12) {
printf("日期无效\n");
} else {
printf("日期有效\n");
}
return 0;
}
2. switch 开关语句
2.1 switch语句
开关 switch 语句通过将表达式的结果与常量值进行比较来实现程序控制。
switch 语句通常为 if-else if 和嵌套 if 语句提供了一个更优雅的解决方案。
基本的 switch 语法为:
switch (expression) {
case val1:
statements
break;
case val2:
statements
break;
default:
statements
}
例如,以下程序输出 "Three":
#include <stdio.h>
int main() {
int num = 3;
switch (num) {
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
case 3:
printf("Three\n");
break;
default:
printf("Not 1, 2, or 3.\n");
}
}
注意
为什么需要 break?——如果没有 break,则会在匹配之后执行后续的代码。代码示例如下:
#include <stdio.h>
int main() {
int num = 3;
switch (num) {
case 1:
printf("One\n");
break;
case 3:
printf("Two\n");
// break;
case 22:
printf("Three\n");
break;
default:
printf("Not 1, 2, or 3.\n");
}
}
// --- output ---
Two
Three
哪个选项是 switch
开关语句的正确语法?
A. switch test;
B. SWITCH test { }
C. switch (test) { }
switch 可以有多个 case。
可选的默认 default 在没有其他匹配的情况下被执行。
每个 case 中都需要一个 break 语句,从而执行后跳出 switch 语句。
如果没有 break 语句,程序的执行就会落到下一个 case 语句上。当多个 case 会执行相同逻辑,这一点很有用。考虑下面的 switch 语句:
#include <stdio.h>
int main() {
int num = 3;
switch (num) {
case 1:
case 2:
case 3:
printf("One, Two, or Three.\n");
break;
case 4:
case 5:
case 6:
printf("Four, Five, or Six.\n");
break;
default:
printf("Greater than Six.\n");
}
}
以这种方式构建 switch 语句时,必须谨慎行事。之后的修改可能会导致意外的结果。
填空,测试变量 num
的值为3
、5
和42
时,打印不同的文本。
___ (num) {
case 3:
printf("a prime number");
break;
___ 5:
printf("another prime number");
___;
case 42:
printf("the meaning of life");
break;
}
3. 逻辑运算符
在 C 语言中,逻辑运算符用于比较两个或多个表达式,它们包括:
&&
:逻辑与(AND)||
:逻辑或(OR)!
:逻辑非(NOT)
逻辑运算符
&&
和||
用于形成一个复合布尔表达式,测试多个组合条件。第三个逻辑运算符是!
,用于反转布尔表达式的结果。
3.1 逻辑与 (&&
)
此运算符用于验证两个表达式是否都为真。如果都为真,则整个表达式的结果为真。如果其中一个或两者都为假,则整个表达式的结果为假。
逻辑与运算符&&
只有在两个表达式都为真时才会返回一个真结果。
例如:
#include <stdio.h>
int main() {
int n = 42;
if (n > 0 && n <= 100)
printf("Range (1 - 100).\n");
}
int a = 5;
int b = 10;
if (a == 5 && b == 10) {
printf("Both conditions are true\n");
}
上面的语句只组合了两个表达式,但逻辑运算符可以用来连接多个表达式。
一个复合布尔表达式从左到右进行评估。当不需要进一步测试来确定结果时,评估就会停止,所以当一个结果影响到后面的结果时,一定要考虑表达式的顺序。
填空,如果n
大于等于0且小于100,则打印"Yes"。
int n = 42;
___(n >= 0 ___ n < 100) {
printf("Yes");
}
3.2 逻辑或 (||
)
此运算符用于验证两个表达式中是否至少有一个为真。如果其中一个为真或两者都为真,则整个表达式的结果为真。如果两者都为假,则整个表达式的结果为假。
当任何一个表达式或两个表达式都为真时,逻辑或运算符||
会返回一个真结果。
例如:
#include <stdio.h>
int main() {
char n = 'X';
if (n == 'x' || n == 'X')
printf("Roman numeral value 10.\n");
}
int a = 5;
int b = 15;
if (a == 5 || b == 10) {
printf("At least one of the conditions is true\n");
}
任何数量的表达式都可以用 &&
和 ||
连接。 例如:
#include <stdio.h>
int main() {
int n = 42;
if (n == 999 || (n > 0 && n <= 100))
printf("Input valid.\n");
}
注意
为了清楚起见,使用了括号 ()
类似算术表达式,将 n > 0 && n <= 100
标记为一个整体。()
可以改变运算的优先级。
填空,如果字符n
等于'x'或'X' 则打印"Roman"。
if (n == 'x' ___ n == 'X') {
printf("Roman");
}
3.3 逻辑非 (!
)
此运算符用于反转表达式的逻辑值。如果表达式为真,则它会返回假,反之亦然。
逻辑非运算符 !
对结果进行取反。 NOT true
返回 false
,而 NOT false
返回 true
。
例如:
#include <stdio.h>
int main() {
char n = 'V';
if (!(n == 'x' || n == 'X'))
printf("Roman numeral is not 10.\n");
}
int a = 5;
if (!a == 6) {
printf("a is not equal to 6\n");
}
注意
在 C 语言中,任何非零值都被认为是真,0
是假。 因此,逻辑非运算符将真值转换为 0
,假值转换为 1
。
下面代码的输出结果是?
int x = 3;
if(!(x > 2 || y < 0)) {
printf("true");
} else {
printf("false");
}
3.4 小示例
为了更好地理解这些逻辑运算符,让我们考虑一个简单的示例:一个程序,当温度在某个范围内并且天气为晴时,建议用户外出散步。
#include <stdio.h>
int main() {
int temperature = 24; // 假设温度是24°C
int isSunny = 1; // 假设天气是晴朗的(1表示真,0表示假)
if (temperature >= 20 && temperature <= 30 && isSunny) {
printf("天气很好,建议您外出散步!\n");
} else {
printf("或许您应该留在室内。\n");
}
return 0;
}
4. while 循环语句
while 语称为循环结构,因为它在一个表达式为真时重复执行语句,不断循环。它的语法为:
while (表达式) {
循环体语句
}
表达式评估为真或假,执行体代码可以是单一语句,或者由大括号 { }
括起来的代码块。 例如:
#include <stdio.h>
int main() {
int count = 1;
while (count < 8) {
printf("Count = %d\n", count);
count++;
}
return 0;
}
上面的代码将输出 count 变量 7 次。
while 循环在每次进入循环之前都要评估条件,所以 while 语句有可能永远不执行,也可能永远执行(死循环)。
注意
一个死循环是一个无限地继续下去的循环,因为循环条件从未评估为假。这可能导致运行时错误。
Test one:
- 1~100 以内的奇数和;
- 1~100 以内的偶数和;
答案
#include <stdio.h>
int main() {
int oddSum = 0; // 奇数和
int evenSum = 0; // 偶数和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
evenSum += i; // 如果是偶数,加到偶数和上
} else {
oddSum += i; // 如果是奇数,加到奇数和上
}
}
printf("1~100之间的奇数和为: %d\n", oddSum);
printf("1~100之间的偶数和为: %d\n", evenSum);
return 0;
}
#include <stdio.h>
int main() {
int oddSum = 0; // 奇数和
int evenSum = 0; // 偶数和
int i = 1;
while (i <= 100) {
if (i % 2 == 0) {
evenSum += i; // 如果是偶数,加到偶数和上
} else {
oddSum += i; // 如果是奇数,加到奇数和上
}
i++; // 在循环的末尾增加 i 的值
}
printf("1~100之间的奇数和为: %d\n", oddSum);
printf("1~100之间的偶数和为: %d\n", evenSum);
return 0;
}
填空,循环打印"hello" 5次:
int n = 0;
___ (n < 5) {
printf("hello\n");
___ ++;
}
5. do-while 循环语句
do-while 进入循环时不做检查,先在循环中执行一次之后再来检查循环的条件是否满足,若满足则进行下一次的循环,否则退出循环。
它的语法为:
do {
statements
} while (expression);
表达式评估为真或假,语句可以是单个语句或由大括号 { }
包围的代码块。 例如:
#include <stdio.h>
int main() {
int count = 1;
do {
printf("Count = %d\n", count);
count++;
} while (count < 8);
return 0;
}
注意 while 语句后面的分号 ;
。 do-while 循环总是至少执行一次,即使表达式的评估结果为假。
注意
do-while 与 while 的区别:
两者循环有类似的地方,区别在于进行检查循环条件的位置不同,do-while 无论条件是否满足都会先执行一次再进行判断,而 while 是先进行条件判断,再进行循环
下面代码,会打印多少次 count
变量?
int count = 1;
do {
printf("%d\n", count);
count++;
} while (count < 8);
A. 8
B. 7
C. 9
6. do...while 和 while 的抉择
在 C 语言中,while
和 do-while
循环是常用的控制结构,它们之间的主要区别是判断条件的位置和执行顺序。根据实际需要选择合适的循环结构是很重要的。
- while 循环:首先判断条件,如果条件满足,则执行循环体,否则退出循环。
while (条件) {
// 循环体
}
- do-while 循环:首先执行一次循环体,然后判断条件,如果条件满足,再次执行循环体,否则退出循环。
do {
// 循环体
} while (条件);
选择依据:
- 当你需要确保循环体至少执行一次时,应该选择
do-while
循环。 - 当你希望在进入循环之前先判断条件是否满足时,应该选择
while
循环。
举例:
- 例子1:从用户输入中读取数字,直到用户输入一个正数。
使用 do-while
循环是更好的选择,因为我们至少希望用户输入一次。
#include <stdio.h>
int main() {
int num;
do {
printf("请输入一个正数:");
scanf("%d", &num);
} while (num <= 0);
printf("你输入的正数是:%d\n", num);
return 0;
}
- 例子2:打印小于 5 的所有正整数。
在这里,使用 while
循环更为适合,因为我们需要先检查数字是否小于5。
#include <stdio.h>
int main() {
int i = 1;
while (i < 5) {
printf("%d\n", i);
i++;
}
return 0;
}
总之,选择 while
还是 do-while
主要基于实际需求。希望你能根据上面的例子明白它们的区别和使用场景。
7. break 和 continue语句
在 switch 语句中已经看到了 break 的用法。它对于立即退出一个循环也很有用。
例如,下面的程序使用 break 来退出一个 while 循环。
#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
if (num == 3) {
break;
}
printf("%d\n", num);
num--;
}
return 0;
}
这个程序打印:
5
4
然后退出循环。
当你想保留在循环中,但跳到下一个迭代时,你可以使用 continue 语句。 例如:
#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
num--;
if (num == 3) {
continue;
}
printf("%d\n", num);
}
}
程序输出:
4
2
1
0
你可以看到,数值 3 被跳过。
在上面的代码中,如果 num 在 continue 语句之后才递减,就会产生一个无限的循环。
注意
尽管 break 和 continue 声明很方便,但也很容易导致程序执行的逻辑有问题。
填空,当num
变为2时,退出循环:
int num = 5;
while (num > 0) {
___ (num == ___ )
___;
printf("%d\n", num);
num--;
}
8. break 与 continue 的抉择
在 C 语言中,break
和 continue
都是循环控制语句,但它们的用途和效果是不同的。
break 语句:用于立即退出循环,跳过循环后的其余部分,并执行循环后的下一个语句。
continue 语句:用于立即跳过当前迭代的其余部分,并执行下一个循环迭代。
举例:
- 例子1:找出 0 到 10 之间的第一个能被 3 和 5 同时整除的数字。
使用 break
使循环在找到符合条件的数字后立即停止。
#include <stdio.h>
int main() {
int i;
for (i = 0; i <= 10; i++) {
if (i % 3 == 0 && i % 5 == 0) {
printf("第一个能被3和5同时整除的数字是:%d\n", i);
break;
}
}
return 0;
}
- 例子2:打印 0 到 10 之间的数字,但跳过所有能被 3 整除的数字。
使用 continue
在当前迭代遇到能被 3 整除的数字时跳过。
#include <stdio.h>
int main() {
int i;
for (i = 0; i <= 10; i++) {
if (i % 3 == 0) {
continue;
}
printf("%d\n", i);
}
return 0;
}
使用依据:
- 当你需要中断循环并跳出循环时(如搜索问题),使用
break
。 - 当你只想跳过循环的当前迭代并继续下一次迭代时,使用
continue
。
9. for 循环
for 语句是一个循环结构,它执行固定次数的循环。语法如下:
for (initvalue; condition; increment) {
statements;
}
- initvalue:一个设置为初始值的计数器。这一部分的 for 循环只执行一次。
- condition:一个布尔表达式,在每次循环前将计数器与一个值进行比较,当返回假时停止循环。
- increment: 将计数器增加(或减少)一个设定值。
例如,下面的程序打印 0 到 9:
#include <stdio.h>
int main() {
int i;
int max = 10;
for (i = 0; i < max; i++) {
printf("%d\n", i);
}
}
填空,循环打印数字 0
到 5
:
int x;
int end = 5;
___(x = 0; x <= end; x++) {
___("%d\n", ___);
}
for 循环可以包含多个表达式,每个部分用逗号 ,
分隔。 例如:
for (x = 0, y = num; x < y; i++, y--) {
statements;
}
另外,你可以跳过 initvalue、condition 或 increment。
例如:
#include <stdio.h>
int main() {
int i=0;
int max = 10;
for (;i < max; i++) {
printf("%d\n", i);
}
}
循环也可以是嵌套的。
当以这种方式编写程序时,有一个外循环和一个内循环。对于外循环的每一次迭代,内循环都会重复其整个周期。
在下面的例子中,嵌套的 for 循环被用来输出一个乘法表:
#include <stdio.h>
int main() {
int i, j;
int table = 10;
int max = 12;
for (i = 1; i <= table; i++) {
for (j=0; j <= max; j++) {
printf("%d x %d = %d\n", i, j, i*j);
}
printf("\n"); /* 打印换行 */
}
return 0;
}
#include<stdio.h>
int main() {
int i, j;
for (i = 1; i <= 9; i++) { // 外循环控制行
for (j = 1; j <= i; j++) { // 内循环控制列
printf("%d*%d=%d\t", j, i, i * j); // 使用\t实现制表符间隔
}
printf("\n"); // 每完成一行乘法后换行
}
return 0;
}
注意
内循环中的 break 退出内循环,继续执行外循环。continue 语句的作用与此类似。
下面代码,执行多少次循环?
for (int i = 0; i < 5; i++) { }
小测验
- 填空,输入数字存储在变量
age
中。 如果age
大于 21 岁,则输出 "允许喝酒"。如果age
小于 10 岁,则输出"学习数学"。
int age;
scanf("%d", & ___ );
___(age > 21) {
printf("允许喝酒");
}
else if (___ < 10) {
printf("学习数学");
}
int age;
scanf("%d", &age);
if (age > 21) {
printf("允许喝酒");
}
else if (age < 10) {
printf("学习数学");
}
- 填空,使用 do-while 循环结果,打印数字 0 到 5.
int c = 0;
___{
printf("%d", c);
___++;
} while (c <= 5)___
int c = 0;
do {
printf("%d", c);
c++;
} while (c <= 5);
- 填空,使用 for 循环,打印"pythontip" 3 次。
___(int i = 0; i ___3; ++i) {
printf("pythontip");
}
for(int i = 0; i < 3; ++i) {
printf("pythontip");
}
- 填空,使用 switch 语句,打印数字对应的英文:
___ (num) {
case 1:
printf("one");
break;
___ 2:
printf("two");
___;
case 3:
printf("three");
break;
}
switch (num) {
case 1:
printf("one");
break;
case 2:
printf("two");
break;
case 3:
printf("three");
break;
}
- 填空,如果
age
大于 17 且小于等于 99,则输出"I can drive
":
int age = 25;
___ (age > 17 ___ age < 99){
printf("I can drive");
}
int age = 25;
if (age > 17 && age < 99){
printf("I can drive");
}
公众号:AI悦创【二维码】

AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux、Web、Sql」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
