三个数从小到大排序并输出
任意输入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;}