代码改变世界

C语言程序设计第二次作业——顺序结构

2017-10-21 14:22  李志伟  阅读(919)  评论(0编辑  收藏  举报

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

源程序

错误信息1:

错误原因:stdio拼写错误。
改正方法:将stido改成stdio,即:

错误信息2:

错误原因:引号不完整。
改正方法:在\n后面输入一个英文半角的关引号,即

错误信息3:

错误原因:第二行printf结束没有分号。
改正方法:第二行printf结束时在末尾加上分号,即

错误信息4:

错误原因:mian主函数错误。
改正方法:将mian改成main,即

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

源程序

错误信息1:

错误原因:开头文件输入错误。
改正方法:在stdio后加.h ,即

错误信息2:

错误原因:注释格式错误。
改正方法:在“输出”后加*/,即

(二)学习总结
1.⑴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.⑴

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

结果:

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

#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+1,j);
    return 0;
}

结果:

原因:整数的值如果超过它的最大值,将发生溢出,即整数溢出。当达到最大值时,它将溢出到起始点(即最小值)。
⑶修改程序输出j-1,结果是什么?为什么?

#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+1);
    return 0;
}

结果:

原因:整数的值如果超过它的最小值,将发生溢出,即整数溢出。当达到最小值时,它将溢出到终点(即最大值)。
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;
}

结果:

原因:%o为八进制,%x为十六进制。
4.对本章其他你认为需要进行总结的内容进行总结。
在编写程序时要注意开头的主函数main不要写成mian,在写程序时要先思考一下流程图,写程序过程中要用英文半角进行编写,每一行结束时要用分号结尾。
(三)实验总结
1.厘米换算英尺英寸
⑴题目
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
⑵流程图

⑶源代码

#include <stdio.h>
int main(void)
{
	    int cm,foot,inch;
    double m,A;
    scanf("%d",&cm);
    m=cm/100.0;
    foot=m/0.3084;
    A=m/0.3084;
    inch=(A-foot)*12;
    printf ("%d %d",foot,inch);

    return 0;

}

⑷测试数据及运行结果

问题1 :输出结果总是不对。
原因:没看清米和厘米的换算。
2.A乘以B
⑴题目
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
⑵流程图

⑶源代码

#include <stdio.h>
int main(void)
{
    int A,B,C;
    scanf ("%d %d",&A,&B);
    C=A*B;
    printf ("%d",C);

    return 0;
}

⑷测试数据及运行结果

⑸实验分析
没有问题
3.整数四则运算
⑴题目
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
⑵流程图

⑶源代码

#include <stdio.h>
int main(void)
{
    int A,B,C,D,E,Q;
    scanf ("%d %d",&A,&B);
    C=A+B;
    D=A-B;
    E=A*B;
    Q=A/B;
    printf("%d + %d = %d\n",A,B,C);
    printf("%d - %d = %d\n",A,B,D);
    printf("%d * %d = %d\n",A,B,E);
    printf("%d / %d = %d\n",A,B,Q);

    return 0;
 } 

⑷测试数据及运行结果

⑸实验分析
问题1:流程图输出错误
原因:引号里面和引号外面的弄反。
4.整数152的各位数字
⑴题目
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
⑵流程图

⑶源代码

#include <stdio.h>
int main(void)
{
    int B,C,D;
    const int A=152;
    B=A%10;
    C=A/10%10;
        D=A/100;
        printf("152 = %d + %d*10 + %d*100",B,C,D);

    return 0;
 } 

⑷测试数据及运行结果

⑸实验分析
没问题。
(四)PTA提交列表