MENU

C语言实验+应用作业 1

2017 年 11 月 23 日 • 日常作业

这是我的作业和答案,供将来自己检索,和大家参考之用。

编程题1
编写程序实现在屏幕上显示以下文字。

 The dress is long.
 The shoes are big.
 The trousers are black.

思考:如何在屏幕显示数字、汉字等信息?

#include <stdio.h>

int main()
{
    printf("The dress is long.\nThe shoes are big.\nThe trousers are black.\n");
    return 0;
}

编程题2
编程打印如下图案。
a
aa
aaa
aaaa

#include <stdio.h>

int main()
{
    printf("a\naa\naaa\naaaa\n");
    return 0;
}

编程题3
编程将下面的内容显示在屏幕的中间位置。


tell me why? tell me why?
tell me why? tell me why?
just tell me why, why, why?


思考:最少可用几条printf()语句完成?

#include <stdio.h>

int main()
{
    printf("                    ***********************************\n                         tell me why? tell me why? \n                         tell me why? tell me why? \n                        just tell me why, why, why?\n                    ***********************************\n");
    return 0;
}

1、将一个正整数分解质因数。例如:输入90,打印出90=233*5。

#include <stdio.h>

int main()
{
    int n,i=2,a;
    scanf("%d",&n);
    if(n>1){
        printf("%d=",n);
        for (a=n;i<=a;i++){
            if (a%i==0){
                printf("%d*",i);
                a=a/i;
                i=1;
            }
        }
        printf("\b \n");
    }else{
        printf("ERROR: Please input an positive integer that is greater than 1. \n");
    }
    return 0;
}

2、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

#include <stdio.h>

int main()
{
    int a=1,b=1,c=1,n,i;
    printf("Which month? Input a number: ");
    scanf("%d",&n);
    if (n==1 || n==2){
        printf("There is 1 rabbit.\n");
    }else if(n>2){
        for (i=3;i<=n;i++){
            a=b;
            b=c;
            c=a+b;
        }
        printf("\nThere are %d rabbits.\n",c);
    }else{
        printf("\nERROR: Please input a positive integer.\n",c);
    }
    return 0;
}

3、输入两个正整数m和n,求其最大公约数和最小公倍数。

#include <stdio.h>

int main()
{
    int m,n,yue,bei;
    scanf("%d%d",&m,&n);
    if (m>0 && n>0){
        for (yue=m>n?n:m; m%yue!=0 || n%yue!=0 ;yue--) ;
        bei=n/yue*m;
        printf("yue:%d bei:%d\n",yue,bei);
    }else{
        printf("ERROR: Please input TWO positive integer.\n");
    }
    return 0;
}

4、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    #include <stdio.h>
    
    int main()
    {
        char ch;
        int letter=0,space=0,number=0,others=0;
        printf("Please input some characters (ENTER means over):");
        do{
            ch=getchar();
            if (ch>='A' && ch<='Z') letter++;
            else if (ch>='a' && ch<='z') letter++;
            else if (ch==' ') space++;
            else if (ch>='0' && ch<='9') number++;
            else if (ch!='\n') others++;
        }while(ch!='\n');
        printf("\n%d letter(s), %d space(s), %d number(s) and %d other(s). \n",letter,space,number,others);
    }

5、求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。


#include <stdio.h>

int p10(int n){ // *(10^n)
    int tmp=1,i;
    for(i=1;i<=n;i++){
        tmp*=10;
    }
    return tmp;
}
int main()
{
    int a,n,sum=0,i,j,temp;
    printf("a=");
    scanf("%d",&a);
    if (a>0){
        printf("\nHow many:");
        scanf("%d",&n);
        if (n>0){
            for(i=1;i<=n;i++){
                for(j=1;j<=i;j++){
                    sum+=a*p10(j-1);
                }
            }
            printf("\ns=%d\n",sum);
        }else{
            printf("\nERROR: Please input a positive integer.\n");
        }
    }else{
        printf("\nERROR: Please input a positive integer.\n");
    }
}

原发于 2016-12-01 17:26

添加新评论