C语言程序设计报告37445_第1页
C语言程序设计报告37445_第2页
C语言程序设计报告37445_第3页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息工程系课程设计报告书所属课程名称: C 语言程序设计 专业班级 : 150311 学生姓名:曾传凤 学 号: 15031102长春工业大学人文信息学院2016年 9月 9日课程设计成绩评定表项目得分平时表现及设计完成情况(占 40%)设计报告(占 30%)答辩情况(占 30%)成绩评定及等级:优:90 100 分;良:80-89 分;中:70-79 分; 及格:60-69分;不及格:60分以 下。分数等级指导教师姓名及职称:年 月日第一部分完成题目1、简单的数学计算。编写程序,计算任意输入的3个数的和的平均值。截屏:三个数62三个数的和为三个数的和的平均值为三个数的和为込三个数的和的平均值

2、为4.030000P s a.nyto continue(2)源代码:/1.简单的数学计算。编写程序,计算任意输入的3个数的和的平均值。#i nclude "stdio.h"void mai n()int a=0,b=0,c=0,s=0;float v;printf("三个数");scan f("%d%d%d",&a,&b,&c);printf(”三个数的和为,三个数的和的平均值为”);s=a+b+c;v=s/3;printf("三个数的和为%d,三个数的和的平均值为 f',s,v);2. 题

3、目:编写程序。a为100 , b为50 ,若a>b成立将a赋予给c,否则将b赋予给c。同 时,若a<b成立将a赋予d,否则将b的三次方赋予d。编程输出a,b,c,d的值。(1)截屏:(2)源代码:#in elude "stdio.h" void mai n()int a=100;int b=50;int c,d;if(a>b)c=a; d=b*b*b;elsec=b;d=a;prin tf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);3. 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,6

4、0-89分之间的用B表示,60分以下的用C表示。X(1)截屏:ci * C: XDocuiLent s aund Settrat DrDebugl 1. ex:e*幘输入学生成绩:BIPress any key to continue(2)源代码: #in clude "stdio.h" void mai n()int a;printf("请输入学生成绩:n ");scan f("%d", &a);if(a>=90)prin tf("An ”);else if(a>60&&a<89)

