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

(一)改错题
1.输出带框文字:在屏幕上输出以下3行信息。

源程序

输入编辑器

    错误信息1:


错误原因:
根据提示信息发现stdio.h被写错
改正:把i和d对调一下
错误信息2:

    错误原因:

根据提示第二行的printf没有分号
改正:加上分号
错误信息 3:

    错误原因:

第三行的printf后边的分号是中文的
改正;
将其改为英文的分号
错误信息4:

    错误原因:

第三行的printf后边没有下引号
改正:将下引号加上即可
经编译,发现程序还是不对,就想哪还有错误呢?
错误信息5:

    错误原因:

原来把主函数main 写成了mian,导致程序无法运行
改正;把主函数改正确
结果
运行正确

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

源程序

        错误信息1:

错误原因:
库函数的定义中<stdio.h>缺少了.h
改正:在标准库函数头文件后加上.h
错误信息2:

    错误原因:

一个使得后面程序都成了注释就不完整了,导致只有上半部分{没有了下半部分
改正:再加一个变成\,或者* *
错误信息3:

    错误原因:

每一个%d都对应一个变量,而这个题中的三个%d只对应了一个变量
改正:将每一个%d后面写对应的变量
错误信息4:

    错误原因:

第8行的d前边缺少%,使得无法正确输出变量
改正:加上%d
错误原因5:

    错误原因:

输出格式与要求不符
改正:
在第7行后边的引号前加
结果运行正确

(二)学习总结
1.不 同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。其基本语法如下:

利用sizeof运算符编程求出int、long、float和double类型数据所占的字节大小

int字节

#include <stdio.h> 
int main()
{   
printf("int:  %d字节
",sizeof(int));
return 0;
}

运算结果

long字节

#include <stdio.h> 
int main()
{   
printf("long:  %d字节
",sizeof(long));
return 0;
}

运算结果:

float字节

#include <stdio.h> 
int main()
{   
printf("float:  %d字节
",sizeof(float));
return 0;
}

运算结果:

double字节

#include <stdio.h> 
int main()
{   
printf("double:  %d字节
",sizeof(double));
return 0;
}


运算结果:

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
int类型最小值min = %d
",i,j);
return 0;
}

运算结果:

修改程序,输出i+1
结果为:

原因:若计算超出最大值则出现了溢出,将从最小值开始计

修改程序,输出j-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
",a,b,c);
return 0;
}

运算结果

原因:
输入的时候用不同进制的数输入的,十进制,十六进制,八进制,但输出的时候统一用的十进制
(三)实验总结

1.厘米换算英尺英寸
(1)流程图:

(2)源代码:

#include<stdio.h>

int main(void)
{
int cm;
int foot, inch;
scanf("%d",&cm);
foot= cm / 30.48;
inch= 12 * (cm / 30.48 - foot);
printf("%d %d
", foot, inch);
return 
}

测试数据和运行结果:

结果与预测结果相同,为验证正确性再进行一组测试如图:

结果正确

2.计算A乘以B的值:
(1)流程图:

(2)源代码:

#include<stdio.h>

int main(void)
{
int A,B,C;
scanf("%d%d",&A,&B);
C=A*B;
printf("%d",C);
return 0;
}

数据的测试及运行:输入数据5,8得到40,如图:

继续进行负数测试,输入-5,8得到如图:

3.整数四则运算

1.本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

2.

3.代码

#include<stdio.h>
int main()
{
  int A,B,a,b,c,d;
  scanf("%d%d",&A,&B);
  a=A+B;b=A-B;c=A*B;d=A/B;
  printf("%d + %d = %d
%d - %d = %d
%d * %d = %d
%d / %d = %d",A,B,a,A,B,b,A,B,c,A,B,d);

  return 0;

}

4.

5.问题1:第七行报错,期望在前面加;
原因:赋值后没加分号
解决方法:赋值后面加分号

4.整数152的各位数字:
1.流程图:

2.源代码:
(2)源代码:

#include<stdio.h>

int main(void)
{
int a = 152,b = 0, c = 0,d = 0;
b = a % 10;
c = (a / 10) % 10;
d = a / 100;
printf ("152 = %d + %d*10 + %d*100",b,c,d);
return 0;
}

测试数据及运行结果:

问题1:在流程图制作过程中未再次忘记取整问题,导致求出的"c"是小数导致不符合结果
解决方法:在需要取整的数前加上"floor"使结果正确.
问题2.在输出a,b,c的值时无法输出结果,如图:

解决方法:应该在"a"后再加一个"+"表示输出a的值,与b,c相同.如图:

4 PTA 提交列表:
顺序(1)

顺序结构(2)

原文地址:https://www.cnblogs.com/xing--/p/7710915.html