第五次C语言作业

时间:2022-08-22 16:09:53

(一)改错题

输出华氏摄氏温度转换表:输入两个整数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:第五次C语言作业

错误原因:for语句后多加了;

改正方法:去掉for语句后的;

错误信息2:第五次C语言作业

错误原因:for语句中括号里的表达式用了“,”隔离

改正方法:将“,”换成“;”

错误信息3:第五次C语言作业

错误原因:前面声明变量时fahr为整型,但输出时fahr的格式化输出符号错误,并且celsius的格式化输出格式也有问题

改正方法:将第15行printf("%3.0f %6.1f\n", fahr, celsius); 改成printf("%d %.1f\n",fahr,celsius);

错误信息4:第五次C语言作业

错误原因:for语句后有多条语句,但是for后未添加“{}”

改正方法:在13行和第16行插入“{}”

错误信息5:第五次C语言作业

错误原因:原题为每次循环的华氏度的温度增加2,而在错误的源代码中,每次循环中华氏度只增加1

改正方法:将for语句中的“fahr++”改为“fahr += 2

错误信息6:第五次C语言作业

错误原因:计算公式不对

改正方法: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;
}

运行结果

第五次C语言作业

增量运算符在单独使用时,前缀和后缀形式没有区别

(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;
}

运行结果

第五次C语言作业

此程序首先定义了两个变量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、第五次C语言作业

2、第五次C语言作业

3、第五次C语言作业

4、第五次C语言作业

1 2 之间的差别为缩格的不同,结果上二者完全相同,效果完全相同,因此证明循环体的认定与缩格并没有关系。

2 3之间的差别为括号的不同,结果上二者完全不同,一个为横排,一个为竖排,二者的区别在于大括号括起的位置不同

3 4之间的差别为在于括号的位置不同,结果导致4没有换行

循环体的认定与缩格形式是无关

输出格式与括号的位置与包含关系有关系

(三)实验总结

1、 求奇数分之一序列前N项和

(1)题目 本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。

(2)流程图

第五次C语言作业

(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提交列表

第五次C语言作业

3 奇偶分家

(1)题目 给定N个正整数,请统计奇数和偶数各有多少个?

(2)流程图

第五次C语言作业

(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提交列表

第五次C语言作业

5 统计字符

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

(2)流程图

第五次C语言作业

第五次C语言作业

(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提交列表

第五次C语言作业

7 求交错序列前N项和

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

(2)流程图

第五次C语言作业

(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提交列表

第五次C语言作业

(四)博客互评

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语言作业的更多相关文章

  1. C语言作业评价标准

    C语言作业评价标准 作业内容: 每周作业分为基础作业.挑战作业和预习作业: 基础作业为本周所学内容的巩固: 挑战作业包括但不仅限于所学知识的综合运用: 预习作业为下周所学内容的任务单,要求必须在课前完 ...

  2. 第五周博客作业 &lt&semi;西北师范大学&vert; 周安伟&gt&semi;

    第五周博客作业 一,助教博客链接https://home.cnblogs.com/u/zaw-315/ 二,本周工作查阅项目汇报,班级微信群.对同学们的中期项目汇报进行查看,解决上周留言问题,对及时出 ...

  3. 第一次c语言作业。

    第一次c语言作业 作业1 2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样? 我认为计算机科学与技术是研究信息过程.用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科.这门学科是为 ...

  4. 我的第三次C语言作业

    我的第三次C语言作业 这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2 这个作业要求在哪里 https://edu.cnblogs.co ...

  5. C语言第五次博客作业--函数

    一.PTA实验作业 题目1:使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 3.本题调试过程碰到问题及PTA提交列表情况说明. 部分正确 :将else的情况放入for循环内,导致循环 ...

  6. C语言第五次博客作业

    一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1) 首先先定义narcissistic函数. (2)定义四个整形变量n,a,d,cnt,sum, ...

  7. C语言作业--函数

    一.PTA实验作业 题目1: 400-499 中4出现的次数 1. 本题PTA提交列表 2. 设计思路 一.main函数 1.函数声明int fun(int x) 2.定义变量i,k,i表示输入的值, ...

  8. C语言作业007

    问题 答案 这个作业属于那个课程 C语言程序设计1 这个作业要求在哪里 我在这个课程的目的是 学习并掌握C语言 这个作业在那个具体方面帮助我实现目标 参考文献 四 作业格式 1PTA作业贴图 1.1题 ...

  9. C语言Ⅰ作业-05

    这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 https://www.cnblogs.com/tongyingjun/p/11722665.html 我在这个课程的目标是 熟练掌握如何用 ...

随机推荐

  1. Atitit java onvif 开源类库 getProfiles&&num;160&semi;getStreamUri

    Atitit java onvif 开源类库 getProfiles getStreamUri 1. ONVIF Java Library by Milgo1 1.1. https://github. ...

  2. Cmake的交叉编译

    http://www.cmake.org/Wiki/CMake_Cross_Compiling

  3. JAVA生成随机数

    java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100 ...

  4. RTP&sol;RTCP的时间同步机制

    转自:http://blog.csdn.net/leesphone/article/details/5571972 RTP支持传送不同codec的steaming,不同codec的clock rate ...

  5. SQLServer公历转农历函数&lpar;1900年-2049年&rpar;

    ALTER   FUNCTION   [dbo].[f_SysGetLunar](      @solarDay   DATETIME)            RETURNS   varchar(20 ...

  6. 基于Unity的AR开发初探:第一个AR应用程序

    记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到.目前公司有一个App开发的需求,想要融合一下AR到A ...

  7. HTML之常用标签及属性

    标签 标签分类 标签名 英文 英文含义 标签类型 备注 HTML页面结构 < html> HyperText Markup Language 超文本标记语言 < head> h ...

  8. python爬虫之天气预报网站--查看最近&lpar;15天&rpar;的天气信息&lpar;正则表达式&rpar;

    python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式) 思路: 1.首先找到一个自己想要查看天气预报的网站,选择自己想查看的地方,查看天气(例:http://www.tianqi ...

  9. JAVA中的Set

    Set中存放的是没有重复的数据,下说记录一下使用中的小细节. 1.HashSet 区分大小写: Set<String> set1 = new HashSet<String>() ...

  10. JS弹出层遮罩&comma;隐藏背景页面滚动条细节优化

    做过弹层组件的童鞋应该都考虑过特殊情况下取消页面滚动条,让其不能滚动,这样用户体验会好很多,当弹层内容超出屏幕展现范围的时候在弹层上面增加滚动条来查看全部内容. 一.去除滚动条方法给body添加ove ...