C Prime plus 第六章习题

突然觉得复习题答案不需要那么详细了,只给出本人不懂或者做错的题,把解题思路写出来。希望这样可以学习提高效率。
第六章讲循环语法,谢天谢地,学会python之后,再回顾C,循环再也没有python中的语法糖了,虽然简洁,但是语法糖真是对新手不太友好的黑魔法。while,for,do while都还算友好。

复习题

6.嵌套语句生成$矩阵

#include <stdio.h>
int main(void)
{
    int row, lis;

    for(row = 1; row <= 4; row++)    /*一共有四行*/
    {
        for(lis = 1; lis <= 8; lis++)/*一行中有8个*/
           printf("$");
        printf("\n");
    }
    return 0;
}

嵌套循环,打印8个$之后换行(\n),一共有这样格式四行,所以每列的循环在每行里面。个人习惯从1到8,不习惯0到7。

8. putchar()输出不需要格式的字符

12.你想要写一个返回long值的函数。在您的函数定义中应该包含什么?(这是题目)

返回声明为long,并包含一个返回long值的return语句。

编程练习

1.

#include <stdio.h>
int main(void)
{
    char word[26];
    int c;

    for(c = 0;c <= 25;c++)
        word[c] = 'a' + c;
    for(c = 0;c <= 25;c++)
        printf("%c", &word[c]);
    printf("/n");
    return 0;   
}

2.

#include <stdio.h>
int main(void)
{
    int row,col;

    for(row = 1;row <= 5;row++)
    {
        for(col = 1;col <= row;col++)
            printf("$");
        printf("\n");
    }
    return 0;
}

3.

#include <stdio.h>
int main(void)
{
    int row,i;

    for(row=0;row<6;row++)
    {
        for(i=0;i<=row;i++)
            printf("%c", 'F'- i);
        printf("\n");
    }
    return 0;
}

4.

#include <stdio.h>
int main(void)
{
    int i,j,k,l;
    char ch;
    char a = 'A';

    scanf("%c", &ch);
    for(i=0;i<(ch-a+1);i++)         /*确定行数*/
    {
        for(j=0;j<(ch-a-i);j++)     /*确定前方空格数/*
        printf(" ");
        for(k=0;k<=i;k++)           /*确定E前方的升序字母/*
        printf("%c", a+k);
        for(l=i-1;l>=0;l--)         /*确定E后方的降序字母/*
        printf("%c", a+l);
        printf("\n");
    }
    return 0;
}

5.

#include <stdio.h>
int main(void)
{
    int row,up,down,pow,cube;

    printf("enter the up number:\n");
    scanf("%d", &up);
    printf("enter the down number:\n");
    scanf("%d", &down);
    for(row=0;row<=(up-down);row++)
    printf("%d, %d, %d\n", down+row,(down+row)*(down+row),(down+row)*(down+row)*(down+row));
    return 0;
}

6.

#include <stdio.h>
#include <string.h>
int main(void)
{
    int i;
    char word[20];

    printf("Enter the letter:\n");
    scanf("%s", &word);
    for(i=strlen(word)-1;i>=0;i--)
    printf("%c", word[i]);
    return 0;
}

7.

#include <stdio.h>
int main(void)
{
    float a,b;

    printf("enter two floats:\n");
    while(scanf("%f%f", &a, &b) == 2)   /*成功读入两个参数*/
    {
            printf("(%f-%f)/(%f*%f)=%f\n", a, b, a, b, (a-b)/(a*b));
        printf("Enter two floats:");
    }
    printf("end\n");
    return 0;   
}

8.

#include <stdio.h>
float cal(float, float);
int main(void)
{
    float a,b;

    printf("enter two floats:\n");
    while(scanf("%f%f", &a, &b) == 2)
    {
        printf("(%f-%f)/(%f*%f)=%f\n", a, b, a, b, cal(a,b));
        printf("Enter two floats:");
    }
    printf("end\n");
    return 0;   
}

float cal(float x, float y)
{
    return (x-y)/(x*y);
}

9.

#include <stdio.h>
int main(void)
{
    int max, min, i, sum;

    printf("Enter lower and upper interger limits:");
    scanf("%d %d", &min, &max);
    while(min<max)
    {
        for(i=min, sum=0;i<=max;i++)
        sum += i*i;
        printf("The sums of the squares from %d to %d is %d\n", min*min, max*max, sum);
        printf("Enter next set of limits:");
        scanf("%d %d", &min, &max);
    printf("Done\n");
    return 0;   
    }
}

10.

#include <stdio.h>
int main(void)
{
    int i,num[8];

    printf("Enter eight numbers:");
    for(i=0;i<8;i++)
    scanf("%d", &num[i]);
    for(i=7;i>=0;i--)
    printf("%d", num[i]);
    return 0;
}

11.

#include <stdio.h>
int main(void)
{
    float i,sum1,sum2;
    int sign,n;

    printf("Enter the count:\n");
    scanf("%d", &n);
    for(i=1.0,sign=1,sum1=0,sum2=0;i<=n;i++,sign*=-1)
    {
        sum1 += 1.0 / i;
        sum2 += sign * 1.0 / i;
    }
    printf("1.0+1.0/2.0+1.0/3.0+1.0/4.0+...(%d terms)=%lf\n", n, sum1);
    printf("1.0-1.0/2.0+1.0/3.0-1.0/4.0+...(%d terms)=%lf\n", n, sum2);
    return 0;
}

12.

#include <stdio.h>
#include <math.h>
int main(void)
{
    int num[8], i;

    for(i=0;i<8;i++)
        num[i] = pow(2,i);
    i=0;
    do
        printf("%d\t", num[i]);
    while(++i<8);
    printf("\n");
    return 0;   
}

使用math.h头文件,使用其中的pow()函数,计算幂。

13.

#include <stdio.h>
int main(void)
{
    double num1[8],num2[8];
    int i,j;

    for(i=0;i<8;i++)
    {
        printf("Enter the number:");
        scanf("%lf", &num1[i]);
        for(j=0,num2[i]=0;j<=i;j++)
            num2[i] += num1[j];
    }
    for(i=0;i<8;i++)
        printf("%8.3lf", num1[i]);
        printf("\n");
    for(i=0;i<8;i++)
        printf("%8.3lf", num2[i]);
        printf("\n");
    return 0;   
}

14.

#include <stdio.h>
int main(void)
{
    char a[255];
    int i;

    for(i=0;i<20;i++)
        scanf("%c", &a[i]);
    for(i=19;i>=0;i--)
        printf("%c", a[i]);
    printf("\n");
    return 0;
}   

15.

#include <stdio.h>
int main(void)
{
    float Da = 100, De = 100;
    int i;

    while(Da>=De)
    {
        Da += 100 * 0.1;
        De += De * 0.05;
        i++;
    }
    printf("After %d years,Da is %f,De is %f.\n", i, Da, De);
    return 0;
}

16.

#include <stdio.h>
int main(void)
{
    double investment = 100;
    int i = 0;

    while(investment > 0)
    {
        investment += investment * 0.08;
        investment -= 10;  
        i++;
    }
    printf("After %d years, the investment is 0./n", i);
    return 0;
}

将investment设为100万时,程序没有响应。遂设为100试试,跑完的结果是21年。

ps. 家里停水两天了,真是焦头烂额,敲完这行字就去洗澡。啊,烦躁。
pps.最后两道题用while真是防不胜防,好了,洗澡去了,回来开始第七章。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值