C语言经典编程实例.docx
《C语言经典编程实例.docx》由会员分享,可在线阅读,更多相关《C语言经典编程实例.docx(28页珍藏版)》请在冰豆网上搜索。
C语言经典编程实例
C语言经典编程实例
第1章为什么要学C语言
【验证型】1.1Helloworld.
让我们用C语言向世界问好。
输入:
无
输出:
Helloworld.
1.#include
2.int main()
3.{
4. printf("Hello world.\n");
5.}
1.#include
2.int main()
3.{
4.printf("Welcome\n");
5.printf("to\n");
6.printf("Beijing.\n");
7.}
第2章C数据类型
【设计型】2.1学习打印你的第一个图形
背景:
我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。
程序如下:
#include
int main()
{
printf("****\n");
printf("****\n");
printf("****\n");
printf("****\n");
return0;
}
要求:
按照上面的程序范例,编写一个小程序,要求输出的是4行由*号组成的等腰三角形。
输入:
无。
输出:
*
***
*****
*******
1.#include
2.int main()
3.{
4. printf(" *\n");
5. printf(" ***\n");
6. printf(" *****\n");
7. printf("*******\n");
8.
9. return 0;
10.}
【验证型】2.2输出倒三角形
【题目描述】
输出指定的由“*”组成的倒三角图案。
【输入】
无输入。
【输出】
按照指定格式输出由“*”组成的倒三角图案。
【样例输入】
【样例输出】
****
***
**
*
1.#include
2.int main()
3.{
4. printf("* * * *\n");
5. printf(" * * *\n");
6. printf(" * *\n");
7. printf(" *\n");
8.
9. return 0;
10.}
第3章简单的算术运算和表达式
【设计型】3.1分离3位整数
任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。
比如输入的三位正整数
1.#include
2.#include
3.int main()
4.{
5. int x,hundreds,tens,units;
6. printf;
7. scanf("%d",&x);
8. hundreds=x/100;
9. tens=x%100/10;
10. units=x%100%10;
11. printf("units=%d,tens=%d,hundreds=%d\n",units,tens,hundreds);
12.}
【验证型】3.2三位数分解求累加和
(参考书P27例3.1与P49例4.4)
题目描述
输入一个3位的正整数n,编程计算整数n的各位数字之和。
输入
输入一个正整数n。
输出
各位数字之和sum。
样例输入
208
样例输出
10
题目来源:
2012年秋季期末考试
1.#include
2.void main()
3.{
4. int a,x,y,z,sum=0;
5. scanf("%d",&a);
6. x=a/100;
7. y=a/10%10;
8. z=a%10;
9. sum=x+y+z;
10. printf("%d\n",sum);
11.}
【设计型】3.3整数四则运算
【题目描述】
小明上小学一年级了,老师已经教会了他们进行整数的+、-、*、/、%计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。
【输入】
接受两个整数,每个整数之间使用空格分隔。
【输出】
分别输出进行+、-、*、/、*之后的运行结果。
【样例输入】
103
【样例输出】
10+3=13
10-3=7
10*3=30
10/3=3
10%3=1
1.#include
2.int main()
3.{
4. int a,b;
5. scanf("%d%d",&a,&b);
6. printf("%d+%d=%d\n",a,b,a+b);
7. printf("%d-%d=%d\n",a,b,a-b);
8. printf("%d*%d=%d\n",a,b,a*b);
9. printf("%d/%d=%d\n",a,b,a/b);
10. printf("%d%%%d=%d\n",a,b,a%b);
11. return 0;
12.}
【设计型】3.4编程计算3位整数的逆序数
题目描述见书P41题3.2
提示:
使用标准数学函数fabs()。
1.#include
2.#include
3.#include
4.int main()
5.{
6. int a,b,c,d,e,f,g;
7. scanf("%d",&a);
8. a=fabs(a);
9. b=a/100;
10. d=a%10;
11. c=(a-b*100-d)/10;
12. f=d*100+c*10+b;
13. printf("%d\n",f);
14. return 0;
15.}
第4章键盘输入和屏幕输出
【验证型】4.1printf和scanf
printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。
输入:
整型变量x的值。
输出:
输出整型变量x对应的十进制、八进制和十六进制形式。
认真观察-1的八进制和十六进制输出,请想想是为什么。
1.#include
2.int main()
3.{
4. int x;
5. scanf("%d",&x);
6. printf("x=%d,",x);
7. printf("x=%o,",x);
8. printf("x=%x\n",x);
9. return 0;
10.}
【验证型】4.2字符的ASCII值
【题目描述】
从键盘输入一个字符,输出其对应的ASCII码值。
【输入】
输入一个字符。
【输出】
输出字符对应的十进制ASCII码值。
【样例输入】
A
【样例输出】
65
1.#include
2.int main()
3.{
4. char ch;
5. ch=getchar();
6. ch=ch;
7. printf("%d\n",ch,ch);
8.}
【验证型】4.3混合类型数据格式化输入
【题目描述】
顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
【输入】
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
【输出】
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
【输入样例】
2.1288c4.7
【输出样例】
c882.124.70
1.#include
2.#include
3.int main()
4.{
5. float a,b;
6. int c;
7. char d;
8. scanf("%f %d %c %f",&a,&c,&d,&b);
9. printf("%c %d %.2f %.2f\n",d,c,a,b);
10. return 0;
11.}
【设计型】4.4照猫画猫:
计算圆柱的侧面积及体积
如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积s=2πrh,体积v=πr2h。
其中π=3.1415926
输入
第一行输入圆柱的底面半径r
第二行输入圆柱的高h
输出
s=<圆柱的侧面积>,v=<圆柱的体积>
要求
1.所有变量都定义为双精度类型
2.结果精确到小数点后两位
1.#include
2.int main ()
3.{
4. double r,h,s,v;
5. double pi=3.1415926;
6. scanf("%lf",&r);
7. scanf("%lf",&h);
8. s=2*pi*r*h;
9. v=pi*r*r*h;
10. printf("s=%5.2f,v=%5.2f\n",s,v);
11. return 0;
12.}
【设计型】4.6旅行时间和花费
【题目描述】
十一期间LaughingSir和朋友自驾游去外地玩。
已知旅行的距离和汽车平均速度,以及每公升汽油可以行驶的公里数及每公升汽油的价格,求CoCo这趟驾驶汽车旅游所花费的时间和购买汽油的钱数。
【输入】
输入四个数据,依次分别表示:
旅行的距离(单位:
公里)、汽车平均速度(公里/小时)、每公升汽油可以行驶的公里数(单位:
公里)、每公升汽油价格(元/公升)。
【输出】输出汽车旅游所花费的时间(单位:
小时)和购买汽油的钱数(单位:
元)。
输出数据都保留1位小数
【样例输入】
130011014.57.16
【样例输出】11.8641.9
1.#include
2.int main()
3.{
4. float s,v,h,m,t,all;
5. scanf("%f%f%f%f",&s,&v,&h,&m);
6. t=s/v;all=s/h*m;
7. printf("%.1f %.1f\n",t,all);
8. return 0;
9.}
【设计型】4.7计算月收入
【题目描述】
CoCo的表姐刚从大学毕业,进入到一家小型外贸公司工作。
该公司员工月收入的计算方法为:
月基本工资加当月提成。
从键盘输入CoCo表姐某月的基本工资和该月的提成,计算并输出表姐该月的收入。
【输入】
输入两个数分别代表月基本工资和月提成。
【输出】
计算并输出月收入,保留2位小数。
【样例输入】
3150.21200
【样例输出】
4350.20
1.#include
2.int main()
3.{
4. float ticheng,gongzi;
5. scanf("%f%f",&gongzi,&ticheng);
6. printf("%.2f\n",gongzi+ticheng);
7. return 0;
8.}
【设计型】4.8男生和女生
【题目描述】
已知某班有男生n1位,女生n2位,n1位男生的平均分是x分,n2位女生的平均分是y分,问全体学生的平均分是多少?
【输入】
四个整数x、y、n1、n2
【输出】
全体学生的平均,保留2位小数
【样例输入】
90882321
【样例输出】
89.05
1.#include
2.int main()
3.{
4. int n1,n2;float x,y,ave;
5. scanf("%f%f%d%d",&x,&y,&n1,&n2);
6. ave=(x*n1+y*n2)/(n1+n2);
7. printf("%.2f\n",ave);
8. return 0;
9.
10.}
第5章选择控制结构
【设计型】5.1奇偶数
问题描述:
输入一个整数,判断其奇偶性。
输入:
整数n
输出:
n是奇数或n是偶数
输入样例:
3
输出样例:
3是奇数
1.#include
2.int main()
3.{
4. int a;
5. scanf("%d",&a);
6. if (a%2==0)
7. printf("%d是偶数\n",a);
8. else
9. printf("%d是奇数\n",a);
10. return 0;
11.}
【设计型】5.2绝对值
问题描述:
输入一个实数,不使用绝对值函数计算并输出该实数的绝对值。
输入:
一个实数
输出:
该实数的绝对值
输入样例:
-3.5
输出样例:
3.5
1.#include
2.main()
3.{
4. float a;
5. scanf("%f",&a);
6. if (a>=0)
7. printf("%.6f\n",a);
8. else
9. printf("%.6f\n",-a);
10. return 0;
11.}
【设计型】5.3判断闰年
问题描述:
输入一个年份,判断其是否闰年。
输入:
整数year
输出:
year是闰年或year不是闰年
输入样例:
2004
输出样例:
2004是闰年
1.#include
2.int main()
3.{
4. int year;
5. scanf("%d",&year);
6. if (((year%4==0)&&(year%100!
=0))||(year%400==0))
7. printf("%d是闰年\n",year);
8. else
9. printf("%d不是闰年\n",year);
10. return 0;
11.}
【设计型】5.4出租车计费
题目描述
根据某城市普通出租车收费标准编写程序对车费进行计算。
具体标准如下:
起步里程为3km,起步费10元;10km以内超过起步里程部分,每千米2元,超过10km以上的部分,每千米3元。
输入
行驶里程数(单位千米)。
输出
乘客应支付的车费(单位元),结果四舍五入,保留到元。
样例输入
12.5
样例输出
32
题目来源:
2012年秋季期末考试
1.#include
2.int main()
3.{
4. float a,b;
5. scanf("%f",&a);
6. if (a<=3)
7. b=10;
8. if (a>3&a<=10)
9. b=10+(a-3)*2;
10. if(a>10)
11. b=24+(a-10)*3;
12. printf("%.0f\n",b);
13. return 0;
14.}
【设计型】5.5整数位数判断
输入一个不多于5位的正整数,要求:
(1)求它是几位数;
(2)逆序打印出各位数字。
1.#include
2.int main()
3.{
4. int num,a,b,c,d,e;
5. scanf("%d",&num);
6. if((num<=0)||(num>=100000))
7. {printf("Invalid input\n");}
8.
9. else if(num/10==0)
10. {printf("1\n%d\n",num);}
11. else if(num/100==0)
12. {printf("2\n%d%d\n",num%10,num/10);}
13. else if((num/1000==0))
14. {
15. a=num%10;
16. b=num/100;
17. c=(num-100*b)/10;
18. printf("3\n%d%d%d\n",a,c,b);
19. }
20. else if((num/10000==0))
21. {
22. a=num%10;
23. b=num/1000;
24. c=(num-1000*b)/100;
25. d=(num-1000*b-100*c)/10;
26. printf("4\n%d%d%d%d\n",a,d,c,b);
27. }
28. else
29. {
30. a=num%10;
31. b=num/10000;
32. c=(num-10000*b)/1000;
33. d=(num-10000*b-1000*c)/100;
34. e=(num-10000*b-1000*c-100*d)/10;
35. printf("5\n%d%d%d%d%d\n",a,e,d,c,b);
36. }
37. return 0;
38.}
【设计型】5.6判断某年某月的天数
一年有365天,有的月份有31天,有的有30天,2月份闰年的时候是29天,非闰年的时候是28天。
现在要求从键盘上输入一个年份和月份,输出其对应的天数。
1.#include
2.int main()
3.{
4. int year,month,days;
5. scanf("%d%d",&year,&month);
6. switch(month)
7.{
8.case 1:
9. case 3:
10. case 5:
11. case 7:
12. case 8:
13. case 10:
14. case 12:
days=31;break;
15. case 4:
16. case 6:
17. case 9:
18. case 11:
days=30;break;
19. case 2:
20. if(((year % 4 ==0) && (year % 100 !
=0)) || (year % 400 ==0))
21. days=29;
22. else
23. days=28;
24.}
25.printf("%d\n",days);
26.return 0;
27.}
【设计型】5.7判断输入的字符的类型
我们将字符分为五类:
大写字母、小写字母、数字、控制字符、其他字符。
编写程序,从键盘输入一个字符,输出字符所属的类型:
大写字母时输出capitalletters,小写字母时输出smallletters,数字是输出figures,其他字符时输出others。
1.#include
2.int main()
3.{
4. char ch;
5. scanf("%c",&ch);
6. if (ch>='A' && ch<='Z')
7. { printf("capital letters\n");}
8. else if(ch>='a' && ch<='z')
9. { printf("small letters\n");}
10. else if(ch>='0'