文档视界 最新最全的文档下载
当前位置:文档视界 › c语言趣味编程例题

c语言趣味编程例题

c语言趣味编程例题

以下是一些有趣的C语言编程例题,供您参考:

1. 猜数字游戏

编写一个猜数字的小游戏,让用户从0到100之间随机生成一个数字,用户可以多次猜测,每次猜测后程序会提示用户猜大还是猜小,直到猜中为止。

2. 反转字符串

编写一个函数,接受两个参数,分别为字符串和字符串长度,返回一个新的字符串,该字符串是原字符串的反转。

3. 计算阶乘

编写一个函数,接受一个整数n作为参数,返回n的阶乘。

4. 编写一个简单的计算器

编写一个简单的计算器,可以进行加、减、乘、除四则运算,支持整数和浮点数运算。

5. 编写一个简单的图形界面应用程序

使用C语言编写一个简单的图形界面应用程序,实现一个窗口,其中

包含一个按钮和一个标签。当用户点击按钮时,标签的文本将更改为“Hello, World!”。

6. 编写一个简单的文本编辑器

编写一个简单的文本编辑器,支持打开、保存和删除文件,并能够在文本中进行插入、删除和替换操作。

7. 编写一个简单的游戏

编写一个简单的游戏,例如俄罗斯方块、扫雷或贪吃蛇等,可以使用C语言编写游戏引擎,然后使用图形库来创建游戏界面。

这些例题可以帮助您练习C语言编程技能,并提高您的编程能力。

c语言if语句练习题

c语言if语句练习题 1、输入一个学生成绩,判断并输出该学生是否及格。 #include main { int a; printf ; scanf ; if printf ; else switch { case 0: case 1: case: case: case: case: printf ; break; 为B\n”); } }

2、输入三角形的三条边长,求三角形的周长和面积,若不能构成三角形,输出提示。拓展练习:根据用户输入的三角形的三条边长判定是何种三角形。 提示:正三角形——三边相等; 等腰三角形——三边中有两边相等; 直角三角形——两边的平房和等于第三边平方。 case: printf; break; case: printf; break; case: printf; #include #include main { float a,b,c,d; \n”); printf ; d=/2; if { if {printf ; printf ; } else { if { printf ; printf **),a+b+c); } else { if

{ printf ; printf **),a+b+c); } else { printf ; printf **),a+b+c); } } } } else printf ; } 3、输入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。 ? 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?

CC语言经典实用趣味程序设计编程百例精解56

C/C++语言经典、实用、趣味程序设计编程百例精解(5-6) 41.马克思手稿中的数学题 马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人? *问题分析与算法设计 设x,y,z分别代表男人、女人和小孩。按题目的要求,可得到下面的方程: x+y+z=30 (1) 3x+2y+z=50 (2) 用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得: 2x+y=20 (3) 由(3)式可知,x变化范围是0~10 *程序说明与注释 #include int main() { int x,y,z,count=0; printf(" Men Women Children\n"); printf("………………………………….\n"); for(x=0;x<=10;x++) { y=20-2*x; /*x定值据(3)式求y*/ z=30-x-y; /*由(1)式求z*/ if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/ printf(" %2d: %d %d %d\n",++count,x,y,z); } } 42.最大公约数和最小公倍数

求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM) *问题分析与算法设计 手工方式求两个正整数的蝚大公约数的方法是用辗转相除法,在程序中可以模拟这种方式。 *程序说明与注释 #include int main() { int a,b,num1,num2,temp; printf("Input a & b:"); scanf("%d%d",&num1,&num2); if(num1>num2) /*找出两个数中的较大值*/ { temp=num1; num1=num2; num2=temp; /*交换两个整数*/ } a=num1; b=num2; while(b!=0) /*采用辗转相除法求最大公约数*/ { temp=a%b; a=b; b=temp; } printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/ printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/ } *运行结果 1.Input a & b: 20 55 The GCD of 20 and 55 is: 5 The LCM of them is: 220 2.Input a & b: 17 71 The GCD of 17 and 71 is: 1 The LCM of them is: 1207 3.Input a & b: 24 88 The GCD of 24 and 88 is: 8 The LCM of them is: 264

