C Primer Plus 第六版 编程练习第四章答案 最新出炉

1,编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。

// 4.1
#include <stdio.h>

int main(void)
{
    char first_name[20];
    char last_name[20];

    printf("Enter your first name: ");
    scanf("%s", first_name);

    //getchar();

    printf("Enter your last name: ");
    scanf("%s", last_name);

    printf("%s, %s\n", last_name, first_name);

    return 0;
}

2,编写一个程序,提示用户输入名字,并执行以下操作:

a. 打印名字,包括双引号:
b. 在宽度为20的字段右端打印名字,包括双引号;
c. 在宽度为20的字段左端打印名字,包括双引号;
d. 在比姓名宽度宽3的字段中打印名字

> 欢迎关注我的 [微信公众号:破壳Ai](https://img.arctee.cn/one/pokeai-wechat.png),分享计算机最佳学习路径、教程和资源。成长路上,有我陪你!

// 4.2
#include <stdio.h>
#include <string.h>

int main(void)
{
    char first_name[20];
    char last_name[20];
    int length_name, width;

    length_name = strlen(first_name) + strlen(last_name);
    width = length_name + 3;

    printf("Enter your first name: ");
    scanf("%s", first_name);

    printf("Enter your last name: ");
    scanf("%s", last_name);

    printf("\"%s %s\"\n", first_name, last_name);
    printf("\"%20s %20s\"\n", first_name, last_name);
    printf("\"%-20s %-20s\"\n", first_name, last_name);
    printf("\"%s %s\"\n", first_name, last_name);

    return 0;
}

3,编写一个程序,读取一个浮点数,首先以小数点计数法打印,然后以指数计数法打印。用下面的格式进行输出:

a. The input is 21.3 or 2.1e+001.
b. The input is +21.290 or 2.129E+001

> 更多详细答案请关注我的 [微信公众号:破壳Ai](https://img.arctee.cn/one/pokeai-wechat.png),持续更新中,一起交流讨论。

// 4.3
#include <stdio.h>
#include <string.h>

int main(void)
{
    float num;

    printf("Enter a float number: ");
    scanf("%f", &num);
    printf("输入%f\n", num);
    printf("输入%e\n", num);

    return 0;
}

4,编写一个程序,提示用户输入身高(单位:英寸)和姓名,然后以下面的格式显示用户刚才输入的信息:

Dabney, you are 6.208 feet tall

使用 float 类型,并用/作为除号。如果你愿意,可以要求用户以厘米为单位输入身高,并以米为单位显示出来。

// 4.4
#include <stdio.h>
#include <string.h>

int main(void)
{

    float height;
    char name[20];

    printf("Enter your name: ");
    scanf("%s", name);
    printf("Enter your height(cm): ");
    scanf("%f", &height);
    printf("%s, you are %.2fm tall.\n", name, height / 100);

    return 0;
}

请关注我的 微信公众号:破壳Ai,持续更新中,一起交流讨论。

5,编写一个程序,提示用户输入以兆位每秒为单位的下载速度和以兆字节为单位的文件大小,程序应计算文件的下载时间。注意,这里一字节等于八位。使用float类型,并用/作为除号。该程序要以下面的格式打印3个变量的值(下载速度,文件大小和下载时间),显示小数点后面两位数字:

At 18.12 megabits per second,a file of 2.20 megabytes

downloads in 0.97 seconds

// 4.5
#include <stdio.h>
#include <string.h>

int main(void)
{
    float download_speed;
    float file_size;
    float download_time;

    printf("Enter your speed of downloading: ");
    scanf("%f", &download_speed);
    printf("Enter your file size: ");
    scanf("%f", &file_size);

    download_time = file_size / download_speed;

    printf("At %.2f megabits per second, a file of %.2f megabytes\n\
downloads in %.2f seconds.", download_speed, file_size, download_time);

    return 0;
}

6,编写一个程序,先提示用户输入名,然后提示用户输入姓。在一行打印用户输入的名和姓,下一行分别打印名和姓的字母数。字母数要与相应名和姓的结尾对齐,如下所示:

Melissa Honeybee
7 8
接下来,再打印相同的信息,但是字母个数与相应名和姓的开头对齐,如下所示:
Melissa Honeybee
7 8

// 4.6
#include <stdio.h>
#include <string.h>

int main(void)
{
    char first_name[40];
    char last_name[40];
    int fn_size, ln_size;

    printf("Enter your name(姓、名之间用空格分开): ");
    scanf("%s %s", &first_name, &last_name);

    fn_size = strlen(first_name);
    ln_size = strlen(last_name);

    printf("%s %s\n", first_name, last_name);
    printf("%*d %*d\n", fn_size, fn_size, ln_size, ln_size);

    printf("%s %s\n", first_name, last_name);
    printf("%-*d %-*d\n", fn_size, fn_size, ln_size, ln_size);
    
    return 0;
}
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值