• 二级C语言高教课后习题


    计算机等级考试二级c语言高教课后的一些C语言题目,程序有错的地方,望大佬多多指教!!

    若a的值小于100,请将以下选择结构改写成由switch语句构成的选择结构。

    在这里插入图片描述

    改后

    #include "stdio.h"
    main()
    {
    
            int a,m;
            scanf("%d",&a);
            switch(a/10)
            {
    
                    case 1 :case 2 :printf("%d",m=1);break;
                    case 3 :printf("%d",m=2);break;
                    case 4 :printf("%d",m=3);break;
                    case 5 :printf("%d",m=4);break;
                    default:printf("%d",m=5);break;
    
            }
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1),输出该生的实际年龄。

    在这里插入图片描述

    程序

    #include "stdio.h"
    main()
    {
    
            int y0,m0,d0,y1,m1,d1,n;
            printf("请输入你的出生日期:");
            scanf("%d-%d-%d",&y0,&m0,&d0);
            printf("请输入当前年月日:");
            scanf("%d-%d-%d",&y1,&m1,&d1);
            if(y1-y0<0)
                    printf("输入错误");
            if (d1-d0<0)
                    m1-=1;
            if (m1-m0<0)
                    y1-=1;
            n=y1-y0;
            printf("今年为%d岁",n);
    
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,输入一个整数,打印出它是奇数还是偶数。

    在这里插入图片描述

    程序

    #include "stdio.h"
    main()
    {
    
            int a;
            printf("请输入一个数:");
            scanf("%d",&a);
            if(a%2==0)
                    printf("%d是一个偶数",a);
            else
                    printf("%d是一个奇数",a);
    
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,输入a、b、c三个数,打印出最大者。

    在这里插入图片描述

    程序

    #include "stdio.h"
    main()
    {
    
            int a,b,c;
            printf("请输入三个数:");
            scanf("%d,%d,%d",&a,&b,&c);
            if(a>b&&a>c)
                    printf("%d",a);
            	else if(b>c)
                    printf("%d",b);
           			 else
                    printf("%d",c);
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    对于以下函数:
    编写程序,要求输入x的值,输出y的值。分别用:

    不嵌套的if语句
    嵌套的if语句
    if-else语句
    switch语句
    

    在这里插入图片描述

    不嵌套的if语句

    程序

    #include "stdio.h"
    main()
    {
    
            int x,y;
            printf("输入x的值:");
            scanf("%d",&x);
            if(x>-5&&x<0)
                    y=x;
            if(x==0)
                    y=x-1;
            if(x>0&&x<10)
                    y=x 1;
            printf("%d",y);
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    嵌套的if语句

    程序

    #include "stdio.h"
    main()
    {
    
            int x,y;
            printf("输入x的值:");
            scanf("%d",&x);
            if(x>-5&&x<=0)
            {
                    if(x==0)
                            y=x-1;
                    if(x<0)
                            y=x;
    
    
            }
            else
                    y=x 1;
            printf("%d",y);
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    if-else语句

    程序

    #include "stdio.h"
    main()
    {
    
            int x,y;
            printf("输入x的值:");
            scanf("%d",&x);
            if(x>-5&&x<0)
                    y=x;
            else if (x==0)
                    y=x-1;
            else
                    y=x 1;
            printf("%d",y);
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    switch语句

    程序:

    #include "stdio.h"
    main()
    {
    
            int x,y,z;
            printf("输入x的值:");
            scanf("%d",&x);
            if(x==0)
                    z=1;
            if(x<0&&x>-5)
                    z=2;
            if(x>0&&x<10)
                    z=3;
            switch(z)
            {
    
                    case 1:y=x;break;
                    case 2:y=x-1;break;
                    case 3:y=x 1;break;
    
            }
            printf("%d",y);
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,把560分钟换算成用小时和分钟表示,然后分别进行输出

    程序

    #include "stdio.h"
    main()
    {
    
            int a=560,s,f;
            s=560/60;
            f=560`;
            printf("560分钟=%d小时%d分钟",s,f);
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

    程序

    #include "stdio.h"
    main()
    {
    
            double a,b,c,avg;
            printf("输入三个双精度数:");
            scanf("%lf,%lf,%lf",&a,&b,&c);
            avg=(a b c)/3;
            avg=avg*10 0.5;
            avg/=10;
            printf("这三个数的平均值为:%0.2lf",avg);
    
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。

    程序:

    #include "stdio.h"
    main()
    {
    
            int a,b,c,d,e;
            printf("请输入abc的值:
    ");
            scanf("%d,%d,%d",&a,&b,&c);
                    d=b;
            b=a;
                    e=c;
            c=d;
            a=e;
            printf("abc交换后的值:%d,%d,%d",a,b,c);
    
    }
    

    运行:

    在这里插入图片描述

    从一加到一百并输出它的和

    程序:

    我做了一些调整

    #include "stdio.h"
    main()
    {
    
            int a=0,i=1,x;
            printf("请输入你要加的最后一个数:");
            scanf("%d",&x);
            while(i<=x)
            {
    
                    a=a i;
                    i  ;
            }
            printf("1-%d的和为:%d",x,a);
    
    }
    

    在这里插入图片描述

    有这样一个数列(斐波那契数列): 1 1 2 3 5 8 13,求第30个数时值为多少?

    程序:

    不知道为什么我要用do while,应该用for更简单。。
    作修改后的程序

    #include "stdio.h"
    main()
    {
    
            long a=1,b=1,c,i=0,x;
            printf("请输入你要的多少个数:");
            scanf("%ld",&x);
            x-=2;
    //      printf("%ld %ld",a,b);
            do
            {
    //              printf(" %ld ",c=a b);
                    c=a b;
                    a=b;
                    b=c;
                    i  ;
            }while(i<x);
            printf("
    %ld",c);
    }
    

    运行

    在这里插入图片描述
    源程序是这样的。。。
    在这里插入图片描述
    在这里插入图片描述

    编写程序,找出2-100以内的所有素数(质素)只能被1和它本身整除的数。

    在这里插入图片描述

    程序

    #include "stdio.h"
    main()
    {
            int i,a,b;
            for(i=2;i<=100;i++)
            {
    
                    a=0;
                    for(b=2;b<i;b++)
                            if(i%b==0)
                                    a=1;
                            if(a==0)
                                    printf(" %d ",i);
    
    
            }
    }
    

    在这里插入图片描述

    运行

    在这里插入图片描述

    从输入的若干个大于零的正整数中选出最大值,用-1结束输入

    程序

    #include "stdio.h"
    main()
    {
            int a,max;
            printf("请输入你的正整数最后输入-1结束:");
            do
            {
            scanf("%d",&a);
            }while(a<0&&a!=-1);
            max=a;
            while(a!=-1)
            {
    
                    printf("请输入其它数:");
                    scanf("%d",&a);
                    if(a>0&&a>max)
                            max=a;
            }
            if(max!=-1)
                    printf("最大值是%d",max);
    }
    

    运行

    在这里插入图片描述

    编写程序,求1-3+5-7…-99+101的值。

    程序

    #include "stdio.h"
    main()
    {
    
            int a,b,i,sum;
            for(i=1;i<=101;i+=4)
                    a=a+i;
            for(i=3;i<=101;i+=4)
                    b=b+i;
            sum=a-b;
            printf("它的值是:%d",sum);
    }
    

    在这里插入图片描述

    编写程序,输入1000年至2000年所有闰年的年号。每输入3个年号换一行。判断公元年是否为闰年的条件是:

    (1) 能被4整除而不能被100整除的年份

    (2)能被400整除的年份

    程序

    #include "stdio.h"
    main()
    {
    
            int a,b,r,i;
            printf("请输入你要开始的年份:");
            scanf("%d",&a);
            printf("请输入你要结束的年份:");
            scanf("%d",&b);
            for(a;a<=b;a++)
            {       if(a%4==0&&a%100!=0||a%400==0)
                            {
                            printf("%d",a);
                            i++;
                            }
                    if(i%3==0)
                            printf("
    ");
            }
    
    }
    

    这里的结果第一行为什么第二个年份就换行了我没想明白。。

    在这里插入图片描述
    奇怪的是我在输出加两个空格又可以正常输出了,奇怪。。
    在这里插入图片描述

    编写程序,打印以下信息

    在这里插入图片描述

    程序 经过n次修改后…其实也可以一条一条输出的,题目又没有要求怎样编写。

    #include "stdio.h"
    main()
    {
    
            int i,k,x,i1,k1,x1;
            for(i1=0;i1<4;i1++)
            {       for(k1=0;k1<4-i1;k1++)
                            printf(" ");
                    for(x1=0;x1<1+2*i1;x1++)
                            printf("*");
                    printf(" 
    ");
            }
            printf("*********
     ");
            for(i=0;i<4;i++)
            {
    
                    for(k=1;k<=i;k++)
                            printf(" ");
                    for(x=0;x<7-i*2;x++)
                            printf("*");
                    printf("
     ");
            }
    }
    

    运行

    在这里插入图片描述

  • 相关阅读:
    AC日记——红色的幻想乡 洛谷 P3801
    AC日记——Power收集 洛谷 P3800
    AC日记——妖梦拼木棒 洛谷 P3799
    AC日记——妖梦斩木棒 洛谷 P3797
    AC日记——小魔女帕琪 洛谷 P3802
    AC日记——双栈排序 洛谷 P1155
    AC日记——明明的烦恼 bzoj 1005
    AC日记——[HNOI2014]世界树 bzoj 3572
    AC日记——魔法森林 洛谷 P2387
    AC日记——【模板】点分治(聪聪可可) 洛谷 P2634
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568854.html
Copyright © 2020-2023  润新知