使用C语言编写简单小游戏

纯真童趣的《泡泡堂》,还有武林情仇,笑傲江湖的《剑侠情缘on line》.它是e 时代常谈的话题,是交互式娱乐的主力军,是一种高层次的综合艺术,更是一个民族的文化,世界观的全新传播方式 .作为游戏玩家的我们,是不是想设计一个属于自己的游戏呢? 爱玩是人的天性,而C语言是我们计算机专业都要学习的一门基础学科.一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣. 1,总是从Hello,world开始学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell o,world!".让我们来看看这个最简单的C程序: #incolude <> /*把输入输出函数的头文件包含进来*/ int main() { printf("Hello, world!");/*在屏幕上输出字符串"Hello,world!"*/ return 0;/*退出main函数,并返回0*/ } 下面我们发现几个值得改进的地方,1,程序的运行结果一闪而过 .2,每执行这个程序一次都能看见上次运行留下的字符.3,我们还希望屏幕输出一个笑脸来欢迎我们. 让我们来改进一下这个程序吧! 1,在return语句的前面加一句:getch ();,表示按任意键结束.2,在printf语句前用clrscr函数清屏,要使用这个函数和getch函数,需要在程序开头再包含头文件码也有许多非常好玩的字符,比如ASCII码值为2的就是一个笑脸,我们可以用printf("%c", 2)来输出一个笑脸. 现在我们把Hello,world程序改成一个更好看的Hello,world了.下面让我们开始做游戏吧! 2,心动的开始,一个运动中的笑脸大家小时侯喜欢看动画片吗?哈哈,我猜你们都喜欢吧!下面就让我们来做一个小动画吧.在屏幕上显示一个运动的小笑脸,而且当它到达屏幕的边缘时会自动弹回来.先在程序定义一个在屏幕中运动的点的结构: struct move_point { int x, y;/*该点的位置,包括x坐标和y坐标*/ int xv, yv;/*该点在x轴,y轴的速度*/ }; 运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段距离,再画出该物体.让我们看到以下代码: gotoxy, ;/*把光标移到指定的坐标*/ printf(" ");/*输出一个空格,把先前的字符擦去*/ 然后我们让物体按其速度运动: += ;/*水平方向按x轴的速度运动*/ += ;/*垂直方向按y轴的速度运动*/ 运动后还要判断物体是否出界,如果出了界,就令物体反弹,即让它下一刻的速度等于现在的速度的相反数.最后打印出这个笑脸: gotoxy, ; printf("%c\b", 2); /*输出ASCII码值为2的"笑脸"字符*/ 怎么样?是不是很有趣呢?不过这个笑脸一直是自己运动,能不能让我们来控制它运动呢?答案是肯定的,让我们继续往下学吧! 3,交互的实现——让我们来控制笑脸运动 这个程序的主要功能是接受按键,如果接收的是方向键,就让笑脸顺着方向移动,如果接收的是ESC键就退出程序,其他按键则忽略处理.接受按键我们用以下两条语句: while (bioskey(1) == 0);/*等待按键*/ key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/ 然后用switch语句来判断按键以及执行相关操作,如下: switch (key) /*对变量key的值进行判断*/ { case UP: /*如果按的是向上键*/ … break; /*让物体向上运动,并退出switch*/

趣味C语言题

韩信点兵 在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数: 按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10; 你知道韩信至少有多少兵?()z谁结婚呢? 魔术师的秘密 在一次晚会上,一位魔术师掏出一叠扑克牌,取出其中13张黑桃,预先洗好后,把牌面 朝下,对观众说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一, 将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数 1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌 子上。第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3, 这样依次将13张牌翻出,准确无误。现在的问题是,魔术师手中牌的原始顺序是怎样的? 约瑟夫问题 这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸 免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止.问怎样排法,才能使每次投入大海的都是非教徒.

