三个数从小到大排序并输出
任意输入3个整数,使用if语句对这3个整数由小到大进行升序排序。请判断下面哪一项无法实现该功能。
#include <stdio.h>
/* 交换x和y */
void swap(int* x, int* y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main(int argc, char** argv)
{
int a, b, c;
printf("请输入 a,b,c:\n");
scanf("%d,%d,%d", &a, &b, &c);
(_____1_____)
printf("升序排序结果:\n");
printf("%d,%d,%d", a, b, c);
return 0;
}
C语言if语句流程图:
答案是:B
B中如果a小于等于b,不执行任何代码块了,所以B是错误的。
两数较大值
输入两个整数,使用if-else语句求两个整数之间的较大值。以下四个选项中,请判断哪一项是错误的。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
int num_1 = 0;
int num_2 = 0;
int max_num = 0;
printf("请输入第1个整数:");
scanf("%d", &num_1);
printf("请输入第2个整数:");
scanf("%d", &num_2);
(_____1_____)
printf("两数之间的较大值为:%d", max_num);
return 0;
}
C语言if-else语句流程图:
答案是:D
A中abs是取绝对值,如果条件判断里相等,说明num_1-num_2不是负数,num_1大于等于num_2;
BC中直接指明了num_1是大于等于num_2的;
D中只指明num_1大于等于max_num,max_num初始值是0,假设num_1是1,num_2是2,满足D中条件,打印的max_num是1,显然是不对的。
判断三角形的类型
输入三角形各边的长度,并判断三角形的类型。请判断下列选项中,哪一项无法正确判断三角形的类型。
#include <stdio.h>
#include <math.h>
int main(int argc, char** argv)
{
float a, b, c;
printf("请输入三角形的三条边:");
scanf("%f,%f,%f", &a, &b, &c);
(_____1_____)
return 0;
}
C语言else-if语句流程图:
答案是:D
D中在判断三角形是等腰三角形时,忽略了两边之和大于第三边的前提条件。
假设a=1,b=1,c=3,满足a == b || a == c || b == c,但是并不构成三角形。
成绩转换
输入成绩(百分制),将成绩转换为相应的等级,并输出。具体转换规则为:
- 大于等于90分为等级A;
- 小于90分且大于等于80分为等级B;
- 小于80分且大于等于70分为等级C;
- 小于70分且大于等于60分为等级D;
- 小于60分为等级E。
请从以下选项中选出能使下面代码正确运行的一项。
#include<stdio.h>
int main(int argc, char** argv)
{
int score;
printf("请输入成绩:");
scanf("%d", &score);
if ((score > 100) || (score < 0))
{
printf("请输入百分制的成绩!");
return 0;
}
int quotient = score / 10;
(_____1_____)
return 0;
}
C语言switch语句流程图:
答案是:C
在需要跳出的时候,在语句后面加上break;
swich(表达式)
{
case 常量1: 语句1;break;
case 常量2: 语句2;break;
...
case 常量n: 语句n;break;
default: 语句n+1;break;
}