笔记
_trickle
前端
展开
-
6-1 简单输出整数(10分)
6-1 简单输出整数 (10 分)本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。函数接口定义:void PrintN ( int N );其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印出来,每个数字占1行。裁判测试程序样例:#include <stdio.h>void PrintN ( int N );int main (){ int N; scanf("%d", &N); PrintN(原创 2021-05-11 15:12:58 · 295 阅读 · 0 评论 -
6-12 判断奇偶性(10分)
6-12 判断奇偶性 (10 分)本题要求实现判断给定整数奇偶性的函数。函数接口定义:int even( int n );其中n是用户传入的整型参数。当n为偶数时,函数返回1;n为奇数时返回0。注意:0是偶数。裁判测试程序样例:#include <stdio.h>int even( int n );int main(){ int n; scanf("%d", &n); if (even(n)) print原创 2021-05-10 12:40:17 · 870 阅读 · 0 评论 -
7-28 猴子选大王 (20 分)
7-28 猴子选大王 (20 分)一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。输入样例:11输出样例:7程序代码#include<stdio.h>原创 2021-04-28 21:54:07 · 75 阅读 · 0 评论 -
实验5-1 使用函数计算两个复数之积 (10 分)
实验5-1 使用函数计算两个复数之积 (10 分)若两个复数分别为:c1=x1+y1i和c2=x2+y2i,则它们的乘积为 c1×c2=(x1x2−y1y2)+(x1y2+x2y1)i。本题要求实现一个函数计算两个复数之积。函数接口定义:double result_real, result_imag;void complex_prod( double x1, double y1, double x2, double y2 );其中用户传入的参数为两个复数x1+y1i和原创 2021-04-24 18:34:46 · 1086 阅读 · 0 评论 -
实验10-10 递归实现顺序输出整数 (15 分)
实验10-10 递归实现顺序输出整数 (15 分)本题要求实现一个函数,对一个整数进行按位顺序输出。函数接口定义:void printdigits( int n );函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。裁判测试程序样例:#include <stdio.h>void printdigits( int n );int main(){ int n; scanf("%d", &n); p原创 2021-04-23 14:31:29 · 580 阅读 · 0 评论 -
实验2-4-1 统计各位数字之和是5的数(20分)
实验2-4-1 统计各位数字之和是5的数 (20 分)本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。函数接口定义:int is( int number );void count_sum( int a, int b );函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1原创 2021-04-22 11:29:13 · 371 阅读 · 0 评论 -
实验6-7 使用函数输出一个整数的逆序数(20分)
实验6-7 使用函数输出一个整数的逆序数 (20 分)本题要求实现一个求整数的逆序数的简单函数。函数接口定义:int reverse( int number );其中函数reverse须返回用户传入的整型number的逆序数。裁判测试程序样例:#include <stdio.h>int reverse( int number );int main(){ int n; scanf("%d", &n); printf("%d\n",原创 2021-04-21 19:22:41 · 372 阅读 · 0 评论 -
实验8-2-3 删除字符(20分)
实验8-2-3 删除字符 (20 分)本题要求实现一个删除字符串中的指定字符的简单函数。函数接口定义:void delchar( char *str, char c );其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。裁判测试程序样例:#include <stdio.h>#define MAXN 20void delchar( char *str, char c );void ReadStri原创 2021-04-20 17:32:23 · 194 阅读 · 0 评论 -
实验8-1-1 利用指针找最大值(10分)
实验8-1-1 利用指针找最大值 (10 分)本题要求实现一个简单函数,找出两个数中的最大值。函数接口定义:void findmax( int *px, int *py, int *pmax );其中px和py是用户传入的两个整数的指针。函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。裁判测试程序样例:#include <stdio.h>void findmax( int *px, int *py, int *pmax );int原创 2021-04-19 16:23:31 · 1378 阅读 · 0 评论 -
实验2-4-5 简单实现x的n次方(10分)
实验2-4-5 简单实现x的n次方 (10 分)本题要求实现一个计算xn(n≥0)的函数。函数接口定义:double mypow( double x, int n );函数mypow应返回x的n次幂的值。题目保证结果在双精度范围内。裁判测试程序样例:#include <stdio.h>double mypow( double x, int n );int main(){ double x; int n; scanf("%lf %d",原创 2021-04-18 13:23:06 · 1078 阅读 · 0 评论 -
实验5-6使用函数判断完全平方数(10分)
实验5-6 使用函数判断完全平方数 (10 分)本题要求实现一个判断整数是否为完全平方数的简单函数。函数接口定义:int IsSquare( int n );其中n是用户传入的参数,在长整型范围内。如果n是完全平方数,则函数IsSquare必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsSquare( int n );int main(){ int n;原创 2021-04-17 09:21:10 · 332 阅读 · 0 评论 -
实验10-8 递归计算P函数(15分)
实验10-8 递归计算P函数 (15 分)本题要求实现下列函数P(n,x)的计算,其函数定义如下:函数接口定义:double P( int n, double x );其中n是用户传入的非负整数,x是双精度浮点数。函数P返回P(n,x)函数的相应值。题目保证输入输出都在双精度范围内。裁判测试程序样例:#include <stdio.h>double P( int n, double x );int main(){ int n; double x原创 2021-04-16 09:40:07 · 2316 阅读 · 0 评论 -
习题10-4 递归求简单交错幂级数的部分和(15分)
习题10-4 递归求简单交错幂级数的部分和 (15 分)本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x,n)=x−x2+x3−x4+⋯+(−1)n−1*x的n次幂函数接口定义:double fn( double x, int n );其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。裁判测试程序样例:#include <stdio.h>double fn( double x, int原创 2021-04-15 10:32:31 · 489 阅读 · 0 评论 -
习题10-3 递归实现指数函数(15分)
习题10-3 递归实现指数函数 (15 分)本题要求实现一个计算xn(n≥1)的函数。函数接口定义:double calc_pow( double x, int n );函数calc_pow应返回x的n次幂的值。建议用递归实现。题目保证结果在双精度范围内。裁判测试程序样例:#include <stdio.h>double calc_pow( double x, int n );int main(){ double x; int n; s原创 2021-04-14 12:24:11 · 237 阅读 · 1 评论 -
习题11-2 查找星期(15分)
习题11-2 查找星期 (15 分)本题要求实现函数,可以根据下表查找到星期,返回对应的序号。序号 星期0 Sunday1 Monday2 Tuesday3 Wednesday4 Thursday5 Friday6 Saturday函数接口定义:int getindex( char *s );函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。裁判测试程序样例:#include <stdio.h>#inclu原创 2021-04-13 17:13:52 · 285 阅读 · 0 评论 -
习题11-1 输出月份英文名(15分)
习题11-1 输出月份英文名 (15 分)本题要求实现函数,可以返回一个给定月份的英文名称。函数接口定义:char *getmonth( int n );函数getmonth应返回存储了n对应的月份英文名称的字符串头指针。如果传入的参数n不是一个代表月份的数字,则返回空指针NULL。裁判测试程序样例:#include <stdio.h>char *getmonth( int n );int main(){ int n; char *s;原创 2021-04-12 15:39:37 · 384 阅读 · 0 评论 -
习题10-5 递归计算Ackermenn函数(15分)
习题10-5 递归计算Ackermenn函数 (15 分)本题要求实现Ackermenn函数的计算,其函数定义如下:函数接口定义:int Ack( int m, int n );其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型范围内。裁判测试程序样例:#include <stdio.h>int Ack( int m, int n );int main(){ int m, n; scanf(原创 2021-04-11 15:21:03 · 340 阅读 · 0 评论 -
习题8-1 拆分实数的整数与小数部分 (15 分)
习题8-1 拆分实数的整数与小数部分 (15 分)本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );其中x是被拆分的实数(0≤x<10000),intpart和fracpart分别是将实数x拆分出来的整数部分与小数部分。裁判测试程序样例:#include <stdio.h>void splitfloat( float x, int原创 2021-04-10 15:07:11 · 251 阅读 · 0 评论 -
10-8 递归实现顺序输出整数(15分)
10-8 递归实现顺序输出整数 (15 分)本题要求实现一个函数,对一个整数进行按位顺序输出。函数接口定义:void printdigits( int n );函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。裁判测试程序样例:#include <stdio.h>void printdigits( int n );int main(){int n;scanf("%d", &n);printdigits(n);re原创 2021-04-09 15:23:42 · 140 阅读 · 0 评论 -
习题11-3 计算最长的字符串长度(15分)
习题11-3 计算最长的字符串长度 (15 分)本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。函数接口定义:int max_len( char *s[], int n );其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。裁判测试程序样例:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 10#def原创 2021-04-08 13:38:19 · 310 阅读 · 0 评论 -
习题9-6 按等级统计学生成绩(20分)
习题9-6 按等级统计学生成绩 (20 分)本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。函数接口定义:int set_grade( struct student *p, int n );其中p是指向学生信息的结构体数组的指针,该结构体的定义为:struct student{ int num; char name[20]; int score; char grade;};n是数组元素个数。学号num、姓名name和成绩sco原创 2021-04-07 14:27:20 · 230 阅读 · 0 评论 -
习题10-7 十进制转换二进制(15分)
习题10-7 十进制转换二进制 (15 分)本题要求实现一个函数,将正整数n转换为二进制后输出。函数接口定义:void dectobin( int n );函数dectobin应在一行中打印出二进制的n。建议用递归实现。裁判测试程序样例:#include <stdio.h>void dectobin( int n );int main(){ int n; scanf("%d", &n); dectobin(n); re原创 2021-04-06 14:54:59 · 424 阅读 · 0 评论 -
习题8-8 判断回文字符串 (20 分)
习题8-8 判断回文字符串 (20 分)本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。函数接口定义:bool palindrome( char *s );函数palindrome判断输入字符串char *s是否为回文。若是则返回true,否则返回false。裁判测试程序样例:#include <stdio.h>#include <string.h>#define原创 2021-04-05 15:06:03 · 144 阅读 · 0 评论 -
习题8-2 在数组中查找指定元素(15分)
习题8-2 在数组中查找指定元素 (15 分)本题要求实现一个在数组中查找指定元素的简单函数。函数接口定义:int search( int list[], int n, int x );其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。裁判测试程序样例:#include <stdio.h>#define MAXN 10int search原创 2021-04-04 14:24:22 · 144 阅读 · 0 评论 -
7-13 日K蜡烛图(15分)
7-13 日K蜡烛图 (15 分)股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早上刚刚开始开盘买卖成交的第1笔价格)、收盘价格Close(下午收盘时最后一笔成交的价格)、中间的最高价High和最低价Low。如果Close<Open,表示为“BW-Solid”(即“实心蓝白蜡烛”);如果Close>Open,表示为“R-Hollow”(即“原创 2021-04-03 09:57:08 · 190 阅读 · 0 评论 -
实验7-1-1 简化的插入排序(15分)
实验7-1-1 简化的插入排序 (15 分)本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式:输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。输入样例:51 2 4 5 73输出样例:1 2 3 4 5 7#include<stdio.h>int a[15];int m原创 2021-04-02 13:09:54 · 394 阅读 · 0 评论 -
7-1 厘米换算英尺英寸 (15 分)
7-1 厘米换算英尺英寸 (15 分)如果已知英制长度的英尺foot和英寸inch的值,那么对应的米(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6程序代码#include<stdio.h>#inclu原创 2021-04-01 13:26:22 · 144 阅读 · 0 评论 -
习题4-9打印菱形图案(15分)
习题4-9 打印菱形图案 (15 分)本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7输出样例: * * * * * * * * * * * * * * * * * * * * * * * * * 程序代码#include<stdio.h>#incl原创 2021-03-31 12:13:32 · 318 阅读 · 0 评论 -
6-8 简单阶乘计算(10分)
6-8 简单阶乘计算 (10 分)本题要求实现一个计算非负整数阶乘的简单函数。函数接口定义:int Factorial( const int N );其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。裁判测试程序样例:#include <stdio.h>int Factorial( const int N );int main(){ int N, NF; scanf("%d", &N);原创 2021-03-30 09:24:59 · 229 阅读 · 0 评论 -
习题9-1 时间换算(15分)
习题9-1 时间换算 (15 分)本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00:10程序代码#include<stdio.h>int main(){ int a,b,c原创 2021-03-29 17:09:18 · 203 阅读 · 0 评论 -
1029 旧键盘(20分)
1029 旧键盘 (20 分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入格式:输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。输出格式:按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有原创 2021-03-28 10:35:35 · 54 阅读 · 0 评论 -
1018 锤子剪刀布 (20 分)
1018 锤子剪刀布 (20 分)现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10的5次幂),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,原创 2021-03-27 16:38:28 · 119 阅读 · 0 评论 -
1053 住房空置率(20分)
1053 住房空置率 (20 分)在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。输入格式:输入第一行给出正整数 N(≤1000),为居民区住房总套数原创 2021-03-26 18:10:43 · 50 阅读 · 0 评论 -
6-5求自定类型元素的最大值(10分)
6-5 求自定类型元素的最大值 (10 分)本题要求实现一个函数,求N个集合元素S[]中的最大值,其中集合元素的类型为自定义的ElementType。函数接口定义:ElementType Max( ElementType S[], int N );其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素中的最大值,其值也必须是ElementType类型。裁判测试程序样例:#include <stdio.h>#define MAXN 10t原创 2021-03-25 12:00:06 · 218 阅读 · 0 评论 -
1014 福尔摩斯的约会(20分)
1014 福尔摩斯的约会 (20 分)大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0原创 2021-03-24 12:07:18 · 86 阅读 · 0 评论 -
实验8-1-8 报数(20分)
实验8-1-8 报数 (20 分)报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。函数接口定义:void CountOff( int n, int m, int out[] );其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语原创 2021-03-23 19:23:38 · 375 阅读 · 0 评论 -
1069 微博转发抽奖(20分)
1069 微博转发抽奖 (20 分)小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数 M(≤ 1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友原创 2021-03-22 17:18:25 · 58 阅读 · 0 评论 -
1079 延迟的回文数(20分)
1079 延迟的回文数 (20 分)给定一个 k+1 位的正整数 N,写成 ak⋯a1a0的形式,其中对所有 i 有0≤ai<10 且 ak>0。N 被称为一个回文数,当且仅当对所有 i 有 ai=ak−i。零也被定义为一个回文数。非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现。如果一个非回文数可以变出回文数,就称这个数为延迟的回文数。(定义翻译自 https:/原创 2021-03-21 10:40:58 · 53 阅读 · 0 评论 -
1022 D进制的A+B(20分)
1022 D进制的A+B (20 分)输入两个非负 10 进制整数 A 和 B (≤2的30次幂−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103程序代码#include<stdio.h>#include<iostream>int e[100005];using namespace原创 2021-03-20 12:30:11 · 73 阅读 · 0 评论 -
L1-054 福到了(15分)
L1-054 福到了 (15 分)“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。输入格式:输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。输出格式:输出倒置的网格,如样例所示。但是,如果这个原创 2021-03-19 16:48:21 · 63 阅读 · 0 评论