求车速 一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859.两小时后里程 表上出现了第二个新的对称数.问该车的速度是多少新的对称数是多少? 常胜将军 现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一根火柴谁输.请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为"常胜将军". 十进制转换成N进制(N=2 8 16 ) 定义一个方法Trans(int num, int regx) 实现将一个输入十进制数num转换成regx 进制 Eg: Trans(100, 16) 表示将 100 转成 16进制数输出 求100到1000之间有多少个其数字之和为5的整数. (答案:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500) 打鱼还是晒网scanf(“%d%d%d”,&year ,&month,&day); 中国有句俗语叫"三天打鱼两天晒网".某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是"晒网". *思考题:请打印出任意年份的日历 *运行结果 Enter year/month/day:1991 10 25

C语言竞赛练习题40题

C语言竞赛练习题 1.求最大数 问555555的约数中最大的三位数是多少? 2.高次方数的尾数 求13的13次方的最后三位数。 3.借书方案知多少 小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法? 4.数制转换 将任一整数转换为二进制形式。 5.打鱼还是晒网 中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。 6.抓交通肇事犯 一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。 7.该存多少钱 假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。 8.怎样存钱利最大 假设银行整存整取存款不同期限的月息利率分别为: 0.63% 期限=1年 0.66% 期限=2年 0.69% 期限=3年 0.75% 期限=5年 0.84% 期限=8年 利息=本金*月息利率*12*存款年限。 现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。 9.捕鱼和分鱼

A、B、C、D、E五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼? 10.出售金鱼 买卖提将养的一缸金鱼分五次出售系统上一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。问原来的鱼缸中共有几条金鱼? 11.分数四则运算 对输入的两个分数进行+、-、*、/四则运算,输出分数结果。 算法分析如下: 对分数b/a与d/c,不管哪一种运算,其运算结果均为y/x形式。对结果y/x进行化简,约去分子分母的公因数:试用i(i=1,...,y)对y,x进行试商,若能同时整除y,x,则y,x同时约去公因数i,最后打印约简的分数。 12.平分七筐鱼 甲、乙、丙三位鱼夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有七筐装满了鱼,还有七筐装了半筐鱼,另外七筐则是空的,由于他们没有秤,只好通过目测认为七个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份? *思考题 晏会上数学家出了一道难题:假定桌子上有三瓶啤酒,癣瓶子中的酒分给几个人喝,但喝各瓶酒的人数是不一样的。不过其中有一个人喝了每一瓶中的酒,且加起来刚好是一瓶,请问喝这三瓶酒的各有多少人? (答案:喝三瓶酒的人数分别是2人、3人和6人) 13.有限5位数 个位数为6且能被3整除的五位数共有多少? 14.除不尽的数 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。 15.一个奇异的三位数 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。 16.位反序数 设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。

C语言编程题目

软件学院/信息学院 C语言上机试题 大家学习C语言是为了使用,不是为了考试,所以我希望你们能先自己动手做做,然后再参考一下答案。我知道有些同学喜欢死记硬背,也许可以把这些题目的答案都背下来,但是那样做一点好处都没有。大学里,别把分数看得那么重要。找工作没人在乎你到底考了多少分。能诚实的对待考试,正确的看待分数,真才实学才是最应该得到的。大家可以到10.2.55.55下载所有源代码(前提是我开电脑了,一般我晚上开) 特别声明:出题老师请您注意!去年C语言笔试卷子时,有些题目是只有软件学院/信息学院的同学需要做的,但是卷头写的是“此题只有信息学院的同学做”,小心呀,今年别才出现这样的错误了!别忘了软件学院!!! 第二部分 - 简单数值计算: 2-1. 编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数。 ———— main() { int a,b,c,n=0; for(c=1;c<=200;c++) for(a=1;a<=200;a++) for(b=1;b<=200;b++) if(c*c==a*a+b*b){printf("%4d",c);a=201;b=201;n++;} printf("\nn=%d\n",n); } 2-2. 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。 ———— main() { int a=1,b,c,d; for(d=0;d<=9;d++) for(b=0;b<=1;b++) for(c=0;c<=9;c++) if(9000*a+900*b+90*c+9*d == 1000*d+100*c+10*b+a) printf("%d\n",1000*a+100*b+10*c+d); } 2-3. 口袋中有12个球,其中3红,3白和6黑,从中任取8个球,编程,输出所有不同的取法。 输出形式如下: RED WHITE BLACK ------------------------ 1: 0 2 6 2: 0 3 5 。。。。。。。

C语言编程题_1

