《2022年c语言程序设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言程序设计报告 .pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息工程系课程设计报告书所属课程名称: C 语言程序设计专业班级 : 150311学生姓名:曾传凤学号:长春工业大学人文信息学院2016 年 9月 9日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 37 页 - - - - - - - - - 课程设计成绩评定表项目得分平时表现及设计完成情况(占 40% )设 计 报 告(占 30% )答 辩 情 况(占 30% )成 绩 评 定 及 等级:优:90100 分;良:80-89分;中:70-79分;及 格 : 60-69分
2、;不及格: 60 分以下。分数等级指导教师姓名及职称:年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - 第一部分完成题目1、 简单的数学计算。编写程序,计算任意输入的3 个数的和的平均值。(1) 截屏: (2) 源代码:简单的数学计算。编写程序,计算任意输入的3 个数的和的平均值。#include void main() int a=0,b=0,c=0,s=0; float v; printf(三个数 ); scanf(%
3、d%d%d,&a,&b,&c); printf(三个数的和为, 三个数的和的平均值为); s=a+b+c; v=s/3; printf(三个数的和为%d,三个数的和的平均值为%f,s,v);2. 题目:编写程序。a 为 100,b 为 50,若 ab 成立将 a 赋予给 c,否则将 b 赋予给 c。同时,若 ab) c=a; d=b*b*b; else c=b; d=a; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 37 页 - - - - - - - - - pri
4、ntf(a=%d,b=%d,c=%d,d=%d,a,b,c,d);3. 题目:利用条件运算符的嵌套来完成此题:学习成绩=90 分的同学用A表示, 60-89 分之间的用 B表示, 60 分以下的用C表示。(1) 截屏:(2) 源代码:#include void main() int a; printf(请输入学生成绩:n ); scanf(%d,&a); if(a=90) printf(An); else if(a60&a0)x1=(-b+sqrt(m)/(2*a);x2=(-b-sqrt(m)/(2*a);printf(方程有两个解,x1=%f,x2=%fn,x1,x2);else if(m
5、=0)x1=x2=(-b+sqrt(m)/(2*a); printf(方程有唯一解x=%fn,x1);elseprintf(方程无解 n);elseprintf(方程不成立 n);5 题目:输入任意一个四位数字,分别将个位,十位,百位,千位上的数字输出出来,并求所有位数的和。(1) 截屏:(2) 源代码#include void main() int a,b; int x1,x2,x3,x4; printf(请输入四个数:n); scanf(%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;
6、printf(该四位数个位%d,十位 %d,百位 %d,千位 %dn,x1,x2,x3,x4); printf(该四位数和 :%dn,b);6 题目:从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - (1)截屏(2)源代码#includevoid main()int x,a,b;printf(请输入
7、工资: );scanf(%d,&x);if(x1200&x2000&x=3500)a=3;elsea=4;switch(a) case 1:printf(不收税 n); break; case 2:b=(x-1200)*;printf(收税 %dn,b); break; case 3:b=(x-2000)*;printf(收税 %dn,b); break; case 4:b=(x-3500)*;printf(收税 %dn,b); break;7 题目:假定征税的办法如下:收入在 1200 元以下(含 1200 元)的不征税; 收入在 1200 元以上 2000元以下者,超过1200 元的部分按
8、5% 的税率收税;收入在2000 元以上 3500 元以下者,超出2000 元部分按 8% 的税率收税;收入在3500 元以上者, 3500 以上部分按20% 的税率收税,试编写按收入计算税费的程序(要求使用switch语句编写程序)。(1)截屏:(2)源代码:#includevoid main() int x,a,b;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - printf(请输入工资: ); scanf(%d,&x);
9、 if(x1200&x2000&x=b)max=a;min=b;else名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 37 页 - - - - - - - - - max=b;min=a;if(max=c)if(min=c)zhon=min;min=c;elsezhon=c;elsezhon=max;max=c;printf(所输入数按从小到大排列为%d%d=0)printf(绝对值为 %dn,a);elsea=-a;printf(绝对值为 %dn,a);10 题目:输
10、入一个任意数字,将这个数字的绝对值输出出来。(1)截屏:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 37 页 - - - - - - - - - (3)源代码:#includevoid main()int a,b;int x;printf(请输入被除数和除数:n); scanf(%d%d,&a,&b); if(b!=0)x=a/b; printf(商为 :%dn,x);elseprintf(除数不能为0n);11 题目:编程实现:任意输入某年某月某日,判断这一天是这一
11、年的第几天。程序分析:以3 月 5 日为例,应该先把前两个月的加起来,然后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。(1)截屏:(2)源代码:#includevoid main()int n,y,r;int sum;printf(请输入年份: n);scanf(%d,&n);printf(请输入月份: n);scanf(%d,&y);printf(请输入第几天:n);scanf(%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;名师资料
12、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - 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;case 8:sum=213+r;break;case 9:sum=244+r;break;case 10:sum=274+r;break;case 11:sum=
13、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;break;case 9:sum=243+r;break;case 10:sum=273+r;名师资料总结 - - -精品资料欢迎下载 - - - - - -
14、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 37 页 - - - - - - - - - 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)截屏:(2)源代码:#includevoid main()
15、 int year; printf(请任意输入一个月份:n); scanf(%d,&year); if(year=3&year=6&year=8&year=b)max=a;min=b;elsemax=b;min=a;for(n=min;n=max;n+)sum=n+sum;printf(%d,%d之间所有数的和为:%dn,a,b,sum);15 题目:打印出一个直角三角形(1)截屏:(2)源代码:#includevoid main()int s,n,m;printf(请任意输入三角形的直角边长:n);scanf(%d,&s);for(n=0;ns;n+)for(m=0;m=n;m+)print
16、f( * );printf(n);16 题目:打印出一个九九乘法表 (1)截屏:(2)源代码:#includevoid main() int n,m,x;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 37 页 - - - - - - - - - for(n=1;n=9;n+) for(m=1;m=n;m+)x=n*m;printf( %d*%d=%d ,n,m,x);printf(n); 17 题目:输出1-100 之间的所有素数(1) 截屏(2) 源代码#inclu
17、devoid main()int n,m,x;int flag=0;int s=0;for(n=1;n=100;n+)flag=1;for(m=2;m0)z+;else if(n=0)l+;elsef+; printf(正数有个 %d ,负数有个 %d ,零有个 %d 。n,z,f,l);20 题目:编写程序,计算1-100 之间的所有偶数和。(1)截屏(2)源代码#includevoid main()int n;int sum=0;for(n=1;n=100;n+)if(n%2=0)sum=sum+n;printf(1到 100 之间所有偶数的和为%dn,sum);21 题目 . 用 for
18、循环语句编写计算n! 的程序(1)截屏(2)源代码#includevoid main()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 37 页 - - - - - - - - - int x; int n; int s=1; printf(请输入要计算的值:n); scanf(%d,&x); for(n=1;n=x;n+) s=s*n; printf(%d的阶乘为 :%dn,x,s);21 题目百钱百鸡问题:设公鸡每只5 元,母鸡每只3 元,小鸡每元3 只,现用 10
19、0 元钱买 100只鸡,编写程序,算出可以各买多少只鸡。(1) 截屏(2) 源代码#includevoid main()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)源代码#includeint fun(int
20、n)if(n=1|n=2)return 1;else名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 37 页 - - - - - - - - - return 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 题目打印出所有的“水仙花数”,所谓“水仙花数
21、”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为153=1 的三次方 5 的三次方 3 的三次方。( 1)截屏( 2)源代码#includevoid main()int n;int a,b,c;printf(水仙花数有 :n);for(n=100;n=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);24 题目 4. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123. 编程找出 1000 以内的所有完数。(1)截屏(2)源
22、代码#includevoid main()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 37 页 - - - - - - - - - int n; int sum=0; int m; for(n=2;n1000;n+) sum=0;for(m=1;mn;m+)if(n%m=0)sum=sum+m;if(sum=n)printf( %d ,n); 25 题目编写两个函数,求任意输入两个整数的最大公约数和最小公倍数。(1) 截屏(2) 源代码#includeint gy(
23、int a,int b)int n;int x;for(n=1;n=b)max=a;min=b;elsemax=b;min=a;x=gy(max,min); gb(max,min,x);26 题目用递归的方法,计算正整数的阶乘n!。(1)截屏(2)源代码#includeint jc(int x)if(x=1) return x=1;elsereturn x=x*jc(x-1);void main()int x;int a; printf(请任意输入一个正整数:n);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
24、 - - - - - - 第 20 页,共 37 页 - - - - - - - - - scanf(%d,&x);a=jc(x);printf(%d的阶乘为 %dn,x,a);27 题目有 5 个人坐在一起,问第五个人多少岁他说比第4 个人大 2 岁。问第 4 个人岁数,他说比第3 个人大 2 岁。问第三个人,又说比第2 人大两岁。问第2 个人,说比第一个人大两岁。最后问第一个人,他说是10 岁。请问第五个人多大(1)截屏(2)源代码#includeint year(int a)int n;for(n=0;n4;n+)a=a+2;printf(第五个人的年龄是%dn,a);void main
25、()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)源代码#includevoid 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);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
26、 - - - - - - 第 21 页,共 37 页 - - - - - - - - - printf(%fn,sum);void main() sum();29 题目设计一个判断素数的函数,编写程序验证函数的功能(1) 截屏(2) 源代码#includeint sushu(int a)int n;int flag;if(a!=1&a!=2)for(n=2;na;n+)flag=0;if(a%n=0)flag=0; break; else flag=1;if(flag=1)printf(%d是素数 n,a); elseprintf(%d不是素数 n,a);名师资料总结 - - -精品资料欢迎下
27、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 37 页 - - - - - - - - - elseprintf(%d是素数 n,a);27. 题目:调用自定义函数的形式编程。要求求出s=n!+m!+k! 。其中 m ,n,k 的值有键盘输入,并且他们的值必须大于0.(1)截屏:(2)源代码:#includeint jc(int a)int x=1; int n;for(n=1;n0)printf(方程有两个不同的实数根:);lg(a,b,x);else if(x=0)printf(方程只有一个根:);y
28、g(a,b,x);elseprintf(方程无解! n);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 37 页 - - - - - - - - - elseprintf(方程不成立!n);29. 题目:编写程序,用冒泡法对任意输入的10 个整数排序。(1)截屏:(2)源代码:#includevoid main()int a10;int n,m;int z;for(n=0;n10;n+)printf(请输入第 %d个数:n,n+1);scanf(%d,&an);for
29、(n=0;n10;n+)for(m=n+1;m=am)z=an; an=am; am=z;printf(从小到大排列为n);for(n=0;n10;n+)printf( %d ,an);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 37 页 - - - - - - - - - 30. 题目:设计一个判断素数的函数,编写程序验证函数的功能(1)截屏:(2)源代码:#includeint sushu(int a)int n;int flag;if(a!=1&a!=2)fo
30、r(n=2;na;n+)flag=0;if(a%n=0)flag=0; break; else flag=1;if(flag=1)printf(%d是素数 n,a); elseprintf(%d不是素数 n,a);elseprintf(%d是素数 n,a);void main()int a;printf(请输入你要判断的数:n);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 37 页 - - - - - - - - - scanf(%d,&a);sushu(a);(2
31、)源代码:#includevoid main()int a45;int m,n;int sum=0;float x;for(n=0;n4;n+)for(m=0;m5;m+)printf(请输入 a%d%d=,n,m);scanf(%d,&anm);printf(n);for(n=0;n4;n+)for(m=0;m5;m+) sum=sum+anm;31 题目:调用自定义函数的形式编程。要求求出s=n!+m!+k! 。其中 m ,n,k 的值有键盘输入,并且他们的值必须大于0.(1)截屏:(2)源代码:#includeint jc(int a)int x=1; int n;for(n=1;n0)
32、printf(方程有两个不同的实数根:);lg(a,b,x);else if(x=0)printf(方程只有一个根:);yg(a,b,x);elseprintf(方程无解! n);elseprintf(方程不成立!n);33 题目:编写程序,用冒泡法对任意输入的10 个整数排序。(1)截屏:(2)源代码:#includevoid main()int a10;int n,m;int z;for(n=0;n10;n+)printf(请输入第 %d个数:n,n+1);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
33、 - - - - - 第 29 页,共 37 页 - - - - - - - - - scanf(%d,&an);for(n=0;n10;n+)for(m=n+1;m=am)z=an; an=am; am=z;printf(从小到大排列为n);for(n=0;n10;n+)printf( %d ,an);34. 题目:设有如下所示的一个4X5 矩阵:2 6 4 9 -135 -1 3 8 712 0 4 10 27 6 -9 5 3编写程序,完成以下功能:所有元素的和;输出所有大于平均值的元素(1)截屏:(2)源代码:#includevoid main()int a45;int m,n;int
34、 sum=0;float x;for(n=0;n4;n+)for(m=0;m5;m+)printf(请输入 a%d%d=,n,m);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 37 页 - - - - - - - - - scanf(%d,&anm);printf(n);for(n=0;n4;n+)for(m=0;m5;m+) sum=sum+anm;x=sum/20;printf(所有元素的和为:%dn,sum);printf(平均数为 %fn,x);for(n=
35、0;n4;n+)for(m=0;mx)printf( %d ,anm);35. 题目:设计函数,在二维数组中产生如下形式的杨辉三角,并输出前10 行。111121133114641(1)截屏:(2)源代码:#includevoid main()int a2020;int i,j;for(i=0;i20;i+)ai0=1;aii=1;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 37 页 - - - - - - - - - for(i=2;i20;i+)for(j=1;
36、ji;j+)aij=ai-1j+ai-1j-1;for(i=0;i20;i+)for(j=0;j=i;j+)printf( %d ,aij);printf(n);36. 题目:有一个 3*4 的矩阵,要求编程输出其中最大的那个元素的值,以及其所在的行号和列号。(1)截屏:(2)源代码:#includevoid main()int a34;int i,j;int c,b;int max=0;for(i=0;i3;i+)for(j=0;j4;j+)printf(请输入 a%d%d=n,i,j);scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j4;j+)if(max=ai
37、j)max=aij;c=i;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 37 页 - - - - - - - - - b=j;printf(最大的数值是第%d行第%d个数,为 %dn,c,b,max);37. 题目:将一个二维数组的行和列元素互换,存到另一个二维数组中。(1)截屏:(2)源代码:#includevoid main()int a33;int b33;int i,j;for(i=0;i3;i+)for(j=0;j3;j+)printf(请输入 a%d%d
38、=n,i,j);scanf(%d,&aij);bji=aij;for(i=0;i3;i+)for(j=0;j3;j+)printf( a%d%d=%d ,i,j,aij);for(i=0;i3;i+)for(j=0;j3;j+)printf( b%d%d=%d ,j,i,bji);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 37 页 - - - - - - - - - 38. 题目:从键盘输入任意两个整数作为两个变量的值,编写程序,利用指针将这两个变量的值进行交换。
39、(1)截屏:(2)源代码:#includevoid main()int a;int b;int *pa;printf(请输入 a=,b=n,a,b);scanf(%d%d,&a,&b);pa=a;a=b;b=pa;printf(交换后 a=%d,b=%dn,a,b);39. 题目:编写函数,比较两个字符串是否相等(用指针完成)。(1)截屏:(2)源代码:#includevoid main()char *pa=abcd;char *pb=abcd;printf(*pa=%s,*pb=%sn,pa,pb);if(pa=pb)printf(相同 n);elseprintf(不同 n);40. 题目:
40、编写程序,采用冒泡法对一组从键盘输入的任意个整数(个数=20)进行升序排序,输出排序后的结果。(1)截屏:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 37 页 - - - - - - - - - (2)源代码:#includevoid main()int a20;int n,m;int *p;for(n=0;n20;n+)printf(请输入一个数:n);scanf(%d,&an);for(n=0;n20;n+)for(m=n+1;mam)p=am;am=an;an
41、=p;printf(升序排列后的数为:);for(n=0;n20;n+)printf(a%d= %d ,n,an);41. 题目:采用指针方法进行处理:写一个函数, 求一个字符串的长度。在main 函数中输入字符串,并输出其长度 。(1)截屏:(2)源代码:#includevoid main()int s20;char *p;int i;printf(请输入一个小于20 个数位的字符串:n);gets(s);p=s;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 37
42、页 - - - - - - - - - while(*p!=0)p+;printf(一共 %d位 n,p-s);42. 题目:编写程序,把从键盘输入的内容保存到文件中去。(1)截屏:(2)源代码:#includevoid main()int i;char ch;char str80;FILE *fp;if(fp=fopen(test,w)=NULL)printf(无法打开该文件!n);exit(1);elseprintf(文件已打开,请输入数据:n);gets(str); for(i=0;stri;i+) fputc(stri,fp); fclose(fp); printf(文件已保存!n);
43、 Return 0;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 36 页,共 37 页 - - - - - - - - - 第二部分问题与心得一、遇到的问题1、已解决:太粗心了2、未解决:有些题不会,只能通过同学和老师的帮助完成3. 心得(不少于500 字)在实训中,我认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索,而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好C语言,也学好用它编写一个按要求的系统。在这次实训中,我对它有了一个更深的了解认识,也对学到的知识有了更好的巩固,还试着自己去编译,每次运行成功,我对它就越来越有信心,通过自己与同学合作编写程序,最终把理论知识变成基础技能,这次的实训,让我对它产生了更浓厚的学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 37 页 - - - - - - - - -