第五次C语言作业
(一)改错题
输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉。计算公式如下:
c = 5×(f-32)/9 其中,c表示摄氏温度,f表示华氏温度。
源程序(有错误的程序)
#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语句中括号里的表达式用了“,”隔离
改正方法:将“,”换成“;”
错误信息3:
错误原因:前面声明变量时fahr为整型,但输出时fahr的格式化输出符号错误,并且celsius的格式化输出格式也有问题
改正方法:将第15行printf("%3.0f %6.1f\n", fahr, celsius); 改成printf("%d %.1f\n",fahr,celsius);
错误信息4:
错误原因:for语句后有多条语句,但是for后未添加“{}”
改正方法:在13行和第16行插入“{}”
错误信息5:
错误原因:原题为每次循环的华氏度的温度增加2,而在错误的源代码中,每次循环中华氏度只增加1
改正方法:将for语句中的“fahr++”改为“fahr += 2
错误信息6:
错误原因:计算公式不对
改正方法:celsius = 5 /9 * (fahr - 32.0)改为celsius = 5 * (fahr - 32.0) / 9
(二)学习总结
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、定义了四个整形变量,即i,num,odd,even,
2、将odd的初始值赋为零
3、将oeven赋初始值赋为零
4、进入for循环,当输入的整形数据数量大于i的时候,跳出for循环语句
5、输入一个整型变量num
6、进入选择语句。判断输入的值能否被2整除
7、若判断结果为真,则执行even加一
8、若判断结果为假,则执行else语句,odd加一
9、回到for循环。判断i是否<=10.条件为真。继续执行for循环,条件为假,跳出循环
10、输出even和odd最后的结果
第一次循环:输入一个整形变量,判断是否能被2整除,判断为真则even加一;否则执行else语句,odd加一,I+1=2,2<10,继续for循环语句。
第二次循环:输入一个整形变量,判断是否能被2整除,判断为真则even加一,,否则执行else语句,odd加一 ,I+1=3,3<10,继续for循环语句。
最后一次循环:输入一个整形变量,判断是否能被2整除,判断为真则even加一,,否则执行else语句,odd加一,I+1=11,11>10,跳出for循环语句。
该程序的功能是输入10个整型数据,由系统判断该数值是奇数还是偶数,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;
}
运行结果

此程序首先定义了两个变量i和j,并且赋初值为2,只是i的增量运算符为后缀型,而j的增量运算符为后缀型。当执行i的增量运算符时,先执行输出语句,再对i执行增量操作层,所以i的值输出为2,即为增量前的值;而执行j的增量运算符时,首先对j执行增量操作,再执行输出命令,因此j输出的值为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、
3、
4、
1 2 之间的差别为缩格的不同,结果上二者完全相同,效果完全相同,因此证明循环体的认定与缩格并没有关系。
2 3之间的差别为括号的不同,结果上二者完全不同,一个为横排,一个为竖排,二者的区别在于大括号括起的位置不同
3 4之间的差别为在于括号的位置不同,结果导致4没有换行
循环体的认定与缩格形式是无关
输出格式与括号的位置与包含关系有关系
(三)实验总结
1、 求奇数分之一序列前N项和
(1)题目 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。
(2)流程图

(3)源代码
#include<stdio.h>
int main()
{
int x,N;
double sum;
sum=0;
scanf("%d",&N);
for(x=1;x<=N;x++)
{
sum+=1.0/(2*x-1);
}
printf("sum = %.6f",sum);
return 0;
}
(4)本题PTA提交列表

3 奇偶分家
(1)题目 给定N个正整数,请统计奇数和偶数各有多少个?
(2)流程图

(3)源代码
# include <stdio.h>
int main()
{
int N,i,m,num1=0,num2=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&m);
if(m%2==0)
num1++;
else
num2++;
}
printf("%d %d\n",num2,num1);
return 0;
}
(4)本题PTA提交列表

5 统计字符
(1)题目 本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
(2)流程图


(3)源代码
#include<stdio.h>
int main()
{
char c;
int j;
int letter=0,blank=0,digit=0,other=0;
for(j=1;j<=10;j++)
{
scanf("%c",&c);
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter+=1;
else if(c==' '||c=='\n')
blank+=1;
else if(c>='0'&&c<='9')
digit+=1;
else
other+=1;
}
printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
return 0;
}
(4)本题PTA提交列表

7 求交错序列前N项和
(1)题目 本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
(2)流程图

(3)源代码
#include<stdio.h>
#include<math.h>
int main(void)
{
int deno=1,fl=1,i,n;
double sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
sum+=1.0*fl/deno*pow(-1,i%2);
fl++;
deno=2*fl-1;
}
printf("%.3lf",sum);
return 0;
}
(4)本题PTA提交列表