1.素数 1. [100,999] 15 2 [300,800]。761 6.。试求[100,999]之内的所有逆向超级素数的个数。39 3问[31,601]之间有多少对双胞胎数22 5. 求出[200,1000]之间的最大一对双胞胎数的和。1764 4. 试求6744可以分解成多少种不同的素数对144 7.。试求1234可以分解成多少种不同的素数对25 8.求[100,900]之间相差为12的素数对的个数。50 9. 试求[100,999]之内的所有逆向超级素数的和。21645 10.。试求[100,999]之内的所有逆向超级素数从大到小数的第10个素数是多少?797 11. 试求所有两位绝对素数的和。429 12. 在[200,900]范围14 13. 求[100,999]之内超级素数的个数。14 14. 求[100,200]之间的第10个友素数对所对应的友素数的值17291 15. 求[2,400]中相差为10的相邻素数对的对数。 5 16. 求[50,150]之间的友数对的数目。38 17. 求[40,119]之间友素数对的数目。30 18.,求[1,21]范围内有多少个梅森尼数?7 19. [300,800]范围求满足上述条件的最大的三位十进制数。761 20. 求符合下列条件的四位完全平方数. 求其中最大的一个数。7921 21.设某四位数的千位数字:3201, 3^2+0^2=2^3+1^3,试问所有这样的四位数之和是多少?97993 22. 设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位数:9512, 9+1=5*2,试问所有这样的四位数之和是多少?1078289 23. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位数之和。1301 24.求[1,999]之间能被3整除,且至少有一位数字是5的所有正整数的个数。91 25. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求所有这样的三位数中最大的一个是多少?407 26. 有一个三位数满足下列条件: (1)此三位数的三位数字各不相同; (2)此三位数等于它的各位数字的立方和。试求这种三位数共有多少个? 4 27. 求五位数各位数字的平方和为100的最大的五位数。94111 28. 所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。1301 29. 设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?49 30. 回文数是指正读和反读都一样的正整数。例如3773是回文数。求出[1000,9999]以内的所有回文数的个数 31.把一张一元钞票,换成一分、二分和五分硬币,每种至少8枚,问有多少种方案? 80 32. 50元的整币兑换成5元、2元和1元币值(三种币值均有、缺少一种或两种都计算在内)的方法有多少种。146 33. 50元的整币兑换成5元、2元和1元币值(要求三种币值均有)的方法有多少种。106 34. 马克思曾经做过这样一道趣味数学题:试求有多少种方案分配男人、9 35. A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。求 130B>C的倒勾股数有多少组。 1 36. 倒勾股数是满足公式:求A,B,C之和小于100的倒勾股数有多少组? 2 37. 勾股弦数是满足公式:求A,B均小于25且A+B+C<=100的勾股弦数的个数。11 38. 倒勾股数是满足公式:假定A>B>C,求A,B,C均小于或等于100的倒勾股数有多少组? 4

趣味c语言编程100例

趣味c语言编程100例 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ======================================================= =======

【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000)

C语言程序设计的综合性实验

C语言程序设计的综合性实验——使用菜单选择趣味程序 所属课程名称:C语言程序设计 实验属性:综合 实验学时:4 设计一个比较实用的菜单,通过菜单选择不同的程序完成不同的功能。菜单选择部分用SWITCH 语句实现。菜单项部分编写四道趣味程序: 1、老鼠咬坏账本,公式中符号□代表是被老鼠咬掉的地方。要想恢复下面的等式,应在□中填上哪能个相同的数字? 3□×6237=□3×3564 2、侦探题。一汽车撞人后开溜。4 个人提供如下线索: 甲:牌照三、四位相同;乙:牌号为31××××; 丙:牌照五、六位相同;丁:三—六位是一个整数的平方。 3、打印一个钻石图案 4、求百钱买百鸡的问题: 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? 5、退出菜单 ①指导思想 通过让学生做一个综合的应用程序设计,让学生掌握三种结构化程序设计的常用语句,结合应用前面所学的知识,提高分析问题、解决问题的能力和学生编程应用能力。同时通过趣味程序的设计来提高学生对本门课程的学习兴趣。 ②实验目的及要求 通过使用C语言最基本的知识,训练学生结构化程序设计的基本技术。锻炼使用控制语句的能力,提高学生的编程能力。 ③涉及到的内容或知识点 本实验涉及到算法分析、顺序程序设计、分支结构程序设计和循环结构程序设计等知识点。 ④采用的教学方法和手段 学生在完成相关课程基础实验教学内容,掌握结构化程序设计基本方法的前提下,由老师指定设计要实现的主要功能和实验的内容,学生查阅资料后,写出实验设计报告。在规定的时间内,由学生独立完成实验内容,并对结果进行分析,按照要求撰写规范的实验报告。

