Bootstrap

程序设计基础I-单元测试2(机测)

7-1 sdut-C语言实验-A+B for Input-Output Practice (不确定次数循环)

Your task is to Calculate a + b.

Too easy?! Of course! I specially designed the problem for all beginners.

You must have found that some problems have the same titles with this one, yes, all these problems were designed for the same aim.

输入格式:

The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line.

输出格式:

For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input.

输入样例:

1 5
10 20

输出样例:

在这里给出相应的输出。例如:

6
30
#include<stdio.h>
int main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        printf("%d\n",a+b);
    }
    return 0;
}

7-2 sdut-C语言实验-数位数

给定一个正整数 n ,请你求出它的位数。

输入格式:

单组输入,输入一个整数 n 。(1<= n <= 2147483647)

输出格式:

输出一行,包含一个整数,即为 n 的位数。

输入样例:

1234567

输出样例:

在这里给出相应的输出。例如:

7
#include<stdio.h>
int main()
{
    int n,i,a;
    scanf("%d",&n);
    while(n!=0)
    {
        a=n%10;
        n=n/10;
        i++;
    }
    printf("%d",i);
    return 0;
}

 7-3 sdut-C语言实验- 分段函数求值

有如下分段函数
F(x) = x^2 + 1 当x> 0时;
F(x) = -x 当x<0时;
F(x) = 100.0 当x=0时;
编程根据输入的不同x(x为实数),输出其对应的函数值。

输入格式:

多组输入,每组一个实数x。处理到文件结束。

输出格式:

对于每组输入x,输出其对应的F(x),每组一行,结果保留1位小数。

输入样例:

8.00
-5.0

输出样例:

在这里给出相应的输出。例如:

65.0
5.0
#include<stdio.h>
#include<math.h>
int main()
{
    double x,m;
    while(scanf("%lf",&x)!=EOF)
    {
    if(x==0)
        printf("100.0\n");
    else if(x>0){
        m=pow(x,2)+1;
        printf("%.1f\n",m);}
        else if(x<0)
        {
            m=-x;
            printf("%.1f\n",m);
        }
    }
    return 0;
}

7-4 sdut-C语言实验-最大公约数与最小公倍数

求两个正整数的最大公约数与最小公倍数。

输入格式:

输入在一行中给出两个正整数M和N(≤1000)。

输出格式:

第一行输出最大公约数;
第二行输出最小公倍数。

输入样例:

9 21

输出样例:

3
63
#include<stdio.h>
int main()
{
    int gongyue,gongbei,m,n,i,l;
    scanf("%d %d",&m,&n);
    if(m>=n)
    {
        l=n;
    }
    else
        l=m;
    for(i=1;i<=l;i++)
    {
        if(m%i==0&&n%i==0)
        {
            gongyue=i;
        }
        gongbei=m*n/gongyue;
    }
    printf("%d\n%d",gongyue,gongbei);
    return 0;
}

7-5 sdut- C语言实验-计算1到n的和(循环结构)

从键盘上输入任意一个整数n,计算1到n的和。

输入格式:

从键盘输入任意整数n。

输出格式:

输出1到n的和。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

6
#include<stdio.h>
int main()
{
    int n,i,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum=sum+i;
    }
    printf("%d",sum);
    return 0;
}

7-6 sdut-C语言实验- 简单计算

接受从键盘输入的N个整数,输出其中的最大值、最小值和平均值(平均值为整除的商)。

输入格式:

第一行一个正整数N(N<=100);
第二行有N个用空格隔开的整数Ti (1 <= i <= N, 0 <= Ti <= 10000000)

输出格式:

三个有空格隔开的整数分别为最大值、最小值和平均值,其中平均值为整除的商。

输入样例:

在这里给出一组输入。例如:

5
1 2 3 5 4

输出样例:

在这里给出相应的输出。例如:

5 1 3
#include<stdio.h>
int main()
{
    int n,i,m,aver,sum=0;
    int max=-0x3f3f3f;
    int min=0x3f3f3f;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&m);
        if(m>=max)
        {
            max=m;
        }
        if(m<=min)
        {
            min=m;
        }
        sum=sum+m;
    }
    aver=sum/n;
    printf("%d %d %d",max,min,aver);
    return 0;
}

7-7 sdut -C语言实验 - 水仙花数

水仙花的花语是“敬意”。在春节时,很多地方的人喜欢把亲手培育的水仙花送给自己最尊敬的人。
数学中研究“水仙花数”也是很有趣味的。“水仙花数”是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
现在要求输出所有在 m 和 n 范围内的水仙花数。

输入格式:

输入数据有多组,每组占一行,包括两个整数 m 和 n(100≤m≤n≤999)

输出格式:

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于 m,并且小于等于 n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;最后一个数据后面也有空格输出。

如果给定的范围内不存在水仙花数,则输出 no。

每个测试实例的输出占一行。

输入样例:

100 120
300 380

输出样例:

no
370 371 
#include<stdio.h>
int main(){
  int m,n,i,a,b,c,flag;
   while(scanf("%d %d",&m,&n)!=EOF){
       flag=0;
        for(i=m;i<=n;i++){
            a=i%10;
            b=(i/10)%10;
            c=i/100;
        if(i==a*a*a+b*b*b+c*c*c){
            printf("%d ",i);
            flag=1;
            }
        }
       if(flag==1)
       printf("\n");
            if(flag==0)
                printf("no\n");
   }
    return 0;
}
;