C语言程序第二次作业

时间:2023-12-18 08:27:32

(一)改错题

1.输出带框文字:在屏幕上输出以下3行信息。


Welcome


源程序

include <stido.h>

int mian()

{

printf("\n");

printf(" Welcome\n")

printf("
\n);

return 0;

}

错误信息1:C语言程序第二次作业

错误原因1:stdio错写为stido,main错写为mian

改正方法1:将stdio和main拼对就可以了

错误信息2:C语言程序第二次作业

错误原因2:没有在句尾加分号

改正方法2:在句尾加分号

2.计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。

输入输出示例(假设x的值为3)

9 = 3 * 3

3 * 3 = 9

源程序

include

int main()

{

int x,y;

y=x*x;
printf("%d = %d * %d", x); /* 输出
printf("d * %d = %d", y); return 0;

}

错误信息1:C语言程序第二次作业

错误原因1:没有在stdio后面加上.h

改正原因1:在stdio后面加上.h

错误信息2:C语言程序第二次作业

错误原因2:数字没有与X或Y对应,并且分号后面没有那些输出,下一行中没有%

改正原因2:删掉那些输出,将X与Y对应数字,在下一行加上%

错误信息3:C语言程序第二次作业

错误原因3:因为加入/输出后下面都是蓝色,所以是/输出有问题

改正原因3:在/后面再加一个/

(二)学习总结

1.不 同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。

(1)int字节

C语言程序第二次作业

C语言程序第二次作业

(2)long字节

C语言程序第二次作业

C语言程序第二次作业

(3)float字节

C语言程序第二次作业

C语言程序第二次作业

(4)double字节

C语言程序第二次作业

C语言程序第二次作业

2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?

include <stdio.h>

include <limits.h>

int main()

{

int i,j;

i = INT_MAX;

j = INT_MIN;

printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j);

return 0;

}

运行结果如图

C语言程序第二次作业

修改程序,输出i+1,结果是什么?为什么?

输出i+1,结果如图

C语言程序第二次作业

整数超出它的最大值或再加1就会发生数字溢出,并且会使溢出成为最小值。并且编译时系统不会提醒,需要自己注意。

3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?

include <stdio.h>

int main()

{

int a,b,c;

scanf("%d%o%x",&a,&b,&c);

printf("%d %d %d\n",a,b,c);

return 0;

}

运行结果如图

C语言程序第二次作业

原因:经上网了解,%x是十六进制转换,%0是八进制转换,所有144和64都会转换为100

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

(1)在写程序前要先有大概的流程图,注意拼写,stdio不要错拼写为stido,main不要错拼写为mian

(2)要在每一行最后面加上分号,不然编译时会出现错误

(3)要注意数学公式要写在大括号里面,不然会出错

(4)注意int是表示整型,而float和double则是表示浮点型,float要比double表示的范围小,int要用%d来表示,float和double要用%f来表示

(三)实验总结(我的学号是单数,总结1,3,5,9题)

1.求整数均值

(1)题目

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。

(2)流程图C语言程序第二次作业

(3)源代码

include <stdio.h>

int main (void)

{

int a,b,c,d,sum;

double average;

scanf(" %d %d %d %d",&a,&b,&c,&d);

sum = a+b+c+d;

average = (double)(a+b+c+d)/4;

printf("sum=%d average=%.1f",sum,average);

return 0;

}

(4)测试数据及运行结果C语言程序第二次作业

(5)实验分析

问题1:第一次测试平均值不是小数点后两位

原因1:没有在平均值前加double

解决方法1:在平均值前加double

2.是不是太胖了

(1)题目

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?

(2)流程图C语言程序第二次作业

(3)源代码

include <stdio.h>

int main (void)

{

int H;

double k,s;

scanf(" %d",&H);

k = (double)(H-100)0.9;

s = 2
k;

printf(" %.1f",s);

return 0;

}

(4)测试数据及运行结果C语言程序第二次作业

(5)实验分析

问题1:测试结果不是小数点后一位

原因1:没有用%.1f

解决方法1:将%d改为%.1f

3.计算物体*下落的距离

(1)题目

一个物体从100米的高空*落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒​2​​。

(2)流程图C语言程序第二次作业

(3)源代码

include <stdio.h>

int main (void)

{

double height;

height = 1/2.0(103*3);

printf("height=%.2f",height);

return 0;

}

(4)测试数据及运行结果C语言程序第二次作业

(5)实验分析

本题没有问题

4.逆序的三位数

(1)题目

程序每次读入一个正3位数,然后输出按位逆序的数字

(2)流程图C语言程序第二次作业

(3)源代码

include <stdio.h>

int main (void)

{

int a = 0,b = 0,c = 0,d = 0,e = 0;

scanf("%d=%d+%d10+%d100",&a,&b,&c,&d);

b = a%10;

c = (a/10)%10;

d = a/100;

e = d+c10+b100;

printf("%d",e);

return 0;

}

(4)测试数据及运行结果C语言程序第二次作业

(5)实验分析

问题1:结果与示例不符

原因1:求余和除法不知道哪个在前哪个在后

解决原因:求助了别的同学,现在明白了

(四)PTA提交列表

第一次提交结果:C语言程序第二次作业

第二次提交结果:C语言程序第二次作业

C语言程序第二次作业