C语言程序设计项目教程习题答案

C语言程序设计项目教程习题答案C语言程序设计是计算机科学与技术专业的核心课程之一,也是编程初学者入门的重要一步。在学习过程中,教材中提供的习题是巩固知识、实践技能的重要工具。然而,对于初学者来说,习题的答案不仅仅是一个简单的结果,更是学习的指导和启发。本文将为C语言程序设计项目教程中的一些习题提供答案,帮助读者更好地理解和掌握C语言编程。 1. 习题一:求两个数的和 ```c #include int main() { int num1, num2, sum; printf("请输入两个整数:\n"); scanf("%d%d", &num1, &num2); sum = num1 + num2; printf("两个数的和为:%d\n", sum); return 0; }

2. 习题二:计算平均数 ```c #include int main() { int num1, num2, num3; float average; printf("请输入三个整数:\n"); scanf("%d%d%d", &num1, &num2, &num3); average = (float)(num1 + num2 + num3) / 3; printf("三个数的平均数为:%.2f\n", average); return 0; } ``` 3. 习题三:判断奇偶数 ```c #include int main()

int num; printf("请输入一个整数:\n"); scanf("%d", &num); if(num % 2 == 0) { printf("该数为偶数\n"); } else { printf("该数为奇数\n"); } return 0; } ``` 4. 习题四:计算阶乘 ```c #include int main()

《C语言》程序算法练习题

完成下列训练题的基本步骤是: 1、问题分析及解决方案框架确定 充分地分析和理解问题本身,明确问题到底要做什么。(what to do?) 在确定解决问题框架过程中(how to do?),考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。 2、详细设计和编码 确定算法的主要流程,在此基础上进行代码设计(coding),一般来讲,每个 明确的功能模块程序不超过60行代码,否则,功能要继续分解。 3、上机前编写程序与检查 上机前检查程序可有效提高调试效率,减少上机调试程序时的无谓错误。 程序检查主要有两种途径:用一组测试数据手工执行程序;或者通过阅读或 给别人讲解自己的程序而深入、全面地理解程序逻辑,把程序中的明显错误 事前排除。 4、上机调试程序 提供的结果应当包括: 算法、数据结构的设计、程序清单 1、猜数游戏 游戏的开始由机器产生一个随机数(1~100之间,用库函数random()取值),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示“your answer is HIGH,try again!”否则,程序提示“your answer is LOW,try again!”直到猜对为止。程序可以实现连续猜数,直到游戏者退出。 程序输出要求:累计游戏者猜对这个数所需的次数n,当n<=7时,给出“congratulation!”,当715时,用exit(0)库函数退出程序。 2、百钱百鸡问题(穷举算法) 我国古代数学家张丘建在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三; 鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?” 注:穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特性。 使用穷举法的关键是确定正确的穷举范围,即不能过分扩大,也不能过分缩小穷举的范围。 3、请编写一个程序,计算表达式:data1 op data2的值。其中,op为运算符+、-、*、/、%。 4、打印所有的水仙花数 5、编写一个程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符 数组中并输出。(提示:算法采用模拟人工法)

c语言if语句练习题

c语言i f语句练习题-CAL-FENGHAI.-(YICAI)-Company One1

c语言if语句练习题 1、输入一个学生成绩,判断并输出该学生是否及格。 #include main { int a; printf ; scanf ; if printf ; else switch { case 0: case 1: case: case: case: case: printf ; break; 为B\n”); } }

