(一)改错题
计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。
输入输出样例1:
Enterr x: 10.0
f(10.0) = 0.1
输入输出样例2:
Enter x: 234
f(234.0) = 234.0
源程序(有错误的程序)
double x,y;
printf("Enter x: \n");
scanf("=%f", x);
if(x = 10);
{
y = 1 / x
}
else (x != 10)
{
y = x;
}
printf("f(%.2f) = %.lf\n" x y);
return 0;
}
错误信息1:

错误原因1:语句以分号结束
改正方法1:在语句后加上分号
错误信息2:

错误原因2:else后不能有条件
改正方法2:将其删除
错误信息3:

错误原因3:printf语句错误,少了两个逗号分隔
改正方法3:在""后与xy之间加上逗号分隔
错误信息4:

错误原因4:if语句()内为判断语句而不是赋值语句,且不加分号
改正方法4:用判断语句x==10,且将分号去掉
错误信息5:

错误原因5:输出格式错误
改正方法5:将\n去掉
错误信息6:
错误原因6:输出格式错误
改正方法6:将%.2f改为%.1f,%.lf改为%.1f
错误信息7:
错误原因7:scanf输出时取x得地址,且应为%lf型
改正方法7:在x前加&,“”内为%lf
程序运行成功!

(二)学习总结
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
含义是判断为a且为b的时候执行语句x=x+1,否则执行y=y+1,这个else与离它最近的if配对,正确的配对方式如下:
if(a&&b)
{
x = x + 1;
}
else
{
y = y + 1;
}
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
不能,因为逻辑运算符的合并性是从左至右的,若输入的数大于10是为真,满足x>-10,此时x被赋值为1,且满足x<10,因而正确,故不能表达在区间(-10,10),正确的表达式为(x>-10&&x<10)
3.C语言中输入数据时,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?,
程序(1)
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
return 0;
}
输出结果为
原因是ab均为整型数,而a为非法字符,故认为输入结束
scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
程序(2)
int main()
{
int a, b,n;
n = scanf("%d %d", &a, &b);
printf("n = %d\n", n);
return 0;
}
输出结果为

原因是第一中输入为整型符合定义的int型,故录入,而123a中a为非法字符,故只能录取一个,当录取到a是结束
修改程序:

总结:if()内要用判断语句而不是赋值语句!
double型的输入为%lf!!
(三)实验总结
3.(1)题目
判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。
(2)流程图

(3)源代码 :

(4)测试数据及运行结果


(5)实验分析
熟悉分支结构的正确形式
5.(1)问题
计算火车运行时间本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
(2)流程图

(3)源代码
(4)测试数据及运行结果
(5)实验分析
注意输出格式,要用%02d!
7.(1)题目
三天打鱼两天晒网,中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
(2)流程图
(3)源代码
(4)测试数据及运行结果
(5)实验分析
考虑问题要全面,细心!
9.(1)题目
阶梯电价,为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费
(2)流程图
(3)源代码
(4)测试数据及运行结果
(5)实验分析
输出格式为%.2f且此处使用分支结构if,if else,else。
四.PTA提交列表
原文:http://www.cnblogs.com/J9810/p/7745908.html