c课程设计实践报告Word文件下载.docx
- 文档编号:8422373
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:5
- 大小:22.18KB
c课程设计实践报告Word文件下载.docx
《c课程设计实践报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《c课程设计实践报告Word文件下载.docx(5页珍藏版)》请在冰点文库上搜索。
break;
case2:
sum=capital*pow(1+*,24);
case3:
sum=capital*pow(1+*,36);
case4:
sum=capital*pow(1+*,48);
case5:
sum=capital*pow(1+*,60);
case6:
sum=capital*pow(1+*,72);
case7:
sum=capital*pow(1+*,84);
case8:
sum=capital*pow(1+*,96);
default:
sum=capital*pow(1+*,12*years);
}printf("
%f"
sum);
}
题目二、题目描述:
简单计算器。
用switch语句编写一个程序计算表达式:
data1opdata2的值。
其中op为运算符+、-、*、/。
(一)明确计算器是怎样进行计算的;
(二)细节,比如很多地方需要分号,在遇到字符时,我们应该用‘’,而不是“”;
(三Switch语句主要用于多分支选择,此题有+、-、*、/,这就是选择。
使用switch每个case对应+-*/符号程序涉及到至
少三个量,运算符op和两个数字;
先让用户输入两个数字和运算符,两个数字的计算在后面的程序中用swith结构运行。
运行效果截图:
#includeintmain(){floatdata1,data2,c;
charop;
printf("
请输入表达式中两个数字data1和data2"
);
//打印scanf("
%f%c%f"
data1,&
op,&
data2);
//输入
printf("
请输入运算符+、-、*、/"
//打印switch(op)//switch(){casestick:
}这个是个选择结构
如果OP=stick则执行这一句如果没有则执行default后面的语句{case'
+'
:
c=data1+data2;
case'
-'
c=data1-data2;
*'
c=data1*data2;
/'
c=data1/data2;
printf("
输入错误"
c);
return0;
}题目三题目描述:
编写程序,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。
①用do-while语句实现。
②二分法的计算步骤:
(1)准备计算f(x)在有根区间端点处的值f(a),f(b)
(2)二分计算f(x)在区间中点(a+b)/2处的值f(3)判断若f=0,则即是根,计算过程结束。
否则,检测:
A.若f与f(a)异号,则根位于区间内,这时以(a+b)/2代替b;
B.若f与f(a)同号,则根位于区间内,这时以(a+b)/2代替a;
反复执行步骤2和3,直到区间长度缩小到允许的误差范围之内,此时中点(a+b)/2即为所求的根设计思路:
(一)二分法是指在整个算法中,让计算值无限趋近于根的值,利用数学知识可知,当了两个点的结果异号时,函数的根就在这两个数之间,利用二分法可以无限的把根的范围缩小,直到可以确定为止;
(二)do-while是循环语句,先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(真)时,返回重新执行循环语句,如此反复,直到表达式的值等于0(假)为止才结束。
(三)Voidmain()是声明函数,并且是对主函数的声明。
题目所给的范围是(-10,10),因此在声明函数中定义一个a和b来代替区间的范围,而用c来代指中间指也是最后的结果,在这个程序中a、b、c都是随着范围不断变化的变量。
如果(-10,10)的范围过大,
就需要循环语句来缩小区间范围,即a=c或b=c。
当函数值在(-10,10)中任意一点取得0时,就正是我们所要的结果。
循环条件是当区间a和b的函数值小于精度。
运行效果截图:
#include"
"
floatf(floatx){floaty;
y=2*x*x*x-4*x*x+3*x-6;
returny;
}voidmain(){floata=-10,b=10,c;
do{c=f((a+b)/2);
if(c==0)break;
if(c*f(a)>
0)a=c;
elseb=c;
}while(f(b)*f(a) 题目四题目描述:
编写程序,给定一个整数i,请求出另一个整数j,使i和j在用8位二进制表示时互为逆序。
例如:
给定i=3时,应得到j=192(3的二进制为:
00000011,192的二进制为11000000)。
①十进制整数转换为二进制整数用“除2求余”法。
②二进制整数转换为十进制整数用“按权相加”法。
(一)二进制整数转化为十进制整数用“按权相加”法
(二)二十进制整数转化为二进制整数用“除2求余”,用&
转化。
(三)运算符:
>
是指右移一位,a是指b向右移a位,左移一位相当于乘2右移1位相当于除2(四)在交换时,用的是中间法
运行效果截图:
附源程序如下:
#include"
voidmain(){inti,j,s=1,a;
请输入一个整数i:
scanf("
%d"
i);
for(j=0;
j printf("
(a>
1)|(a>
3)|(a>
5)|(a>
7));
题目五题目描述:
编写程序,抓交通肇事犯。
一辆卡车违反交通规则,撞人后逃跑。
现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。
甲说:
牌照的前两位数字是相同的;
乙说:
牌照的后两位数字是相同的,但与前两位不同;
丙是位数学家,他说:
四位的车号刚好是一个整数的平方。
根据以上线索求出车号。
①按照题目的要求,造出一个前两位数相同、后两位数相同且相互间又不同的整数,然后判断该整数是否是另一个整数的平方。
②用穷举法解此题。
穷举法是最简单、最常见的一种程序设计方法,它充分利用了计算机处理的高速特征。
穷举法的关键是要确定穷举的范围,既不能过分扩大穷举的范围,也不能过分缩小穷举的范围,否则程序的运行效率会很低,或有可能遗漏正确的结果而产生错误。
(一)1111
到11
99
在
9911这样穷举
判断是否一个
数的平方则是将这个数开方
取整再取平方是否还是原来的数
(二)此题需要满足三个条件:
①前两个数相同,后两个数相同;
②前后两数分别不相同;
③这个数是一个整数的平方。
需要每个条件都满足,if才为真。
(三)主要思路是穷举。
穷举是指在适当的范围内举出一个数。
#includevoidmain(){inta,b;
for(a=32;
a {b=a*a;
if(b/1000==b%1000/100b%100!
=(b/1000)*10+b%1000/100)printf("
Thelicenseplateis:
b);
}}&
&
b%100/10==b%10&
题目六题目描述:
从终端输入实数ex=1+x+x2/2!
+x3/3!
+?
+xn/n!
的值。
设计思路:
先输入一个x的值;
再设计一个子函数,计算1!
,2!
,3!
?
n!
的值;
之后用sum函数,和pow函数处理分子,用累加的方式进行分子计算,并形成等式;
最后输出结果。
x,用递推法求
intf(intx,intn){inti,m=0;
for(i=0;
i
for(i=0,s=0;
f(x,i) 题目七题目描述:
打印出以下的杨辉三角形(要求打印出10行)。
11112113311464115101051?
?
(一)二维数组主要用于处理多行的问题,而且第一行在数组之中是第0行。
(二)杨辉三角有一个明显的特点:
每一行的最后一个数字与第一个数是相同的,此外,下(三)一行的第二个数是由上一行的第一个数和第二个数相加之和,以此类推。
定义指针是为了让整个程序不那么复杂。
#includeintmain(void){inta,(*p)=a,i,j;
i *(*(p+i)+0)=1;
*(*(p+i)+i)=1;
}for(i=2;
i 题目八题目描述:
找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。
①一个二维数组可能有鞍点也可能没有鞍点,若有鞍点,则只有一个。
②准备两组测试数据:
(1)二维数组有鞍点:
98020590-6021040
96189
-3101
(2)二维数组没有鞍点:
98020590-6021040189
196
-31017
4554156
③用scanf函数从键盘输入数组各元素的值,检查结果是否正确。
如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。
请同学们修改程序以实现之。
(一)先找出一行中值最大的元素,然后看它是不是该列中的最小值,由于一个二维数组最多有一个鞍点,所以如果是则鞍点存在且它就是鞍点,输出该鞍点;
如果不是,则再找下一行的最大数,以此类推。
如果每一行的最大数都不是鞍点,则此数组无鞍点
(二)在程序中,先令a最大赋值给maxi,在for循环的比较中,把
符合条件的行的最大值赋给maxi,将每一次比较后的最大的列数赋值给maxj,从而找出i行最大的那个。
再假设那个数就是鞍点,将最大数和同列的数值相比,如果maxj不是最小的,则不是鞍点,继续找。
(三)引入一个参数flag=1,若不存在鞍点则flag为0,若存在鞍点则flag依旧为1
#defineS80#defineT80voidmain(){intm,n,i,j,t,maxh,maxl,flag,a;
请输入二维数组的行数m和列数n:
%d%d"
m,&
n);
请输入二维数组的各个元素:
for(i=0;
ia)t=a;
maxh=i;
maxl=j;
}for(i=0;
a=%d"
maxh,maxl,a);
题目九题目描述:
某班期终考试科目为高数MT、英语EN和物理PH,有30
个人参加考试。
为评定奖学金,要求统计并输出一个表格,表格内容包括学好、各科分属、总分和平均分,并标出3门课均在90分以上者(该栏标志输出为Y,否则为N),表格形式如下:
NOMTENPHSUMV>
90123978792276929291902739190818225384......NYN
#include"
voidmain()
由于是对30个学生的数据进行输入与统计,所以建立二维数组,根据各位置的条件来定义其内容,第8个数据是字符型数据,所以另设一数组进行存储,最后在将数据整合输出。
voidmain(){inti,j,sum,flag,a;
请输入30个考生的三科成绩:
i90)flag=1;
elseflag=0;
}a=sum;
a=sum/3;
if(flag=1)a='
Y'
;
elsea='
N'
}printf("
NOMTENPHSUMV>
90"
i }
题目十题目描述下面是一个5*5阶的螺旋方阵,试编程打印出此形式的n*n(n 设计思路:
定义一个n*n维数组存放该方阵,m为该方阵的圈数,一个大循环中嵌套了
四个小循环,每一圈为一个大循环,第一个小循环按顺序写出第一行的数,第二个小循环按顺序写出最后一列的数,第三个小循环按顺序写出最后一行的数,第四个小循环按顺序写出第一列的数,再进行第二次大循环,循环完毕后再进行循环输出数组中的n*n个数,该螺旋方阵就出来了。
voidmain(){inti,j,k=0,m,n,a;
请输入方阵行列数n(n k++;
a=k;
}for(j=i+1;
j=i;
j--){k++;
a=k;
}for(j=n-i-2;
j>
=i+1;
}}for(i=0;
%5d"
a);
}}附:
实习总结与心得体会
经过C语言实习,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实习,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实习有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实习我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,但是会养成一种依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以
以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。
通过实习,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。
其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!
感谢学校安排这次实习和老师的耐心讲解,让我学到了很多知识,在实习过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。
希望以后还会有更多类似的实习课程,在有限的大学时间内学到更多的实用技能,为以后的生活和工作打下一个良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计实践报告 课程设计 实践 报告