91、以下程序在不同条件下的输出是什么:程序代码为 #include int main(void) { int i, j; for(i = j; i < 10; j++) printf(“One\n”); return 0; } a. 当 j 为 10 时;b. 当 j 为 3 时。
- a. 由于
i初始化为 10,条件i < 10(10 < 10)为假,循环不执行,程序无输出。 - b. 由于
i初始化为 3,条件i < 10(3 < 10)为真,但在循环中i的值未改变,j的值不断增加,条件i < 10始终为真,循环永不结束,程序会一直输出 One,严重降低计算机性能。
92、以下程序的输出是什么?#include int main(void) { int i = 0, j = 5; for(i > j; i+j == 5; j < 2) { printf(“One\n”); i = 4; j = 2; } printf(“%d %d\n”, i, j); return 0;}
程序不会输出 One,最终输出 0 5 。因为 for 循环的初始化表达式、条件表达式和更新表达式使用错误,正确的 for 循环格式为:
for (初始化表达式; 条件表达式; 更新表达式)
这里的 i > j 、 j < 2 不能起到初始化和更新的作用,而条件表达式 i + j == 5 初始时为假,循环体不会执行。
93、一个测试包含10道多项选择题,每道题有三个可能的答案。第一个答案得3分,第二个答案得1分,第三个答案得2分。编写一个程序,使用switch语句读取考生的10个答案并显示最终分数。
以下是使用C语言编写的满足需求的程序:
#include <stdio.h>
int main() {
int answer, score = 0;
for (int i = 1; i <= 10; i++) {
printf("请输入第 %d 题的答案 (1, 2, 3): ", i);
scanf("%d", &answer);
switch (answer) {
case 1:
score += 3;
break;
case 2:
score += 1;
break;
case 3:
score += 2;
break;
default:
printf("输入无效,请输入 1, 2 或 3。\n");
i--; // 重新输入本题答案
}
}
printf("最终分数为: %d\n", score);
return 0;
}
该程序会循环10次,每次提示用户输入答案,根据输入使用 switch 语句判断得分并累加到总分中,最后输出最终分数。如果输入无效,会提示用户重新输入本题答案。
94、以下程序的输出是什么?#include int main(void) { int i, j; for(i = 10, j = 2; i != j; i-=2, j+=2) printf(“%d %d\n”, i, j); return 0;}
10 2
8 4
6 6
95、编写一个程序,读取一个在[0, 170]范围内的整数,并显示其阶乘。正整数n(n ≥ 1)的阶乘定义为1 × 2 × 3 × … × n,而0的阶乘等于1(0! = 1)。
#include <stdio.h>
int main(void) {
int i, num;
double fact;
printf("Enter number within [0, 170]: ");
scanf("%d", &num);
if(num >= 0 && num <= 170) {
fact = 1;
for(i = 1; i <= num; i++)
fact = fact * i;
printf("Factorial o

最低0.47元/天 解锁文章
1408

被折叠的 条评论
为什么被折叠?



