鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] S1E16:拾遗 | 课后测试题及答案

  [复制链接]
发表于 2019-3-5 13:35:09 | 显示全部楼层
1024
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-5 13:48:35 | 显示全部楼层
KKP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-5 19:26:27 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-5 20:17:10 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-5 21:55:31 | 显示全部楼层
看看答案对不对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-5 22:35:26 | 显示全部楼层
1111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-6 10:24:06 | 显示全部楼层
查看答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 11:39:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-6 14:55:34 | 显示全部楼层
0.100
1.不打印
2.c=5, b=c, a=b
3.NAN,5,8(不确定)
4.z = x > 0 ? x : - x;
5.A、if (size > 12)
        {
            cost *= 1.05;
            flag = 2;
        }
        bill = cost * flag;
B、if (ibex >14) {sheds = 3}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 17:37:33 | 显示全部楼层
测试题:

0. 请问下边代码将打印多少个 'A'?
    #include <stdio.h>

    int main()
    {
            int i, j;

            for (i = 0; i != 10, j != 10; i++)
            {
                    for (j = 0; j < 10; j++)
                    {
                            putchar('A');
                    }
            }

            putchar('\n');

            return 0;
    }
答:100个A


1. 请问下边代码会打印多少个 'B'?
    #include <stdio.h>

    int main()
    {
            int i = 0;

            while (i++)
            {
                    if (i > 10)
                    {
                            goto Label;
                    }
                    putchar('B');
            }

    Label:  putchar('\n');

            return 0;
    }
答:10个B。


2. 请写出表达式 a = b = c = 5 中的"l-value"?
答:a, b, c


4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。
答:z = x >= 0 ? x : -x;


5. C 语言其实在大部分情况下不使用 goto 语句也能做得很好,请尝试将下列代码段写成不带 goto 语句的版本。
A.
    if (size > 12)
    {
            goto a;
    }
    goto b;
    a:      cost = cost * 1.05;
            flag = 2;
    b:      bill = cost * flag;

if (size > 12)
{
        cost = cost * 1.05;
        flag = 2;
}
bill = cost * flag;

B.
    if (ibex > 14)
    {
            goto a;
    }
    sheds = 2;
    goto b;
    a:      sheds = 3;
    b:      help = 2 * sheds;

if (ibex > 14)
{
        sheds = 3;
}
else
{
        sheds = 2;
}
belp = 2 * sheds;

C.
    readin: scanf("%d", &score);
    if (score < 0)
    {
            goto stage2;
    }
    count++;
    goto    readin;
    stage2: printf("count = %d\n", count);


while (1)
{
        scanf("%d", &score);
        if (score < 0)
        {
                printf("count = %d\n", count);
                break;
        }
       
        count++;
}


动动手:
0. 假设小甲鱼和黑夜手上均有 10000 元,小甲鱼以 10% 的单利息投资,黑夜则以每年 5% 的复合利息投资。请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?
提示:单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。

#include <stdio.h>
#include <math.h>

int main(void)
{
    float fishc = 10000, black = 10000;
    int i = 0;

    while(fishc >= black)
    {   
        i++;
        fishc = 10000 + (10000 * 0.1 * i);
        black = 10000 * pow(1.05, i);
    }   

    printf("%d年后,黑夜的投资额超过小甲鱼!\n", i);
    printf("小甲鱼的投资额是:%.2f\n", fishc);
    printf("黑夜的投资额是:%.2f\n", black);

    return 0;
}



1. 都说天降横财不是什么好事儿,这不,小甲鱼中了双色球一等奖,扣除税收后还剩下 400 万人民币。假设小甲鱼把这些钱做固定投资,每年可以获得 8% 的红利,但在每年的第一天,小甲鱼都会取出 50 万作为本年度的开销……
请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?(本故事纯属虚构,小甲鱼还是需要大家的支持才能养活自己滴,点击购买 VIP 支持小甲鱼 -> 传送门)

#include <stdio.h>

