栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C谭浩强课后习题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C谭浩强课后习题

我的实操,与课本过程不太一样,自己写的,结果是对的,仅供练习参考。持续更。

我用的是codeblocks(cb)17.12。

第三章
#include 
#include 
#include 

1.增长百分比

上面定义的类型要和输入类型一致,否则输出结果会错误

int main()
{
    float r,n,p;
    printf("请输入年份和当年的增长率n");
    scanf("%f%f",&n,&r);      //上面定义的类型要和这里输入类型一致,否则输出结果会错误
    r=0.07;n=10;
    p=pow(1+r,n);
    printf("p=%fn",p);
    return 0;
}

2.存款利息

int main()
{
    float p,p1,p2,p3,p5,p0,r1=0.015,r2=0.021,r3=0.0275,r5=0.03,r0=0.0035;
    char plan;
    printf("请输入本金和选择的方案:n");
    scanf("%f,%c",&p,&plan);  //忘记地址符号,最好写一起
    switch(plan)
    {
       case 'a':p1=p*(1+5*r5);printf("%f",p1);break;
       case 'b':p2=p*(1+2*r2)*(1+3*p3);printf("%f",p2);break;
       case 'c':p3=p*(1+3*r3)*(1+2*p2);printf("%f",p3);break;
       case 'd':p5=p*pow((1+p*r1),5);printf("%f",p5);break;
       case 'e':p0=p*pow(1+r0/4,4*5);printf("%f",p0);break;
       default:printf("输入错误");
    }
    return 0;
}

3.住房贷款

用log10表示取对数10

int main()
{
    float m,d=300000,p=6000,r=0.01;
    m=log10(p/(p-d*r))/log10(1+r);   //书上好像有问题。对数10是这样表示的log10不是书上的lg10
    printf("m=%6.2fn",m);
    return 0;
}

6.翻译密码

getchar()里面可以放四种字符:abc123、转义字符、八进制、十进制。

int main(){
char c1,c2,c3,c4,c5;
printf("请输入一个五个字母的单词:n");
c1=getchar();c2=getchar();c3=getchar();c4=getchar();c5=getchar();  //只能放字符(abc123'n''t'等)
c1=c1+4;c2=c2+4;c3=c3+4;c5=c5+4;
printf("对应的密码是:n");
putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);putchar('n');
printf("对应密码是:n%c%c%c%c%c",c1,c2,c3,c4,c5);
}

 7. 求球的面积体积及圆柱的体积

注意pi此类值要定义,在整数类型值相比时最好带.0转化为float型。

int main()
{
    float r,h,c,s,ss,sv,shv;
    float pi=3.1415926;  //注意pi也要定义
    printf("请输入圆的半径和圆柱的高:n");
    scanf("%f %f",&r,&h);
    c=2*pi*r; //圆周长
    s=pi*r*r;   //圆面积
    ss=4*pi*r*r;  //圆球表面积
    sv=3.0/4.0*pi*r*r*r;  //圆球体积 四分之三表示方式前面最好加上.0
    shv=pi*r*r*h;  //圆柱体积
    printf("圆周长为%6.2fn",c);
    printf("圆面积为%6.2fn",s);
    printf("圆球表面积为%6.2fn",ss);
    printf("圆球体积为%6.2fn",sv);
    printf("圆柱体积为%6.2fn",shv);
}

 8.putchar与printf在字符上的区别联系

整型变量(2或4字节)在可输出字符的范围内(ASCII码为0~127)是可以与字符变量(一个字节)互相转换的。

int main(){
    char c1,c2;  //c1c2定义成字符型和整数型都可以
    c1=getchar();c2=getchar();
    putchar(c1);putchar(c2);putchar('n');
    printf("%c%c",c1,c2);
    printf("输出对应的ASCII码:%d %d",c1,c2);  //输出ascii码应该用printf
    return 0;                //整型变量2/4在可输出字符的范围内(ASCII码为0~127)是可以与字符变量1互相转换的
}

如果int(2或4字节)转char(1字节)再转int时将只将其存储单元中最后一个字节赋给c1。

如果是unsigned char类型可以存放0~255的整数;

如果是signed char类型可以存放-128~127的整数;

第四章 选择结构

4.输出其中最大的数

scanf后面的地址符号总是忘记,注意内嵌if的结构。三目运算符比较三个数的大小。

int main()  //第一种if方法
{
    int a,b,c;
    printf("请输入三个整数:");
    scanf("%d%d%d",&a,&b,&c);  //别忘地址符号
    if (a>b)
        if (c>a) printf("%d",c);    //注意内嵌if的结构
        else printf("%d",a);
    else
        if (c>b) printf("%d",c);
        else printf("%d",b);
    return 0;
}
int main()   //第二种三目运算符比较大小方法
{
    int a,b,c,max;
    printf("请输入三个整数:");
    scanf("%d%d%d",&a,&b,&c);
    max = a>b?(a>c?a:c):(b>c?b:c);
    printf("%d",max);
}

 5. 输入正数并判断,是则平方根并取整

int main()
{
    int a;
    printf("请输入一个小于1000的正数:");
    scanf("%d",&a);
    if (a<=0||a>=1000)
        printf("输入的数字不合法请重新输入!");
    else {a=sqrt(a);printf("%d",a);}
}

6.分段函数的值

不能忘记乘法要加*不能直接2x,(1<=x<10)C语言中不能这样写要写成逻辑运算符。

int main()
{
    float x,y;
    printf("请输入x的值:");
    scanf("%f",&x);
    if (x<1) printf("%.2f",y=x);
    else if (1<=x&&x<10) printf("%.2f",y=2*x-1); //(1<=x<10)C语言中不能这样写
    else printf("%.2f",y=3*x-11);  //(y=2x-1)没有乘号是错误的
    return 0;
}

8.分段输出成绩对应的等级

else后面什么都不加。

int main()
{
    float a;
    printf("请输入分数:");
    scanf("%f",&a);
    if (a>=90) printf("A");
    else if (a>=80&&a<90) printf("B");
    else if (a>=70&&a<80) printf("C");
    else if (a>=60&&a<70) printf("D");
    else printf("E");   //else后面什么都不加
    return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号