程序设计入门-c语言(第4周练习题)

1
素数和(5分)

题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入格式:

两个整数,第一个表示n,第二个表示m。

输出格式:

一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:

2 4

输出样例:

15

时间限制:500ms内存限制:32000kb

#include <stdio.h>

int chackSuShu(int n)
{
    int i;
    if(n == 2)
        return 1;
    for( i =2; i<n; i++)
    {
        if( n%i ==0)
            return 0;
    }
    return 1;
}

int main()
{
    int n,m,i,cut=0;
    int he=0;
    scanf("%d %d", &n, &m);
    i=2;
    while(cut<=m)
    {
        if(chackSuShu(i)==1)
        {
            cut ++;
            if(cut>=n && cut <= m){
                he += i;
            }
        }
        i++;
    }
    printf("%d", he);
    return 0;
}


2
念整数(5分)

题目内容:

你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。

如输入1234,则输出:

  1. yi er san si

注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:

  1. fu er san si yi

输入格式:

一个整数,范围是[-100000,100000]。

输出格式:

表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

输入样例:

-30

输出样例:

fu san ling

时间限制:500ms内存限制:32000kb

#include <stdio.h>

void outNum(int num)
{
    switch(num)
    {
        case 1: printf("yi");break;
        case 2: printf("er");break;
        case 3: printf("san");break;
        case 4: printf("si");break;
        case 5: printf("wu");break;
        case 6: printf("liu");break;
        case 7: printf("qi");break;
        case 8: printf("ba");break;
        case 9: printf("jiu");break;
        case 0: printf("ling");break;
    }
}

int chackNum(int num)
{
    int n,tmp,out;
    tmp = num;
    n = tmp %10;
    tmp /= 10;
    if (tmp>0)
    {
        out = chackNum(tmp);
        outNum(out);
        printf(" ");
    }
    return n;
}

int main()
{
    int num,out;
    scanf("%d", &num);
    if( num < 0 )
    {
        printf("fu ");
    }
    num = abs(num);
    out = chackNum(num);
    outNum(out);
}