int main(void)
{
    float fishc = 400;
    int i = 0;

    while (fishc > 0)
    {   
        i++;

        fishc -= 50;
        fishc *= 1.08;

    }   

    printf("%d年之后,小甲鱼败光了所有的家产,再次回到一贫如洗......\n", i);

    return 0;
}



2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。
提示1:分子永远都是1;版权属于:
提示2:后一项的分母是前一项的分母加2;
提示3:可以通过i = -i实现符号取反的效果;
提示4:要正确计算出小数点后前 7 位数,最后一项的绝对值需要小于 10^(-8) 才行(该项不累加);
提示5:求某数的绝对值可以使用 fabs 函数(函数快查:fabs – 求绝对值)

#include <stdio.h>
#include <math.h>


int main(void)
{
    double currentitem = 1;
    double pi4 = 0;
    int i = 1;
    double min = pow(10, -8);
   
    while (currentitem > min)
    {   
        currentitem = 1 / (double)i;
        pi4 = ((i + 1) / 2) % 2 ? pi4 + currentitem : pi4 - currentitem;
        i += 2;
    }   
   
    printf("PI = %.7f\n", pi4 * 4);

    return 0;
}


3. 这是一个有趣的古典数学问题:如果说兔子在出生两个月后,就有繁殖能力,在拥有繁殖能力之后,这对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么两年之后可以繁殖多少对兔子呢?

#include <stdio.h>

int main(void)
{
    int i;
    int m0 = 1, m1 = 0, m2 = 0;

    for (i = 0; i < 24; i++)
    {   
        int tmp = m2;
        m2 = m2 + m1;
        m1 = m0;
        m0 = tmp;
    }   

    printf("2年后,会有%d对兔子。\n", m0 + m1 + m2);

    return 0;
}

2年后,会有5896对兔子。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 20:24:47 | 显示全部楼层
kk
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-7 20:34:40 | 显示全部楼层
xx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-8 09:29:22 | 显示全部楼层
疯狂的兔子!无法直视
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-8 18:02:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-9 10:53:51 | 显示全部楼层
1212
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-9 15:11:18 | 显示全部楼层
做完了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-9 22:02:41 | 显示全部楼层
0. 10
1. 10
2. a
3. a = 16, b = 6, c = 10
4. z = x >= 0 ? x : -x
5. A.
if (size > 12)
{
        cost = cost * 1.05;
        flag = 2;
}
bill = cost * flag;

B.
sheds = ibex > 14 ? 3 : 2;
help = 2 * sheds;

C.
scanf("%d", &score);
while(score >= 0){
        count++;
        scanf("%d", &score);
}
printf("count = %d\n", count);

0.
#include <stdio.h>
int main(){
    int year = 0;
    float a = 10000, b = 10000;
    while(a >= b){
        year ++;
        a += 10000 * 0.1;
        b *= 1.05;
    }
    printf("time: %d, xiaojiayu: %.2f, heiye: %.2f", year, a, b);
    return 0;
}

1.
#include <stdio.h>
int main(){
    int year = 0;
    float remain = 400.0;
    while(remain >0){
        year ++;
        remain -= 50;
        remain *= 1.08;
    }
    printf("%d years", year);
    return 0;
}

2.
#include <stdio.h>
#include <math.h>
int main(){
    int d = 1;
    int flag = 1;
    double res = 0;
    while (1.0 / d >= pow(10, -8)){
        res = res + 1.0 / d * flag;
        flag = - flag;
        d += 2;
    }
    res *= 4;
    printf("pi: %.7f", res);
    return 0;
}

3.
#include <stdio.h>
#include <math.h>
int main(){
    int sum = 1;
    int increase = 1;
    int a = 0, b = 1;
    sum += 1; //第3个月增加1对
    int month = 3;
    while (month <= 24){
        increase = a + b;
        sum += increase;
        month += 1;
        a = b;
        b = increase;
    }
    printf("sum: %d", sum);
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-9 23:48:08 | 显示全部楼层
ss
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-10 22:39:23 | 显示全部楼层
线性增长
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-11 09:26:47 | 显示全部楼层
为uug

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 00:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表