2、输入三角形的三条边长,求三角形的周长和面积,若不能构成三角形,输出提示。拓展练习:根据用户输入的三角形的三条边长判定是何种三角形。 提示:正三角形——三边相等; 等腰三角形——三边中有两边相等; 直角三角形——两边的平房和等于第三边平方。 case: printf; break; case: printf; break; case: printf; #include #include main { float a,b,c,d; \n”); printf ; d=/2; if { if {printf ; printf ; } else { if { printf ; printf **),a+b+c); } else { if { printf ;

printf **),a+b+c); } else { printf ; printf **),a+b+c); } } } } else printf ; } 3、输入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人 解方程组 编写程序,采用穷举法求出结果。

C语言编程题库

在[200,900]范围内同时满足以下两个条件的十进制数:⑴其个位数字与十位数字之和除以10所得的余数是百位数字; ⑵该数是素数;问有多少个这样的数?(..14..) [100,999]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字; ⑵该数是素数; 求有多少个这样的数?(..15..) [300,800]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数;求满足上述条件的最大的三位十进制数。(.. 761..) 一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。(.. 429..) 除1和它本身外,不能被其它整数整除的正整数称为素数(注:1不是素数,2是素数)。若两素数之差为2 ,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。(.. 22..) 若两个素数之差为2,则称这两个素数为双胞胎数。求出[200,1000]之内有多少对双胞胎数。(.. 20..) 两个素数之差为2,则称这两个素数为双胞胎数。求出[200,1000]之间的最大一对双胞胎数的和。(.. 1764..) 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[40,119]之间友素数对的数目。(.. 30..) 若两个自然连续数乘积减1后是素数,则称此两个自然连续数为友数对,该素数称为友素数,例:2*3-1=5,因此2与3是友数对,5是友素数,求[2,49]之间友素数对的数目. (.. 28..) 若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71,因此,8与9是友数对,71是友素数。求[100,200]之间的第10个友素数对所对应的友素数的值(按由小到大排列)。(.. 17291..) 若两个连续的自然数的乘积减1后是素数,则称此两个连续自然数为友数对,该素数称为友素数。例如,由于 8*9-1=71,因此,8与9是友数对,71是友素数。求[50,150]之间的友数对的数目。(.. 38..) 求[2,400]中相差为10的相邻素数对的对数。(.. 5..) 求[5,500]中相差为10的素数对(注:要求素数对的两个素数均在该范围内)的个数(即:有多少个这样的素数对)。(.. 31..) 求[100,900]之间相差为12的素数对(注:要求素数对的两个素数均在该范围内)的个数。(.. 50..) 梅森尼数是指能使2^n-1为素数的数n,求[2,21]范围内最大的梅素尼数?(.. 19..) 梅森尼数是指能使2^n-1为素数的数n,求[2,21]范围内有多少个梅森尼数?(.. 7..) 当m的值为50时,计算下列公式的值:T=1-1/2-1/3-1/4-…-1/m 要求:按四舍五入的方式精确到小数点后第四位。(.. -2.4992..) 已知: f(n)=f(n-1)+2*f(n-2)-5*f(n-3) f(0)=1 f(1)=2 f(2)=3 求f(0)+f(1)+…f(30)。(.. -750874..) 编程求取:[121,140] 之间的弦数的个数(若某正整数的平方等于另两个正整数平方之和,则称该数为弦数. 例 如:3^2+4^2=5^2, 因此5是弦数)。(.. 8..)

c语言趣味题

一、九九乘法表 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 分析: ①这需要编写一个循环结构的程序。 ②需要循环嵌套。外循环控制打印第几行,内循环控制打印某一行的若干个等式。 程序如下: main( ) { int m,n; for(m=1;m<=9;m++) { for (n=1;n<=m;n++) printf("%1d*%1d=%-4d",m,n,m*n); printf("\n");

} } 请思考:请你用别的编程方法再解此题。 二、说谎 有甲、乙、丙三人,每人或者说真话,或者说假话。 甲说:“乙说假话。” 乙说:“甲和丙是同一种人。” 问甲、乙、丙三人谁说真话,谁说假话? 分析: ①本题看似漫无边际,无法入手,不知道怎么与C语言程序设计挂钩。但只要和“真”、“假”、逻辑表达式联系起来,脉络就清晰起来。 ②这里用整型变量a、b、c表示甲、乙、丙三人说话的真假,当变量值为1时表示此人说真话,变量值为0时表示此人说假话。 甲说:“乙说假话。”这有两种可能:甲说的是真话,而乙确实说假话,即: a==1&&b==0 等价于a&&!b 或者甲说的是假话,而乙说真话,即: a==0&&b==1 等价于!a&&b 由此可得逻辑表达式: a&&!b||!a&&b

