鱼C论坛

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

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

  [复制链接]
发表于 2021-7-17 20:09:13 | 显示全部楼层
已学废
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-17 22:34:22 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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:
答:[code]
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-19 10:10:25 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-19 16:30:14 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-19 17:02:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2021-7-20 15:47:16 | 显示全部楼层
麻辣兔头
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-20 21:36:46 | 显示全部楼层
我想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-21 00:28:30 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-21 04:51:20 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-21 20:47:47 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 10:18:47 | 显示全部楼层
q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 10:58:28 | 显示全部楼层
课后作业
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-22 15:40:07 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-22 16:32:42 | 显示全部楼层
t
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 18:46:13 From FishC Mobile | 显示全部楼层
w
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-22 22:58:35 From FishC Mobile | 显示全部楼层
h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-23 11:00:08 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 08:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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