丛铭俣 160809324 (作业6)

A组第一题:

#include<stdio.h>
int OddSum(int a)
{
    int sum=0;
    if(a%2)
        sum=sum+a;
    return sum;
}
int main()
{
    int a,b,c,i;
    printf("请输入数字的总数:");
    scanf("%d",&a);
    printf("请分别输入这些整数
");
    for(i=0;i<a;i++)
    {
        scanf("%d",&b);
        c=OddSum(b);
    }    
    printf("这些整数中奇数的和为%d
",c);
    return 0;
}

A组第2题:

#include<stdio.h>
double mypow(double x,int n)
{
    double c=1;
    int i;
    for(i=1;i<=n;i++)
        c=c*x;
    return c; 
}
int main()
{
    double x;
    int n;
    printf("请输入x和n的值:"); 
    scanf("%lf %d",&x,&n);
    mypow(x,n);
    printf("结果为%.3f
",mypow(x,n));
    return 0;
}

A组第三题:

#include<stdio.h>
double result;
void cylinder(double r,double height)
{
    result=3.14*r*r*height;
}
int main(void)
{
    double r,height;
    printf("请输入圆柱体的半径和高度:");
    scanf("%lf %lf",&r,&height);
    cylinder(r,height);
    printf("%.3f
",result);
    return 0;
}
#include<stdio.h>
double cylinder(double r,double height);
int main(void)
{
    double height,r;
    printf("请输入圆柱体的半径和高度:");
    scanf("%lf %lf",&r,&height);
    printf("体积为%.3f
",cylinder(r,height));
    return 0;
}
double cylinder(double r,double height)
{
    double result;
    result=3.14*r*r*height;
    return result;
}

B组:

#include<stdio.h>
void jobone()
{
    int a;
    printf("第一次作业
");
    printf("1.实验1-1:求最大值:
");
    printf("2.实验1-2:求m到n之和:
");
    printf("3.实验1-3:求平均数:
");
    printf("请选择作业:");
    scanf("%d",&a);
    switch(a)
    {
        case 1:
            printf("要求由键盘输入两个整数a和b,程序输出其中较大的数。
");
            break;
        case 2:
            printf("要求程序计算并输出m~n(m< n)之间所有整数的和,其中m和n由用户从键盘上输入。
");
            break;
        case 3:
            printf("要求从键盘上依次读入5个整数,计算并输出他们的平均数。/n");
            break;    
    }
    
}
void jobtwo()
{
    int b;
    printf("第二次作业
");
    printf("1.C语言基本数据类型及其占用的内存空间大小分别是:
");
    printf("2.算数运算符有:
");
    printf("3.关系运算符有:
");
    printf("4.逻辑运算符的优先顺序是:
");
    printf("5.赋值运算符有:
");
    printf("6.char c=132; printf(“%d”,c);
");
    printf("7.int a=-7; printf(“%d”,a>>1);
");
    printf("8.int a=7;int b=8; printf(“%d”,a&b);
");
    printf("9.int a=7;int b=8; printf(“%d”,a^b);
");
    printf("请选择作业:");
    scanf("%d",&b);
    switch(b)
    {
        case 1:
            printf("有符号整形int:4字节;有符号短整形short int:2字节;有符号长整形long int :4字节;无符号整形unsigned int:4字节;无符号短整型unsigned short int :2字节;无符号长整形unsigned long int:4字节;字符型char :1字节;单精度浮点型float:4字节;双精度浮点型double:8字节。
");
            break;
        case 2:
            printf("+-*/% ++ --
");
            break;
        case 4:
            printf("!  &&  ||/n");
            break;
        case 5:
            printf("= +=  -=  *=  /=  %= /n");
            break;
        case 6:
            printf("这个代码的结果是-124,原因是 char的范围是-128~127,而输入的是132,132是由128和4组成,所以应该是1000 0100,第一位是1,所以计算机识别出来的是负数,1000 0100取反对应的是0111 1011,然后再进一位,为0111,1100。所以最后的结果为-124./n");
            break;
        case 7:
            printf("11111111 11111111 11111111 11111001/n");
            break;
        case 8:
            printf("00000000 00000000 00000000 00000000/n");
            break;
        case 9:
            printf("00000000 00000000 00000000 00001111 /n");
            break;
    }
}
void jobthree()
{
    int c;
    printf("第三次作业
");
    printf("1.编程打印10行的三角形,要求每行显示的*号个数等于行数;
");
    printf("2.编程打印10行*号,每行打印10个*号
");
    printf("3.编程打印10行的倒三角形,第一行打印10个*,……第10行打印1个*
");
    printf("4.输入五级制成绩(A~E),输出相应的百分制成绩(0~100)区间,要求使用switch语句。例如,输入A,输出90~100。五级制成绩对应的百分制成绩区间为:A(90~100),B(80~89),C(70~79),D(60~69)和E(0~59)。
");
    printf("5.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F?32)/9C = 5	imes (F-32)/9C=5×(F?32)/9,式中:CCC表示摄氏温度,FFF表示华氏温度,输出数据要求为整型。
");
    printf("6. 一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒.
");
    printf("7. 本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
");
    printf("请选择作业:");
    scanf("%d",&c);
    switch(c)
    {
        case 1:
            printf("");
            break;
        case 2:
            printf("");
            break;
        case 4:
            printf("");
            break;
        case 5:
            printf("略/n");
            break;
        case 6:
            printf("略/n");
            break;
        case 7:
            printf("略/n");
            break;        
    }
}
void jobfour()
{
    int d; 
    printf("第四次作业
");
    printf("1.猜数字游戏
");
    printf("2.从键盘上输入2个正整数,输出这两个数的最大公约数和最小公倍数。
");
    printf("请选择作业:");
    scanf("%d",&d);
    switch(d)
    {
        case 1:
            printf("");
            break;
        case 2:
            printf("");
            break;
    }
}
void jobfive()
{
    int e;
    printf("第五次作业
");
    printf("1.书上第3章课后题中的5道编程题。
");
    printf("2.利用双重循环打印三角形
");
    switch(e)
    {
        case 1:
            printf("");
            break;
        case 2:
            printf("");
            break;
    }
}
void start()
{
    int i;
    printf("欢迎进入作业管理系统
");
    printf("可以查询以下作业内容:
"); 
    printf("1.第一次作业
");
    printf("2.第二次作业
");
    printf("3.第三次作业
");
    printf("4.第四次作业
");
    printf("5.第五次作业
");
    printf("请选择:");
    scanf("%d",&i);
    switch(i)
    {
        case 1:
            jobone();
            break;
        case 2:
            jobtwo();
            break;
        case 3:
            jobthree();
            break;
        case 4:
            jobfour();
            break;
        case 5:
            jobfive();
            break;
        default:
            printf("输入有误!");
    }
}    
int main()
{
    start();
    return 0;
}

总结:这次作业用的方法好像就是把int main 函数置后了,我也不知道这是什么意思,而且做完这些题,还是没有完全掌握这种方法,另外,B组作业管理这道题,每道题额答案没办法打进去,全是代码,难道要把代码打进代码里吗,太乱了我觉得,主要是这种方法的框架学会了,所以一些答案我写的略,实在是不可能打进去,至少对我们现在来说非常困难和复杂。C语言还需要学的东西很多,时不时多多复习之前做的题目加深印象,还是加油!

原文地址:https://www.cnblogs.com/cmy531337670/p/6028420.html