C语言程序设计第二次作业
(一)改错题
1.输出带框文字:在屏幕上输以下3行信息。
Welcome
源程序:#include <stido.h>
int mian()
{
printf("\n");
printf(" Welcome\n")
printf("\n);
return 0;
}
源程序编译结果为
错误信息1:
编译结果:
错误原因:i和d的位置错误
改正方法:stido-stdio
如图:
错误信息2:
编译结果:
错误原因:行末缺少分号
改正方法:在行末添加分号
如图:
错误信息3:
编译结果:
错误原因:英文半角缺少双引号
改正方法:添加英文半角双引号
如图:
错误信息4:
编译结果:
错误原因:主函数书写错误
改正方法:将"mian"改为"main"
如图:
则源程序改为:
编译结果
运行结果:
2.
计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。
输入输出示例(假设x的值为3)include
9=33
33=9
源程序为:
int main()
{
int x,y;
y=xx;
printf("%d = %d * %d", x); / 输出
printf("d * %d = %d", y);
return 0;
}
错误信息1:
编译结果:
错误原因:预处理命令编写错误
改正方法:在“stdio”后加".h"
如图:
错误信息2:
编译结果:
错误原因:三个%d未分别对应“y,x,x”,输出后边应该加"/"
改正方法:在","和"x"之间加“y,x”,在“输出”后边加"/"
如图:
错误信息3:
编译结果:
错误原因:%d无对应的"x,y"的变量并且没有换行,d后缺少%
修改方法:在"y"前加上"x,x,"在后引号前加“\n”“d”后加“%”
如图:
编译及运行结果
(二)学习总结 1.不 同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。其基本语法如下:
示例:
运行结果
利用sizeof运算符编程求出int、long、float和double类型数据所占的字节大小
int字节
include <stdio.h>
int main()
{
printf("int: %d字节\n",sizeof(int));
return 0;
}
运行结果:
long字节
include <stdio.h>
int main()
{
printf("long: %d字节\n",sizeof(long));
return 0;
}
运行结果:
float字节
include <stdio.h>
int main()
{
printf("float: %d字节\n",sizeof(float));
return 0;
}
运行结果
double字节
include<stdio.h>
int main()
{
printf("double: %d字节\n",sizeof(double));
return 0;
}
运行结果:
2.(1)在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;
}
运行结果:
(2)修改程序,输出i+1,结果是什么?为什么?修改程序输出j-1,结果是什么?为什么?
答:原本的
运行结果:
整数超出它的最大值或再加1依旧处于最大值状态int整形变量超出最小值时会导致溢出从最大值计数
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;
}
运行结果:
经网上查询%0为八进制%x为十六进制
对本章其他的总结:我认为我在写程序的时候,一定要做到注意力集中,每一个符号都十分重要,一个小符号就能影响全局,认真很重要。对于这门课程,我应该做到及时复习,提前预习。自己平时学的不怎样,以后还是要好好加油。多多练习,俗话说熟能生巧,我相信越努力,越幸运。
(三)1.求整数均值
(1)题目
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围。
(2)流程图如下:
(3)源代码
include<stdio.h>
int main()
{
int a,b,c,d,Sum;
double Average;
scanf("%d %d %d %d",&a,&b,&c,&d);
Sum=a+b+c+d;
Average = (a+b+c+d)/(double)4;
printf("Sum = %d; Average = %.1f",Sum,Average);
}
(4)运行结果
实验分析:总是忽略地址符,注意double的用法以后多多注意。
3.是不是太胖了
(1)流程图如下:
(2)源代码
include<stdio.h>
int main()
{
int H;
double s,g;
scanf("%d",&H);
g=(H-100)0.9;
s=g2.0;
printf("%.1lf",s);
}
(3)运行结果:
实验分析:需要注意“f"前的”l
5.(1)计算物体自由下落的距离
流程图 如下:
(2)源代码#include <stdio.h>
int main()
{
int g,t,x;
g=10;
t=3;
x=gtt;
float height;
height=1.00/2x;
printf("height = %.2f",height);
return 0;
}
(3)运行结果如图:
(4)实验分析:注意保留两位小数的写法,需先声名double类。
9.逆序的三位数
(1)流程图
(2)源代码:#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
scanf("%d",&a);
b=a%10;
c=a/10;
f=c%10;
d=a/100;
e=b100+f*10+d;
printf("%d",e);
}
(3)运行结果
(4)实验分析:由于e的式子书写有误造成运行错误,一定得注意中英文符号。
(四)PTA提交列表