C语言编程练习题绝对经典

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人 解方程组 编写程序,采用穷举法求出结果; 编写程序,根据以下公式求e 的值;要求用两种方法计算: 1for 循环,计算前50项 2while 循环,直至最后一项的值小于10-4 从键盘中输入一个数字不限位数,用循环语句编程判断并输出这个数字的位数; 猴子吃桃子问题;猴子第一天摘下若干个桃,当即只一半,又多吃一个;第二天早上又将剩下的一半吃掉一半,双多吃一个;以后每天早上都吃了前天剩下的一半零一个,到第10天早上只剩下最后一个桃;问第一天摘了几个桃; 编程打印九九乘法表 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分去掉一个最高分和一个最低分; 从键盘中输入一个数字可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入0123.456,返回值为整数有效位数为3 1输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能; 2使用数组来进行编程; 使用数组,编写一个十进制正整数转换为任意进制数的转换工具; 大进制向小进制的转换;方法是相除去余 10进制327转八进制: 327/8=40余数为7 40/8=5余数为0 于是八进制数为507第一位5是最后的商 使用数组,编写一个任意进制正整数转换为十进制的转换工具;以2,10进制互转为例,其他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20;然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块; 编写一个函数,用以求x2-5x+4的值,x 做为函数的形参,调用此函数,求: y1=22-5×2+4 Y2=x+152-5x+15+4 Y3=sinx2-5sinx+4 sinx 可以加载”math.h ”库函数后使用,函数说明为 doublesindoublex 编写一个函数,使给定的一个二维数组N ×N 行列互换N>3; 从键盘中输入一个不超过40个字符的字符串,再输入一个位数,删除对应位数的字符,然后输出删除指定字符后的字符串 11111111!2!3!4!5!!e n ≈++++++⋅⋅⋅⋅⋅⋅+

智慧职教C语言趣味编程单元测试及考试答案

1.(10分) 单选题 10 根据算术表达式计算如果a=8,b=2,c=3时,a/b-c=? A 1 B 2 C 3 D 4 参考答案:A 解析: a/b=4;4-c=1 2.(10分) 单选题 10 C语言程序的基本单位是 A 程序行 B 语句 C 函数 D 字符 参考答案:C 解析: 无 3.(10分) 单选题 10 srand函数中产生的随机数从2到20的是 A rand()%(1+1-20)+20 B rand()%(20+1-2)+20 C rand()%(20+1-2)+2 D rand()%(20+2-2)+2 参考答案:C 解析: 格式是rand()%(最大值+1-最小值)+最小值 4.(10分) 单选题 10 在定义变量和变量名时我们要注意:①命名交量名时应尽量做到“见名知意”,这样有助于记忆,又增加了程序的可读性②下划线(_ )符号一般是系统函数常用的开始符号,故一般不要用它作为变量名的第一个字符。③不能用数字符号(0-- 9)作名字的开始字符。④系统规定的保留予不可再作为交量名。⑤大写字母与小写字母表示不同的名字。 A ①②③④ B ①②③ C ①②③④⑤ D ①②

解析: 变量的定义 5.(10分) 单选题 10 C语言中,char类型数据占() A 1个字节 B 2个字节 C 4个字节 D 8个字节 参考答案:A 解析: 无 6.(10分) 单选题 10 double类型数据在C语言中占() A 1个字节 B 2个字节 C 4个字节 D 8个字节 参考答案:D 解析: 无 7.(10分) 单选题 10 下列和整形,字符型和实型相互对应的选项是()。 A int float double B double char int C int char float D int double char 参考答案:C 解析: 整数是int的,字符串的是char,实行是float或者double; 8.(10分) 单选题 10 下列哪一个运算符在运算中优先级最高() A + B - C == D ++

C语言趣味程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

相关文档
相关文档 最新文档