5、prin tf("Bn");elseprin tf("Cn ”);4题目:构造一个一元二次方程,方程有两个不相等的实数解,将两个实数解输出出来。(1)截屏:(2)源代码/ 4.构造一个一元二次方程,方程有两个不相等的实数解,将两个实数解输出出来。#in clude"stdio.h" void mai n()int a,b,c;float x1,x2;float m;printf(" 请输入三个数作为方程的系数: n"); scanf("%d%d%d",&a,&b,&c);m=b*b

6、-4*a*c;if(a!=0)printf(" 方程成立 ");if(m>0)x1=(-b+sqrt(m)/(2*a);x2=(-b-sqrt(m)/(2*a);printf(" 方程有两个解, x1=%f , x2=%fn",x1,x2); else if(m=0)x1=x2=(-b+sqrt(m)/(2*a);printf(" 方程有唯一解 x=%fn",x1);elseprintf(" 方程无解 n");elseprintf(”方程不成立n");5题目:输入任意一个四位数字,分别将个位,十位,

7、百位,千位上的数字输出出来,并求所有位数的和。(1)截屏:请输入四个数:L234该四柱数个位乳十鱼百位竄千包1 该四位数和汽诃Press anp key to cont inue(2)源代码#i nclude "stdio.h"voidmai n()int a,b;int x1,x2,x3,x4;printf("请输入四个数:n");sca nf("%d",&a);x1=a%10;x4=a/1000;a=a/10;x2=a%10;a=a/10;x3=a%10;b=x1+x2+x3+x4;printf(”该四位数个位 %d,十位

8、%d,百位%d,千位dn",x1,x2,x3,x4);printf(” 该四位数和:%dn",b);6题目:从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出(1) 截屏(2) 源代码#in clude"stdio.h"void mai n()int x,a,b;printf(”请输入工资:"); scan f("%d",& x);if(x<=1200)a=1;else if(x>1200&& x<=2

9、000)a=2;else if(x>2000&& x<=3500)a=3;elsea=4;switch(a)case 1:printf(" 不收税 n");break;case 2:b=(x-1200)*0.05;printf(" 收税 %dn",b);break;case 3:b=(x-2000)*0.08;pri ntf("收税 %dn",b);break;case 4:b=(x-3500)*0.2;printf("收税 dn",b);break;7题目:假定征税的办法如下:收入在

10、1200元以下(含1200元)的不征税;收入在 1200元以 上2000元以下者,超过1200元的部分按5%的税率收税;收入在 2000元以上3500元以下者, 超出2000元部分按8%的税率收税;收入在 3500元以上者,3500以上部分按20%的税率收税, 试编写按收入计算税费的程序(要求使用switch语句编写程序)。(1) 截屏:(2) 源代码:#in clude"stdio.h"void mai n()int x,a,b;printf(" 请输入工资: "); scanf("%d",&x);if(x<=1200

11、)a=1;else if(x>1200&&x<=2000)a=2;else if(x>2000&&x<=3500)a=3;elsea=4;switch(a)case 1:printf(" 不收税 n");break;case 2:b=(x-1200)*0.05;printf(" 收税 %dn",b); break;case 3:b=(x-2000)*0.08;printf("收税 %dn",b);break;case 4:b=(x-3500)*0.2;printf("收

12、税 %dn",b);break;8 题目:输入三个整数 x,y,z ,请把这三个数由小到大输出 1 ) 截屏:听输入数按从小到犬排列为WPi*ess any key t o continue(2) 源代码:#in clude"stdio.h"void mai n()int a,b,c;int max,mi n,zho n;printf(”请任意输入三个数:n”);scan f("%d%d%d", &a, &b,&c);if(a>=b)max=a;mi n=b;elsemax=b;mi n=a;if(max>=

13、c)if(mi n>=c)zho n=min;min=c;elsezho n=c;elsezhon=max;max=c;printf(”所输入数按从小到大排列为d<%d<%dn",min,zhon,max);9题目:输入一个任意数字,将这个数字的绝对值输出出来(1) 截屏:请输入任意一个数字:绝对值为9Pr-ess 谎ny kuy to continues(2) 源代码:#in clude"stdio.h"void mai n()int a;printf(”请输入任意一个数字:n");scan f("%d",&

14、;a);if(a>=0)printf("绝对值为 %dn",a);elsea=-a;printf("绝对值为 %dn",a);諭入被除数和除数:商为Iany key to continue.1(3) 源代码:#in clude"stdio.h"void main()int a,b;int x;printf(" 请输入被除数和除数: n");scanf("%d%d",&a,&b);if(b!=0)x=a/b;printf(" 商为 :%dn",x);els

15、eprintf(" 除数不能为 0n");5 天即本年的第几天,11 题目:编程实现:任意输入某年某月某日,判断这一天是这一年的第几天。 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 特殊情况,闰年且输入月份大于 3 时需考虑多加一天。( 1) 截屏:(2) 源代码:#in clude"stdio.h"void mai n()int n,y,r;int sum;printf("请输入年份:n");scan f("%d",&n);printf("请输入月份:n")

16、;scan f("%d", &y);printf("请输入第几天:n");scan f("%d",&r);if(n %4=0)&&(n %100!=0 )|(n %400=0)switch(y)case 1:sum=r;break;case 2:sum=31+r;break;case 3:sum=60+r;break;case 4:sum=91+r;break;case 5:sum=r+121;break;case 6:sum=152+r;break;case 7:sum=182+r;break;cas

17、e 8:sum=213+r;break;case 9:sum=244+r;break;case 10:sum=274+r;break;case 11:sum=305+r;break;case 12:sum=355+r;break;elseswitch(y)case 1:sum=r;break;case 2:sum=31+r;break;case 3:sum=59+r;break;case 4:sum=90+r;break;case 5:sum=r+120;break;case 6:sum=151+r;break;case 7:sum=181+r;break;case 8:sum=212+r;b

18、reak;case 9:sum=243+r;break;case 10:sum=273+r;break;case 11:sum=304+r;break;case 12:sum=354+r;break;printf(” 这是 %d 年的第 %d 天 n",n,sum);12题目:用整数112 一次表示1月12月,由键盘输入一个月份数,输出对应的季节英文 名称(12月2月为冬季;3月5月为春季;6月8月为夏季;9月11月为秋季),要求用if 嵌套实现。(1) 截屏:荫任蕙输入一个月份:SPRINGPress any Jkey to containue(2)源代码:#in clude&qu

19、ot;stdio.h"void mai n()int year;printf("请任意输入一个月份:n"); sca nf("%d", &year);if(year>=3&&year<=5)prin tf("SPRING");else if(year>=6&&year<=8)prin tf("SUMMER");else if(year>=8&&year<=11)prin tf("FALL");e

20、lseprin tf("WINTER");13题目:模拟银行提款机程序。首先要求用户输入密码,如果输入密码 超过三次则退出程序。如果在三次以内,可以选择用户的操作,操作1.查询余额;2.存款操作;3.取款操作;4.转账汇款;5.退出(1) 截屏:请输入六位数密期123456密码正ffil I淸选择卷悪做的操作,口查询奈輸;2 .存款操作;3 取款操作 4转账汇款$匚机出;(2)源代码:#in clude"stdio.h"void mai n()int n=0;int mima;/ 密码int c=0; 操作int ck,qk,zz,hl;存款,取款,转帐

21、,汇款int ye=1000;余额while( *3)n=n+;printf(”请输入六位数密码n");sca nf("%d",&mima);if(mima=123456)printf("密码正确!n”);while(c!=5)printf("请选择您要做的操作:n1.查询余额;2.存款操作;3.取款操作;n 4.转账汇款;5.退出;n");scanf("%d",&c);switch(c)case 1:printf(" 余额为 %dn",ye);break;case 2:prin

22、tf(" 请输入您要存的钱数 :n");scanf("%d",&ck);ye=ck+ye;printf(" 当前余额为 :%dn",ye);break;case 3:printf(" 请输入您要取的钱数 :n");scanf("%d",&qk);ye=ye-qk;printf(" 当前余额为 :%dn",ye);break;case 4:printf(" 请输入您要转的钱数 :n");scanf("%d",&zz

23、);ye=ye-zz;printf(" 当前余额为 :%dn",ye);break;case 5:printf(" 已退出,请收好您的卡 !n");break;break;elseprintf(" 密码错误! n");if(n=3)printf(" 错误次数过多,禁止操作 !n");14 题目: 1. 用户从键盘任意输入两个整数 ,求这两个整数之间所有整数的和(1)截屏:请输入两个整数:4541码之|间所有数的和为211砧 Press euiy key to continue.(2)源代码:#in clude&qu

24、ot;stdio.h"void mai n()int a,b;int n;int sum=0;int max,mi n;printf("请输入两个整数:n");scan f("%d%d",&a,&b);if(a>=b)max=a;mi n=b;elsemax=b;mi n=a;for(n=min;n<=max ;n+)sum=n+sum;prin tf("%d,%d之间所有数的和为:dn",a,b,sum);15题目:打印出一个直角三角形(1) 截屏:(2)源代码:#i nclude"s

25、tdio.h" void mai n()int s,n ,m;printf("请任意输入三角形的直角边长:n”);scan f("%d", &s);for(n=0;n<s;n+)for(m=0;m<=n; m+)printf(” * ");prin tf("n");16题目:打印出一个”九九乘法表”(1) 截屏:1*1=12*1=22*2=43*1=33*2=63*3 =?4*1=44*2=84*3=124*4=165*1=55*2=105*3=155*1=205*5=256*1=66*2-126*3=1

26、86*4=246*5=306=367*1=77*2-1!7*3-217M-28?*5-357=427*7=498*1=88*2=168*3=248*4=328 屿=408-6=488*?=568*fi=649*1=99*2 =1B9*3=279*4=369«S=459«6=549*7=639*fl=?29«9=81Pr-ess ian kmy 1to con(2) 源代码:#i nclude"stdio.h" void mai n()int n,m, x;for(n=1; n<=9;n+)for(m=1;m<=n; m+)x=n *

27、m;printf(” %d*%d=%d ”,n,m,x);prin tf("n");17题目:输出1-100之间的所有素数(1) 截屏12 35711131?1923293137414347S3596167717379S38997& any k巳勺F七口conInue(2) 源代码#i nclude"stdio.h"void mai n()int n,m,x;int flag=0;int s=0;for(n=1; *=100 ;n+)flag=1;for(m=2;m<n;m+)x=n%m;if(x=0)flag=0;break;if(fla

28、g=1)s+;printf(" %d ",n);if(s%5=0)printf("n");prin tf("n");18题目:模拟银行操作的流程(1)截屏请繭入六位数密码123456密码正Si !睹选择翟枣做的操作占查询余嬴 宜棒操作;-取款操作;4 转账汇款i J范出;(2) 源代码#in clude"stdio.h"void mai n()int n=0;int mima;/ 密码int c=0;/ 操作int ck,qk,zz,hl; 存款,取款,转帐,汇款int ye=1000;余额while( n<

29、3)n=n+;printf("请输入六位数密码n");scan f("%d",&mima);if(mima=123456)printf("密码正确!n");while(c!=5)3.取款操作;printf("请选择您要做的操作:n1.查询余额;2.存款操作; n 4.转账汇款;5.退出;n");scan f("%d",&c);switch(c)case 1:printf(" 余额为 %dn",ye);break;case 2:printf(" 请输入

30、您要存的钱数 :n");scanf("%d",&ck); ye=ck+ye;printf(" 当前余额为 :%dn",ye); break;case 3:printf(" 请输入您要取的钱数 :n");scanf("%d",&qk); ye=ye-qk;printf(" 当前余额为 :%dn",ye); break;case 4:printf(" 请输入您要转的钱数 :n");scanf("%d",&zz); ye=ye-

31、zz;printf(" 当前余额为 :%dn",ye); break;case 5:printf(" 已退出,请收好您的卡 !n");break;break;elseprintf(" 密码错误! n");if(n=3)printf(" 错误次数过多,禁止操作 !n");数。19 题目:输入任意多个整数 ,当输入 -1 时结束用户输入,统计并输入其中正数、负数和零的个( 1) 截屏扁输入1个数筈1请输入一个数二23请输入一个数=请输入1"数二正数有个兀负数有个*零有个眼Pi'ess any he#

32、" cont inueH(2) 源代码#i nclude"stdio.h"void mai n()int n=0;int l=0;int z=0;int f=0;while( n!=-1)printf("请输入一个数:n");scan f("%d",&n);if(n>0)z+;else if(n=0)l+;elsef+;printf("正数有个%d,负数有个 %d,零有个%d。n",z,f,l);20题目:编写程序,计算1-100之间的所有偶数和。(1) 截屏到丄砸之间所有偶数的和为臨

33、63;0*yesE an 1/ Jcev to c:oritinue(2) 源代码#in clude"stdio.h" void mai n()int n;int sum=0;for(n=1; n<=100; n+)if(n %2=0) sum=sum+n;%dn" ,sum);printf("1到100之间所有偶数的和为题目.用for循环语句编写计算n!的程序截屏21(1)青输入要计鼻的值;|的阶乘为如hpess an9 key to continue(2) 源代码#in clude"stdio.h"void mai n()i

34、nt兀int n;int s=1;printf(”请输入要计算的值:n”); scan f("%d",& x);for(n=1; n<=x;n+)s=s*n;printf("%d的阶乘为:%dn",x,s);21题目百钱百鸡问题: 设公鸡每只5元,母鸡每只3元,小鸡每元3只,现用100元钱买100 只鸡,编写程序,算出可以各买多少只鸡。(1) 截屏母鸡切只,母鸡俎只, ,母鸡4只,to continue口八只只8 147 8 8可以买公鸡4貝, 可以买公鸡日只, 可以买公鸡堪只'iress any hev源代码#in clude&q

35、uot;stdio.h"void mai n()int x,y,z;for(x=1;x<=20;x+)for(y=1;y<=33;y+)z=100-x-y;if(x+y+z=100)&&(5*x+3*y+z/3=100) &&(z%3=0)printf("可以买公鸡 %d只,母鸡 %d只,小鸡 %d只n",x,y,z);22题目古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(1) 截屏(2) 源代码#in clude"

36、;stdio.h" int fun (i nt n)if(n=1|n=2)return 1;elsereturn fun(n-1)+fun(n-2);void main()int num;int x;int n;printf(" 请输入需要查看的月份: n");scanf("%d",&n);num=fun(n);printf(" 第 %d 月有兔子 %d 对 n",n,num);return 0;23 题目打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153 是一个“

37、水仙花数”,因为 153=1 的三次方 5 的三次方 3 的三次方。(1) 截屏庐仙花数有:153370371407 Press Anyto continuie(2) 源代码#in clude"stdio.h"void mai n()int n;int a,b,c;printf(”水仙花数有:n"); for(n=100 ;*=999; n+)a=n/100;b=( n-a*100)/10;c=( n-a*100)%10;if(a*a*a+b*b*b+c*c*c=n) printf(" %d ",n);6=1 + 2 + 3.编程24题目4一个

38、数如果恰好等于它的因子之和,这个数就称为“完数”。例如 找出1000以内的所有完数。(1) 截屏£2849& Press any key to continue(2) 源代码#in clude"stdio.h"void mai n()int n;int sum=0;int m;for(n=2; n <1000; n+)sum=0;for(m=1;m< n; m+)if(n %m=0)sum=sum+m;if(sum=n)printf(” %d ”,n);25题目编写两个函数,求任意输入两个整数的最大公约数和最小公倍数。(1) 截屏铁公倍数是2

39、52 0Fftss anu Icpu tn continue(2) 源代码#in clude"stdio.h"int gy(i nt a,i nt b)int n;int x;for(n=1; n<=b;n+)if(a% n=0&&b%n=0)x=n;printf(" 最大公约数是 %dn",x); return x;int gb(int a,int b,int x)int m;m=(a*b/x);printf(" 最大公倍数是 %dn",m);void main()int a,b;int x;int max,m

40、in;:n");printf(" 请任意输入两个整数scanf("%d %d",&a,&b);if(a>=b)max=a;min=b;elsemax=b; mi n=a; x=gy(max,mi n);gb(max,mi n,x);26题目用递归的方法,计算正整数的阶乘n !。(1)截屏请任意输入一个正整数二5的所乘为边0.Pres 011 寸 key tv continue(2) 源代码#i nclude"stdio.h" int jc(i nt x)if(x=1)retur n x=1;elsereturn

41、x=x*jc(x-1);void mai n()int x;int a;printf(”请任意输入一个正整数:n");scan f("%d", &x);a=jc(x);printf("%d的阶乘为 dn",x,a);27题目有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第 2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是 10岁。请问第五个人多大?(1) 截屏请输人第一个人的年龄;第五个人的年龄是均Pi*ess an5,key to continue

42、( 2) 源代码#include"stdio.h"int year(int a)int n;for(n=0;n<4;n+)a=a+2;printf(" 第五个人的年龄是 %dn",a);void main()int a;printf(" 请输入第一个人的年龄: n");scanf("%d",&a);year(a);28 题目有一分数序列: 2/1 ,3/2 , 5/3 ,8/5 , 13/8 ,21/13. 求出这个数列的前 20 项之和。( 1) 截屏(2) 源代码#in clude"st

43、dio.h"void sum()float b=1;int n;float sum=0;float a=1;float c;for(n=1; n<=20; n+)c=a;a=a+b;b=c;sum=sum+(b/a);prin tf("%fn",sum);void mai n()sum();29题目设计一个判断素数的函数,编写程序验证函数的功能(1) 截屏请输入你雯判断的数, 軽不是素数Pi'&se any keto continuJ(2) 源代码#in clude"stdio.h" int sushu(i nt a)in

44、t n;int flag;if(a!=1 &&a!=2)for(n=2; n<a;n+)flag=0;if(a% n=0)flag=0;break;elseflag=1;if(flag=1)printf("%delseprintf("%delseprintf("%d 是素数 n是素数 n",a);不是素数 n",a);,a);27. 题目:调用自定义函数的形式编程。要求求出s=n!+m!+k!。其中m , n,k的值有键盘输入,并且他们的值必须大于0.(1)截屏:(2 )源代码:#i nclude"stdio.h"int jc(i nt a)int x=1;int n;for(n=1; n<=a;n+)x=x* n;return x;void mai n()int n,m,k;int a,b,c;int s;printf(" 请输入第 1 个数:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论