本文共 1283 字,大约阅读时间需要 4 分钟。
实验目的:1.利用表达式实现简单的功能
2.学会分析程序执行时其状态(各变量的值)的变化。
实验步骤:
1.把下面的程序补充完整。程序的功能为当用户输入一个小数点位数较多的小数时,程序输出它四舍五入到小数点后两位的结果。测试数据如下:
| 第一次 | 第二次 | 第三次 |
用户输入 | 3.1415926 | 3.14592 | -3.1 |
预期输出 | 3.14 | 3.15 | -3.10 |
实际输出 |
|
|
|
#include<stdio.h>
int main()
{
float fa;
scanf("%f", &fa);
printf("%.2f\n", fa);
printf("%f\n", fa);
fa = ;
printf("%f\n", fa);
}
提示:
程序中的几处输出用于对照。程序运行时当用户输入3.1415926后,程序第一行的输出为:3.14;第二行的输出为:3.141593;第三行的输出应为:3.140000。
思路:
1)怎样去掉变量fa的小数部分?
把浮点型变量赋值给整型变量时会自动省略小数部分,如i=fa;再把此整型变量赋值给fa,如fa = i,则转换后的变量fa就没有了小数部分。
2)怎样去掉变量fa多余的小数部分?
把变量fa扩大相关倍数,如i=fa*100。再转换回去时缩小相关倍数,如fa=i/100.0。
3)如何四舍五入?
4)程序没有定义整型变量时又将如何办?
分析:
测试数据为-3.1时怎么出现错误了?
2.当用户输入2352时分析例3-11的执行过程。
#include <stdio.h>
void main( )
{
int n, sum = 0;
printf("请输入一个三位数的正整数\n");
scanf("%d", &n);
printf("(%d)", n);
sum = sum + n % 10;
printf("%d+", n % 10);
n = n / 10;
sum = sum + n % 10;
printf("%d+", n % 10);
n /= 10;
sum += n % 10;
printf("%d=%d\n", n % 10, sum);
}
语句 | 变量n | 变量sum | 运行窗口的显示 |
int n, sum = 0; | 随机 | 0 | 无 |
printf("请输入一个三位数的正整数\n"); | 随机 | 0 | 请输入一个三位数的正整数
|
scanf("%d", &n); | 2352 | 0 | 2352回车(此为用户的输入) |
printf("(%d)", n); | 2352 | 0 |
|
sum = sum + n % 10; |
|
|
|
printf("%d+", n % 10); |
|
|
|
n = n / 10; |
|
|
|
sum = sum + n % 10; |
|
|
|
printf("%d+", n % 10); |
|
|
|
n /= 10; |
|
|
|
sum += n % 10; |
|
|
|
printf("%d=%d\n", n % 10, sum); |
|
|
|
注意:
填表时不必重复运行窗口中已有的输出。
分析:
调试执行程序,并注意观察对比。
3.比照第2步的方法分析例3-12的执行过程。转载地址:http://hbdti.baihongyu.com/