---恢复内容开始---

(一)改错题

输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉。计算公式如下:

c = 5×(f-32)/9

其中,c表示摄氏温度,f表示华氏温度。

输入输出样例1:

  Enter lower:32

  Enter upper:35

  fahr celsius

  32 0.0

  34 1.1

输入输出样例2:

  Enter lower:40

  Enter upper:30

  fahr celsius

源程序(有错误的程序)

#include <stdio.h>
int main(void)
{
int fahr , lower, upper; /* fahr表示华氏度 */
double celsius; /* celsius表示摄氏度 */ printf("Enter lower:");
scanf("%d",&lower);
printf("Enter upper:");
scanf("%d",&upper);
printf("fahr celsius\n"); /* 显示表头 */
/* 温度转换 */
for (fahr = lower , fahr <= upper, fahr ++) ;
celsius = 5 /9 * (fahr - 32.0);
printf("%3.0f %6.1f\n", fahr, celsius); return 0;
}

错误信息1:



错误原因:for后面加了分号

改正方法:把for后面的分号去掉

错误信息2:



错误原因:for后面的语句没有用分号

改正方法:for后面的语句把逗号改成分号

编译无错:



错误信息3:

错误原因:fahr定义的是int类型,输出不应该用%f,celsius保留一位小数

改正方法:把%f改为%d,%6.1f改为%.1lf

错误信息4:

错误原因:for循环体没有用花括号括起来,导致不能循环

改正方法:用花括号把循环体括起来

错误信息5:

错误原因:题目要求每次增加2℉,但是程序只增加了1

改正方法:令fahr=fahr+2

错误信息6:

错误原因:定义的celsius为double类型,所以表达式celsius = 5 /9 * (fahr - 32.0); 应该强制转换类型为double

改正方法:在5/9前面加上(double)

编译结果:

第二组数据:

程序正确

(二)学习总结

1.有如下程序:

#include <stdio.h>
int main()
{
int i,num,odd,even;
odd = 0;
even = 0;
for(i = 1; i <= 10;i++)
{
scanf("%d",&num);
if(num % 2 == 0)
{
even++;
}
else
{
odd++;
}
}
printf("%d %d",even,odd);
return 0;
}

详细描述程序的执行过程,即说明程序的每一步是执行的哪条代码,执行顺序如何。循环需描述前两次循环和最后一次循环的详细执行过程。最后说明程序实现的功能是什么。

答: 1.定义四个变量,其中令odd等于0,even等于0,

2. 做循环体,i=1,输入num , 如果num为双数,则even=even+1,也就是even等于1,如果num为单数,则odd=odd+1,odd等于1,再输入num,继续执行循环体

3. 然后循环,i=1,当i小于等于10的时候执行循环体,循环为 输入num,当num是双数的时候,even+1,当num为单数的时候,odd+1,然后i+1,直到i<=10,循环体结 束,输出even和odd。

4.最后一次循环:这是i=10,输入num,当num是双数的时候,even+1,当num为单数的时候,odd+1,i加1,i=11,不满足条件,输出even和odd

5.程序把输入的一组10个数字 ,分双数单数,输出双数单数各有多少个。

2.增量运算符

(1)运行下面程序,结果是什么?增量运算符在单独使用时,前缀和后缀形式有区别吗?

#include <stdio.h>
int main()
{
int i,j;
i = 2;
j = 2;
i++;
++j;
printf("i = %d\n",i);
printf("j = %d\n",j);
return 0;
}

运行结果:

增量运算符在单独使用时,前缀和后缀形式没有区别,都表示加一。

(2)运行下面的程序,结果是什么?两条输出语句的执行过程是怎样的?说明什么问题?这两条输出语句执行完后,i和j的值分别是多少?

#include <stdio.h>
int main()
{
int i,j;
i = 2;
j = 2;
printf("%d\n",i++);
printf("%d\n",++j);
return 0;
}

运行结果:

1.第一条输出语句为先输出i,再i=i+1,第二条输出语句为 先j=j+1,再输出j。

2.说明增量运算符在不单独使用的情况下前缀后缀形式有区别。

3.i和j的值分别是2,3

