目录

  • 练习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 = %d\n", 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 = %d\n", 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) = %d\n", x, sign(x));return 0;
}/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

sign(10) = 1

代码:

int sign(int x)
{if(x > 1)return 1;else if(x == 0)return 0;elsereturn -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 10int 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(") = %d\n", 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;elsereturn 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 = %.2f\n", 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: %d\n", 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 number\n", m);PrintN(m, n);if ( narcissistic(n) ) printf("%d is a narcissistic number\n", 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("%d\n", i);}}
}

【PTA】浙大版《C语言程序设计(第3版)》题目集相关推荐

  1. 丁亚涛c语言程序设计第3版,c语言程序设计(第3版)丁亚涛.pdf

    <C 语言程序设计 (第3 版)>丁亚涛 教材习题与解答 习题1 [参考答案] 1. C 语言基本特点:简洁.紧促.灵活.运算符丰富.数据结构丰富.移植性好等. 2. 程序如下: #inc ...

  2. java 程序设计 第八版,java语言程序设计第八版答案

    参考答案如下 程序[单选题]船用离心泵需向压力较高容器供液时,最常用的方法是________.A. 用大直径叶轮 B. 提高转速 C. 用多级泵 D. 用并联泵 设计[单选题]甲癣口服药治疗,由于用药 ...

  3. 何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针

    1.第8章 指针[练习8-1]如果有定义"int m, n = 5, *p = &m;"与m = n等价的语句是 B .A m = *p; B. *p = *&n; ...

  4. c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...

    C语言程序设计(第4版)全面介绍了C语言的各种特性,包括C11中增加的内容.书中包含大量完整的示例及详细的讲解.无论是否拥有编程经验,你都可以通过本书透彻地理解C语言.每章最后附有习题,便于课堂学习或 ...

  5. c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt

    C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...

  6. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  7. 第三章 函数 C++语言程序设计第五版 - 郑莉

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  8. C++语言程序设计第五版 - 郑莉-绪论(一)

    本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...

  9. C++语言程序设计(第4版)郑莉练习

    C++练习(持续更新) 教材:c++语言程序设计第四版 [教材习题4_13:定义Circle类并计算面积] [问题描述] 定义一个Circle类,有数据成员radius(半径),成员函数getArea ...

  10. c语言二分答案最小值,C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版).doc...

    C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版) C语言习题答案 第1章 1.选择题 (1) C (2) B (3) 2.填空题 (1)main (2) main (3) 有穷性.确定 ...

最新文章

  1. 看板中的WIP限制思想
  2. 数据库mongodb和mysql对比
  3. python解矩阵方程_用Python代写的Numpy求解线性方程组
  4. atom 快速编写html,Atom 编辑器自定义代码段(snippet)
  5. linux4.9下alsa架构,[Alsa]4, wm8524 Kernel音频子系统入口
  6. 机器学习实战 梯度上升 数学推导_机器学习全路线经典书籍
  7. .net 自定义控件显示及传参--转
  8. 思路初探:采用c#实现pdf转ofd
  9. azkaban build报错
  10. 置信区间的置信区间_什么是置信区间,为什么人们使用它们?
  11. 【逻辑训练】来自可汗学院的有趣逻辑问题
  12. Vue.js笔记(一)
  13. 百瓦快充伤电池?1天两充用了574天后 我发现真相
  14. 如何上传到GitHub的main分支而不是master分支
  15. html中的评论框怎么写,利用HTML、CSS 实现带表情的评论框的制作教程
  16. c语言五子棋毕业设计,基于c语言五子棋小游戏--本科生毕业设计.doc
  17. TAGE-SC-L Branch Predictors
  18. 普元EOS中, 子系统和portal不在同一个域中,使用jquery的jsonp来解决portal跨域访问
  19. 算法产品化---在ArmNN上运行ONNX
  20. 从0开始学递归和分治

热门文章

  1. java 后台跳出提示_小猿圈Java初学者练习小案例:猜数字游戏
  2. oracle 添加归档日志文件_oracle 归档日志文件路径设置
  3. HTML5 device access 设备访问
  4. Cent OS 7配置Dnsmasq
  5. Kettle 之 javascript字段数据处理
  6. 不是我的错,也不是Atlas的!
  7. 精确控制Thinkpad的风扇和温度
  8. mysql 安装绑定my.ini
  9. Java Iterable类
  10. pycharm 中 pep8 检查开启.