【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 = %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版)》题目集相关推荐
- 丁亚涛c语言程序设计第3版,c语言程序设计(第3版)丁亚涛.pdf
<C 语言程序设计 (第3 版)>丁亚涛 教材习题与解答 习题1 [参考答案] 1. C 语言基本特点:简洁.紧促.灵活.运算符丰富.数据结构丰富.移植性好等. 2. 程序如下: #inc ...
- java 程序设计 第八版,java语言程序设计第八版答案
参考答案如下 程序[单选题]船用离心泵需向压力较高容器供液时,最常用的方法是________.A. 用大直径叶轮 B. 提高转速 C. 用多级泵 D. 用并联泵 设计[单选题]甲癣口服药治疗,由于用药 ...
- 何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针
1.第8章 指针[练习8-1]如果有定义"int m, n = 5, *p = &m;"与m = n等价的语句是 B .A m = *p; B. *p = *&n; ...
- c语言程序设计第4版pdf荣政_C语言程序设计(第4版) (史蒂芬.寇肯) 中文pdf扫描版[82MB]...
C语言程序设计(第4版)全面介绍了C语言的各种特性,包括C11中增加的内容.书中包含大量完整的示例及详细的讲解.无论是否拥有编程经验,你都可以通过本书透彻地理解C语言.每章最后附有习题,便于课堂学习或 ...
- c语言函数的程序设计,C语言程序设计第3版,第6章函数程序设计.ppt
C语言程序设计第3版,第6章函数程序设计 C语言程序设计 第6章 函数程序设计 第6章 数组程序设计 6.1 函数概述 6.2 自定义函数示例 6.3 函数定义及调用 6.4 函数嵌套和递归函数 6. ...
- java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案
<Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...
- 第三章 函数 C++语言程序设计第五版 - 郑莉
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计第五版 - 郑莉-绪论(一)
本专栏为C++学习笔记,参考书籍为:C++语言程序设计 第五版 -清华大学出版社- 郑莉 B站视频:https://space.bilibili.com/702528832/video PPT与代码已 ...
- C++语言程序设计(第4版)郑莉练习
C++练习(持续更新) 教材:c++语言程序设计第四版 [教材习题4_13:定义Circle类并计算面积] [问题描述] 定义一个Circle类,有数据成员radius(半径),成员函数getArea ...
- c语言二分答案最小值,C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版).doc...
C语言程序设计第2版课后习题答案(贾宗璞许合利人民邮电-第2版) C语言习题答案 第1章 1.选择题 (1) C (2) B (3) 2.填空题 (1)main (2) main (3) 有穷性.确定 ...
最新文章
- 看板中的WIP限制思想
- 数据库mongodb和mysql对比
- python解矩阵方程_用Python代写的Numpy求解线性方程组
- atom 快速编写html,Atom 编辑器自定义代码段(snippet)
- linux4.9下alsa架构,[Alsa]4, wm8524 Kernel音频子系统入口
- 机器学习实战 梯度上升 数学推导_机器学习全路线经典书籍
- .net 自定义控件显示及传参--转
- 思路初探:采用c#实现pdf转ofd
- azkaban build报错
- 置信区间的置信区间_什么是置信区间,为什么人们使用它们?
- 【逻辑训练】来自可汗学院的有趣逻辑问题
- Vue.js笔记(一)
- 百瓦快充伤电池?1天两充用了574天后 我发现真相
- 如何上传到GitHub的main分支而不是master分支
- html中的评论框怎么写,利用HTML、CSS 实现带表情的评论框的制作教程
- c语言五子棋毕业设计,基于c语言五子棋小游戏--本科生毕业设计.doc
- TAGE-SC-L Branch Predictors
- 普元EOS中, 子系统和portal不在同一个域中,使用jquery的jsonp来解决portal跨域访问
- 算法产品化---在ArmNN上运行ONNX
- 从0开始学递归和分治