ridiculum 发表于 2021-7-17 20:09:13

已学废

weri 发表于 2021-7-17 22:34:22

1

PriceXiao 发表于 2021-7-19 00:55:10

0. 请问下边代码将打印多少个 'A'?
答:十个,外层循环只执行一次。
1. 请问下边代码会打印多少个 'B'?
答:i++是后加一,也就是while会先判断i是0进不去循环,所以不会打印B,要验证的话可以
<code>
...
while(i++||printf("i=%d",i));
...
</code>
2. 请写出表达式 a = b = c = 5 中的"l-value"?
答:a
3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
答:先执行b=3,然后执行c=b++ + 5,b++是后加一,也就是说此时c=3+5=8,然后b再加一为4,
然后再执行++c + ++b,++在前面是变量先加一再进行四则运算则是c为9,b为5之后再相加得到a为14,
综上所述:a为14,b为5,c为9.
4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。
答:z=a<0?-a:a
5. C 语言其实在大部分情况下不使用 goto 语句也能做得很好,请尝试将下列代码段写成不带 goto 语句的版本。
答:A:
...
if (size > 12)
{
    cost = cost * 1.05;
    flag = 2;
}else{
    bill = cost * flag;
}
...

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

C:
...
do{
scanf("%d", &score);
count++;
}while(!(score < 0))
printf("count = %d\n", count);
...
0:
答:
#include <stdio.h>
#include <math.h>
//单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。
int main(){
float xjy_bj = 10000, hy_bj = 10000,hy_lx = 0.00;
float sum1 = 0,sum2 = 0;
int year = 0;
while(1){
    year++;
    sum1 = xjy_bj * 0.1 * year ;
    sum2 =hy_bj * pow((1 + 0.05),year) - hy_bj;
    if(sum2 > sum1){
      printf("%d年后黑夜手头上的Money才会超过小甲鱼!\n",year);
      printf("此时小甲鱼手上的钱%.2f元!\n",xjy_bj + sum1);
      printf("此时黑夜手上的钱%.2f元!",hy_bj + sum2);
      break;
    }
}
return 0;
}

1.答:
#include <stdio.h>
#include <math.h>
int main(){
float xjy_zje = 4000000,sum = 0;
int year = 0;
while(1){
    year ++;
    sum += xjy_zje * 0.08 ;
    xjy_zje += xjy_zje * 0.08- 500000;
    if(xjy_zje <= 0 ){
      printf("%d年之后,小甲鱼败光了所有家产,再次回到一贫如洗!",year);
      break;
    }
   
}
return 0;
}

hndd 发表于 2021-7-19 10:10:25

1

烫烫烫的锟斤拷 发表于 2021-7-19 16:30:14

lxylxylxy 发表于 2021-7-19 17:02:59

{:5_90:}

gereltu 发表于 2021-7-19 20:53:17

1

littleming 发表于 2021-7-20 15:47:16

麻辣兔头

我救康康 发表于 2021-7-20 21:36:46

我想知道

爱吃土豆牛小孩 发表于 2021-7-21 00:28:30

1

nakir 发表于 2021-7-21 04:51:20

1

lll376 发表于 2021-7-21 20:47:47

1

思思源源 发表于 2021-7-22 10:18:47

q

KillerReborn 发表于 2021-7-22 10:58:28

课后作业

讲究怪不怪 发表于 2021-7-22 15:40:07

1

Clement_Levi 发表于 2021-7-22 16:14:26

测试题:
0. 请问下边代码将打印多少个 'A'?
10, j没有重置为0

1. 请问下边代码会打印多少个 'B'?
0,i++的值先为0才自增

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

3. 请问表达式 a = (b = 3, 4, c = b++ + 5, ++c + ++b); 执行后,整型变量 a、b、c 的值是?
14, 5, 9

4. 请使用条件运算符求出变量 x 的绝对值,并存放到变量 z 中。
#include <stdio.h>

float abs(float x){
        if(x>=0){
                return x;
        }
        else{
                return -x;
        }
}
int main(){
        printf("%d, %d, %f, %f", (int)abs(66), (int)abs(-66), abs(3.14), abs(-9.9));
       
}


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

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

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

动动手:
0. 请编写一个程序,计算需要多少年黑夜手头的 Money 才会超过小甲鱼?
#include <stdio.h>

int main(){
        float h = 10000.0, j = 10000.0;
        int year = 0;
        while(h<=j){
                year++;
                j = j + 10000.0*0.1;
                h = h*0.05 + h;
//                printf("j: %f\th: %f\n", j, h);
        }
        printf("%d年后,投资超过!\nj的投资额是:%.2f\nh的投资额是:%.2f\n", year, j, h);
        return 0;
}

1. 请编写一个程序,计算需要多久小甲鱼才会败光所有家产,再次回到一贫如洗?

#include <stdio.h>
#define TOTALMONEY 4000000

int main(){
        int year=0;
        float money=TOTALMONEY;
        for(year; money>0; year++){
                money-=500000;
                money+=money*0.08;
        }
        printf("%d年之后败光家产\n", year);
        return 0;
}

2. 根据以下已知公式求 Pi 的近似值,要求正确计算出小数点后前 7 位(即3.1415926)。

#include <stdio.h>
#include <math.h>
#define ACCURACY 8

int main(){
        double pi, div=1.0, accuracy=pow(10, ACCURACY);
       
        // CPU拉满
        for(div; fabs(div)<accuracy; div+=4){
                pi += (1/div);
        }
       
        div=-3;
        for(div; fabs(div)<accuracy; div-=4){
                pi += (1/div);
        }
       
        pi*=4;
        printf("Pi: %.7f\n", pi);
        return 0;
}

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

#include <stdio.h>
#define TIMELIMIT 12
//#define MULT_DELAY 2
//#define DEATH_AGE -1

int rabbit_mult(int time){
        if(time==1||time==2){
                return 1;
        }
        else{
                return rabbit_mult(time-1) + rabbit_mult(time-2);
        }
}

int main(){
        int time=TIMELIMIT;
        long long int rabbits;

        rabbits=rabbit_mult(time);
       
        printf("%d兔子已生成\n", rabbits);
        return 0;
}

hydrogen06 发表于 2021-7-22 16:32:42

t

阿达不拉丝 发表于 2021-7-22 18:46:13

w

最后的入侵 发表于 2021-7-22 22:58:35

h

ruiwenya 发表于 2021-7-23 11:00:08

1
页: 168 169 170 171 172 173 174 175 176 177 [178] 179 180 181 182 183 184 185 186 187
查看完整版本: S1E16:拾遗 | 课后测试题及答案