c语言编程20例
更新时间:2023-12-05 04:50:01 阅读量: 教育文库 文档下载
1.开学第一考
问题描述
开学的第一个周末,像往届一样,新生都会参加英语分级考试。所谓英语分级考试就是为了测试一下新生的英语水平,并将他们分成1~4,4个等级。分级规则如下:95分(含95分)以上为level4,只需修一个学期的大学英语;85分(含85分)至95分为level3,需修大学英语两个学期;75分(含75分)至85分为level2,需修3个学期的大学英语;剩下的为level1,对不起,就只能修4个学期的大学英语了。小明是刚12级计算机系的新生,他不小心知道了自己的分级考试成绩,于是乎他就迫切的想知道自己会被分在哪一个level,这不,就麻烦一下新生中大神小强,写一个小程序来判定一下小明会被分在哪一个level吧!
输入格式
输入一个整数代表小明的分数
输出格式
输出小明被分在哪一个英语等级,level1、level2、level3、level4,如果分数不在[0,100]区间内,输出“Error!”(注意:不输出引号)
样例输入
60 101
样例输出
level1 Error!
解答:
#include
int a;
scanf(\ if(a>100)
printf(\ else if(a>=95)
printf(\ else if(a>=85) printf(\ else if(a>=75)
printf(\ else if(a>=0)
printf(\ else printf(\ return 0; }
2.小明的考题1——分段函数
问题描述
小明是一个数学狂,自吹自擂说自己的数学是如何如何的好,但是他的风头却被大神小强抢光了,小明就很郁闷,自言自语了一句:不就是编程牛逼点嘛,有本事编几个程序出来解解数学题啊。运气挺背的是,小强就在他后面,不小心就听到了??小强倒是很大方的说:要不你就出几个题考考我?小明这下就得瑟了,呵,小样,看我不整死你!因为小明不知大神的底,于是乎第一题就出了一个简单的分段函数题:
输入格式
输入仅包含一个整数x,并且-100 <= x <= 100
输出格式
输出仅一个整数,表示函数值f(x)
样例输入
-10
样例输出
-440
解答
#include
int x,g,f;
scanf(\g=x*x-550; if(x f=g+x+4; else f=g-x; printf(\ } return 0; 3.小明的考题2——数与单词 问题描述 上一道分段函数的题目被小强轻松秒杀了,这一次,小明知道该出有深度一点的题目了。“数学是科学之王”,小明对此坚信不疑!数学的强悍之处在于它能通过一种映射的关系,把两种不相关的东西联系在一起。现在,小明想考小强的是,小强需要建立起阿拉伯数字与英文字母的对应关系,小明不想过于为难小强,就限制了一下定义域为0—9的10个数字,映射规则为:0—zero、1—one、?、9—nine,现在小明随便说一个0—9的数字,小强的程序能后输出该数字对应的英文单词。 输入格式 输入数据为一个[0,9]区间的整数 输出格式 输出该数字对应的英文单词 样例输入 8 样例输出 eight 解答 #include int x; scanf(\if(x==0) printf(\ else if(x==1) printf(\ else if(x==2) printf(\ else if(x==3) printf(\ else if(x==4) printf(\ else if(x==5) printf(\ else if(x==6) printf(\ else if(x==7) printf(\ else if(x==8) printf(\ else if(x==9) printf(\ } return 0; 4.小明的考题3——必杀技 问题描述 小明为了这最后一题煞费苦心,不过他还是没有什么头绪。这天,他去宿舍楼下的邮局给高中的那群哥们姐妹寄几张咱厦大魅力风光的明信片。抬头的时候瞥了一眼墙上挂着的信函资费说明,详情如下: 平信分本埠和外埠,按首重和续重计收资费,首重100克以内,每重20克(不足20克按20克计算)本埠0.80元,外埠1.20元。续重101~2000克,每重100克(不足100克按100克计算)本埠1.20元,外埠2.00元。 这下,小明可就有主意了。他就用这个信函的资费考考小强。 输入格式 输入两个整数k w,以空格隔开。(k=1 or k=2,k=1代表本埠,k=2代表外埠。w代表信函重量,单位g ,已知0 输出格式 输出资费,结果保留两位小数。 样例输入 1 95 样例输出 4.00 解答 #include int k,w; double s; scanf(\ if(k==1) if(w<=100) {if(w ) s=(w/20+1)*0.8; else s=w/20*0.8; } else {if(w0) s=4.00+((w-100)/100+1)*1.2; else s=4.00+(w-100)/100*1.2; } if(k==2) if(w<=100) {if(w ) s=(w/20+1)*1.2; else s=w/20*1.2; } else {if(w0) s=6.00+((w-100)/100+1)*2.00; else s=6.00+(w-100)/100*2.00; } printf(\ return 0; } 5.四则运算器 问题描述 三题下来,小明败得彻彻底底的,看着小强写的那些代码,自己瞬间压力山大了。不过,小明就是小明,灵光忽地乍现:自己何不拜小强为师,这样以后的编程不就有师傅做靠山,那不就变得easy啦?小明说到做到,当即就拜小强为师。小强秉着助人为乐的原则,也就收下了小明这个徒弟。不过呢,拜师得有考验才行了,这不,就换小强考考小明啦!不过,小强也不打算怎么为难小强!既 然小明数学不错,那就让他去做做简单的数学方面的题吧。给出一个计算式,求结果。 ps:计算式只包含“+”、“-”、“*”、“/”其中一种运算 输入格式 输入一个计算式,格式为:a # b = 。#为运算符。注意,运算符与数之间有空格!当#为/,即计算除法时,要判断除数是否为0,若除数为0,输出“Error!” 输出格式 输出结果,保留4位小数。当#为/,即计算除法时,要判断除数是否为0,若除数为0,输出“Error!”(输出无引号) 样例输入 15 + 23 = 样例输出 38.0000 解答 #include double a,b,s; char c; scanf(\ if(c=='+') {s=a+b; printf(\} else if(c=='-') {s=a-b; printf(\ } else if(c=='*') {s=a*b; printf(\ } } else if(c=='/') {s=a/b; if(b==0) printf(\ else printf(\} return 0; 6.算日期 问题描述 自从收了小明这个徒弟之后,小强的生活就没平静过,小明发扬勤奋好问的精神,总是缠着小强问这问那的。这天,小强在去食堂的路上不小心看见小明迎面走来,正打算避开他的时候,不过小明也正好看见小强像他走去,就喊着“师傅师傅”,小强这下没得躲了。小明问了小强非常意外的问题:师傅,今天几号啊。小强随口答道:XX号。不过就在这时,小强却想到了一个可以打发小明的方法,他对小明说:小明啊,你不是想让我给你出出题做嘛,我正好想到一个,今天是XXXX年XX月XX日,你给我算算今天是今年的第多少天吧!小明还想问问怎么做来着,只见小强已经开溜了?? 输入格式 输入一个日期,格式为yyyy/mm/dd 输出格式 输出一个整数,表示该日期在当年中为第几天 . 样例输入 2000/03/01 样例输出 61 解答 #include int a,b,c,t; scanf(\if(a%4||!(a0)&&a@0) { if(b==1) t=c; else if(b==2) t=c+31; else if(b==3) t=c+59; else if(b==4) t=c+90; else if(b==5) t=c+120; else if(b==6) t=c+151; else if(b==7) t=c+181; else if(b==8) t=c+212; else if(b==9) t=c+243; else if(b==10) t=c+273; else if(b==11) t=c+304; else if(b==12) t=c+334; printf(\} else if(!(a%4)&&(a0)||!(a@0)) } { if(b==1) t=c; else if(b==2) t=c+31; else if(b==3) t=c+60; else if(b==4) t=c+91; else if(b==5) t=c+121; else if(b==6) t=c+152; else if(b==7) t=c+182; else if(b==8) t=c+213; else if(b==9) t=c+244; else if(b==10) t=c+274; else if(b==11) t=c+305; else if(b==12) t=c+335; printf(\} return 0; 7.分数约简 问题描述 自从小明拜小强为师后,自知和师傅之间有着无法逾越的差距!不过他并不气馁,他决定通过的努力一点一点缩短与师傅之间的距离!这不才刚学完循环结构,他就迫不及待的想练习了。于是他自己去找了一些题来练手! 这第一个题很简单,就是给出一个分数,把它化为最简分式。 输入格式 第一行输入一个整数T,代表有T个测试数据。 接下来的T行,每行输入两个非负整数m、n,m是分母,n是分子。 输出格式 输出最简分式,格式a/b。若b=1,只输出a;若分子n=0,则输出“Error!”(输出无引号) 样例输入 3 12 16 15 3 20 0 样例输出 3/4 5 Error! 解答 #include int T,m,n,c,t,d,a,b,f; scanf(\for(t=1;t<=T;t++) { scanf(\if(n==0) printf(\ else if(m==0)printf(\else if(m>=n) { } else if(m a=n; if(!(m%n))printf(\else if(m%n) { } a=m; b=n; do { c=(int)fmod(a,b); a=b; b=c; }while(c!=0); d=m/a; f=n/a; printf(\ } } b=m; do { c=(int)fmod(a,b); a=b; b=c; }while(c!=0); d=m/a; f=n/a; printf(\ printf(\} return 0; 8.再做分段函数 问题描述 这次小明给自己找了一个分段函数的题: 输入格式 第一行输入一个n,代表有n个测试数据,接下来的n行,每行输入变量x的值 输出格式 输入对应变量x的函数值f(x),每个结果一行 样例输入 2 -1500 500 样例输出 2500 -7500 解答 #include int n,i,x,y; scanf(\for(i=1;i<=n;i++) { scanf(\ while(x<0) { } y=5*x-10000; x=-5*x-10000; } printf(\} return 0; 9.简单的数列求和 问题描述 再来,有通项公式 求前n项和Sn 输入格式 输入n 输出格式 输出前n项和Sn(保留4位小数) 样例输入 5 样例输出 7.5000 解答 #include double Sn,n,i; Sn=0; i=1; } scanf(\while(i<=n) { } printf(\return 0; Sn=Sn+i/2; i++; 10.找闰年 问题描述 再来,小明回想到,自己不是曾经出了一题闰年的题来考自己的师傅吗?那我何不就改改,然后自己做?他想:要不我就输出给定的任一一个时间段之间的闰年吧! 输入格式 输入两个整数m,n,代表两个年份。保证m 输出格式 输出[m,n]之间的所有闰年,每行5个 样例输入 1998 2015 样例输出 2000 2004 2008 2012 解答 #include { int m,n,t; t=0; scanf(\ } while(m<=n) { } printf(\return 0; if(!(m%4)&&(m0)||!(m@0)) { } m=m+1; printf(\t=t+1; if(t%5==0) printf(\ 11.小明的自娱自乐 问题描述 练习完前面四个题,小明有点累了,就上上网,找找c语言的资料。碰巧看到这样一道题:输入一个正整数,然后从个位开始一次输出每一位数字对应的英文字母。例如:输入1532,输出two three five one。 输入格式 第一行输入一个T,代表有T组测试数据,T<100 对于每一组测试数据,输入一个整数x(0 输出格式 对于每一组测试数据,输出对应结果,每个结果占一行 样例输入 3 24 1993 562431 样例输出 four two three nine nine one one three four two six five 来源 解答 #include int T,a,b,t,c; scanf(\for(t=1;t<=T;t++) { scanf(\while(a!=0) { b=a/10; c=a-10*b; if(c==0) printf(\ } } else if(c==1) printf(\else if(c==2) printf(\else if(c==3) printf(\else if(c==4) printf(\else if(c==5) printf(\else if(c==6) printf(\else if(c==7) printf(\else if(c==8) printf(\else if(c==9) printf(\a=b; } printf(\ return 0; 12.Simple a + b 问题描述 普通的a + b太没有意思了,小明决定玩点花样:如果加法没有进位,结果会是怎样? 输入格式 输入两个正整数a和b(0<=a, b<100000000) 输出格式 输出没有进位情况下加法的结果。 PS:类似125 +932的情况,输出的数的首位不能为0,即125 + 932 =57;类似5555 + 5555的情况输出只有一个 0. 样例输入 45 79 样例输出 14 解答 #include int a,b,i,x1,x2,x,m=1,n=1,h=0; i=1; scanf(\while(m!=0||n!=0) { m=a/10; x1=a-10*m; n=b/10; x2=b-10*n; x=x1+x2; if(x>=10) h=h+(x-10)*i; else if(x<10) h=h+x*i; i=i*10; 样例输出 Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw you? I still remember, vividly, on the beautiful Zhangzhou Campus, 4 years ago, from the moment I saw you smile, as you were walking out of the classroom and turned your head back, with the soft sunset glow shining on your rosy cheek, I knew, I knew that I was already drunk on you. 解答 #include int i=0; char cn,c1,c2; while(scanf(\{ if((cn>='A')&&(cn<='Z')) {c1=cn-65-i&+65; if(c1<65)c2=cn-65+26+i/26*26-i+65; else c2=cn-65+i/26*26+65-i; printf(\} else if((cn>='a')&&(cn<='z')) {c1=cn-97-i&+97; if(c1<97)c2=cn-97+26+i/26*26-i+97; else c2=cn-97+i/26*26+97-i; printf(\ } } } else {c2=cn; printf(\} i++; return 0; 16.谁是下一个十佳歌手 问题描述 一年一度的校园十佳歌手如期而至。和往届一样,每一位参与选手准备一首参赛曲目,选手唱完之后,评委们会给出他们的分数。从这些分数中去掉一个最高分和一个最低分,然后计算平均分所得结果即为该选手的最终得分。由于参赛选手众多,一个一个的手动计算太慢,于是主委会找到计算系求助,希望咱们系能帮忙写一个计算得分的程序! 输入格式 第一行输入一个T,代表有T组测试数据,T<=100 对于每一组测试数据,输入有两行,第一行为一个正整数n,n<=100,代表有n个裁判。第二行输入n个正整数,代表n个裁判打的分数。分数<=100. 输出格式 对于每组数据,输出结果,保留2位小数 样例输入 1 5 88 94 87 83 90 样例输出 88.33 解答 #include int main() { int T,n,i,j; double s=0,b,x,c,a,d,m,l; scanf(\for(i=1;i<=T;i++) { scanf(\if(n==1){scanf(\printf(\else if(n==2){ scanf(\c=(a+b)/2; printf(\ else if(n>2) { m=0; l=100; for(j=1;j<=n;j++) {scanf(\if(x>m)m=x; if(x } } } s=s+x;} d=(s-m-l)/(n-2); s=0; printf(\ return 0; 17.九九乘法表 问题描述 大家都知道九九乘法表吧,小明因为前面的很多题目都不会,实在无聊,就手写了一个nn乘法表(如九九乘法表),但是没自信的他不知道写的对不对,你能也写一个程序帮他检验一样吗。 输入格式 输入一个整数n。(n<=20) 输出格式 输出nn乘法表,第i行有i个表达式,第i行第j个表达式为j*i=k,其中k为i和j的乘积。 样例输入 3 样例输出 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 解答 #include { } int i,j,n,t=1,s; scanf(\for(i=1;i<=n;i++) { } return 0; for(j=1;j<=i;j++,t++) {; s=i*j; printf(\} t=1; printf(\ 18.奇偶求和计算 问题描述 给一个长度为n的整数数列,要求分别输出奇数项的和与偶数项的和。 输入格式 第一行一个整数n,表示数列有n个数。(N<=1000) 第二行n个整数,表示每个数的数值。(0<任意整数<1000) 输出格式 输出两行,第一行为奇数项的和,第二行为偶数项的和。 样例输入 5 1 3 2 2 8 样例输出 11 5 解答 #include int n,x,i,a=0,b=0; scanf(\for(i=1;i<=n;i++) { } printf(\printf(\return 0; scanf(\if(i%2==0) a=a+x; else b=b+x; 19.志愿者的工作 问题描述 有一天,小明在海报墙上看到一则关于整理自行车停车位的志愿者招募广告。原来是因为宿舍旁边那长度为L的自行车停车位(编号1~L),已经被停满 了。后勤集团为了保障所有停车地区都有空余的停车位,以保证要临时停车的同学有车位可停。于是便招募m位志愿者,每一个志愿者会分到一个工作区域,他们的工作就是将该区域(闭区间)的车辆移到另外的停车地区,由于工作的疏忽,存在志愿者之间的工作区域有交叉的可能。但是后勤集团只关心最后还有多少辆车没有被移走。小明报名参加了这项志愿者活动,而且还被任命为负责人,现在他需要向后勤集团汇报最后还剩多少辆车没有被移走。 输入格式 第一行输入两个正整数,停车位长度L和招募志愿者人数m, L<10000,m<100 接下来m行,每一行输入两个正整数a、b,该志愿者的工作区域为[a,b] 输出格式 输出一个整数,代表最后还剩多少辆车没被移走 样例输入 20 5 1 3 5 8 3 6 12 14 18 20 样例输出 6 解答 #include int a[10000]={0}; int i,j,t,L,n=0,m,c,d; scanf(\for(i=1;i<=m;i++) { scanf(\ } for(t=c;t<=d;t++) a[t]=1; } for(j=1;j<=L;j++) {if(a[j]==0) n=n+1;} printf(\return 0; 20.进制转换 问题描述 小强给小明布置了一个小任务。写一个二进制转十进制的程序。 输入格式 第一行输入一个T,代表有T组测试数据 对于每一组测试数据,输入一个二进制串 ,长度不超过31 输出格式 对于每一组测试数据,输出转换后的结果 样例输入 2 10 101010111 样例输出 2 343 解答 #include int main() { char a[32]; int b[32]; int c[32]; int m=0,i,k=0,T,s,t,j,d; scanf(\for(t=0;t<=T-1;t++) {scanf(\m=strlen(a); for(i=0;i } for(i=0,s=0;i s=s+b[i]; c[t]=s; printf(\return 0; }
正在阅读:
c语言编程20例12-05
大连东软信息学院软件测试期末考试题C卷11-25
高三语文早读练习104-05
EXCEL中用排序操作后如何找回原来的排列顺序 - 图文12-27
热电厂SNCR尿素脱硝方案说明09-21
病理生理复习题12-07
在2021年党代会闭幕式上的讲话范文08-08
债券融资案例分析06-11
仓鼠“越狱”作文600字07-01
水阁主干道第七期人行道工程施工 - 图文03-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 语言编程
- 湖南制造业出口竞争力提升及其对策
- 防止和纠正小学化现象实施方案
- 沪教版二年级数学上第一单元教案
- 中国眼镜片行业重点区域市场分析
- 重庆市中小型型钢采购企业名录2017版6086家 - 图文
- 教师招聘教师职业道德修养试题及答案
- 公司计算机机房管理规定
- 水力学习题--第二章
- 09年2月五爱小学安全工作计划
- 2018-2019学年湘教版八年级数学下册 3.1平面直角坐标系 - 图文
- 北大绿卡八年级物理下册第7章力第1节力练习题(含解析)(新版)新人教版
- 2012年中考化学试题分类汇编 - - - 第十单元酸、碱、盐
- 《鲁滨孙漂流记》练习题1
- 四年级上册语文一课一练-9满山的灯笼火把 - 语文s版含答案
- 2019年三年级数学上册期末综合练习1
- 《英国的制度创新》教案正式版
- 第十讲 排列组合及其应用(家长版)
- 平行宇宙与高维空间
- 关于表彰2007-2008学年度先进班集体
- 2017-2018年高中化学选修五同步练习学案(20份) 人教课标版(优秀教案)