#C语言练习
平常遇到的略有意义的C语言练习题,因为限于当时学习内容,可能不是最优码,题目主要来源于XDOJ和PTA
巫思
满地都是六便士,我却抬头看见了月亮
展开
-
C语言·XDOJ练习·单词查找与统计
C语言·XDOJ练习·单词统计题目描述:输入字符串string[N](N≤100),各个单词以空格隔开,单词长度小于等于8,输入单词word[M](M≤8),在string中查找出相同的单词并统计该单词出现的次数信息,单词不区分大小写,输出单词和出现次数的信息,数据之间空一格空格。主函数输入字符串和待统计单词,编写函数count()实现统计和信息输出输入描述:输入一行字符以空格隔开各个单词,输入要统计的单词。输出描述:输出单词及其出现的次数信息,数据之间空一格。输入样例:To be o原创 2021-01-09 02:36:08 · 3487 阅读 · 6 评论 -
C语言·XDOJ练习·股票计算
C语言·XDOJ练习·股票计算题目描述:小明热爱炒股,经过一番分析之后,他决定投入一笔资金买入一定数量的某只股票。之后连续n天,他每天都关注这支股票并进行交易,但不会追加资金,即他只会用卖股票的钱买入股票。现在给出他首次买入股票时的价格和数量,以及其后每天股票的价格和他的交易数量,请计算n天之后他的资产(股票总值 + 现金)。输入描述:输入数据由若干行构成,第一行为三个正整数m,p,n。m表示首次买入股票数量(0<m<10000),p表示首次买入价格(0<p<=100原创 2021-01-08 17:29:25 · 2038 阅读 · 10 评论 -
C语言·XDOJ练习·拼数字
C语言·XDOJ练习·拼数字时间限制 1S内存限制 1000Kb问题描述 对于给定的字符序列(字符序列长度小于100),从左至右将所有数字字符取出拼接成一个无符号整数(拼接出的整数小于2^31)。然后计算并输出该整数的最大因子(如果是素数或0,则其最大因子为自身)。输入说明 输入数据为一行字符序列。输出说明 对输入的字符序列,求出所得整数的最大因子;若字符序列中没有数字或找出的整数为0,则输出0。输入样例 样例1输入sdf0ejg3.f?9f样例2输入?4afd0s&原创 2021-01-07 20:26:34 · 1358 阅读 · 0 评论 -
C语言·XDOJ练习·反复无常的墙头灯
C语言·XDOJ练习·反复无常的墙头灯题目描述:一间教室里有n盏灯,编号从1-n,开始时全部是关闭状态,现在有m个人进入教室,第1个人把所有灯打开,第2个人只按下所有编号为2的倍数的开关(此时,这些灯会关闭),第三个人按下所有编号为3的倍数的开关(此时,关闭状态的灯会打开,打开状态的灯会关闭)。依次类推,直到所有人进入,请问最后有那些编号的灯开着。输入描述:输入两个整数n和m,其中m<=n<=100。输出描述:输出最后开着灯的编号输入样例:7 5输出样例:1 4 6原创 2021-01-07 16:56:41 · 683 阅读 · 0 评论 -
C语言·PTA练习·第一次接触递归的体会
**C语言·PTA练习·第一次接触递归的体会**本题要求实现一个函数,对一个整数进行按位顺序输出。体会程序运行是自上而下执行,不妨令此维度为y轴;每行代码的读取是自左向右,不妨令此维度为x轴;递归函数的执行逻辑是层层进入达到临界再层层退出,如果令此维度为z轴,则递归逻辑就是在z轴方向上进行一次往复运动,并每层z带有对应的x,y的代码,所以递归其实就是从起点开跑不断接近最终到达设定标杆后反向跑回起点反向执行简单的题目具体如下本题要求实现一个函数,对一个整数进行按位顺序输出*。函数接口定义原创 2021-01-07 14:55:46 · 171 阅读 · 0 评论 -
C语言·PTA练习(哪位有心人可以告诉我最后2分怎么回事)·指定位置输出字符串
C语言·PTA练习(哪位有心人可以告诉我最后2分怎么回事)·指定位置输出字符串本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义:char *match( char *s, char ch1, char ch2 );函数match应打印s中从ch1到ch2之间的所有字符,并且返回ch1的地址。裁判测试程序样例:#include <stdio.h>#define MAXS 10cha原创 2021-01-07 00:41:01 · 265 阅读 · 0 评论 -
C语言·PTA练习·水仙花数
C语言·水仙花数水仙花数是指一个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,原创 2021-01-05 20:55:58 · 2435 阅读 · 0 评论 -
C语言·PTA练习·数列求和
C语言·PTA练习·数列求和给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123#include<stdio.h>#include<math.h>int main(){ int A,N; int An=0,Sn=0; int M;原创 2021-01-05 16:47:14 · 4968 阅读 · 8 评论 -
C语言·数组练习~马鞍点
C语言·数组练习~马鞍点问题描述 若一个矩阵中的某元素在其所在行最小而在其所在列最大,则该元素为矩阵的一个马鞍点。请写一个程序,找出给定矩阵的马鞍点。输入说明 输入数据第一行只有两个整数m和n(0<m<100,0<n<100),分别表示矩阵的行数和列数;接下来的m行、每行n个整数表示矩阵元素(矩阵中的元素互不相同),整数之间以空格间隔。输出说明 在一行上输出马鞍点的行号、列号(行号和列号从0开始计数)及元素的值(用一个空格分隔),之后换行;若不存在马鞍点,则输出一个原创 2021-01-05 14:09:27 · 3631 阅读 · 2 评论 -
C语言·妙用标记法·绘图重叠问题
C语言·妙用标记法·绘图重叠问题体会:起初我把矩形作为分析对象,要算重叠面积,不仅要做夸张的分类讨论,还要用数列分析计算重叠次数和面积的关系。而最后当我改变分析对象,转而以坐标格作为分析对象,为研究范围内的坐标格分配对应的地址,无论是否重叠,只要被覆盖就标记为1,无覆盖标记为0,再统计标记为1的元素个数即可得总覆盖面积。总结方向是根本问题,方向错了,再大的努力,再强的实力也不堪一击,在错误的方向放弃就是在正确的方向上前进。问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2原创 2020-12-02 06:22:31 · 1340 阅读 · 0 评论 -
C语言·数组·灰度直方图
C语言·数组·灰度直方图类别数组时间限制 2S内存限制 1000Kb问题描述 一幅m×n的灰度图像可以用一个二维矩阵表示,矩阵中的每个元素表示对应像素的灰度值。灰度直方图表示图像中具有每种灰度级的象素的个数,反映图像中每种灰度出现的频率。假设图像灰度为16级(灰度值从0-15),现给出一个矩阵表示的灰度图像,输出各级灰度的像素个数。输入说明 输入数据第一行为两个整数m 和n分别表示图像的宽度和高度(0<=m,n<=256),其后是n行数据,每行m个整数,分别表示图像各个像原创 2020-11-28 19:22:48 · 3069 阅读 · 2 评论 -
C语言·数组·密码编译(阿斯克码法)
C语言·数组·密码编译(阿斯克码法)时间限制:1S内存限制:10000Kb问题描述:有一行电文,已按照下面的规律译成密码:A>>Z a>>zB>>Y b>>yC>>X c>>x. .. .. .等等。即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变,要求编程序将密码译成原文。输入说明:输入一串字符(包含7个元素),表示密码。输出说明:输出其对应的字原创 2020-11-28 16:25:42 · 2097 阅读 · 0 评论 -
C/C++·用数组处理字符串多排序问题·处理字符串
C/C++·用数组处理字符串多排序问题·处理字符串时间限制 1S内存限制 1000Kb问题描述 从键盘输入一个字符串,将该字符串按下述要求处理后输出:将ASCII码大于原首字符的各字符按原来相互间的顺序关系集中在原首字符的左边,将ASCII码小于等于原首字符的各字符按升序集中在原首字符的右边。输入说明 输入一行字符串,字符串c不长度超过100.输出说明 输出处理后的一行字符串输入样例 aQWERsdfg7654!@#$hjklTUIO3210X98aY输出样例 sdfghjk原创 2020-11-28 12:13:24 · 355 阅读 · 0 评论 -
C语言·流程控制·位数判断
C语言·流程控制·位数判断题目描述:输入一个不大于 9 位数的非负整数 m,判断 m 是几位数?输入说明:输入为一个整数 m,范围 0<=m<=999999999输出说明:输出一个整数,表示整数 m 的位数输入样例:3456输出样例: 4/*位数判断*/ #include<stdio.h>int main(){ int iFigure;//待判数 scanf("%d",&iFigure); int i;//循环数 int iPlaces=1原创 2020-11-26 17:17:11 · 1283 阅读 · 0 评论 -
C语言·流程控制·最大公约数
C语言·流程控制·最大公约数类别:时间限制: 1 S内存限制: 1000 Kb问题描述: 最大公约数(GCD)指某几个整数共有因子中最大的一个,最大公约数具有如下性质,gcd(a,0)=agcd(a,1)=1因此当两个数中有一个为0时,gcd是不为0的那个整数,当两个整数互质时最大公约数为1。输入两个整数a和b,求最大公约数输入说明:输入为两个非负整数a和b(0<=a,b<10000),a和b之间用空格分隔,输出说明:输出其最大公约数输入样例:样例1输入 2原创 2020-11-26 17:15:17 · 379 阅读 · 2 评论 -
C语言·数组的简单练习·字符串个数统计
**C语言·数组的简单练习·字符串个数统计**//字符串个数统计//#include<stdio.h>int main(){ char cString[100]; int iNum1=0,iNum2=0,iNum3=0; int i; gets(cString); for(i = 0;cString[i] != '!';i++) { if(cString[i]>='0'&&cString[i]<='9') { iNum1++;原创 2020-11-25 20:27:57 · 2116 阅读 · 0 评论 -
C语言·流程控制·亲和数
**C语言·流程控制·亲和数时间限制:1S题目描述:古希腊数学家毕达哥拉斯在自然数研究中发现,220 的所有真约数(即不是自身的约数)之和为:1+2+4+5+10+11+20+22+44+55+110=284而 284 的所有真约数为 11、22、44、7171、142142,加起来恰好为 220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。你的任务就编写一个程序,判断给出的两个整数m和n是不是亲和数(m和n可以相原创 2020-11-25 17:16:11 · 1024 阅读 · 0 评论 -
C语言·流程控制·哥德巴赫猜想
C语言·流程控制·哥德巴赫猜想背景知识:哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任意大于2的偶数都可写成两个质数之和。探寻目的:寻找差值满足情况的所有素数组中最小的一组素数//哥德巴赫猜想//#include<stdio.h>/*预先写出判断素数的函数*/ int FindPnumber(int z)/*z待判数*/{ int j,m,p; /*j用于判断一个数的整除情况的循环数, m用于标记反映整除情况 p用于反馈判断情况*/ fo原创 2020-11-23 19:32:17 · 412 阅读 · 2 评论 -
C语言·流程控制·质数求和
C语言·流程控制·质数求和problem 4-6 质数求和时间限制:1S问题描述 输入一个大于20的正整数p,求出正整数范围内第p个质数(或素数,大于1且只能被1和自己整除的正整数,)到第p+10个质数之和。其中,第1个质数为2,第2个质数为3,第3个质数为5,第4个质数为7,依次类推。输入说明 :一行输入1个整数p,20< p <150。 输出说明 第p个质数到第p+10个质数之和。输入样例: 21输出样例: 1081#include<stdio.h>int mai原创 2020-11-22 15:25:18 · 3798 阅读 · 1 评论