3.有些循环语句后面有{},有些没有,有些语句有缩进,运行下面的四个小程序,运行结果有什么不同?循环体的认定与缩格形式是否有关?与{}是否有关?那么,应该如何正确判断一个循环语句中的循环体?下面的程序中,哪几种格式是正确的缩进格式。

(1)

#include <stdio.h>
int main()
{
int i;
for(i = 1;i <= 5;i++)
printf("*");
printf("\n");
return 0;
}

运行结果:

(2)

#include <stdio.h>
int main()
{
int i;
for(i = 1;i <= 5;i++)
printf("*");
printf("\n");
return 0;
}

运行结果:

(3)

#include <stdio.h>
int main()
{
int i;
for(i = 1;i <= 5;i++)
{
printf("*");
printf("\n");
}
return 0;
}

运行结果:

(4)

#include <stdio.h>
int main()
{
int i;
for(i = 1;i <= 5;i++)
{
printf("*");
}
printf("\n");
return 0;
}

运行结果:

1.根据以上四个程序看来,循环体的认定与缩格形式无关,与{}有关。

2.判断循环体:有for,并且for后面有{} 才认为是正确的循环体结构

3.第三个和第四个是正确的。

4.对其他你认为需要进行总结的内容进行总结。

(1)for()里面最后一个语句不需要加分号。

(2)定义什么类型,就输出什么类型,要对应。

(3)需要强制转换的时候要强制转换。

(4)复制代码的时候要首行缩进

(三)实验总结

本次实验总结,学号末位数是单数的同学完成循环结构(1)中的1、3、5、7题,学号末位数是双数的同学完成循环结构(1)中的2、4、6、8题。

7-2 统计学生平均成绩与及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

(2)流程图

(3)源代码

#include<stdio.h>
int main()
{
int i,N,grade,sum,count;
float average;
sum = 0;count = 0;
scanf("%d",&N);
for(i = 1;i <= N;i++)
{
scanf("%d",&grade);
sum = sum + grade;
if(grade >= 60)
{
count ++;
}
}
average = (float)sum/N;
printf("average = %.1f\n",average);
printf("count = %d",count);
}

(4)实验分析

<1>average需要强制转换

(5)本题PTA提交列表

7-4 到底是不是太胖了(15 分)

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

(2)流程图

(3)源代码

#include<stdio.h>
int main()
{
int i,N,x;
double a,b,y;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d %lf",&x,&y);
y=y/2;
a=(x-100)*(0.9);
b=a/10.0;
if(y>=(a+b))
{
printf("You are tai pang le!\n");
}
else if(y<=(a-b))
{
printf("You are tai shou le!\n");
}
else
{
printf("You are wan mei!\n");
}
}
return 0;
}

(4)实验分析

做这道题的感受就是 脑子特别懵,想了很长时间,总是想不通胖瘦的范围该怎么表示,后来知道了,算出标准体重再加减10%就可以了。

(5)本题PTA提交列表

7-6 统计学生成绩(10 分)

本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:

大于等于90分为A;

小于90且大于等于80为B;

小于80且大于等于70为C;

小于70且大于等于60为D;

小于60为E。

(2)流程图

(3)源代码

#include<stdio.h>
int main()
{
int N,grade,i,A=0,B=0,C=0,D=0,E=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&grade);
if((grade>=90)&&(grade<=100))
{
A=A+1;
}
if((grade>=80)&&(grade<90))
{
B=B+1;
}
if((grade>=70)&&(grade<80))
{
C=C+1;
}
if((grade>=60)&&(grade<70))
{
D=D+1;
}
else
{
E=E+1;
}
}
printf("%d %d %d %d %d",A,B,C,D,E);
return 0;
}

(4)实验分析

这个题最大的问题就是把ABCD这些字母写成了小写的。

(5)本题PTA提交列表

7-8 找出最小值(10 分)

本题要求编写程序,找出给定一系列整数中的最小值。

(2)流程图

(3)源代码

   #include<stdio.h>
