内容正文:
4.5、4.6节:程序举例与C语言趣味程序实例4
一、单项选择题
1.以下代码输出结果为( )
int x = 10;
if (x > 5)
if (x < 15) printf("A");
else printf("B");}
else printf("C");
A. A B. B C. C D. 无输出
2.若变量ch为字符'a',以下代码输出结果为()
char ch = 'a';
if (ch >= 'a' && ch <= 'z') putchar(ch - 32);
else if (ch >= 'A' && ch <= 'Z') putchar(ch + 32);
else putchar(ch);
A. a B. A C. Z D. 报错
3.以下switch语句中,若score = 85,输出结果为()
int score = 85;
switch (score / 10) {
case 8: printf("A"); break;
case 9: printf("B"); break;
default: printf("C"); }
A. A B. B C. C D. 编译错误
4.以下代码中,若输入x = 20,输出结果为()
int x;
scanf("%d", &x);
if (x % 2 == 0)
if (x % 5 == 0) printf("Yes");
else printf("No1");
else printf("No2");
A. Yes B. No1 C. No2 D. 无输出
5.以下代码中,若ch为字符'3',输出结果为()
char ch = '3';
switch (ch) {
case '1': case '2': case '3': printf("Low"); break;
case '4': case '5': case '6': printf("Mid"); break;
default: printf("High"); }
A. Low B. Mid C. High D. 编译错误
6.在switch语句中,case后的常量表达式()
A. 只能是整型常量表达式 B. 可以是任意类型的常量表达式
C. 只能是字符型常量表达式 D. 可以是变量表达式
7.以下关于if-else语句的说法,错误的是()
A. 一个if可以没有对应的else B. 一个else必须对应一个if
C. 多个if可以共用一个else D. if-else语句可以嵌套使用
8.以下关于条件运算符"?:"的说法,正确的是()
A. 它是C语言中唯一的三目运算符 B. 它的优先级高于所有算术运算符
C. 它不能嵌套使用 D. 它的结合性是从右到左
9.以下程序段的输出结果是()
int a = 5, b = 10;
if (a++ > 5 && b-- > 5)
printf("A: %d %d", a, b);
else
printf("B: %d %d", a, b);
A. A: 6 9 B. A: 6 10 C. B: 6 10 D. B: 6 9
10.以下代码段中,与其他三个功能不同的是( )
A. if (x) a = 1; else a = 0; B. a = (x != 0);
C. a = (x) ? 1 : 0; D. a = -1; if (!x) a = 0;
二、填空题。
1.表达式5 > 3 > 1的值是___________。
2.表达式!5 + 3的值是___________。
3.设int x=5;,表达式x%2==0?x/2:x*2的值是___________。
4.表达式5>3 && 2 || 8<4-!0的值是___________。
5.设int a=1,b=2,c=3,d=4;,表达式a<b?a:c<d?c:d的值是___________。
6.设int a=3,b=4,c=5;,表达式!(a+b)+c-1 && b+c/2的值是___________。
7.设int m=5,n=10;,表达式(m > n) ? m++ : (n > 5) ? n-- : m+n的值是___________。
8.设int a=2,b=3;表达式(a=4)&& (b=5) || (a=6)的值是_____,执行后a=_____,b=______。
9.设int a=3,b=4,c=5;,表达式a + b > c && b == c的值是___________。
10.表达式(3 + 4 > 6) && (2 * 3 == 6) || (5 - 2 < 3)的值是___________。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 7, y = 3;
if (x > y)
if (x % 2 == 0) printf("Even");
else printf("Odd");
else {
switch (y) {
case 1: printf("One"); break;
case 3: printf("Three"); break;
default: printf("Other"); }
} }
2.若输入n = 1234,以下代码输出结果为:________________。
#include <stdio.h>
main()
{ int n;
scanf("%d", &n);
if (n / 1000 == 1)
if (n % 10 == 4) printf("Yes");
else if (n / 100 == 23) printf("No");
else printf("Maybe"); }
3.若输入字符ch = 'G',以下代码输出结果为:________________。
#include <stdio.h>
main()
{ char ch;
scanf("%c", &ch);
if (ch >= 'A' && ch <= 'Z')
if (ch == 'G' || ch == 'P') putchar(ch);
else putchar(ch + 1);
else putchar(ch - 1);
}
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 1, b = 1;
if (a++ || b++)
printf("T: %d %d", a, b);
else
printf("F: %d %d", a, b); }
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 1, b = 2, c = 3, d = 4;
if (a > b && c++ > d)
printf("A: %d %d %d %d
", a, b, c, d);
else if (a < b || d++ > c)
printf("B: %d %d %d %d
", a, b, c, d);
else printf("C: %d %d %d %d
", a, b, c, d);
if (c > d ? a < b : b > a) printf("Conditional true
");
else printf("Conditional false
");
}
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 5, y = 3, z = 2;
switch (x - y)
{ case 1: printf("Case 1: ");
switch (z) {
case 1: printf("Z=1 "); break;
case 2: printf("Z=2 ");
case 3: printf("Z=3 "); break;
default: printf("Z default "); }
break;
case 2:printf("Case 2: ");
if (z == 2) printf("Z is 2 ");
else if (z == 3) printf("Z is 3 ");
else printf("Z is other ");
break;
default: printf("Default case "); }
printf("
End of switch
");
if ((x > y) ? (y > z) : (x < z)) printf("Nested conditional true
");
else printf("Nested conditional false
");
}
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 0, b = 1, c = 2, d = 3;
if (a++ && ++b || c-- && --d)
printf("First: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
else
printf("Second: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
if ((a = b) > (c = d) ? a + b : c + d)
printf("Third: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
else
printf("Fourth: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
switch (a + b + c + d) {
case 0:case 1:case 2:case 3:case 4:case 5:
printf("Sum 0-5
"); break;
case 6:case 7:case 8:case 9:case 10:
printf("Sum 6-10
"); break;
default: printf("Sum >10
"); } }
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 3, b = 4, c = 5,d;
if (a++ > 3 && ++b < 5 || c-- > 4)
printf("Path 1: a=%d, b=%d, c=%d
", a, b, c);
else
printf("Path 2: a=%d, b=%d, c=%d
", a, b, c);
d = (a > b) ? (b > c) ? 10 : 20 : (c > a) ? 30 : 40;
switch (a + b - c) {
case 1: printf("Case 1: ");
if (d > 15) printf("d>15");
else printf("d<=15");
break;
case 2: printf("Case 2: ");
switch (d % 3) {
case 0: printf("d mod 3=0"); break;
case 1: printf("d mod 3=1"); break;
case 2: printf("d mod 3=2"); break; }
break;
default: printf("Default: a+b-c=%d", a+b-c); } }
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int a = 5, b = 3, c = 2;
int result = 0;
if (a > b)
if (b > c) result = 1;
else result = 2;
else if (a > c) result = 3;
else result = 4;
printf("Result: %d
", result);
switch (result) {
case 1: printf("Path A
"); break;
case 2: printf("Path B
"); break;
case 3: printf("Path C
"); break;
default: printf("Path D
"); }}
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int p = 2, q = 3, r = 4;
int result = 0;
if (p > q) result = 10;
else
if (q > r) result = 20;
else if (r > p + q) result = 30;
else result = 40;
printf("Result: %d
", result);
int check = (result > 25) ? 1 : 2;
printf("Check: %d
", check);
if (check == 1 && result != 40) printf("Condition met
");
else printf("Condition not met
");}
四、程序填空题(根据题意,将空缺的语句补上)
1.以下代码实现输入字符转换为对应ASCII码,若输入字符为'5',请在横线处填入正确条件:
char c;
scanf("%c", &c);
if (______)
printf("%d", c - '0');
else
printf("Error");
2.以下代码判断闰年,请在横线处补充完整逻辑:
int year;
scanf("%d", &year);
if (______) {
printf("Leap year");
} else {
printf("Not leap year"); }
3.以下程序输入三个数,按从大到小的顺序输出:
#include <stdio.h>
main() {
int a, b, c, t;
printf("请输入三个整数: ");
scanf("%d%d%d", &a, &b, &c);
if (a < b) { t = a; a = b; b = t; }
if (__________) { t = a; a = c; c = t; }
if (__________) { t = b; b = c; c = t; }
printf("%d %d %d
", a, b, c);}
4.以下程序判断一个字符是否为字母:
#include <stdio.h>
main() {
char ch;
printf("请输入一个字符: ");
scanf("%c", &ch);
if (__________________________________) printf("%c是字母
", ch);
else printf("%c不是字母
", ch);}
5.以下程序实现简单的计算器功能(支持+、-、*、/):
#include <stdio.h>
main() {
char op;
float num1, num2, result;
printf("请输入表达式(如 2 + 3): ");
scanf("%f %c %f", &num1, &op, &num2);
switch (op) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/':
if (__________) { result = num1 / num2; }
else { printf("错误: 除数不能为0
"); return 1; }
break;
default: printf("错误: 无效的运算符
"); return 1; }
printf("结果: %.2f
", result); }
五、编程题。
1. 编写程序,输入一个整数,判断其是否为5的倍数且不是7的倍数。若是,输出"Yes",否则输出"No"。
2.编写程序,输入一个四位正整数,若其逆序数(如1234的逆序为4321)与原数相等,输出"YES",否则输出"NO"(要求不使用循环结构)。
3.编写程序,根据用户输入的身高(cm)和性别('M'或'F'),判断是否符合标准体重(男性:身高-105,女性:身高-110,误差±5kg内为符合)。输出"达标"或"未达标"。
4.输入三个不同的整数,找出其中间值(既不是最大也不是最小的数)。
5.输入一个不多于4位的正整数,将其逆序输出。例如输入1234,输出4321。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
4.5、4.6节:程序举例与C语言趣味程序实例4
一、单项选择题
1.以下代码输出结果为( )
int x = 10;
if (x > 5)
if (x < 15) printf("A");
else printf("B");}
else printf("C");
A. A B. B C. C D. 无输出
【答案】A
【解析】外层if (x > 5)成立,内层if (x < 15)成立,输出A。
2.若变量ch为字符'a',以下代码输出结果为( )
char ch = 'a';
if (ch >= 'a' && ch <= 'z') putchar(ch - 32);
else if (ch >= 'A' && ch <= 'Z') putchar(ch + 32);
else putchar(ch);
A. a B. A C. Z D. 报错
【答案】B
【解析】字符'a'满足小写条件,执行putchar(ch - 32)输出大写A。
3.以下switch语句中,若score = 85,输出结果为( )
int score = 85;
switch (score / 10) {
case 8: printf("A"); break;
case 9: printf("B"); break;
default: printf("C"); }
A. A B. B C. C D. 编译错误
【答案】A
【解析】score / 10 = 8匹配case 8,输出A并退出。
4.以下代码中,若输入x = 20,输出结果为( )
int x;
scanf("%d", &x);
if (x % 2 == 0)
if (x % 5 == 0) printf("Yes");
else printf("No1");
else printf("No2");
A. Yes B. No1 C. No2 D. 无输出
【答案】A
【解析】因为 20 既能被 2 整除,也能被 5 整除,所以输出 "Yes"。
5.以下代码中,若ch为字符'3',输出结果为( )
char ch = '3';
switch (ch) {
case '1': case '2': case '3': printf("Low"); break;
case '4': case '5': case '6': printf("Mid"); break;
default: printf("High"); }
A. Low B. Mid C. High D. 编译错误
【答案】A
【解析】 ch匹配case '3',落入case '1'~'3'组,输出Low。
6.在switch语句中,case后的常量表达式( )
A. 只能是整型常量表达式 B. 可以是任意类型的常量表达式
C. 只能是字符型常量表达式 D. 可以是变量表达式
【答案】A
【解析】switch语句中case后的表达式必须是整型常量表达式。
7.以下关于if-else语句的说法,错误的是( )
A. 一个if可以没有对应的else B. 一个else必须对应一个if
C. 多个if可以共用一个else D. if-else语句可以嵌套使用
【答案】C
【解析】每个else只与它前面最近的未匹配的if配对,不能多个if共用一个else。
8.以下关于条件运算符"?:"的说法,正确的是( )
A. 它是C语言中唯一的三目运算符 B. 它的优先级高于所有算术运算符
C. 它不能嵌套使用 D. 它的结合性是从右到左
【答案】A
【解析】条件运算符是C语言中唯一的三目运算符,优先级低于算术运算符,可以嵌套使用,结合性是从右到左。
9.以下程序段的输出结果是( )
int a = 5, b = 10;
if (a++ > 5 && b-- > 5)
printf("A: %d %d", a, b);
else
printf("B: %d %d", a, b);
A. A: 6 9 B. A: 6 10 C. B: 6 10 D. B: 6 9
【答案】C
【解析】a++>5,先判断a>5(5>5为假),a自增为6,逻辑与短路,b--不执行,执行else,输出B: 6 10。
10.以下代码段中,与其他三个功能不同的是( )
A. if (x) a = 1; else a = 0; B. a = (x != 0);
C. a = (x) ? 1 : 0; D. a = -1; if (!x) a = 0;
【答案】D
【解析】A、B、C都是x非0时a=1,x=0时a=0。
二、填空题。
1.表达式5 > 3 > 1的值是___________。
【答案】0
【解析】5>3为1,1>1为0。
2.表达式!5 + 3的值是___________。
【答案】3
【解析】!5为0,0+3=3。
3.设int x=5;,表达式x%2==0?x/2:x*2的值是___________。
【答案】10
【解析】x%2==0为假,取x*2=10。
4.表达式5>3 && 2 || 8<4-!0的值是___________。
【答案】1
【解析】5>3为1,1&&2为1,!0为1,4-1=3,8<3为0,1||0为1。
5.设int a=1,b=2,c=3,d=4;,表达式a<b?a:c<d?c:d的值是___________。
【答案】1
【解析】a<b为真,取a=1,后面的条件表达式不计算。
6.设int a=3,b=4,c=5;,表达式!(a+b)+c-1 && b+c/2的值是___________。
【答案】1
【解析】 !(a+b)=!(7)=0,0+c-1=4,b+c/2=4+2=6,4&&6=1。
7.设int m=5,n=10;,表达式(m > n) ? m++ : (n > 5) ? n-- : m+n的值是___________。
【答案】10
【解析】m>n假,执行(n>5)?n--:m+n,n>5真,执行n--,n先取值10,表达式值为10,n自减为9。
8.设int a=2,b=3;表达式(a=4)&& (b=5) || (a=6)的值是_____,执行后a=_____,b=______。
【答案】1、4、5
【解析】(a=4)值为4(真),(b=5)值为5(真),4&&5=1,逻辑或短路,(a=6)不执行,a=4,b=5。
9.设int a=3,b=4,c=5;,表达式a + b > c && b == c的值是___________。
【答案】0
【解析】a+b>c为7>5真(1),b==c为4==5假(0),1&&0=0。
10.表达式(3 + 4 > 6) && (2 * 3 == 6) || (5 - 2 < 3)的值是___________。
【答案】1
【解析】 3+4>6为7>6真(1),2 * 3==6为6==6真(1),1&&1=1,5-2<3为3<3假(0),1||0=1。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 7, y = 3;
if (x > y) {
if (x % 2 == 0) {
printf("Even");
} else {
printf("Odd");
}
} else {
switch (y) {
case 1: printf("One"); break;
case 3: printf("Three"); break;
default: printf("Other"); }
} }
【答案】 Odd
2.若输入n = 1234,以下代码输出结果为:________________。
#include <stdio.h>
main()
{ int n;
scanf("%d", &n);
if (n / 1000 == 1) {
if (n % 10 == 4) {
printf("Yes");
}
} else if (n / 100 == 23) {
printf("No");
} else {
printf("Maybe"); }
}
【答案】Yes
3.若输入字符ch = 'G',以下代码输出结果为:________________。
#include <stdio.h>
main()
{ char ch;
scanf("%c", &ch);
if (ch >= 'A' && ch <= 'Z') {
if (ch == 'G' || ch == 'P') {
putchar(ch);
} else {
putchar(ch + 1);
}
} else {
putchar(ch - 1); }
}
【答案】G
4.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{
int a = 1, b = 1;
if (a++ || b++) {
printf("T: %d %d", a, b);
}
else {
printf("F: %d %d", a, b);
}
}
【答案】T: 2 1
5.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 1, b = 2, c = 3, d = 4;
if (a > b && c++ > d)
printf("A: %d %d %d %d
", a, b, c, d);
else if (a < b || d++ > c)
printf("B: %d %d %d %d
", a, b, c, d);
else
printf("C: %d %d %d %d
", a, b, c, d);
if (c > d ? a < b : b > a)
printf("Conditional true
");
else
printf("Conditional false
");
}
【答案】
B: 1 2 3 4
Conditional true
6.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int x = 5, y = 3, z = 2;
switch (x - y)
{ case 1:
printf("Case 1: ");
switch (z) {
case 1: printf("Z=1 "); break;
case 2: printf("Z=2 ");
case 3: printf("Z=3 "); break;
default: printf("Z default "); }
break;
case 2:
printf("Case 2: ");
if (z == 2)
printf("Z is 2 ");
else if (z == 3)
printf("Z is 3 ");
else
printf("Z is other ");
break;
default:
printf("Default case ");
}
printf("
End of switch
");
if ((x > y) ? (y > z) : (x < z))
printf("Nested conditional true
");
else
printf("Nested conditional false
");
}
【答案】
Case 2: Z is 2
End of switch
Nested conditional true
7.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 0, b = 1, c = 2, d = 3;
if (a++ && ++b || c-- && --d)
printf("First: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
else
printf("Second: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
if ((a = b) > (c = d) ? a + b : c + d)
printf("Third: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
else
printf("Fourth: a=%d, b=%d, c=%d, d=%d
", a, b, c, d);
switch (a + b + c + d) {
case 0:case 1:case 2:case 3:case 4:case 5:
printf("Sum 0-5
");
break;
case 6:case 7:case 8:case 9:case 10:
printf("Sum 6-10
");
break;
default:
printf("Sum >10
"); } }
【答案】
First: a=1, b=1, c=1, d=2
Third: a=1, b=1, c=2, d=2
Sum 6-10
8.写出下列程序段的输出结果:________________。
#include <stdio.h>
main()
{ int a = 3, b = 4, c = 5,d;
if (a++ > 3 && ++b < 5 || c-- > 4)
printf("Path 1: a=%d, b=%d, c=%d
", a, b, c);
else
printf("Path 2: a=%d, b=%d, c=%d
", a, b, c);
d = (a > b) ? (b > c) ? 10 : 20 : (c > a) ? 30 : 40;
switch (a + b - c) {
case 1:
printf("Case 1: ");
if (d > 15) printf("d>15");
else printf("d<=15");
break;
case 2:
printf("Case 2: ");
switch (d % 3) {
case 0: printf("d mod 3=0"); break;
case 1: printf("d mod 3=1"); break;
case 2: printf("d mod 3=2"); break; }
break;
default: printf("Default: a+b-c=%d", a+b-c); } }
【答案】
Path 1: a=4, b=4, c=4
Default: a+b-c=4
9.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int a = 5, b = 3, c = 2;
int result = 0;
if (a > b)
if (b > c) result = 1;
else result = 2;
else if (a > c) result = 3;
else result = 4;
printf("Result: %d
", result);
switch (result) {
case 1: printf("Path A
"); break;
case 2: printf("Path B
"); break;
case 3: printf("Path C
"); break;
default: printf("Path D
"); }
}
【答案】
Result: 1
Path A
10.写出下列程序段的输出结果:________________。
#include <stdio.h>
main() {
int p = 2, q = 3, r = 4;
int result = 0;
if (p > q) result = 10;
else
if (q > r) result = 20;
else if (r > p + q) result = 30;
else result = 40;
printf("Result: %d
", result);
int check = (result > 25) ? 1 : 2;
printf("Check: %d
", check);
if (check == 1 && result != 40)
printf("Condition met
");
else
printf("Condition not met
");
}
【答案】
Result: 40
Check: 1
Condition not met
四、程序填空题(根据题意,将空缺的语句补上)
1.以下代码实现输入字符转换为对应ASCII码,若输入字符为'5',请在横线处填入正确条件:
char c;
scanf("%c", &c);
if (______) {
printf("%d", c - '0');
} else {
printf("Error"); }
【答案】 c >= '0' && c <= '9'
2.以下代码判断闰年,请在横线处补充完整逻辑:
int year;
scanf("%d", &year);
if (______) {
printf("Leap year");
} else {
printf("Not leap year"); }
【答案】 (year % 4 == 0 && year % 100 != 0) || year % 400 == 0
3.以下程序输入三个数,按从大到小的顺序输出:
#include <stdio.h>
main() {
int a, b, c, t;
printf("请输入三个整数: ");
scanf("%d%d%d", &a, &b, &c);
if (a < b) { t = a; a = b; b = t; }
if (__________) { t = a; a = c; c = t; }
if (__________) { t = b; b = c; c = t; }
printf("%d %d %d
", a, b, c);
}
【答案】 a < c、b < c
4.以下程序判断一个字符是否为字母:
#include <stdio.h>
main() {
char ch;
printf("请输入一个字符: ");
scanf("%c", &ch);
if (_________________________________________) {
printf("%c是字母
", ch);
} else {
printf("%c不是字母
", ch);
}
}
【答案】 (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')
5.以下程序实现简单的计算器功能(支持+、-、*、/):
#include <stdio.h>
main() {
char op;
float num1, num2, result;
printf("请输入表达式(如 2 + 3): ");
scanf("%f %c %f", &num1, &op, &num2);
switch (op) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/':
if (__________) {
result = num1 / num2; }
else { printf("错误: 除数不能为0
");
return 1; }
break;
default: printf("错误: 无效的运算符
");
return 1; }
printf("结果: %.2f
", result); }
【答案】num2 != 0
五、编程题。
1. 编写程序,输入一个整数,判断其是否为5的倍数且不是7的倍数。若是,输出"Yes",否则输出"No"。
【参考代码】
#include <stdio.h>
main()
{ int n;
scanf("%d", &n);
if (n % 5 == 0 && n % 7 != 0)
{ printf("Yes"); }
else
{ printf("No"); } }
2.编写程序,输入一个四位正整数,若其逆序数(如1234的逆序为4321)与原数相等,输出"YES",否则输出"NO"(要求不使用循环结构)。
【参考代码】
#include <stdio.h>
main()
{ int n;
scanf("%d", &n);
int a = n / 1000, b = (n / 100) % 10, c = (n / 10) % 10, d = n % 10;
int m = d * 1000 + c * 100 + b * 10 + a;
if (m == n)
{ printf("YES"); }
else
{ printf("NO"); }
}
3.编写程序,根据用户输入的身高(cm)和性别('M'或'F'),判断是否符合标准体重(男性:身高-105,女性:身高-110,误差±5kg内为符合)。输出"达标"或"未达标"。
【参考代码】
#include <stdio.h>
main()
{ int height,stdWeight,weight;
char gender;
printf("请输入身高、性别、体重:
");
scanf("%d %c %d", &height, &gender,&weight);
if (gender == 'M')
{ stdWeight = height - 105; }
else if (gender == 'F')
{ stdWeight = height - 110; }
else
{ printf("性别输入错误"); exit(1); }
if (weight>=stdWeight-5&&weight<=stdWeight+5)
{ printf("达标"); }
else
{ printf("未达标"); }
}
4.输入三个不同的整数,找出其中间值(既不是最大也不是最小的数)。
【参考代码】
#include <stdio.h>
main() {
int a, b, c, mid;
printf("请输入三个不同的整数: ");
scanf("%d%d%d", &a, &b, &c);
if ((a > b && a < c) || (a < b && a > c)) {
mid = a;}
else if ((b > a && b < c) || (b < a && b > c)) {
mid = b; }
else { mid = c; }
printf("中间值是: %d
", mid);}
5.输入一个不多于4位的正整数,将其逆序输出。例如输入1234,输出4321。
【参考代码】
#include <stdio.h>
main() {
int num, reversed = 0;
printf("请输入一个正整数(不超过4位): ");
scanf("%d", &num);
if (num < 0 || num > 9999) {
printf("输入错误
");
return 1; }
// 通过if-else实现逆序
if (num < 10) {
reversed = num; }
else if (num < 100)
{ reversed=(num%10)*10+num/10; }
else if (num < 1000)
{ reversed=(num%10)*100+((num/10)%10)*10+num/100; }
else {
reversed=(num%10)*1000+((num/10)%10)*100+((num/100)%10)*10+num/1000;}
printf("逆序数: %d
", reversed);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$