
C语言学习笔记
练题
Love 郑亚茹
这个作者很懒,什么都没留下…
展开
-
zzulioj 1127: 矩阵乘积
题目描述计算两个矩阵A和B的乘积。输入第一行三个正整数m、p和n,0<=m,n,p<=10,表示矩阵A是m行p列,矩阵B是p行n列;接下来的m行是矩阵A的内容,每行p个整数,用空格隔开;最后的p行是矩阵B的内容,每行n个整数,用空格隔开。输出输出乘积矩阵:输出占m行,每行n个数据,以空格隔开。样例输入 Copy2 3 41 0 10 0 11 1 1 34 5 6 78 9 1 0样例输出 Copy9 10 2 38 9 1 0...原创 2021-03-02 15:20:24 · 301 阅读 · 0 评论 -
zzulioj 1128: 课程平均分
题目描述期末考试结束,班主任拿到了本班学生的成绩汇总表,由m行n列组成(本班共有m名学生,本学期有n门课程),每行是一个同学的n门课程成绩,请编写程序,计算并输出每门课的平均分,结果保留2位小数。输入第一行是两个整数m和n,表示本班的人数和本学期课程数目,0<m<=1000,0<n<=10。接下来是成绩单,有m行,每行n个实数。输出输出一行,有n个实数,保留两位小数,表示每门课的平均分,用空格隔开。样例输入 Copy5 480 65 70 9599 38 59 9原创 2021-03-02 15:36:08 · 230 阅读 · 0 评论 -
zzuilioj 1126: 布尔矩阵的奇偶性
题目描述一个布尔方阵具有奇偶均势特性,当且仅当 每行、每列总和为偶数,即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性:1 0 1 00 0 0 01 1 1 10 1 0 1编写程序,读入一个n阶方阵并检查它是否具有奇偶均势特性。如果没有,你的程序应当再检查一下它是否可以通过修改一位(把0改为1,把1改为0)来使它具有奇偶均势特性;如果不可能,这个矩阵就被认为是破坏了。输入第一行是一个整数n ( 0< n < 100 ),代表该方阵的阶数。然后输入n 行,每行n个整数(原创 2021-03-02 09:54:01 · 162 阅读 · 0 评论 -
zzulioj 1121: 电梯
题目描述在某一高层建筑内只有一部电梯,当你按下一个数时,电梯会运行到那一层。已知电梯每上升一层需6秒,下降一层需4秒,在需要停留的那层停留5秒。现有N个整数组成的一个需求列表,电梯将依次响应,电梯从0层开始运行,而在运行过程结束之前不会返回0层。注意,若出现相邻两个整数相等,代表在同一层执行了两个不同任务,可以理解为:电梯已经停了5秒,正要关门时又有人在同一层按开门键,电梯又开门并停留5秒。输入输入分两行,第一行是一个正整数N(N<=1000),代表停留几次,第二行的N个数字代表这几次依次停留原创 2021-02-22 17:26:22 · 491 阅读 · 0 评论 -
zzulioj 1132: 数字字符统计
题目描述对于给定的一个字符串,统计其中数字字符出现的次数。字符串长度不超过1000.输入输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。输出对于每个测试实例,输出该串中数字字符的个数,每个输出占一行。样例输入 Copy2asdfasdf123123asdfasdfasdf111111111asdfasdfasdf样例输出 Copy69#include<stdio.h>int main(){ int n,原创 2021-03-07 11:53:50 · 146 阅读 · 0 评论 -
zzulioj 1131: 最常用字符
题目描述英文字母里出现频率最高的是哪个字母呢? 给定一个字符串,输出字符串中出现次数最多的字母。输入输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。输出输出一个小写字母,表示该字符串中出现次数最多的字母。若答案有多个,则只输出ASCII码最小的那个。样例输入 CopyAn apple样例输出 Copya在这里插入代码片...原创 2021-03-07 11:38:05 · 322 阅读 · 1 评论 -
zzulioj 1117: 查找数组元素
题目描述输入n个整数构成一个数组,在这个数组中查找x是否存在,如果存在,删除x,并输出删除元素后的数组。如果不存在,输出“Not Found”。定义一个查找函数find(),在数组a中查找x,若找不到函数返回-1,若找到返回x的下标,函数原型如下:int find(int a[], int n, int x);然后在main()中,先调用函数find(),若查找失败输出“Not Found";若查找成功,则调用上一题中定义的函数del()删除该元素,再调用上一题中的PrintArr()输出删除元素后原创 2021-02-15 19:23:29 · 270 阅读 · 0 评论 -
zzulioj 1116: 删除元素
题目描述输入一个递增有序的整型数组A有n个元素,删除下标为i的元素,使其仍保持连续有序。注意,有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。void del(int a[], int n, int i); /删除数组a中下标为i的元素/void PrintArr(int a[], int n); /输出数组a的前n个元素/输入输入分三行,第一行是一个整数n(n<10),第二行是n个整数,第三行是要删除元素的下标i,i>=0。输出输出删除下标为i的元素后的原创 2021-02-15 19:00:45 · 168 阅读 · 0 评论 -
zzulioj 1114: 逆序
题目描述输入n(1<=n<=10)和n个整数,逆序输出这n个整数。输入输入n(1<=n<=10),然后输入n个整数。输出逆序输出这n个整数,每个整数占4列,右对齐。样例输入 Copy64 5 6 1 2 3样例输出 Copy3 2 1 6 5 4#include<stdio.h>int main(){ int a[10]; int n, i, j; scanf("%d",&n); for(i=0;i<n;原创 2021-02-15 18:25:51 · 298 阅读 · 0 评论 -
zzulioj 1113: 递归调用的次数统计(函数专题)
题目描述如下程序的功能是计算 Fibonacci数列的第n项。函数fib()是一个递归函数。请你改写该程序,计算第n项的同时,统计调用了多少次函数fib(包括main()对fib()的调用)。#include<stdio.h>int fib(int k);int main(void ){int n;scanf("%d", &n);printf("%d\n", fib(n));return 0;}int fib(int k){if(k == 1 || k == 2原创 2021-02-15 18:18:42 · 344 阅读 · 0 评论 -
zzulioj 1129: 第几天
题目描述你知道,2012-1-1是该年的第1天,而9999-9-9呢?给你一个具体的日期,计算该日期是该年的第几天。输入输入一个日期,格式为:Year-month-day。year是小于9999的正整数。输出一个整数,表示该日期是该年的第几天。样例输入 Copy2012-3-1样例输出 Copy61在这里插入代码片...原创 2021-03-03 14:18:39 · 101 阅读 · 0 评论 -
zzulioj 1122: 小明的调查作业
题目描述小明的老师布置了一份调查作业,小明想在学校中随机找N个同学一起做一项问卷调查,聪明的小明为了实验的客观性,他先随机写下了N个1到1000之间的整数(0<N≤1000),不同的数对应着不同的学生的学号。但他写下的数字难免会有重复数字,小明希望能把其余重复的数去掉,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入输入有2行,第1行为1个正整数,表示整数的个数:N.第2行有N个用空格隔开的正整数,表示小明写下的N个整数。输出输出也是原创 2021-02-23 08:26:22 · 241 阅读 · 0 评论 -
zzuliioj 1120: 最值交换
题目描述有一个长度为n的整数序列。请写一个程序,先把序列中的最小值与第一个数交换,再把最大值与最后一个数交换。输出转换好的序列。 分别编写两个函数MinIndex()和MaxIndex()来计算最小值下标和最大值下标。int MinIndex(int a[], int n); //函数返回数组a中最小元素的下标int MaxIndex(int a[], int n); //函数返回数组a中最大元素的下标数组元素的输出调用函数PrintArr()。输入输入包括两行。第一行为正整数n(1≤n≤原创 2021-02-22 16:59:59 · 304 阅读 · 0 评论 -
zzulioj 1119: 一维数组排序
题目描述对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下:void sort(int a[], int n);数组元素的输出调用PrintArr()。输入第一行输入一个整数n(1<=n<=10),表示数组有n个整数;第二行输入n个整数。输出输出占一行。对这n个整数数按照从小到大的顺序输出,数据之间用一个空格隔开。样例输入 Copy66 5 1 2 3 4样例输出 Copy1 2 3 4 5 6在这里插入代码片...原创 2021-02-17 10:26:19 · 469 阅读 · 0 评论 -
zzulioj 1118: 数列有序
题目描述一个非递减有序的整型数组有n个元素,给定一个整数num,将num插入该序列的适当位置,使序列仍保持非递减有序。要求定义一个函数insert(),将整数num插入在数组a的适当位置上,函数原型如下:int insert(int a[], int n, int num);另外函数仍然调用以前定义过的函数PrintArr()输出数组所有元素。输入输入有三行。第一行是一个正整数n,n<=1000。第二行是n个整数,第三行是待插入整数num。输出输出非递减有序的n+1个整数,数据之间用空原创 2021-02-17 10:09:39 · 263 阅读 · 0 评论 -
zzulioj 1123: 最佳校友
题目描述北京校友会每年举办两次,所有校友都有校友编号,每次到会的校友都在签到簿上写下自己的编号和姓名,在校友会成立5周年的聚会上将颁发“最佳校友奖”,该奖项颁发给到会次数最多的校友。现在请你编写程序,找出这个奖项的得主。若有多个校友并列第一,则均可获奖。输入输入若干个整数,表示签到簿上的校友编号,所有编号均为0~99的整数,以一个负数作为输入结束的标志。输出输出出现次数最多的编号。若获奖选手有多个,则按从小到大的顺序输出选手编号,用空格隔开。样例输入 Copy4 5 3 1 3 4 2 7 -原创 2021-02-23 10:11:07 · 169 阅读 · 0 评论 -
zzulioj 1125: 上三角矩阵的判断
题目描述编写程序,输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。上三角矩阵即主对角线以下(不包括主对角线)的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。要求定义函数IsUpperTriMatrix()判断矩阵a是否是上三角矩阵,如果是返回1,否则返回0。函数原型如下:int IsUpperTriMatrix(int a[][N], int n);输入输入一个正整数n(1<=n<=10)和n阶原创 2021-02-23 17:32:40 · 280 阅读 · 0 评论 -
zzulioj 1115: 数组最小值
题目描述数组a有n个元素,请输出n个元素的最小值及其下标。若最小值有多个,请输出下标最小的一个。注意,有效下标从0开始。输入输入分两行,第一行是一个正整数n(n<=1000),第二行是n个整数。输出输出占一行。输出数组的最小值及其下标,用空格隔开。样例输入 Copy58 4 5 1 2样例输出 Copy1 3#include<stdio.h>#define N 1000int main(){ int a[N]; int n, i, min, j=0; sc原创 2021-02-15 18:37:32 · 383 阅读 · 0 评论 -
zzulioj 1130: 杨辉三角
题目描述还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1输入输入只包含一个正整数n(1 <= n <= 30),表示将要输出的杨辉三角的层数。输出输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开。样例输入 Copy4样例输出 Copy11 11 2 11 3 3 1#include<stdio.h>void yh(int n,int原创 2021-03-03 15:13:48 · 137 阅读 · 0 评论 -
zzulioj 1124: 两个有序数组合并
题目描述已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。输入输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。输出输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。样例输入 Copy4 1 2 5 73 6 4 2样例输出 Copy7 6 5 4 2 2 1提示试图排序的孩子们要小心了~~~~~~...原创 2021-02-23 14:17:15 · 811 阅读 · 0 评论 -
zzulioj 1141: 进制转换
题目描述将十进制整数n转换成二进制,并保存在字符数组中,最后输出。要求定义并调用convert()函数, 将十进制整数n对应的二进制数存入字符数组str中。void convert(int n, char str[]);输入输入一个非负整数n,n<2^31。输出输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。样例输入 Copy13样例输出 Copy1101在这里插入代码片...原创 2021-03-11 15:12:54 · 491 阅读 · 0 评论 -
zzulioj 1133: 单词个数统计
题目描述从键盘输入一行字符,长度小于1000。统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。输入输入只有一行句子。仅有空格和英文字母构成输出单词的个数样例输入 Copystable marriage problem Consists of Matching members*样例输出 Copy7#include<stdio.h>#include<string.h>int main(){ char str[1000]; int原创 2021-03-07 14:43:13 · 388 阅读 · 0 评论 -
zzulioj 1134: 字符串转换
题目描述输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。输入输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。输出将转换后的整数乘以2输出,测试数据保证结果在int范围内。样例输入 Copysg987aa65t498样例输出 Copy197530996#include<stdio.h>int main(){ char a[100]; int n=0, i; gets(a); for原创 2021-03-07 15:01:20 · 348 阅读 · 0 评论 -
zzulioj 1135: 算菜价
题目描述妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。输入输入含有一些数据组,每组数据包括菜种(不含空格的字串),数量w(计量单位不论,一律为double型数)和单价p(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。输出支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。最后,请输出一个精度为角的原创 2021-03-07 15:15:09 · 716 阅读 · 0 评论 -
zzulioj 1138: C语言合法标识符
题目描述输入一个字符串,判断其是否是C的合法标识符。C语言中规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。输入输入一个长度不超过50的字符串。输出如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。样例输入 Copy8fixafghgjhjhjyuyuyyuyuyu样例输出 Copyno#include<stdio.h>int main(){ char a[50], ch; gets(a); int i, j=0;原创 2021-03-08 14:30:28 · 270 阅读 · 0 评论 -
zzulioj 1142: 二进制数的大小
题目描述输入三个2 进制的数,要求将这三个二进制数对应的十进制整数按从小到大的顺序输。要求程序定义一个bToD()函数和一个main()函数,bToD() 函数的功能是将二进制数转化为十进制整数,其余功能在main()函数中实现。int bToD(char str[]){//函数返回二进制数str对应十进制整数}输入输入三个2 进制的数,用空格隔开。所有数据均为非负数,二进制数长度不超过30。输出将对应的十进制整数按从小到大的顺序输出样例输入 Copy1101 110 1011原创 2021-03-16 13:20:57 · 224 阅读 · 0 评论 -
zzulioj 1140: 小数点后第n位 多实例
题目描述给你一个小数x,让你算出小数点后第n位是什么,1 <= n <= 6。输入首先输入一个t,表示有t组数据,跟着t行:每行输入一个小数(输入数据保证一定是a.b的形式,总长度不超过100。为了简单化问题,没有循环小数的情况),然后跟一个n,表示小数点后第几位。输出输出一个整数,表示小数点后第n位的数。样例输入 Copy31.234 12.345 23.456 4样例输出 Copy240#include<stdio.h>#include<s原创 2021-03-09 15:17:42 · 230 阅读 · 0 评论 -
zzulioj 1144: 多种进制
题目描述输入一个十进制整数n,转换成2、3、7、8进制输出要求程序定义一个dToK()函数,功能是将十进制数转化为k进制整数,其余功能在main()函数中实现。void dToK(int n, int k, char str[]){//将n转化为k进制数,存入str}输入输入一个int范围内的正整数n输出输出为4行,分别是n对应的2、3、7、8进制数样例输入 Copy13样例输出 Copy11011111615#include<stdio.h>#includ原创 2021-03-16 14:39:44 · 186 阅读 · 0 评论 -
zzulioj 1143: 最大值—多种进制
题目描述输入n个数,每个数的进制由其后面的数字k指定,k>=2且k<=10, 输出最大的数对应的十进制数。要求程序定义一个KToD()函数和一个main()函数,KToD() 函数的功能是将k进制数转化为十进制整数,其余功能在main()函数中实现。int KToD(char str[], int k){//函数返回k进制数str对应十进制整数}输入首先输入整数n,然后是n行,每行包含一个字符串和一个整数k,用空格隔开,该字符串表示一个k进制数。所有输入均为非负数。输出输出最原创 2021-03-16 13:39:55 · 139 阅读 · 0 评论 -
zzulioj 1137: 查找最大元素
题目描述对于输入的字符串,查找其中的ASCII码值最大字母,在该字母后面插入字符串“(max)”。输入输入一行长度不超过200的字符串组成,字符串仅由大小写字母构成。输出输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。样例输入 Copyabcdefgfedcbag样例输出 Copyabcdefg(max)fedcbag(max)#include<stdio.h>int main(){ char ch[20原创 2021-03-08 14:01:35 · 154 阅读 · 0 评论 -
zzulioj 1136: 首字母变大写
题目描述输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。输入输入一个长度不超过100的英文句子。输出请输出按照要求改写后的英文句子。样例输入 Copyi like ACM样例输出 CopyI Like ACM#include<stdio.h>#include<string.h>#include<ctype.h>int main(){ char ch[100]; gets(ch); int i; if(ch[原创 2021-03-08 13:32:41 · 234 阅读 · 3 评论 -
zzulioj 1139: 输出最短字符串
题目描述输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个。输入第一行是一个整数n,后面跟着n行,每行包括一个由字母和数字和空格组成的字符串,长度不超过1000。输出长度最短的字符串,若长度相同则输出出现较早的那一个。样例输入 Copy5How are you!HappyGood!Hello world!Thinks样例输出 CopyHappy...原创 2021-03-09 14:45:36 · 162 阅读 · 0 评论 -
zzulioj 1145: 有问题的里程表(2)
题目描述某辆汽车有一个里程表,该里程表可以显示一个整数,为该车走过的公里数。然而这个里程表有个毛病:它总是从3变到5,而跳过数字4,里程表所有位(个位、 十位、百位等)上的数字都是如此。例如,如果里程表显示15339,汽车走过1公里之后,该里程表显示15350。输入输入一个整数num,表示里程表显示的数值,长度不超过9位,且一定不含整数4。输出输出一个整数,表示实际行驶的里程。样例输入 Copy150样例输出 Copy117在这里插入代码片...原创 2021-03-17 15:16:50 · 186 阅读 · 0 评论 -
zzulioj 1148: 组合三位数之一
题目描述把1、2、3、4、5、6、7、8、9组合成3个3位数,要求每个数字仅使用一次,使每个3位数均为完全平方数。按从小到大的顺序输出这三个三位数。输入无输出按从小到大的顺序输出这三个三位数,由空格隔开。输出占一行。#include<stdio.h>int zsl(int a,int b,int c);int main(){ int a[30]; int i, j, k, t=0; for(i=10;i<33;i++) { if(i*i>100&原创 2021-03-19 23:22:03 · 471 阅读 · 0 评论 -
zzulioj 1146: 吃糖果
题目描述HOHO,终于从Speakless手上赢走了所有的糖果,是Gardon吃糖果时有个特殊的癖好,就是不喜欢连续两次吃一样的糖果,喜欢先吃一颗A种类的糖果,下一次换一种口味,吃一颗B种类的糖果,这样;可是Gardon不知道是否存在一种吃糖果的顺序使得他能把所有糖果都吃完?请你写个程序帮忙计算一下。输入第一行有一个整数T,接下来T组数据,每组数据占2行,第一行是一个整数N(0 < N <= 1000000),表示糖果的种类。第二行是N个数,表示每种糖果的数目Mi(0 < Mi &l原创 2021-03-17 15:52:58 · 94 阅读 · 0 评论 -
zzulioj 1147: 查找子数组
题目描述给定两个整型数组,数组a有n个元素, 数组b有m个元素,1<=m<=n<100,请检验数组b是否是数组a的子数组。若从数组a的某个元素a[i]开始,有b[0]=a[i],b[1]=a[i+1],…,b[m]=a[i+m],则称数组b是数组a的子数组。输入输入第一行为两个整数n和m;第二行为数组a的n个整数;第三行为数组b的m个整数,各数据之间用空格隔开。输出输出占一行。若b是a的子数组,则输出子数组所在位置i,注意下标从0开始;否则输出“No Answer”。样例输入原创 2021-03-19 16:36:26 · 118 阅读 · 0 评论 -
zzulioj 1149: 组合三位数之二
题目描述把1,2,3,4,5,6,7,8,9,组成三个三位数(每个数只能用一次),第二个数是第一个数的2倍,第三个数是第一个数的3倍,这三个三位数各是多少?答案可能有很多组,请按第一个数的升序顺序输出每组的三个三位数。输入无输出输出所有满足条件的三位数组合,按第一个数的升序顺序输出。样例输出 Copy192 384 576…#include<stdio.h>int zsl(int a,int b,int c);int main(){ int i, j, k; for原创 2021-03-20 13:33:10 · 322 阅读 · 1 评论 -
zzulioj 1150: 数数多少个整数
题目描述小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。输入输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。输出输出整数个数(不是数字字符个数哦)。样例输入 Copy365grh 27ha578样例输出 Copy3提示注意:010是两个数字,0和10#include<stdio.h>#include<string.h>#include<ctype.h>int main(){ char a原创 2021-03-20 14:25:39 · 366 阅读 · 0 评论 -
zzulioj 1163: 亲和串(字符串)
题目描述判断亲和串。亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。输入本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。输出如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。样例输入 CopyAABCDCDAAASDASDFababa样例输出 Copyyesnono#include<std原创 2021-08-13 18:16:22 · 551 阅读 · 0 评论 -
zzulioj1158: 又是排序(指针专题)
题目描述将输入的四个整数按由大到小的顺序输出。请你定义一个四个数排序的函数psort,psort的四个参数为要排序的四个整数变量的地址,请你按照从大到小的顺序把四个数分别放到四个指针所指向的变量里,不要在函数内输入输出任何内容。请务必使用函数实现四个数的排序。void psort( int *pa, int *pb,int *pc,int *pd){//实现四个数的排序,并分别放到四个指针所指向的变量里。}注意:本题如果采用C/C++提交时,至少要编写psort()函数和main()函数两个函原创 2021-07-31 12:07:32 · 450 阅读 · 0 评论