谭浩强《C程序设计》书后习题 第一章-第四章

最近要复习一下C和C++的基础知识,于是计划把之前学过的谭浩强的《C程序设计》和《C++程序设计》习题重新做一遍。

编译环境为:操作系统32位Win7,编译工具VC++6.0

第一章:C程序概述

1.5)输出一段文字

输出一段给定的文字,做法很简单,用printf函数即可

#include<stdio.h>

void main()
{
    printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
    printf("                        Very Good!\n");
    printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
}

另一种方法是用循环输入星号和空格,不过看上去比上段代码麻烦很多

#include<stdio.h>

void main()
{
    int i;
    //打印第一行的星号
    for(i = 0; i < 30; i++)
    {
        printf("*");
        if(i != 29)
        {
            printf(" ");
        }
        else
        {
            printf("\n");
        }
    }
    //打印第二行前方空格
    for(i = 0; i < 24; i++)
    {
        printf(" ");
    }
    //打印第二行文字
    printf("Very Good!\n");
    //打印第三行的星号
    for(i = 0; i < 30; i++)
    {
        printf("*");
        if(i != 29)
        {
            printf(" ");
        }
        else
        {
            printf("\n");
        }
    }
}

1.6)输入三个数a、b、c,输出它们的最大值

#include<stdio.h>

void main()
{
    int a, b, c, max;
    
    //输入三个数
    printf("Please Enter a, b, c: ");
    scanf("%d%d%d", &a, &b, &c);
    
    //输出其中最大者
    max = a > b ? a : b;
    max = max > c ? max : c;
    printf("Max: %d\n", max);
}

第二章:算法

本章没有编程题,故略。

第三章:数据类型、运算符与表达式

3.6)写出下列程序的运行结果

#include<stdio.h>

void main()
{
    char c1 = 'a', c2 = 'b', c3 = 'c', c4 = '\101', c5 = '\116';
    printf("a%c b%c\tc%c\tabc\n", c1, c2, c3);
    printf("\t \b%c %c\n", c4, c5);
}

101025_kBig_1425762.png

本题主要考察了对各个转义字符的理解

C语言中的各类转义字符如下表:

字符形式
字符含义
ASCII代码
\n
换行,将当前位置移动到下一行开头
10
\t
水平制表,将当前位置移动到下一个Tab位置
9
\b
退格,将当前位置移动到前一列
8
\r
回车,将当前位置移动到本行开头
13
\f
换页,将当前位置移动到下页开头
12
\\
反斜杠\
92
\'
单引号'
39
\"
双引号"
34
\ddd
1到3位八进制数所代表的字符

\xhh
1到2位16进制数所代表的字符

3.9)求算术表达式的值

#include<stdio.h>

void main()
{
    int a, b;
    double x, y;

    //情景一
    x = 2.5, a = 7, y = 4.7;
    printf("Scene 1: %f\n", x + a % 3 * (int)(x + y) % 2 / 4);

    //情景二
    a = 2, b = 3, x = 3.5, y = 2.5;
    printf("Scene 2: %f\n", (float)(a + b) / 2 + (int)x % (int)y);
}

101721_8efZ_1425762.png

本题主要考察了对各运算符运算优先级的理解

括号>强制类型转换>乘以、除以、模除运算>加法、减法运算

第四章:顺序程序设计

4.5)写出程序的输出结果

#include<stdio.h>

void main()
{
    int a = 5, b = 7;
    float x = 67.8564, y = -789.124;
    char c = 'A';
    long n = 1234567;
    unsigned u = 65535;

    printf("%d%d\n", a, b);
    printf("%3d%3d\n", a, b);
    printf("%f,%f\n", x, y);
    printf("%-10f,%-10f\n", x, y);
    printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n", x, y, x, y, x, y);
    printf("%e,%10.2e\n", x, y);
    printf("%c,%d,%o,%x\n", c, c, c, c);
    printf("%ld,%lo,%x\n", n, n, n);
    printf("%u,%o,%x,%d\n", u, u, u, u);
    printf("%s,%5.3s\n", "COMPUTER", "COMPUTER");
}

102414_9Qy9_1425762.png

4.8)给出半径r和圆柱高h,求圆周长、原面积、圆球表面积、圆球体积、圆柱体积(取2位小数)

#include<stdio.h>

#define Pai 3.1416

void main()
{
    double r = 1, h = 5;
    printf("Please enter r and h: ");
    scanf("%lf%lf", &r, &h);

    printf("半径:%.2f,\t柱高:%.2f\n", r, h);
    printf("圆周长:%.2f", 2.0 * Pai * r);
    printf("圆面积:%.2f", Pai * r * r);
    printf("圆球表面积:%.2f", 4.0 * Pai * r* r);
    printf("圆球体积:%.2f", 4.0 / 3.0 * Pai * r * r* r);
    printf("圆柱提及:%.2f", Pai * r * r * h);
}

4.9)给出华氏温度求摄氏温度(取2位小数)

#include<stdio.h>

void main()
{
    float F;
    scanf("%f",&F);
    printf("c = %f\n", 5.0 / 9.0 * (F - 32));
}

END

转载于:https://my.oschina.net/Tsybius2014/blog/306204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值