(四)博客互评
http://www.cnblogs.com/ying-7/p/7818967.html
http://www.cnblogs.com/english123-/p/7815142.html
http://www.cnblogs.com/XDD--/p/7820467.html
第五次C语言作业的更多相关文章
- C语言作业评价标准
C语言作业评价标准 作业内容: 每周作业分为基础作业.挑战作业和预习作业: 基础作业为本周所学内容的巩固: 挑战作业包括但不仅限于所学知识的综合运用: 预习作业为下周所学内容的任务单,要求必须在课前完 ...
- 第五周博客作业 <西北师范大学| 周安伟>
第五周博客作业 一,助教博客链接https://home.cnblogs.com/u/zaw-315/ 二,本周工作查阅项目汇报,班级微信群.对同学们的中期项目汇报进行查看,解决上周留言问题,对及时出 ...
- 第一次c语言作业。
第一次c语言作业 作业1 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我认为计算机科学与技术是研究信息过程.用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科.这门学科是为 ...
- 我的第三次C语言作业
我的第三次C语言作业 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2 这个作业要求在哪里 https://edu.cnblogs.co ...
- C语言第五次博客作业--函数
一.PTA实验作业 题目1:使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 3.本题调试过程碰到问题及PTA提交列表情况说明. 部分正确 :将else的情况放入for循环内,导致循环 ...
- C语言第五次博客作业
一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum, ...
- C语言作业--函数
一.PTA实验作业 题目1: 400-499 中4出现的次数 1. 本题PTA提交列表 2. 设计思路 一.main函数 1.函数声明int fun(int x) 2.定义变量i,k,i表示输入的值, ...
- C语言作业007
问题 答案 这个作业属于那个课程 C语言程序设计1 这个作业要求在哪里 我在这个课程的目的是 学习并掌握C语言 这个作业在那个具体方面帮助我实现目标 参考文献 四 作业格式 1PTA作业贴图 1.1题 ...
- C语言Ⅰ作业-05
这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 https://www.cnblogs.com/tongyingjun/p/11722665.html 我在这个课程的目标是 熟练掌握如何用 ...
随机推荐
- Spring Boot 配置文件详解
Spring Boot配置文件详解 Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于prop ...
- WPS怎么让前几页的页眉或者页脚与后面的不同
其实不管利用WPS还是office对文档还是PPT进行操作,其实核心思想还是一种编程,主要是前端的编程,就是通过改变一些这些软件设置的样式,然后通过改变这些样式,使这些文字以老师要求的格式显示出来的, ...
- python识别验证码——PIL,pytesser,pytesseract的安装
1.使用Python识别验证码需要安装Python的图像处理模块(PIL.pytesser.pytesseract) (安装过程需要pip,在我的Python中已经安装pip了,pip的安装就不在赘述 ...
- 服务器Windows Server 2008 远程控制安全设置技巧
为了保障服务器远程控制操作的安全性,Windows Server 2008系统特意在这方面进行了强化,新推出了许多安全防范功能,不过有的功能在默认状态下并没有启用,这需要我们自行动手,对该系统进行合适 ...
- SpringBoot应用的前台目录
一.两个重要目录 templates:存放web页面的模板文件,需要在controller返回视图名称,框架转发才能找到的html. static :存放静态资源,如:html(放在这里可直接访问,如 ...
- Angular 学习笔记 ( CDK - Accessibility )
@angular/ckd 是 ng 对于 ui 组建的基础架构. 是由 material 团队开发与维护的, 之所以会有 cdk 看样子是因为在开发 material 的时候随便抽象一个层次出来给大家 ...
- RSA的公钥、私钥
一.举个例子 1.发消息 用对方的公钥给对方发消息 2.发公告 发公告的时候,用自己的私钥形成签名! 二.加密和签名 RSA的公钥.私钥是互相对应的,RSA会生成两个密钥,你可以把任何一个用于公钥,然 ...
- mysql(2)—— 由笛卡尔积现象分析数据库表的连接
首先,先简单解释一下笛卡尔积. 现在,我们有两个集合A和B. A = {0,1} B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2 ...
- Spring MVC【入门】就这一篇!
MVC 设计概述 在早期 Java Web 的开发中,统一把显示层.控制层.数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1: 出现的弊端: JSP 和 Ja ...
- 1.UTF8字符集csv文件在oracle下乱码问题处理
1.问题描述 在excel中生成了一个UTF-8编码格式的csv文件准备导入数据库,在notpad++下打开显示正常,编码集为UTF-8,通过pl/sql dev导入oracle是出现乱码,此时初步推 ...