子莫 发表于 2019-3-5 13:35:09

1024

Joe_Huang 发表于 2019-3-5 13:48:35

KKP

晓程序 发表于 2019-3-5 19:26:27

1

小甲鱼GG 发表于 2019-3-5 20:17:10

1

辛雨之恋 发表于 2019-3-5 21:55:31

看看答案对不对。

黄金梅利 发表于 2019-3-5 22:35:26

1111

icarusgod 发表于 2019-3-6 10:24:06

查看答案

材料转cs 发表于 2019-3-6 11:39:22

{:10_251:}

noobeon 发表于 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}

z_zt 发表于 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对兔子。


方大侠 发表于 2019-3-6 20:24:47

kk

wqy886 发表于 2019-3-7 20:34:40

xx

一点都不鱼的鱼 发表于 2019-3-8 09:29:22

疯狂的兔子!无法直视

Joe5211 发表于 2019-3-8 18:02:33

18846148440 发表于 2019-3-9 10:53:51

1212

匡江山 发表于 2019-3-9 15:11:18

做完了

jerrychou 发表于 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;
}

小眼镜356A 发表于 2019-3-9 23:48:08

ss

布拉格谋 发表于 2019-3-10 22:39:23

线性增长

byw0820 发表于 2019-3-11 09:26:47

为uug

页: 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45 46 47 48 49 50
查看完整版本: S1E16:拾遗 | 课后测试题及答案