int main()
{
int i,n,x,min;
scanf("%d",&n);
scanf("%d",&x);
min=x;
if(n!=1)
{
for(i=0;i<n-1;i++)
{
scanf("%d",&x);
if(x<min)
{
min=x;
}
}
}
printf("min = %d",min);
return 0;
}

(4)实验分析

最开始应该跟谁比较,这个一直搞不懂,后来通过跟同学交流,解决了问题。

(5)本题PTA提交列表

(四)博客互评

http://www.cnblogs.com/dsy7777777/p/7818827.html

http://www.cnblogs.com/zxh980818/p/7812974.html

http://www.cnblogs.com/LLIU/p/7810044.html

c语言第五次作业0的更多相关文章

  1. C语言第五次作业——循环结构

    C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ...

  2. C语言第五次作业函数

    一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...

  3. c语言第五次作业--函数

    一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ...

  4. C语言--第五次作业--指针

    1.本章学习总结 1.1 思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 没想到都已经学习完C语言的灵魂-指针的内容了(当然也是C里面最难学习的内容了).虽然在之前就有听学习进度比较 ...

  5. c语言第五次作业-指针-总结博客

    本次作业亮点 1.1整体情况 本次作业主要是对上次的大作业利用指针进行改进,但是大部分同学并没有很好按照老师的要求对大作业进行改进,函数的分装性也做得不够好,由于是初步学习指针,大家在本次的作业改造中 ...

  6. C语言第五次作业--数据类型

    7-2 区位码输入法: 1. 本题PTA提交列表: 2.设计思路: 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum ...

  7. C语言程序设计第二次作业0

    (一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

  8. C语言第五次作业

    #include<stdio.h> int main() { int a,b,c; printf("请输入3个整数:"); scanf("%d %d %d&q ...

  9. C语言基础课第五次作业

    PTA第五次作业 7-2 统计一行文本中的单词个数 一.程序代码 #include<stdio.h> int main(void) { ]; ,word=; char c; gets(st ...

随机推荐

  1. Oracle银行存取钱系统

    Oracle银行存取钱系统 /* 银行系统 要求: 1.创建一个用户信息表(userinfo).一个交易信息表(deal) 2.用户信息表字段:用户编号.用户名称.密码.余额 交易信息表字段:编号.交 ...

  2. PAT1048. Find Coins(01背包问题动态规划解法)

    问题描述: Eva loves to collect coins from all over the universe, including some other planets like Mars. ...

  3. AssemblyExecuteAdapter

    BizTalk custom adapter AssemblyExecuteAdapter 功能 更为方便的扩展BizTalk custom adapter 的交互方式,只需要实现IAssemblyE ...

  4. 前端基础之html-Day12

    1.web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bi ...

  5. 实现GridControl的行单元格非顺序跳转

    用GridControl控件添加数据的时候发现,有一些字段过多但是并不是每个字段都需要用户输入,每个单元格都回车跳转的时候不仅浪费时间,而且用户体验也不好,就需要单元格跳转的时候,不需要的字段可以隔过 ...

  6. Linux将端口设置进防火墙的白名单

    1.先检查linux服务器的端口是否被防火墙拦住 `telnet 172.168.1.101 8080后面跟端口号,如果连接上证明是防火墙白名单.如果没有配置 vi /etc/sysconfig/ip ...

  7. (Sqlyog或Navicat不友好处)SHOW ENGINE INNODB STATUS 结果为空或结果为=====================================

    因为最近在学习innodb引擎,所以就在自己的sqlyog上执行上述命令: SHOW ENGINE INNODB STATUS 结果显示如下: 换了个客户端navicat,执行如下: 最后登录到服务器 ...

  8. lambda匿名函数透析

    lambda匿名函数透析 目录 1       匿名函数的作用... 1 2       匿名函数的格式... 1 3       匿名函数实例代码... 3   1         匿名函数的作用 ...

  9. jacascript 事件流

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 事件流 当浏览器发展到第四代时(IE4及Netscape4),浏览器开发团队遇到了一个很有意思的问题:页面 ...

  10. MSSQL 复制数据 并随机打乱写入

    select * into temp from XX order by newid() -- 复制表结构 truncate table XX -- 清空表 SET IDENTITY_INSERT XX ...