![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C
半濠春水
这个作者很懒,什么都没留下…
展开
-
交换两个变量的值
题目描述编写程序,输入整数i和整数j,然后通过调用函数swap(int *p, int *q),使得i和j的值交换,再输出i、j的值。编写函数:swap。下面给出swap函数的原型:void swap(int *p, int *q);当传递两个变量的地址时,swap函数用以下调用方法,交换两个变量的值:swap(&i, &j);在main函数中输入整数i及整数j,并调用swap函数交换i和j的值,再输出i、j的值。输入输入整数i和整数j,i和j之间间隔一个空格。输出输出.原创 2021-09-22 00:06:33 · 1004 阅读 · 0 评论 -
识别括号或花括号嵌套
题目描述修改10.2节的栈示例使它存储字符而不是整数。接下来,增加main函数,用来要求用户输入10个圆括号或花括号,然后指出它们之间的嵌套是否正确,若匹配输出1,否则输出0:((){}{()})1输入输入10个圆括号或花括号。输出输出识别的圆括号或花括号嵌套结果,若正确嵌套,输出1,否则输出0。样例输入((){}{()})样例输出1提示1、读入左圆括号或左花括号时,把他们像字符一样压入栈中。当读入右圆括号或右花括号时,把栈顶的项弹出,并且检查出项是否是匹配的圆括号或花括号;(如.原创 2021-09-22 00:06:22 · 580 阅读 · 0 评论 -
青蛙跳台阶问题
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。示例1:输入:0输出:1示例2:输入:1输出:1示例3:输入:2输出:2输入输入青蛙跳上的台阶数n,n为整数,且0 =< n <= 30。输出输出青蛙跳上n级台阶的跳法总数。样例输入7样例输出21#include <stdio.h>int main(void){ int n; scanf("%d", &n); .原创 2021-09-22 00:06:12 · 63 阅读 · 0 评论 -
第N个泰波那契数
题目描述泰波那契序列Tn定义如下:T0 = 0, T1 = 1, T2 = 1, 且在n >= 3的条件下 Tn = Tn-1 + Tn-2 + Tn-3编写程序,输入非负整数n, 请输出第n个泰波那契数Tn的值。示例:44解释:T3 = 0 + 1 + 1 = 2T4 = 1 + 1 + 2 = 4输入输入非负整数n,0 <= n <= 37。输出输出第n个泰波那契数Tn的值。样例输入25样例输出1389537#include <stdio..原创 2021-09-22 00:06:03 · 69 阅读 · 0 评论 -
左旋转字符组
题目描述字符组的左旋转操作是把字符组前面的若干个字符移到字符组的尾部。编写程序,实现字符组左旋转操作的功能。比如,输入字符组的长度、字符组、数字2,则输出左旋转两位得到的结果:7abcdefg2cdefgab输入1、输入字符组的长度n;2、输入字符组;3、输入左旋转的位数m,m为整数,且0<=m<=n。注意:输入的字符为字母。输出输出左旋后的字符组。样例输入4acgd3样例输出dacg#include <stdio.h>int main(v.原创 2021-09-21 01:30:41 · 141 阅读 · 0 评论 -
检查两组字符表示的单词是否相等
题目描述编写程序,输入两组字符。如果两组字符表示的单词是否相同,则输出1,否则输出0。字符组表示的单词是由字符组中所有字母按顺序连接形成的单词。注意:判断两组字符表示的单词是否相同时,不区分大小写。示例:wo&rD#.Wo%rd.1解释:字符组1表示的单词为worD;字符组2表示的单词为Word;所以字符组1和字符组2表示的单词相同,输出1。输入1、输入字符组1,以’.‘结束,字符组最大长度为80。2、输入字符组2,以’.‘结束,字符组最大长度为80。注意:字符组中至.原创 2021-09-21 01:28:20 · 436 阅读 · 0 评论 -
选择排序
题目描述编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排序这些整数。在给定n个元素的数组后,selection_sort函数必须做下列工作:(a) 搜索数组找出最大的元素,然后把它移到数组的最后;(b)递归地调用函数本身来对前n-1个数组元素进行排序。输入1、输入整数个数n;2、输入n个整数,整数与整数之间间隔一个空格。输出输出以"In sorted order: "开头,排序后的n个整数结尾,整数与整数之间间隔一个空格。样例输入.原创 2021-09-21 01:25:56 · 856 阅读 · 1 评论 -
计算x^n
题目描述编写程序计算x^ n,如果换一种方法计算 x^ n,9.6节的power函数速度可以更快。我们注意到,如果n是2的幂,则可以通过自乘的方法计算x^ n。例如 x^ 4 是x^ 2的平方,所以x^ 4可以用两次乘法计算,而不需要三次乘法。这种方法甚至可以用于n不是2的幂的情况。如果n是偶数,可以用公式x^n= (x^ n/2)2;如果n是奇数,则x^ n = x * x^ (n-1)。编写计算x^n的递归函数(递归在n=0时结束,此时函数返回1)。2 38编写两个函数:main和powe.原创 2021-09-21 01:23:09 · 1231 阅读 · 0 评论 -
计算正整数n中的第k位数字
题目描述编写程序,输入正整数n,然后通过调用函数digit(n,k),使得函数返回正整数n中的第k位数字(从右边算起)。例如,digit(829,1)返回9,digit(829,2)返回2,而digit(829,3)则返回8。如果k大于n所含有的数字的个数,那么函数返回0。编写两个函数:main和digit。下面给出digit函数的原型:int digit(int n, int k);在main函数中输入正整数n及正整数k,并调用digit函数计算正整数n中的第k位数字,再返回正整数n中的第k位数.原创 2021-09-21 01:13:02 · 3467 阅读 · 0 评论 -
计算正整数n的数字个数
题目描述编写程序,输入正整数n,然后通过调用函数num_digits(n),使得函数返回正整数n中数字的个数。1233编写两个函数:main和num_digits。下面给出num_digits函数的原型;int num_digits(int n);在main函数中输入正整数,并调用num_digits函数计算正整数n中数字的个数,再输出正整数中数字的个数。输入输入正整数n。输出输出正整数n中数字的个数。样例输入123样例输出3#include <stdio.h>.原创 2021-09-21 01:11:10 · 1444 阅读 · 0 评论 -
打印nxn的幻方
题目描述编写程序打印nxn的幻方(1,2,…,n2的方阵排列,且每行、每列和每条对角线上的和都相等)。由用户指定n的值:517 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9把幻方存储在一个二维数组中。起始时把数1放在0行的中间,剩下的数2,3,…,n2依次向上移动一行并向右移动一列。当可能越过数组边界时需要“绕回”到数组的另一端。例如,如果需要把下一个数放到-1行,我们就将其存储到n-1行(最后一行);如.原创 2021-09-21 01:04:44 · 836 阅读 · 0 评论 -
颠倒句子单词顺序
题目描述编写程序颠倒句子中单词的顺序:you can cage a swallow can’t you?Reversal of sentence: you can’t swallow a cage can you?输入输入一个句子,以句号(".")、问号("?")或者感叹号("!")(称为"终止字符")终止,长度最大限度为80。输出输出颠倒后的句子,以"Reversal of sentence: “开头,句子结尾。注意”:"后留一个空格。样例输入you can cage a swallo.原创 2021-09-21 01:04:53 · 853 阅读 · 0 评论 -
凯撒加密
题目描述已知的最古老的一种加密技术是凯撒加密(得名于JuliusCaesar)。该方法把一条消息中的每个字母用字母表中固定距离之后的那个字母来替代。(如果越过了字母Z,会绕回到字母表的起始位置。例如,如果每个字母都用字母表中两个位置之后的字母代替,那么Y就被替换为A,Z就被替换为B。)编写程序用凯撒加密方法对消息进行加密。用户输入待加密的消息和移位计数(字母移动的位置数目,取值为1-25):Go ahead, make my day.3Jr dkhdg, pdnh pd gdb.注意,当用户输.原创 2021-09-21 01:05:08 · 2812 阅读 · 0 评论 -
计算矩阵的每行与每列的和
题目描述编写程序读取一个5x5的整数数组,然后显示出每行的和与每列的和。8 3 9 0 103 5 17 1 12 8 6 23 115 7 3 2 96 14 2 6 0Row totals: 30 27 40 36 28Column totals: 34 37 37 32 21输入1、输入5x5矩阵的第一行数;2、输入5x5矩阵的第二行数;3、输入5x5矩阵的第三行数;4、输入5x5矩阵的第四行数;5、输入5x5矩阵的第五行数。注意数与数之间用一个空格间隔。输出1、输.原创 2021-09-21 01:05:18 · 3890 阅读 · 0 评论 -
B1FF过滤器
题目描述网络新手的原型是一个名为B1FF的人,他有一种独特的编写消息的方法。下面是一条常见的B1FF公告:H3Y DUD3, C 15 R1LLY C00L!编写一个"B1FF过滤器",它可以读取用户录入的消息并把此消息翻译成B1FF的表达风格:Hey dude, C is rilly cool.H3Y DUD3, C 15 R1LLY C00L!程序需要把消息转换成大写字母,用数字替代特定的字母(A->4,B->8,E->3, I->1,O->0,S->5.原创 2021-09-20 21:49:14 · 716 阅读 · 1 评论 -
用牛顿法计算平方根
题目描述编写程序,用牛顿方法计算正浮点数的平方根:31.73205设x是用户输入的数。牛顿方法需要先给出x平方根的猜测值y(我们使用1)。后续的猜测值通过计算y和x/y的平均值得到。下表给出了求解3的平方根的过程。 x y x/y y和x/y的平均值3 1 3 2 3 2 1.5 1.753 1.75 1.71429 1.732143 1.73214 1.73196 1.732053 1.73205 1.73205 1.7320注意,y的值逐渐接近x的平方根。为了获得更高的精度,程序中.原创 2021-09-20 21:46:28 · 1533 阅读 · 2 评论 -
表达式求值
题目描述编写程序对表达式求值:1+2*3.9 程序中把标点符号’.'作为表达式的结尾。表达式中的操作数是整数,运算符是+、-、*和/。表达式从左向右求值(所有运算符的优先级都一样)。表达式的操作数与运算符之间允许有空格。输入输入表达式,操作数是整数,以"."作为表达式结尾。输出输出表达式的值。样例输入1+2*3.样例输出9#include <stdio.h>int main(void){ int sum, n; char ch; sc.原创 2021-09-20 21:36:00 · 632 阅读 · 0 评论 -
姓前名后
题目描述编写一个程序,输入英文名和姓,以"."结束。先输出姓氏,其后跟一个逗号,然后输出名的首字母,最后加一个点:Lloyd Fosdick.Fosdick, L.输入输入英文名和姓,名和姓的首字母大写,以"."结束输入。注意:名和姓都可能只有一个字母,且输入中可能含空格(名之前、名和姓之间、姓氏之后),也可能无空格,但名内及姓内不含空格。输出先输出姓氏,其后跟一个逗号,然后输出名的首字母。注意","后留一个空格。样例输入Lloyd Fosdick.样例输出Fosdick, L..原创 2021-09-20 21:33:55 · 327 阅读 · 0 评论 -
计算句子的平均词长
题目描述编写程序计算句子的平均词长:It was deja vu all over again.3.4简单起见,程序中把标点符号作为一条句子的结尾,并把它看作其前面单词的一部分。平均词长显示一个小数位。输入输入一条句子,词与词之间用一个空格隔开,以标点符号"."结尾。输出输出平均词长,保留一个小数位,如样例。样例输入It was deja vu all over again.样例输出3.4#include <stdio.h>int main(void){ .原创 2021-09-20 21:30:31 · 1714 阅读 · 1 评论 -
24小时制显示时间
题目描述编写程序,要求用户输入12小时制的时间,然后用24小时制显示该时间。数值时间和AM/PM之间允许有空白(但不强制要求有空白)。有效输入的示例如下:1:15P1:15PM1:15p1:15pm1:15 P1:15 PM1:15 p1:15 pm可以假定输入的格式就是上述之一,不需要进行错误判定。 注意:12:00 PM表示中午12点,24小时制为12:00;12:00AM表示半夜12点,24小时制为0:00。输入输入12小时制的时间。输出输出24小时制时间,格式详见样例.原创 2021-09-20 21:27:52 · 1354 阅读 · 0 评论 -
单月的日历
题目描述编写程序显示单月的日历。用户指定这个月的天数和该月起始日是星期几:3131 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30 31输入1、输入这个月的天数。2、输入该月起始日是星期几(1=Sun,7=Stat)。输出输出单月的日历,日与日之间间隔一个空格,上下行日期右对齐。样例输入313样例输出 1 2 3 4 5 .原创 2021-09-20 00:49:33 · 774 阅读 · 0 评论 -
判断哪个日期更早
题目描述编写程序,判断哪个日期更早,使用户可以输入任意个日期。用0/0/0指示输入结束,不再输入日期。输入输入任意个日期(至少一个),每个日期独占一行,格式为mm/dd/yy,用0/0/0指示输入结束,不再输入日期。输出输出最早的日期。样例输入3/6/085/17/076/3/070/0/0样例输出5/17/07#include <stdio.h>int main(void){ int em, ed, ey, m, d, y; scanf("%d.原创 2021-09-20 00:33:26 · 374 阅读 · 0 评论 -
约分分数为最简分式
题目描述编写程序,要求用户输入一个分数,然后将其约分为最简分式:6/121/2输入输入正整数的分子和分母,格式为:分子/分母。输出输出最简分式。样例输入6/12样例输出1/2提示为了把分数约分为最简分式,首先计算分子和分母的最大公约数,然后分子和分母都除以最大公约数。求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m和n存储两个数的值。如果n为0,那么停止操作,m中的值是最大公约数(GCD);否则计算m除以n的余数,把n保存到m中,并把余数保存到n中。然后重复上述过.原创 2021-09-20 00:31:13 · 1015 阅读 · 0 评论 -
单月的日历
/*题目描述编写程序显示单月的日历。用户指定这个月的天数和该月起始日是星期几:313 1 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30 31输入1、输入这个月的天数。2、输入该月起始日是星期几(1=Sun,7=Stat)。输出输出单月的日历,日与日之间间隔一个空格,上下行日期右对齐。样例输入313样例输出1 2 3 4原创 2021-09-19 23:57:34 · 1529 阅读 · 0 评论 -
判断哪个日期更早
/*题目描述编写程序,判断哪个日期更早,使用户可以输入任意个日期。用0/0/0指示输入结束,不再输入日期。输入输入任意个日期(至少一个),每个日期独占一行,格式为mm/dd/yy,用0/0/0指示输入结束,不再输入日期。输出输出最早的日期。样例输入3/6/085/17/076/3/070/0/0样例输出5/17/07*/#include <stdio.h>int main(void){int em, ed, ey, m, d, y;scanf("%d/%d/原创 2021-09-19 23:56:43 · 447 阅读 · 0 评论 -
约分分数为最简分式
/*题目描述编写程序,要求用户输入一个分数,然后将其约分为最简分式:6/121/2输入输入正整数的分子和分母,格式为:分子/分母。输出输出最简分式。样例输入6/12样例输出1/2提示为了把分数约分为最简分式,首先计算分子和分母的最大公约数,然后分子和分母都除以最大公约数。求最大公约数的经典算法是Euclid算法,方法如下:分别让变量m和n存储两个数的值。如果n为0, 那么停止操作,m中的值是最大公约数(GCD);否则计算m除以n的余数,把n保存到m中,并把余数保存到n中。然后重复原创 2021-09-19 23:55:59 · 555 阅读 · 0 评论 -
多位数的逆序
/*题目描述编写程序,输入一个一位、两位、三位甚至更多位数,显示出输入数的逆序。输入输入多位数n。输出输出n的逆序。样例输入2456样例输出6542提示使用do循环将输入的数重复除以10,直到值达到0为止。*/#include <stdio.h>int main(void){int n;scanf("%d", &n);do{printf("%d", n % 10);n /= 10;} while (n > 0);}...原创 2021-09-19 23:54:44 · 383 阅读 · 0 评论 -
转化数为英文单词
/*题目描述编写一个程序,输入一个两位数,然后显示该数的英文单词:45forty-five输入输入两位数。输出输出数的英文单词。如果输入的数小于10或大于99,则输出"Illegal number!"。样例输入45样例输出forty-five提示把数分解为两个数字。用一个switch语句显示第一位数字对应的单词(“twenty”、“thirty"等),用第二个switch语句显示第二位数字对应的单词。不要忘记11~19需要特殊处理。/#include <stdio.h&原创 2021-09-19 23:53:39 · 513 阅读 · 0 评论 -
转化成绩为等级
/*题目描述利用switch语言编写一个程序, 把用数字表示的成绩转化为字母表示的等级。84B使用下面的等级评定规则:A为90100,B为8089,C为7079,D为6069,F为0~59。如果成绩高于100或低于0输出错误消息"Illegal grade!"。输入输入整数成绩。输出输出等级,如果成绩高于100或低于0输出消息"Illegal grade!"。样例输入84样例输出B提示把成绩拆分成2个数字,然后使用switch语句判断十位上的数字。/#include &l原创 2021-09-19 23:52:38 · 1297 阅读 · 0 评论 -
比较两个日期
/*题目描述编写一个程序,输入两个日期,然后显示哪一个日期更早:3/6/085/17/075/17/07输入按"mm/dd/yy"的日期格式输入两个日期,每个日期独占一行。输出按"mm/dd/yy"的日期格式输出更早的日期。样例输入3/6/085/17/07样例输出5/17/07*/#include <stdio.h>int main(void){int m1, d1, y1, m2, d2, y2;scanf("%d/%d/%2d", &m1,原创 2021-09-19 23:51:53 · 309 阅读 · 0 评论 -
计算税金
/*题目描述在美国的某个州,单身居民需要负担下面表格列出的所得税。收入(美元) 税 金未超过750 收入的1%750~2250 7.50美元加上超出750美元部分的2%2250~3750 37.50美元加上超出2250美元部分的3%3750~5250 82.50美元加上超出3750美元部分的4%5250~7000 142.50美元加上超出5250美元部分的5%超过7000 230.00美元加上超出7000美元部分的6%编写一个程序,要求用户输入需纳税的收入,然后显示税金。输入输入原创 2021-09-19 23:50:48 · 545 阅读 · 0 评论 -
计算校验位
题目描述欧洲国家不使用北美的12位通用产品代码(UPC),而使用13位的欧洲商品编码(European Article Number, EAN)。跟UPC一样,每个EAN码的最后也有一个校验位。计算校验位的方法也类似:首先把第2位、第4位、第6位、第8位、第10位和第12位数字相加;然后把第1位、第3位、第5位、第7位、第9位和第11位数字相加;接着把第一次加法的结果乘以3,再和第二次加法的结果相加;随后,再把上述结果减去1;相减后的结果除以10取余数;最后用9减去上一步骤得到的余数。以EAN码869.原创 2021-09-18 23:04:45 · 10105 阅读 · 0 评论 -
按八进制输出数
题目描述编写一个程序,输入0至32767之间的一个整数,并按八进制(基数为8)显示出来:1953In octal, your number is: 03641输入输入0至32767之间的一个整数。输出输出以"In octal, your number is: “开头的5位数,即使不需要这么多位数也要如此。注意”:"后留一个空格。样例输入1953样例输出In octal, your number is: 03641提示要把一个数转换成八进制,首先将其除以8,所得的余数是八进制数的最.原创 2021-09-18 22:58:39 · 1836 阅读 · 0 评论 -
三位数的逆序
题目描述编写一个程序,要求用户输入一个三位数,使新程序不需要利用算术分割就可以显示出3位数的逆序。输入输入三位数。输出逆序输出三位数,以"The reversal is: “开头,逆序三位数结尾。注意”:"后有一个空格。样例输入543样例输出The reversal is: 345提示使用带有%1d转换说明的scanf函数,其中%1d匹配只有一位的整数。#include <stdio.h>int main(void){ int num1, num2, num3;.原创 2021-09-18 22:55:05 · 437 阅读 · 0 评论 -
两位数的逆序
题目描述编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。程序会话应类似下面这样:28The reversal is: 82输入输入两位数,用%d读入两位数,然后分解成两个数字。输出逆序输出两位数,以"The reversal is: “开头,逆序两位数结尾。注意”:"后留一个空格。样例输入28样例输出The reversal is: 82提示如果n是整数,那么n % 10是个位数,而n /10则是移除个位数后剩下的数。#include <stdio..原创 2021-09-18 22:52:34 · 4461 阅读 · 0 评论 -
计算矩阵相关信息
题目描述编写一个程序,按任意次序输入从1到16的所有整数,然后用4x4矩阵的形式将它们显示出来,再计算出每行、每列和每条对角线上的和:16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 16 3 2 135 10 11 89 6 7 124 15 14 1 Row sums: 34 34 34 34Column sums: 34 34 34 34Diagonal sums: 34 34输入按任意次序输入从1到16的所有整数。输出1、.原创 2021-09-18 22:49:38 · 313 阅读 · 0 评论 -
将产品信息格式化
题目描述编写一个程序,对用户录入的产品信息进行格式化。程序会话类似下面这样: 58313.5 10/24/2010583 $ 13.50 10/24/2010输入1、输入产品编号;2、输入单位价格;3、输入日期,按月/日/年(即mm/dd/yy)的格式。输出输出产品编号、单位价格及日期,两两之间间隔4个空格,产品编号和日期采用左对齐方式,单位价格采用右对齐方式,保留两位小数,允许最大取值为9999.99的美元,且前面加上$。样例输入58313.510/24/201.原创 2021-09-18 22:43:23 · 1773 阅读 · 1 评论 -
分数相加
题目描述同时输入两个分数,中间用加号隔开,再输出相加后的结果。注意,输出结果不用化为最简分数。输入输入两个分数,中间用加号隔开。输出输出两个分数相加后的结果,以"The sum is "开头,相加结果结尾。注意"is"后留一个空格。样例输入5/6+3/4样例输出The sum is 38/24#include <stdio.h>int main(void){ int num1, denom1, num2, denom2, result_num, result.原创 2021-09-18 22:40:12 · 1238 阅读 · 0 评论 -
B-按给定格式输出电话号码
题目描述编写一个程序,以(xxx) xxx-xxxx的格式输入电话号码,并以xxx.xxx.xxxx的格式输出该电话号码。输入输入(xxx) xxx-xxxx格式电话号码。输出输出xxx.xxx.xxxx格式电话号码,以"You entered "开头,xxx.xxx.xxxx结尾。注意"entered"后留一个空格。样例输入(404) 817-6900样例输出You entered 404.817.6900#include <stdio.h>int main(void.原创 2021-09-18 22:36:05 · 95 阅读 · 0 评论 -
计算球体体积
题目描述编写一个计算球体体积的程序,自行录入球体的半径,参考公式v = 4/3πr^3。注意,分数4/3应写为4.0f/3.0f。输入输入球体半径。输出输出球体体积,保留两位小数。样例输入3样例输出113.04提示1、π取成3.14,C语言没有指数运算符,所以需要对r自乘三次来计算r^3。2、保留两位小数用%.2f。#include <stdio.h>int main(void){ float r, v; scanf("%f", &r); v =原创 2021-09-16 20:08:32 · 3410 阅读 · 1 评论