
PTA基础题--大一练习
训练
键.仙
这个作者很懒,什么都没留下…
展开
-
#6-10 使用函数输出水仙花数
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义:int narcissistic( int number );void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。函数PrintN则打印开区间(m,n)内所有.原创 2021-12-27 21:55:13 · 393 阅读 · 0 评论 -
7-22 有重复的数据I
在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。输入格式:你的程序首先会读到一个正整数n,1<=n<=100000。 然后是n个整数,这些整数的范围是[1,100000]。输出格式:如果这些整数中存在重复的,就输出:YES否则,就输出:NO输入样例:51 2 3 1 4原创 2021-12-26 09:56:02 · 1080 阅读 · 0 评论 -
★7-22二维数组 阅览室
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。输入格式:输入在第原创 2021-12-22 00:00:00 · 119 阅读 · 0 评论 -
★7-21 藏尾诗
本题要求编写一个解密藏尾诗的程序。输入格式:输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占两个字节。输出格式:取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。输入样例:悠悠田园风然而心难平兰花轻涌浪兰香愈幽静结尾无空行输出样例:风平浪静结尾无空行#include <stdio.h>int main(){ char a[4][19], wo原创 2021-12-21 02:15:00 · 415 阅读 · 0 评论 -
★7-20字符数组 切分表达式——写个tokenizer吧
[先说点出题背景]这个题是为低年级同学、学C语言的同学准备的,因为,对这部分同学,这个题目编写起来略有一点复杂。如果是高年级、学过了正则表达式(Regular Expression)的同学或者学过了Java等OO语言的同学做这个题,应当发现这题比较简单吧。哦,对了,什么是tokenizer?请自行查询解决。反正在此处不应翻译成“令牌解析器”。[正题]四则运算表达式由运算数(必定包含数字,可能包含正或负符号、小数点)、运算符(包括+、-、*、/)以及小括号((和))组成,每个运算数、运算符和括号都原创 2021-12-20 00:45:00 · 184 阅读 · 0 评论 -
7-19字符数组 IP地址转换
“可以适用ascll值相减,可以省用转换函数。例如 m[i]-'0' 得出2进制的值”一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010结尾无空行输出样例:..原创 2021-12-19 19:12:42 · 188 阅读 · 0 评论 -
★7-18二维数组 找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。本题要求编写程序,求一个给定的n阶方阵的鞍点。输入格式:输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。输出格式:输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。输入样例1:41 7 4 14 8 3 61 6 1 20 7 8 9结尾无空行输出样例1:2原创 2021-12-19 16:15:58 · 169 阅读 · 0 评论 -
★7-17一维数组 点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“KF1⋯FK”,其中1≤K≤10,Fi(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。输出格式:统计所有被.原创 2021-12-18 22:45:07 · 119 阅读 · 0 评论 -
★7-15数组 数组循环左移
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出循环左移m位以后的整原创 2021-12-16 22:57:42 · 180 阅读 · 0 评论 -
7-14函数 求组合数
本题要求编写程序,根据公式Cnm=m!(n−m)!n!算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。输出格式:按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。输入样例:2 7结尾无空行输出样例:result = 21结尾无空行#include <s原创 2021-12-08 23:30:51 · 477 阅读 · 0 评论 -
★7-13循环结构 jmu-c-找回文数
如果将某个自然数的各位数字顺序倒过来,得到的数仍为它本身,则称这个自然数为回文数。例如1331,11,2332等。对于一个任意的正整数,将其转过来后和原来的整数相加,得到新的整数后重复该步骤,最终可以得到一个回文数。 下面就是实现按上述方法求回文数的部分程序,输入任意一个正整数n,输出上述步骤重复执行时每步的执行结果,直至得到一个回文数或者超过设定的界限2147483648。输入:87输出:1:87+78=1652:165+561=7263:726+627=13534:1353原创 2021-12-08 23:26:48 · 1087 阅读 · 0 评论 -
7-12分支结构 回文数
#include <stdio.h>int main(){ int x; scanf("%d", &x); if (x%10==x/10000%10&&x/1000%10==x/10%10) printf("yes"); else printf("no"); return 0;}判断一个5位数是不是回文数。例如12321是一个回文数,即它的个位与万位相同,十位与千位相同。。输入格式:直接输入一个5位数正整数。输出格式:输出.原创 2021-12-08 23:26:01 · 497 阅读 · 0 评论 -
7-10循环结构 编程打印空心字符菱形
本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。输入格式:输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。输出格式:输出空心字符菱形。输入样例:B 5结尾无空行输出样例: B C CD D C C B结尾无空行#in原创 2021-12-07 23:23:14 · 1463 阅读 · 0 评论 -
7-9嵌套循环 打印菱形图案
本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。输入格式:输入在一行中给出一个正的奇数n。输出格式:输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。输入样例:7结尾无空行输出样例: * * * * * * * * * * * * * * * * * * * * * * * * * 结尾无空行#include <stdio.h>#include <s原创 2021-12-07 23:22:40 · 567 阅读 · 0 评论 -
7-8switch语句 两个数的简单计算器
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。输入格式:输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。输出格式:当运算符为+、-、*、/、%时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。输入样例1:-7 / 2结尾无空行输出样例1:-3结尾原创 2021-12-07 23:21:45 · 993 阅读 · 0 评论 -
★7-7循环结构 简单计算器
拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。输入格式:输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。输出格式:在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。#include <stdio.h>#include <string.h>#include <stdlib.h>int m原创 2021-12-06 22:55:43 · 381 阅读 · 0 评论 -
★6-2 消除连续字符(升序)
定义函数,对给定的字符串,如果相邻字符ASCII码升序连续(例如abcd),就可以消去连续字符,反复消除后,确保最后得到的字符串中字符没有升序连续的。函数接口定义:在这里描述函数接口。例如: void fun( char *str);str是字符串,例如:cabdfa其中ab删后得到cdfa,再删cd,得到fa裁判测试程序样例:在这里给出函数被调用进行测试的例子。例如:#include <stdio.h>void fun( char *str);main( )原创 2021-12-01 21:52:50 · 1253 阅读 · 1 评论