1、以下程序的输出是什么?#include int main(void) { int i = 100; i = i+i; printf(“V1:%d V2:%d\n”, i+i, i); return 0; }
V1:400 V2:200
2、以下程序的输出是什么?#include int main(void) { int i = 30; float j = 10.65; printf(“%f %d\n”, i, j); return 0; }
程序输出未定义。因为使用 %f 打印整型变量 i ,用 %d 打印浮点型变量 j ,不符合变量类型,会产生未定义行为。一般会输出错误的数值。
3、编写一个程序,声明两个整数,分别赋值为50和20,并显示它们的和、差、积、精确的商(即2.5)以及余数(即10)。使用%运算符来求余数。
#include <stdio.h>
int main(void){
int i = 50, j = 20;
printf("Sum = %d\n", i + j);
printf("Diff = %d\n", i - j);
printf("Product = %d\n", i * j);
printf("Div = %f\n", (double)i / j);
printf("Rem = %d\n", i % j);
return 0;
}
4、以下程序用于显示两个浮点数的平均值。这段代码有错误吗?#include int main(void) { double i = 12, j = 5, avg; avg = i+j/2; printf(“Avg = %.2f\n”, avg); return 0; }
- 有。
- 代码中计算平均值的公式有误,正确的平均值计算应为
(i + j) / 2。 - 原代码
avg = i + j / 2先计算j / 2再与i相加,并非两数平均值。
5、编写一个程序,将一个两位正整数赋值给一个整型变量,并显示其各位数字之和。例如,如果赋值为 35,程序应显示 8。
#include <stdio.h>
int main(void) {
int i, j, k;
i = 35;
j = i / 10;
k = i - (10 * j);
printf("Sum = %d\n", j + k);
return 0;
}
注释 :
i/10计算i的十位数字。可以省略j和k的声明,直接写:
c printf("Sum = %d\n", i / 10 + (i - (10 * (i / 10))));
6、编写一个程序,声明两个浮点型变量(例如 i、j),为它们赋两个正值(例如 3.45 和 6.78),并交换它们的整数部分(即 i 变为 6.45,j 变为 3.78)。
#include <stdio.h>
int main(void){
int k;
float i = 3.45, j = 6.78, tmp;
tmp = i - (int)i; /* 获取小数部分 */
k = (int)i; /* 保存整数部分,在改变其值之前 */
i = (int)j + tmp;
tmp = j - (int)j;
j = k + tmp;
printf("%f %f\n", i, j);
return 0;
}
7、编写一个程序,使用一个 printf() 函数显示以下图案:* * * * *
以下是实现该功能的 C 语言程序:
#include <stdio.h>
int main() {
printf("* * * * *");
return 0;
}
8、编写一个程序,将一个两位数的正数值赋给一个整数变量,并显示其各位数字之和。例如,如果赋值为 35,程序应显示 8。
#include <stdio.h>
int main(void) {
int i, j, k;
i = 35;
j = i / 10;
k = i - (10 * j);
printf("Sum = %d\n", j + k);
return 0;
}
注释: i/10 这一项计算 i 的十位数字。注意,我们可以省略 j 和 k 的声明,直接写成 </
C语言常见问题解析

最低0.47元/天 解锁文章
274

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



