• C语言程序设计第五版谭浩强第四章答案


    谭浩强 C语言程序设计第五版答案 第一章答案

    C语言程序设计答案

    1.什么是算术运算?什么是关系运算?什么是逻辑运算?
    答:算术运算时数学里基础的加减乘数求余数等;关系运算时求两个或者多个变量或者表达式之间的关系;逻辑运算时将多个变量或者表达式链接起来的逻辑关系。
    2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
    答:C语言中将数值为1作为真,为0作为假,系统将值为非0的变量或表达式作为真,否则假。
    3.写出下面各逻辑表达式的值。设a=3,b=4,c=5.
    (1)a+b>c&&b==c
    (2)a||b+c&&b-c
    (3)!(a>b)&&!c||1
    (4)!(x=a)&&(y=b)&&0
    (5)!(a+b)+c-1&&b+c/2
    答:(1)0 因为b!=c;(2)1 因为a,b+c,b-c均非0;(3)1 因为||右侧为1 逻辑运算符||其中一个表示为1值则可以判定;
    (4)0 很明显第一个和第三个式子为假 &&其中一个为假 则判定;(5)1 &&前可以表示为0+5-1,后表示4+5/2均非0 。
    4.有3个整数,由键盘输入,输出其中最大的数。
    #include<stdio.h>
    int main()
    {int a,b,c,z;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b) z=a;
    else z=b;
    else z=c;
    printf("max=%d",z);
    }

    5.从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。
    #include <stdio.h>
    #include <math.h>
    int main()
    {
      int i,k;                                     
      printf("请输入一个小于%d的整数i:",M);
      scanf("%d",&i);
      if (i>1000)
      {printf("输入的数不符合要求,请重新输入一个小于1000的整数i: ");
       scanf("%d",&i);
      }
      k=sqrt(i);
      printf("%d的平方根的整数部分是:%d ",i,k);
      return 0;
    }

    6.有一个函数:
    {x (x<1)
    y={2x-1 (1<=x<10)
    {3x-11 (x>=10)
    写程序,输入x的值,输出y相应的值。
    #include<stdio.h>
    void main()
    {
    int x,y;
    scanf("%d",&x);
    if(x<1)
    y=x;
    else
    if(1<=x<10)
    y=2*x-1;
    else
    y=3*x-11;
    printf("x=%d,y=%d",x,y);
    }
    7.此题过长就不打出来了,跟第6题相似,弄懂第6题,此题迎刃而解。
    8.给出一个百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
    #include<stdio.h>
    int main()
    {
        int score;
        printf("输入学生的成绩: ");
        scanf("%d",&score);
        if (score<0 || score>100){
    printf("输入的数据非法! ");
    }
    else{
    if(score>90){
            printf("该同学的等级为:A");
        }
        if(score>=80 && score<=90){
            printf("该同学的等级为:B");
        }
        if(score>=70 && score<=79){
            printf("该同学的等级为:C");
        }
        if(score>=60 && score<=69){
            printf("该同学的等级为:D");
        }
        if(score>=0&&score<=59){
            printf("该同学的等级为:E");
        }
        }
        return 0;
    }

    给出一个不多于5位数的正整数;
    (1)求出它是几位数;
    (2)分别输出每一位数字;
    (3)按逆顺序输出各位数,例如原有数为123,应输出321
    #include<stdio.h>
    main()
    {
        long num;
        printf("输入一个不多于5位的整数: ");
        scanf("%ld",&num);
        int place;
        if(num>9999) place=5;
        else if(num>999) place=4;
        else if(num>99) place=3;
        else if(num>9) place=2;
        else place=1;
        printf(" %d是%d位数 ",num,place);
        int ten_thousand,thousand,hundred,ten,indiv;
        ten_thousand=num/10000;
        thousand=(num-ten_thousand*10000)/1000;
        hundred=(num-ten_thousand*10000-thousand*1000)/100;
        ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
        indiv=(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
        printf(" 分别打印出每一位数字和逆序输出: ");
        switch(place)
        {
            case 5:printf("%d %d%d%d%d%d ",num,ten_thousand,thousand,hundred,ten,indiv);break;
            case 4:printf("%d %d%d%d%d ",num,indiv,ten,hundred,thousand);break;
            case 3:printf("%d %d%d%d ",num,indiv,ten,hundred);break;
            case 2:printf("%d %d%d ",num,indiv,ten);break;
            case 1:printf("%d %d ",num,indiv);break;
        }
    }

    10.企业发放的奖金根据企业的当年利润决定。当利润I低于或等于100000元时,奖金可提成10%;利润大于100000元,小于200000元(100000
    #include<stdio.h>
    main()
    {
        long i;
        float bonus,bon1,bon2,bon4,bon6,bon10;
        int c;
        bon1=10000*0.1;
        bon2=bon1+100000*0.075;
        bon4=bon2+200000*0.05;
        bon6=bon4+200000*0.03;
        bon10=bon6+400000*0.015;
        printf("请输入利润i:");
        scanf("%ld",&i);
        c=i/100000;
        if(c>10) c=10;
        switch(c)
        {
        case 0:bonus=1*0.1;break;
        case 1:bonus=bon1+(i-100000)*0.075;break;
        case 2:
        case 3:bonus=bon2+(i-200000)*0.05;break;
        case 4:
        case 5:bonus=bon4+(i-400000)*0.03;break;
        case 6:
        case 7:
        case 8:
        case 9:bonus=bon6+(i-600000)*0.015;break;
        case 10:bonus=bon10+(i-1000000)*0.01;break;
        }
        printf("奖金是%10.2f",bonus);
    }


    11.输入4个整数,要求按由小到大的顺序输出。
    #include<stdio.h>
    void main()
    {
        int a,b,c,d,t;
        printf("请输入四个整数: ");
        scanf("%d%d%d%d",&a,&b,&c,&d);
        if(a>b)
        {
        t=a;a=b;b=t;
        }
        if(a>c)
        {
            t=a;a=c;c=t;
        }
        if(a>d)
        {
            t=a;a=d;d=t;
        }
        if(b>c)
        {
            t=b;b=c;c=t;
        }
        if(b>d)
        {
            t=b;b=d;d=t;
        }
        if(c>d)
        {
            t=c;c=d;d=t;
        }
        printf("%d%d%d%d",a,b,c,d);
    }
    12.有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)
    #include<stdio.h>
    main()
    {
        int h=10;
        float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
        printf("请输入一点(x,y):");
        scanf("%f,%f",&x,&y);
        d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);
        d2=(x-x2)*(x-x2)+(y+y2)*(y+y2);
        d3=(x+x3)*(x+x3)+(y-y3)*(y-y3);
        d4=(x+x4)*(x-x4)+(y+y4)*(y-y4);
        if(d1>1&&d2>1&&d3>1&&d4>1) h=0;
        printf("该点高度为h%d ",h);
    }
  • 相关阅读:
    iOS设计模式-工厂方法
    iOS设计模式-原型模式
    (转)iOS 屏幕适配
    iOS设计模式-MVC
    转 常用第三方库
    学习资料收集
    xcode 插件
    CocoaPods安装和使用
    iOS 友盟统计的bug分析
    HTML——表格
  • 原文地址:https://www.cnblogs.com/readlearn/p/10970849.html
Copyright © 2020-2023  润新知