我是靠谱客的博主 激动帽子,最近开发中收集的这篇文章主要介绍【PTA】浙大版《C语言程序设计(第3版)》题目集,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

    • 练习5-1 求m到n之和
    • 练习5-2 找两个数中最大者
    • 练习5-3 数字金字塔
    • 习题5-1 符号函数
    • 习题5-2 使用函数求奇数和
    • 习题5-3 使用函数计算两点间的距离
    • 习题5-5 使用函数统计指定数字的个数
    • 习题5-6 使用函数输出水仙花数

练习5-1 求m到n之和

本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。

函数接口定义:

int sum( int m, int n );

其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。

裁判测试程序样例:

#include <stdio.h>

int sum(int m, int n);

int main()
{    
    int m, n;

    scanf("%d %d", &m, &n);
    printf("sum = %dn", sum(m, n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

-5 8

输出样例:

sum = 21

代码:

int sum(int m, int n)
{
    int i = 0;
    int sum = 0;
    for(i=m; i<=n; i++)
    {
        sum += i;
    }
    return sum;
    
}

练习5-2 找两个数中最大者

本题要求对两个整数a和b,输出其中较大的数。

函数接口定义:

int max( int a, int b );

其中a和b是用户传入的参数,函数返回的是两者中较大的数。

裁判测试程序样例:

#include <stdio.h>

int max( int a, int b );

int main()
{    
    int a, b;

    scanf("%d %d", &a, &b);
    printf("max = %dn", max(a, b));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

-5 8

输出样例:

max = 8

代码:

int max(int a, int b)
{
    return a>b?a:b;
}

练习5-3 数字金字塔

本题要求实现函数输出n行数字金字塔。

函数接口定义:

void pyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。

裁判测试程序样例:

#include <stdio.h>

void pyramid( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    pyramid(n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

5

输出样例:

    1 
   2 2 
  3 3 3 
 4 4 4 4 
5 5 5 5 5 

代码:

void pyramid(int n)
{
    int i = 0;
    int j = 0;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n - 1 - i; j++)
        {
            printf(" ");
        }
        for (j = 0; j <= i; j++)
        {
            printf("%d ", i+1);
        }
        printf("n");
    }
}

习题5-1 符号函数

本题要求实现符号函数sign(x)。

函数接口定义:

int sign( int x );

其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。

裁判测试程序样例:

#include <stdio.h>

int sign( int x );

int main()
{
    int x;

    scanf("%d", &x);
    printf("sign(%d) = %dn", x, sign(x));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

sign(10) = 1

代码:

int sign(int x)
{
    if(x > 1)
        return 1;
    else if(x == 0)
        return 0;
    else
        return -1;
}

习题5-2 使用函数求奇数和

本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数。

函数接口定义:

int even( int n );
int OddSum( int List[], int N );

其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。

裁判测试程序样例:

#include <stdio.h>

#define MAXN 10

int even( int n );
int OddSum( int List[], int N );

int main()
{    
    int List[MAXN], N, i;

    scanf("%d", &N);
    printf("Sum of ( ");
    for ( i=0; i<N; i++ ) {
        scanf("%d", &List[i]);
        if ( even(List[i])==0 )
            printf("%d ", List[i]);
    }
    printf(") = %dn", OddSum(List, N));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

6
2 -3 7 88 0 15
//结尾无空行

输出样例:

Sum of ( -3 7 15 ) = 19
//结尾无空行

代码:

int even(int n)
{
    if(n % 2 != 0)
        return 0;
    else
        return 1;
}

int OddSum(int List[], int N)
{
    int i = 0;
    int sum = 0;
    for(i=0; i<N; i++)
    {
        if(List[i] % 2 != 0)
        {
            sum += List[i];
        }
    }
    return sum;
}

习题5-3 使用函数计算两点间的距离

本题要求实现一个函数,对给定平面任意两点坐标(x1,y1) 和 (x2,y2),求这两点之间的距离。
函数接口定义:

double dist( double x1, double y1, double x2, double y2 );

其中用户传入的参数为平面上两个点的坐标(x1,y1) 和 (x2,y2),函数dist应返回两点间的距离。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

double dist( double x1, double y1, double x2, double y2 );

int main()
{    
    double x1, y1, x2, y2;

    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("dist = %.2fn", dist(x1, y1, x2, y2));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10 10 200 100

输出样例:

dist = 210.24

代码:

double dist(double x1, double y1, double x2, double y2)
{
    double dis = sqrt(pow((x1-x2), 2) + pow((y1-y2), 2));
    return dis;
}

习题5-5 使用函数统计指定数字的个数

本题要求实现一个统计整数中指定数字的个数的简单函数。

函数接口定义:

int CountDigit( int number, int digit );

其中number是不超过长整型的整数,digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

裁判测试程序样例:

#include <stdio.h>

int CountDigit( int number, int digit );

int main()
{
    int number, digit;

    scanf("%d %d", &number, &digit);
    printf("Number of digit %d in %d: %dn", digit, number, CountDigit(number, digit));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

-21252 2

输出样例:

Number of digit 2 in -21252: 3

代码:

int CountDigit( int number, int digit )
{
    int count = 0;
    
    if(number <0)
        number *= -1;
    
    while(number > 10)
    {
        if(number%10 == digit)
            count++;
        number /= 10;
    }
    
    if(number == digit)
        count++;
    
    return count;
}

习题5-6 使用函数输出水仙花数

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3 。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。

函数接口定义:

int narcissistic( int number );
void PrintN( int m, int n );

函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。
函数PrintN则打印开区间(m, n)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。

裁判测试程序样例:

#include <stdio.h>

int narcissistic( int number );
void PrintN( int m, int n );

int main()
{
    int m, n;

    scanf("%d %d", &m, &n);
    if ( narcissistic(m) ) printf("%d is a narcissistic numbern", m);
    PrintN(m, n);
    if ( narcissistic(n) ) printf("%d is a narcissistic numbern", n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

153 400

输出样例:

153 is a narcissistic number
370
371

代码:

int cnt_num(int n)
{
    int cnt = 0;
    if (n < 10)
        cnt = 1;
    else
    {
        while (n)
        {
            n /= 10;
            cnt++;
        }
    }
    return cnt;
}

int narcissistic(int number)
{
    int cnt = cnt_num(number);
    if (number >= 3)
    {
        int i = 0;
        int sum = 0;
        int number2 = number;
        for (i = 0; i < cnt; i++)
        {
            sum += (int)pow((number % 10), cnt);
            number /= 10;
        }
        if (sum == number2)
            return 1;
    }
    return 0;
}

void PrintN(int m, int n)
{
    int i = 0;
    int sum = 0;
    for (i = m + 1; i < n; i++)
    {
        if (narcissistic(i) == 1)
        {
            printf("%dn", i);
        }
    }
}

最后

以上就是激动帽子为你收集整理的【PTA】浙大版《C语言程序设计(第3版)》题目集的全部内容,希望文章能够帮你解决【PTA】浙大版《C语言程序设计(第3版)》题目集所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部