第一篇:C语言程序设计:生日快乐歌
#include
uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0};//生日快乐歌节拍表,节拍决定每个音符的演奏长短
uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0};
void delayms(uint xms)/ /延时程序 { uint i,j;for(i=xms;i>0;i--)
for(j=110;j>0;j--);} void xg0()//效果0 {
uint a,b;a=0xee;delayms(1000);//延时1秒
for(b=4;b>0;b--)//点亮次数
{ P0=a;//灯1和5亮
delayms(1000);
a=_crol_(a,1);//循环左移1位
} } void xg1()//效果1 {
uint a,b;a=0x77;delayms(1000);for(b=4;b>0;b--){ P0=a;//灯4和8亮
delayms(1000);
a=_cror_(a,1);//循环右移1位
} } void xg2()//效果2 { P0=0xe7;//灯4与5亮
delayms(1000);P0=0xdb;//灯3和6亮
delayms(1000);P0=0xbd;//灯2和7亮
delayms(1000);P0=0x7e;//灯1和8亮
delayms(1000);} void xg3()//效果3 { P0=0x7e;//灯1和8亮
delayms(1000);P0=0xbd;//灯2和7亮
delayms(1000);P0=0xdb;//灯3和6亮
delayms(1000);
P0=0xe7;//灯4与5亮
delayms(1000);}
//播放函数
void PlayMusic(){
uint i=0,j,k;while(SONG_LONG[i]!=0||SONG_TONE[i]!=0){ //播放各个音符,SONG_LONG 为拍子长度 for(j=0;j PlayMusic();//播放生日快乐 BEEP=1;xg0();P0=0xff;delayms(1000);xg1();P0=0xff;delayms(1000);xg2();P0=0xff;delayms(1000);xg3(); P0=0xff;delayms(1000);} } P1.5口 生日快乐歌 1. 少进学堂为家贫,和人相比不如人。十来之岁当保母,十八九岁出闺门。2. 人生一世草一春,万般由命不由人。几多先甜后又苦,几多先苦后成人。3. 或有或无心莫怨,家富家贫是自然。不求全玉重重贵,但愿儿孙个个贤。4. 人在世间要坦然,也莫苦累也莫闲。总要开心过日子,这样才能延寿年。5. 家中没有读书子,怎求富贵上青天。不可作恶要行善,勤俭自然有福源。6. 家庭贫富莫忧愁,开心乐意度春秋。记得少年骑竹马,红粉佳人白了头。7. 人生易老天难老,时光一去不回头。光阴似箭催人老,不觉到了六十秋。8. 养儿育女多辛苦,治家受苦又艰辛。教育儿女修心好,莫要横蛮乱害人。9. 世上无人三代富,亦无三代做穷人。为人在世忠和孝,后代必然家自兴。10.为人做事要公正,短斤少两莫偏心。若是经商做生意,公平和气顾客临。11.父不忧心因子孝,夫无烦恼是妻贤。多言多语皆因酒,义断亲疏只为钱。12.父母深恩要挂念,上下和睦外传闻。为人不想报恩本,养儿育女为何因。13.万事不由人计较,命中注定没十分。世上有钱高一等,首看衣冠与衫裙。14.奉劝女人敬大夫,相亲相爱创前途。千日有夫千日好,一日无夫好单孤。15.几句粗言奉劝君,处世还须俭与勤。居家父母要孝顺,兄弟叔侄要真心。16.出外交朋要谨慎,六亲频眷莫欺人。父母身中有病痛,热茶滚水学当家。17.时常走在床边问,求神作福保安身。行孝之人天赐福,行善之人天赐金。18.奉劝世人学当家,时常节俭莫奢华。开门便讲七件事,柴米油盐酱醋茶。19.一生之计在于勤,少年便要记得清。年月日时皆载定,可知生计要辛勤。20.要学成人不自在,贪图自在不成人。受得艰难和辛苦,方为世上好良民。21.世间好语书不尽,天下良谋读与耕。戒赌戒嫖戒好饮,胜过闲游过日辰。22.早晚读书要挂念,晨昏火烛要小心。出入行为要谨慎,自然获福保安身。 23.银钱谷米要俭省,当用一角省五分。若是全部都用尽,后代儿孙受苦辛。24.粗茶淡饭自养身,保暖安居福自寻。一样生人心几样,一般茶饭几般人。25.同时天光同时夜,有人富贵有人贪。君子贪时有礼义,小人乍富乱欺人。26.大家忍耐同和好,善良忍让寿高龄。马行无力皆因瘦,人不风流是真君。27.你害别人由自可,别人害你又如何。嫩草怕霜霜怕日,恶人自有恶人磨。28.闲中检点平生事,静里思量日所为。一心善良行正道,自然福禄不会亏。29.古云将相本无种,男女自强万事成。凡人莫持风火性,恐防毁坏已前程。30.有等花街红粉女,不知好歹去玩淫。风天狂世乱人性,老少从来就不分。31.打玩作爱图高兴,披起人皮是畜生。心直善良定中富,投机懒惰将来贫。32.命里有时终须无,命里无时莫强争。有时常想无时过,莫待无时动偷心。33.凡有百艺好随身,切莫走进赌博门。家有珍珠和宝贝,想求再富反为贫。34.衣衫破烂亲朋笑,田地败完受苦辛。不信你看乡党内,有人衰败有人贫。35.败子用钱如土粪,好仔积钱似黄金。妙药难医冤孽病,横财不富命穷人。36.亏心折尽平生福,行凶定遭一世贫。谨防善恶遭报应,远在儿孙近在身。37.为人心诚办事忠,普天之正礼仪同。奸狡会走断头路,欺诈之人天不容。38.池塘积水须防旱,田地深耕易养家。教子教孙兼教艺,栽桑栽柳可栽花。39.闲是闲非莫要管,渴饮清泉闷饮茶。紧跟社会形势走,白浪红尘莫探它。40.买卖全凭算计深,斗称公平要本心。童叟无欺安本份,自然福份会来临。41.党和政府好关心,好比自家父母亲。人满六十得补助,老平欢快又康宁。42.学的领导好策略,人人过上好生活。老人不用辛苦累,休闲解闷唱山歌。43.出门三步爱唱歌,你莫讲我嘴巴多。从小吃了糖泡饭,嘴巴甜甜没奈何。44.和谐社会好生活,哪个出门不唱歌。酒肉饭饱还讲闷,唱歌解闷几宽乐。45.回想那时旧社会,没有吃来没有穿。如今改革开放好,有吃有用笑开颜。 46.想起旧时那时艰,家苦不得进校园。一家人口八九个,为了生活忙过天。47.过去苦情论不完,如今老了要心宽。今天正是好日子,邀约歌友下融安。48.今天六十顺寿日,姊妹歌朋庆贺时。大齐陪伴融安耍,边完边耍把歌提。49.不知不觉六十春,人生如梦度光阴。青春易老容易过,老来还望靠儿孙。50.有子之人贫不久,无了之人富不长。有子有孙来防老,无子无孙守空房。51.人逢喜事精神爽,子孝孙紧心也宽。家庭和顺生活好,人到老年也不难。52.六十甲子六十秋,红粉家人白了头。开心养体过日子,人到老年万事休。53.山中也有千年树,世上几多百岁人。现在生活那么好,人人总望度百春。54.讲起为人在世间,平生有道几安然。总要开心过日子,也可延长好寿年。55.你今讲到这一言,我今听了好新鲜。开心得过好日子,还可延长好寿年。56.今天出门好新鲜,哥朋姊妹歌聊天。日子过得好愉快,太阳慢慢下西边。57.哥朋姐妹到融安,美山美水尽奇观。好景一时观不尽,天缘不份再来完。58.今天六十好寿辰,大齐陪伴好开心。祝你年年添福寿,寿比南山不老春。59.生日快乐真快乐,快乐才是唱山歌。做个碟子作记念,子子孙孙永留着。60.哥把一言说妹知,语言粗糙水平低。编歌不好妹莫怪,批评指正再学习。 축하=추가(当ㅎ+元音的时候,ㅎ脱离不发音) 생일 축하 합니다祝你生日快乐 생일 축하 합니다祝你生日快乐 지구에서 우주에서在地球 在宇宙 제일 사랑합니다 ~我最爱你 꽃보다 더 곱게比花还香 별보다 더 밝게比星星还亮 사자보다 용감하게比狮子还勇敢 해피버스데이 투유(happy birthday to you)happy birthday to you 생일축하합니다祝你生日快乐 생일축하합니다祝你生日快乐 꽃다운 내친구야喜欢花的我的朋友呀 굴곡있게 살아요生活得很曲折 생일축하합니다祝你生日快乐 생일축하합니다祝你生日快乐 지구에서 우주에서在地球 在宇宙 제일 사랑합니다我最爱你 꽃보다 더 곱게比花还香 별보다 더 밝게比星星还亮 사자보다 용감하게比狮子还勇敢 해피벌스데이 투유happy birthday to you 생일축하합니다祝你生日快乐 생일축하합니다祝你生日快乐 칼같은 내친구야像刀一样的朋友呀 폼나게 사세요生活得坚强些 벌같은 내친구야像蜜蜂的朋友呀 톡쏘며 살아요生活得很塌实 축하 해요祝贺 축하 해祝贺 생일 축하 해祝你生日快乐 /*******************************************************************/ /* SC5204单片机实验板实验例程 */ /*蜂鸣器生日快乐歌 */ /* 2012年5月 */ /* 作者:雷国强 */ /* 邮箱:940762196@qq.com */ /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ /* */ /*******************************************************************/ // 生日快乐歌 /*******************************************************************/ #include Buzzer=P3^7; unsigned char timer0h,timer0l,time; //生日歌 code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4}; // 音阶频率表 高八位 code unsigned char FREQH[]={ 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,}; // 音阶频率表 低八位 code unsigned char FREQL[]={ 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};void delay(unsigned char t) { unsigned char t1; unsigned long t2; for(t1=0;t1 { for(t2=0;t2<8000;t2++) { ; } } TR0=0;} void t0int()interrupt 1 { TR0=0;Buzzer=!Buzzer;TH0=timer0h;TL0=timer0l;TR0=1;} void song(){ TH0=timer0h;TL0=timer0l;TR0=1;delay(time); } void main(void){ unsigned char k,i;TMOD=1;//置CT0定时工作方式1 EA=1;ET0=1;//CPU开中断,CT0开中断 while(1) { i=0; while(i<75){ //音乐数组长度,唱完从头再来 k=sszymmh[i]+7*sszymmh[i+1]-1; timer0h=FREQH[k]; timer0l=FREQL[k]; time=sszymmh[i+2]; i=i+3; song(); } } } 1.Problem A: Hello world!Description Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。 Input 无 Output 请输出: Hello Da_min, Hello Er_min, Hello Xiao_ming! Sample Input Sample Output Hello Da_min, Hello Er_min, Hello Xiao_ming! HINT 请注意换行符 Append Code #include printf(“Hello Da_min,n”); printf(“Hello Er_min,n”); printf(“Hello Xiao_ming!n”);} 2.Problem B: 求圆的面积和周长 Description 从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。 Input 输入一个浮点型数据,有效数字不会超过十进制的6位。 Output 输出为两行。 第一行为圆的面积,第二行为圆的周长,格式见sample。 Sample Input 3 Sample Output Area: 28.260000 Perimeter: 18.840000 HINT 了解浮点类型的输入、输出和算术运算符 Append Code 法一 #include #include double r; scanf(“%d”,&r); printf(“Area: %lfn”,pi*r*r); printf(“Perimeter: %lfn”,2*pi*r); } 3.Problem C:平均值 Description 求3个数的平均值。 Input 输入只有一行,为3个较小的整数。 Output 输出为这3个整数的平均值,保留3位小数。 Sample Input 1 2 3 Sample Output 2.000 HINT 注意除法运算对整型数据和浮点型数据是不一样的。 Append Code #include 4.Problem D: 求字符的值 Description 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。 Input 输入为3个字符。 Output 输出为3行。 每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。 Sample Input 0 A Sample Output 048 060 030 032 040 020 065 101 041 HINT 了解字符值的存储和整型的关系。 Append Code #include 5.Problem A: 最简单的程序 Description 输出一行“Hello world!”。 Input 无 Output Hello world! Sample Input Sample Output Hello world! HINT Append Code #include printf(“Hello world!”);} 6.Problem B: 算术基本运算 Description 计算两整数x和y(0 Input 输入只有一行,格式见sample。 Output 输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample Sample Input x = 11, y = 3 Sample Output x + y : 14 xy : %dn“,x-y); printf(”x * y : %dn“,x*y); printf(”x / y quotient: %d, remainder: %dn“,x/y,x%y); printf(”x ^ 2 : %dn“,x*x); printf(”y ^ 3 : %dn“,y*y*y);} 7.Problem C: 自增自减运算 Description C语言中有自增运算++、自减运算--,并且可以前置和后置。 编写一个程序:对输入的一个整数a,输出a++、a--、++a、--a的值。 Input 一个整数a,a是很小的整数。 Output 输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a的值。 5行输出纵向a要对齐,“:”对齐,“:”前后各一个空格,后面的数值不用对齐。每行行尾都有回车。 Sample Input 0 Sample Output a : 0--a :-1 a--: 0 a++ : 0 ++a : 1 HINT Append Code #include : %dn“,a);printf(”--a : %dn“,--a);a=x;printf(” a--: %dn“,a--);a=x;printf(” a++ : %dn“,a++);a=x;printf(”++a : %dn“,++a);} 8.Problem F: 绝对值 Description 求整型数据和浮点型数据的绝对值。 Input 输入两个数,第一个是整数,第二个是浮点数。 Output 输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。 Sample Input-1 1 Sample Output 1 1 HINT 求绝对值可以用标准库函数来完成,也可以自己判断。注意浮点数的输出格式。求绝对值的函数在哪个头文件?貌似很多人会搞错,包括很多编书的人! Append Code #include int n; float m; scanf(”%d%f“,&n,&m); //n=abs(n); //m=fabs(m); if(n<0) { n=-n; } if(m<0) { m=-m; } printf(”%dn“,n); printf(”%g“,m); return 0;} 9.Problem A: 奇数还是偶数? Description 输入一个整数,判读它是奇数还是偶数。 Input 输入只有一行,为一个100以内的正整数。 Output 输出为一行。 若输入为偶数则输出“even”,奇数输出“odd”。Sample Input 30 Sample Output even HINT 用整数运算可以解决,练习“?:”表达式。 Append Code #include int n; scanf(”%d“,&n); if(n>=0&&n<=100){ if(n%2==0)printf(”evenn“); else printf(”oddn“); } return 0;} 10.Problem B: 简单的打折计算 Description 商店规定:消费满n元,可以打八八折。设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:元),精确到分。 Input 输入只有一行,三个整数m、n和x,且0 Sample Input 95 300 4 Sample Output 334.40 HINT 了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。 Append Code #include int m,x,n,a; float b; scanf(”%d%d%d“,&m,&n,&x); 0 x m a=m*x; if(a>n) b=0.88*a; else b=a; printf(”%.2fn“,b); } 11.Problem C: 判断闰年 Description 输入一个正整数的年份,判断是否为闰年。 Input 输入只有一行,为一个10000以内的正整数。 Output 输出为一行。 若输入为闰年偶数则输出“Yes”,否则输出“No”。 Sample Input 2010 Sample Output No HINT 了解逻辑运算符和关系运算符。 Append Code #include int x; scanf(”%d“,&x); if(x>0&&x<10000) { if(x%4==0&&x%100!=0) printf(”Yesn“); else if(x%400==0) printf(”Yesn“); else printf(”Non“); } else printf(”error“);} 12.Problem D: 水仙花数 Description 如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。如:13+53+33=153。 Input 一个整数x,100<=x<=999。 Output x是水仙花数,则输出“YES”,否则为“NO”。 Sample Input 153 Sample Output YES HINT Append Code #include int a,b,c,x; scanf(”%d“,&x); a=x/100; b=x/10%10; c=x%10; if(x==a*a*a+b*b*b+c*c*c) printf(”Yes“); else printf(”No“);} 13.Problem E: 三个数比较大小 Description 从键盘上输入0~100之间的三个数,按从小到大的顺序输出。 Input 输入只有一行,为三个整数。 Output 按从小到大输出这三个数。 Sample Input 15 10 20 Sample Output 10 15 20 HINT 用if语句判断各种情况可以解决这个问题。 Append Code #include int a,b,c; scanf(”%d%d%d“,&a,&b,&c); if(a>=b) { if(b>=c) printf(”%d %d %dn“,c,b,a); else if(c>=a) printf(”%d %d %dn“,b,a,c); else printf(”%d %d %dn“,b,c,a); } else { if(a>=c) printf(”%d %d %dn“,c,a,b); else if(b>=c) printf(”%d %d %dn“,a,c,b); else printf(”%d %d %dn“,a,b,c); } } 14.Problem F: 奇怪的求和之一 Description 给定3个正整数a、b和c,按照如下规则求和: 如果这个数字是偶数,则累加到和中; 如果这个数字是奇数,则将大于该数的最小偶数累加到和中。 Input 三个正整数,均在100以内。 Output 一个和。 Sample Input 2 3 5 Sample Output 12 HINT 如果不会使用分支语句,可使用条件运算符判断到底将哪个数累积到和中。 Append Code #include int a,b,c; scanf(”%d%d%d“,&a,&b,&c); if(a%2!=0)a++; if(b%2!=0)b++; if(c%2!=0)c++; printf(”%dn“,a+b+c); } 15.Problem G: 你过线了吗? Description 经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗? Input 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。第二行有3个非负整数,分别表示你考的三门课程的成绩。 Output 如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。 Sample Input 70 80 70 240 80 80 82 Sample Output congratulations HINT 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。 Append Code #include int a,b,c,d,e,f,g,h; scanf(”%d %d %d %dn%d %d %d“,&a,&b,&c,&d,&e,&f,&g); h=e+f+g; if(e>=a&&f>=b&&g>=c&&h>=d) printf(”congratulations“); else printf(”sorry“);} 16.Problem I: A+B Problem(II): Input/Output Practice Description 计算a+b,0<=a,b<1000。 Input 输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的和,顺序与输入对应。 Sample Input 2 1 2 10 20 Sample Output 3 30 HINT N给出了测试样例数,用for循环处理方便。 Append Code #include int n,a,b,i;Scanf(“%d”,&n);For(i=0;i 17.Problem H: A+B Problem Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的值,顺序与输入对应。 Sample Input 1 2 10 20 Sample Output 3 30 HINT OJ系统上测试输入结束符为EOF(End Of File),其值为-1。用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。本题解法参看FAQ。Append Code #include int a,b; while(scanf(”%d%d“,&a,&b)!=EOF){ printf(”%dn“,a+b); } return 0;} 18.Problem A: 判断是否是元音字母 Description 输入一个英文字母,判断是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U Input 输入一个英文字母 Output 是元音字母,输出“yes”,否则输出“no”,行尾没有回车。 Sample Input A Sample Output yes HINT Append Code #include char ch; scanf(”%c“,&ch); if(ch>='A'&&ch<='Z') ch=ch+32; if(ch=='a') printf(”yes“); else if(ch=='e') printf(”yes“); else if(ch=='i') printf(”yes“); else if(ch=='o') printf(”yes“); else if(ch=='u') printf(”yes“); else printf(”no“); } 19.Problem B: 按顺序输出三个数 Description 对于输入的3个整数,按照从小到大的顺序输出。 Input 输入3个int类型内的整数,两两之间用一个空格隔开。 Output 按照从小到大的顺序输出上述三个数,两两之间用一个空格隔开。 Sample Input 2 1 3 Sample Output 1 2 3 HINT Append Code #include int a,b,c,temp; scanf(”%d%d%d“,&a,&b,&c); if(a { temp=a; a=b; b=temp; } if(a { temp=a; a=c; c=temp; } if(b { temp=b; b=c; c=temp; } printf(”%d %d %dn“,c,b,a);} 20.Problem E: Description 判断输入整数的奇偶性。 判断奇偶数 Input 输入为一个整数。 Output 输出只有一行,代表判断结果。如果输入的整数n是一个偶数,输出: n is an even number.否则输出: n is an odd number.见样例。 Sample Input 12 Sample Output 12 is an even number.HINT Append Code #include int a; scanf(”%d“,&a); if(a%2==0) printf(”%d is an even number.“,a); else printf(”%d is an odd number.“,a);} 21.Problem A: 判断两个整数的大小关系 Description 输入2个整数a和b,如果a>b,则输出1,否则输出0。 Input 两个整数a和b,均不超过int类型的表示范围。 Output 表示a>b的结果:如果a>b,则输出1,否则输出0。 Sample Input 3 4 Sample Output 0 HINT Append Code #include printf(”1“); else printf(”0“);return 0;} 22.Problem D: 成绩的等级 Description 把百分制的考试成绩转换成五级制的成绩: 90~100:Excellent 80~89:Good 70~79:Average 60~69:Pass 0~59:Failing 不在0~100之间的输入是非法数据,输出“Error”。 Input 输入多行,每行一个整数。 Output 输入所对应的成绩等级。 Sample Input-1 81 92 35 68 72 100 Sample Output Error Good Excellent Failing Pass Average Excellent HINT 用switch语句解决这个问题比较方便。 Append Code #include int score; while(scanf(”%d“,&score)!=EOF) { if(score<0||score>100) printf(”Errorn“); else { switch(score/10) { case 0: case 1: case 2: case 3: case 4: case 5:printf(”Failingn“);break; case 6:printf(”Passn“);break; case 7:printf(”Averagen“);break; case 8:printf(”Goodn“);break; case 9: case 10:printf(”Excellentn“);break; } } } return 0;} 23.Problem E: 输出是m的倍数或n的倍数、但不是 m和n的公倍数的数 Description 输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n Input 输入三个整数,依次为k、m、n。 Output 从小到大输出符合题意的所有整数,两数之间用一个空格分开。 Sample Input 15 2 3 Sample Output 2 3 4 8 9 10 14 15 HINT 难点在于输出格式的控制:空格在数的中间,学会用循环时边界情况的特殊处理。 Append Code #include a=m;else a=n;printf(”%d“,a);for(i=a+1;i<=k;i++){ } if((i%m==0&&i%n!=0)||(i%n==0&&i%m!=0)) printf(” %d“,i);} return 0; 24.Problem B: 两整数相加减 Description 计算a+b和a-b。 Input 输入为一对整数a和b。a,b用空格分开。 Output 输出a+b和a-b的计算结果,各占一行。 Sample Input 1 2 Sample Output 3-1 HINT Append Code #include printf(”%dn“,a+b); printf(”%dn“,a-b);} 25 Problem C: 它满足条件吗? Description 需要判断给定的一个整数是否同时满足如下三个条件: 1.它是一个完全平方数。2.它是一个偶数。3.它是一个正数。 注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。例如: 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 Input 一个int范围内的整数。 Output 如果输入的数字满足条件,则输出yes,否则输出no。 Sample Input 100 Sample Output yes HINT 注意逻辑表达式判断三个条件的顺序。如果你不会使用分支语句,同样可以使用条件运算符实现该程序。 库函数sqrt()可以用于求一个数的平方根。 Append Code #include if(a==sqrt(a)*sqrt(a)&&a%2==0&&a>0) printf(”yes“); else printf(”no“);} 26.Problem F: 多路分支 Description 编写一个完整的程序,运行时向用户提问”你考试考了多少分?(0-100)“接受输入后判断其等级并显示出来等级: 优:90<=分数<=100 良:80<=分数<90 中:60<=分数<80 差:0<=分数<60 Input 输入任意一个整数分数值,显示等级;再输入任意一个整数分数值,显示等级;....直到测试数据较充分,可输入-1止。 Output 对任意输入的分数值,输出对应的等级,直到输入的数为-1时才退出运行.Sample Input 102 100 90 80 70 60 50 0-80-1 Sample Output grad must between 0 and 100 优 优 良 中 中 差 差 grad must between 0 and 100 grad must between 0 and 100 HINT Append Code #include int x; while(scanf(”%d“,&x)!=EOF) { if(x<0||x>100) printf(”grad must between 0 and 100n“); else if(x>=90) printf(”优n“); else if(x>=80) printf(”良n“); else if(x>=60) printf(”中n“); else if(x>=0) printf(”差n“); } return 0;} Problem D: 有多少人? Description 学校举行运动会,如果全体学生按照3人一队列队,则多了1个人;如果按照4人一队列队,则多了2个人;如果按照5人一队排队,则多了3个人。请问这个学校有多少学生? Input 一个int类型的正整数N,是学生人数的上界,即:该校学生数不超过N。 Output 所有可能的学生数,每个数占一行。 Sample Input 200 Sample Output 58 118 178 HINT Append Code #include int n,i; scanf(”%d“,&n); for(i==1;i<=n;i++){ if(i%3==1&&i%4==2&&i%5==3) printf(”%dn“,i);} return 0;} Problem C: 正负数各有几个? Description 输入若干个整数,求其中正数、负数的个数。 Input 输入分为2行:第一行是一个数字N>0,表示下面有N个整数。第2行是N个整数,都是int类型的。 Output 输出所输入的N个整数的正数个数和负数个数,并用空格分开2个输出。Sample Input 10 2 3 4 5-1-2-3-4-5 Sample Output 5 5 HINT 貌似还有一种叫做0的数。 Append Code #include int n,a,i,num1=0,num2=0; scanf(”%d“,&n);for(i=0;i { scanf(”%d“,&a); if(a>0) num1++; else if(a<0) num2++; } printf(”%d %dn“,num1,num2); return 0;} Problem A: A+B Problem(III): Input/Output Practice Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。当测试样为0 0时表示输入结束,0 0不参与运算。 Output 每行输出一个a+b的值,顺序与输入对应。 Sample Input 1 2 10 20 0 0 Sample Output 3 30 HINT 练习break的使用。 Append Code #include { if(a!=0||b!=0) } printf(”%dn“,a+b); else break; return 0;} 30 Problem B: A+B Problem(IV): Input/Output Practice Description 计算a+b,0<=a,b<1000。 Input 输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。 Output 每行输出一个a+b的值,顺序与输入对应。每个格式样例之间用一个空行分隔开。 Sample Input 1 2 10 20 15 35 Sample Output 3 30 50 HINT 由于输出的和比空行多一个,所以全部计算放在一个循环里是不行的,必须要特殊处理开头或者结尾。 Append Code #include n++; if(n==1) printf(”%dn“,a+b); else printf(”n%dn“,a+b); } return 0;} Problem C: n个数的最大值和最小值 Description 找出n个数中最大的数和最小的数,并将它们的值输出出来。 Input 输入为n+1个整数,都在int类型范围内。这些数可能用若干空格或者换行符分隔开。输入的第1个数为n,表示后续有n个数输入。从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。 Output 输出为两行,格式见sample。 Sample Input 3 0 1-1 Sample Output The maximum number is 1.The minimum number is-1.HINT 分隔符是空格还是回车都是空白符,对scanf(”%d“)来说没有区别;先读入n,然后用for循环就很容易控制读入n个数的过程。 Append Code #include int n,i,max,min; scanf(”%d“,&n); int a[n];第二篇:生日快乐歌
第三篇:韩语生日快乐歌
第四篇:蜂鸣器生日快乐歌
第五篇:C语言程序设计