C Primer Plus第六章练习题答案

本文展示了C语言中的多种函数,包括字符数组操作、循环结构(如嵌套循环、递增/递减)、数学计算(平方、立方、序列求和),以及简单的金融模拟和字符串处理。
摘要由CSDN通过智能技术生成

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void T_06_01() {
    char letter[26];
    int j;
    for (char i = 'a',j = 0; i <= 'z'; i++,j++) {
        letter[j] = i;
    }
    for (j = 0; j < 26; j++) {
        printf("%c ",letter[j]);
    }
}
void T_06_02() {
    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= i; j++) {
            printf("$");
        }
        printf("\n\n");
    }
}
void T_06_03() {
    char c;
    for (int i = 1; i <= 6; i++) {
        for (int j = 0,c = 'F'; j < i; j++, c--) {
            printf("%c",c);
        }
        printf("\n\n");
    }
}
void T_06_04() {
    char c = 'A';
    for (int i = 1; i <= 6; i++) {
        for (int j = 0; j < i; j++) {
            printf("%c",c);
            c++;
        }
        printf("\n\n");
    }
}
void T_06_05() {
    char c;
    for (int i = 1; i <= 5; i++) {
        for (int j = 0,c = 'A'; j < (i * 2 - 1); j++) {
            printf("%c",c);
            if (j < i - 1) {
                c++;
            }
            else {
                c--;
            }
            
        }
        printf("\n\n");
    }
}
void T_06_06() {
    int top, temp;
    printf("请输入表格的上下限,用空格隔开:");
    scanf_s("%d %d",&top,&temp);
    printf(" 整数  数的平方 数的立方\n");
    for (; top <= temp; top++) {
        printf("%4d %7d %9d\n",top,top*top,top*top*top);
    }
}
void T_06_07() {
    char str[20];
    int i;
    printf("请输入一个单词:");
    scanf_s("%s",str,sizeof(str));
    i = strlen(str);
    while (i >= 0)
    {
        printf("%c",str[i]);
        i--;
    }
}
void T_06_08() {
    float a, b;
    printf("请输入俩个浮点数,用空格隔开:");
    while (2 == scanf_s("%f %f", &a, &b)) {
        if (a > b) printf("%5f   \n", (a - b) / (a * b));
        else printf("%5f   \n", (b - a) / (a * b));
        printf("请输入俩个浮点数,用空格隔开:");
    }
}
float T_06_09_1(float a,float b) {
    float sum = a > b ?  (a - b) / (a * b) : (b - a) / (a * b);
    return sum;
}
void T_06_09() {
    float a, b;
    printf("请输入俩个浮点数,用空格隔开:");
    while (2 == scanf_s("%f %f", &a, &b)) {
        printf("俩数之差除以俩数乘积的结果为:%f\n", T_06_09_1(a, b));
        printf("请输入俩个浮点数,用空格隔开:");
    }
}
void T_06_10() {
    int top, temp,sum,i;
    while (1) {
        printf("请输入一个上限整数和一个下限整数,用空格隔开:");
        scanf_s("%d %d", &top, &temp);
        if (top >= temp) break;
        for (sum = 0,i = top;i<=temp;i++) {
            sum += i * i;
        }
        printf("上限平方为%d,下限平方为%d,上下限范围内所有整数的平方和为:%d\n",top*top,temp*temp,sum);
    }
}
void T_06_11() {
    int num[8];
    printf("请输入你要读入的八个整数:");
    for (int i = 0; i < 8; i++) {
        scanf_s("%d",&num[i]);
    }
    for (int i = 7; i >= 0; i--) {
        printf("%d ",num[i]);
    }
}
void T_06_12() {
    int term;
    double sum_1 = 0, sum_2 = 0;
    printf("需要运行查看前多少项:");
    while (1) {
        scanf_s("%d",&term);
        if (term <= 0) break;
        for (int i = 1; i <= term; i++) {
            sum_1 += (1.0 / i);
            if (i % 2 == 0) sum_2 -= (1.0 / i);
            else sum_2 += (1.0 / i);
        }
        printf("前%d项第一个个序列为:%lf,第二个序列为:%lf\n",term,sum_1,sum_2);
        sum_1 = sum_2 = 0;
        printf("需要运行查看前多少项:");
    }
}
void T_06_13() {
    int number[8],sum = 1,i,j;
    for (i = 0; i <= 7; i++) {
        for (j = 0; j <= i; j++) {
            sum *= 2;
        }
        number[i] = sum;
        sum = 1;
    }
    j = 0;
    do {
        printf("%d   ",number[j]);
        j++;
    } while (j<8);
}
void T_06_14() {
    double number_1[8], number_2[8];
    printf("请输入八个数据:");
    for (int i = 0; i < 8; i++) {
        scanf_s("%lf",&number_1[i]);
        if (i == 0) {
            number_2[i] = number_1[i];
            continue;
        } 
        number_2[i] = number_2[i - 1] + number_1[i];
    }
    for (int i = 0; i < 8; i++) {
        printf("%7.2lf", number_1[i]);
    }
    printf("\n");
    for (int i = 0; i < 8; i++) {
        printf("%7.2lf",number_2[i]);
    }
}
void T_06_15() {
    char strs[255],str = '\0';
    int i;
    printf("请输入你要倒序的内容:");
    for (i = 0; str != '\n'; i++) {
        scanf_s("%c", &str);
        strs[i] = str;
    }
    for (; i >= 0; i--) printf("%c",strs[i]);
}
void T_06_16() {
    float Dei = 100, Dap = 100;
    int    year = 0;
    while (Dei <= Dap) {
        Dap += 10;
        Dei += Dei * 0.05;
        year++;
    }
    printf("%d年后,Deirdre的钱为:%f,Daphne的钱为:%f", year, Dei, Dap);
}
void T_06_17() {
    int year = 0, money = 100;
    while (money > 0) {
        money *= (1 + 0.08);
        money -= 10;
        year++;
    }
    printf("%d年后,他的钱被取完了",year);
}
void T_06_18() {
    const int MAX = 150;
    int people = 5,week = 0;
    printf("周数    人数\n");
    while (people < 150) {
        week++;
        people -= week;
        people *= 2;
        printf("%-8d%-10d%\n",week,people);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值