版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础(c语言)实践报告专 业 :班级 :姓名 :学号 :教 师:程序设计基础(c语言)课程组教师寄语课程简介程序设计基础是计算机相关专业的专业基础课,其目的是为了培养学生程序设计的技能,使学生掌握程序设计的基本思想和方法,培养学生用计算机解决实际问题的能力。该课程是后续理论和实践教学的基础和重要工具,将直接影响到专业兴趣的培养,后续专业课程教学内容的实施。课程内容本课程教学的主要内容包括:1、程序与程序设计的基本概念;算法与算法的表示;结构化程序设计方法等。2、C语言的基本组成,C程序的基本结构;C程序的上机过程;C语言的数据类型和各类运算规则。3、顺序程序设计;选择结构程序设计;循环
2、控制;函数;指针;结构体和文件等。4、C程序的模块化结构;函数的定义与调用,包括函数的递归调用;变量存储属性;工程文件的建立和使用;编译预处理;库函数简介;文件的概念;文件的建立、打开与关闭;各种文件的读写方法。补充说明1、本课程作为一种与计算机“沟通”的语言工具,在某种程度上讲,和普通话、英语有一些类似。对初学者而言,最好的学习方式就是在基本的语法规则框架下,不断的模仿和重复训练,最畏惧和担心的就是灵活与多变。只有不畏惧,才能敢模仿,敢写、敢调试。才能避免掉入语法漩涡止步不前。2、课程共设8个单元,对于每个单元的实践内容,按照基础训练和差异化训练相结合的思想,设置了多道编程题目,同学们在每个
3、单元可以根据实际情况,可选做3道,鼓励在有精力的情况下尽可能多练习。3、课程的源码可以手写也可以打印出来粘贴,对程序运行结果打印粘贴。4、单元内容即是平时基本功的训练,也可当做理论考试的复习。实验1 顺序结构程序设计一、实验目的1. 熟悉C语言的编程环境,掌握C程序运行的一般步骤;2. 掌握C语言中数据的输入输出方法,常用输入/输出函数的使用;3. 掌握顺序结构程序设计方法,能编写简单的C程序;二、实验内容1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。2、 编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保留两位小数。3、编写一个程序,从键盘上输
4、入学生的三门课程成绩,求总成绩和平均成绩。4、输入一元二次方程的三个系数,求根。5、输入三角形的三个边长a,b,c,输出面积s。6、打印 5 2 0+ 1 3 1 41 8 3 4 * 1 0三、实验源码及测试数据1.#include#includemain() int a; scanf(%d,&a); if(a=10000|a1000) printf(errorn); else printf(qian=%dn,a/1000); printf(bai=%dn,a%1000/100); printf(shi=%dn,a%100/10); printf(ge=%dn,a%10/1);2. #inc
5、lude#includemain()float r1,r2,R1,R2;scanf(%f,%f,r1,r2);R1=r1+r2;R2=(r1*r2)/(r1+r2);printf(chuan=%.2f,bing=%.2f,R1,R2);3.#includemain() float a,b,c; float s,x; scanf(%f,%f,%f,&a,&b,&c); s=a+b+c; x=s/3; printf(s=%f,x=%f,s,x);4.#include#includemain() float a,b,c; float y1,y2; scanf(%f,%f,%f,&a,&b,&c);
6、y1=(-b+sqrt(b*b-4*a*c)/(2*a); y2=(-b-sqrt(b*b-4*a*c)/(2*a); printf(y1=%f,y2=%f,y1,y2);5.#include#includemain() double a,b,c; double s,p; scanf(%lf,%lf,%lf,&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c); printf(%lf,s);6.#includemain() int i,j; printf( 5 2 0 n); printf(+ 1 3 1 4 n); printf( 1 8 3
7、4 * 10n);四、 调试运行结果五、 实验体会实验2选择结构程序设计一、实验目的1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。2、学会正确使用逻辑运算符和逻辑表达式。3、熟练掌握if语句和switch语句。4、结合程序掌握一些简单的算法。二、实验内容1.有一个函数用scanf函数输入x的值(分别为x0,输出方程X1,X2的解。当a0,0,输出无实根。5、键盘输入一个至多五位数,判断它是几位数,并将该数逆序输出。例:输入1456,输出结果是:四位数,逆序后:6541。7、编写程序,要求从键盘输入成绩,输出对应的等级(100分为A,90-99为B,80-89为C,70-
8、79为D,60-69为E,小于60为F)。8、设计一个简单的计算机程序,用户输入运算数和四则运算符(+、-、*、/),输出计算结果。三、实验源码及测试数据1.#includemain() float x,y; scanf(%f,&x); if(x=1&x10) y=2*x-1; else y=3*x-11; printf(%f,y);2.#includemain() int a3; int i,j,t; for(i=0;i3;i+) scanf(%d,&ai); for(j=0;j3;j+) for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; for(i=0;i3;i+
9、) printf(%dn,ai);3. #includemain() float a,b,c; float s,p; scanf(%f %f %f,&a,&b,&c); p=(a+b+c)/2; if(ab&ac) if(b+ca) s=sqrt(p*(p-a)*(p-b)*(p-c)/2; printf(%fn,s); if(ba&bc) if(a+cb) s=sqrt(p*(p-a)*(p-b)*(p-c)/2; printf(%fn,s); if(ca&cb) if(a+bc) s=sqrt(p*(p-a)*(p-b)*(p-c)/2; printf(%fn,s); else print
10、f(errorn); 4. #includemain() float a,b,c; float x,x1,x2,delta; scanf(%f %f %f,&a,&b,&c); delta=b*b-4*a*c; if(a=0&b=0) printf(不是方程n); else if(a=0&b!=0) printf(一元一次方程n); x=(-c)/b; printf(%f,x); else if(a!=0&delta0) x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); printf(%2f,%2f,x1,x2); else if(a!=0
11、&delta0) printf(无实根n); 5. #includemain() int i,y; long s; long a5; scanf(%d,&s); a0=s/10000; a1=(s-a0*10000)/1000; a2=(s-a0*10000-a1*1000)/100; a3=(s-a0*10000-a1*1000-a2*100)/10; a4=s-a0*10000-a1*1000-a2*100-a3*10; if(s=10000&s=1000&s=100&s=10&s=0&sn2),k1k2同上。 1005、求 n!+(n3-3n2+2)(-1)n n=16、找出5000以内
12、所有完数。完数:一个数是它所有的因子的和。7、任意输入10个数,分别算出其中负数和正数的个数。8、.键盘输入字符串,遇#结束,分别统计字母、数字和其它字符个数。9、计算1-100内所有含有6的数的和。10、输出所有3位水仙花数。所谓水仙花数是指所有位的数字的立方和等于该数。例:153=13+53+33。 b11、梯形法求数值积分。F(x)= (4-X*X)0.5dx。 a12、用二分法求3X3+2X2-4X=6的解。13、用牛顿迭代法求3X3+2X2-4X=6的解。14、利用循环嵌套,输出九九乘法表。 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 4 6 8 10
13、 15、观察数列,输出其前20项,每4个数一行,每个数占8列。 2 ,2, 4, 4, 6, 16, 816、编写程序输出下面图形。12 34 5 67 8 9 0三、实验源码及测试数据四、 调试运行结果五、 实验心得体会实验4数组一、实验目的1、掌握一维数组和二维数组的定义、赋值和输入输出的方法;2、掌握字符数组和字符串函数的使用;3、掌握与数组有关的算法(特别是排序算法)。二、实验内容1、用冒泡排序法对10个整数排序。10个整数用scanf函数输入。2、 有15个数存放在一个数组中,输入一个数,要求查找该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。3、 将两个字符串连接
14、起来,不要用strcat函数。4、编写程序输出下面矩阵:1 2 3 4 52 3 4 5 13 4 5 1 24 5 1 2 35 1 2 3 45、输入10个数,逆序输出(折半)。6、键盘输入7个评委对选手的打分,去掉最高分,去掉最低分,输出平均分,要求左对齐,保留到小数点后两位。7、对某同学的作业记录作处理,输入作业每题的批改结果(对或错),遇#号结束,输出错题的题号。8、键盘读入7个选手的编号与得分,要求输出优秀率(=90),及格率(=60),和平均分。输出排行榜(编号+成绩)。9、输入一个矩阵,找出所在行上最大,列上最小的数。(可能没有)10、读入下列数字存放在数组a54中,分别求各行
15、、各列元素之和。将结果补在最后1行和最后1列后,输出整个矩阵。 12 4 6 8 23 3 15 7 9 2 5 17 11、键盘输入7个评委对7个选手的打分,算出平均分,要求去掉最低分,最高分,输出成绩排行榜。12、输入某游戏大赛10个队伍的名称(以字符串:如good good study),队伍过关数(整数),耗时数(如:90分钟)。输出排行榜(包括过关数、耗时,队伍名称)。排行规则:先以过关数为标准。过关数一样的以时间为标准。过关数、时间一样的以队伍名称的首字母为标准。三、实验源码及测试数据四、 调试运行结果五、 实验心得体会实验5函数一、实验目的1、掌握定义函数的方法;2、掌握函数实参
16、与形参的对应关系以及“值传递”的方式;3、掌握函数的嵌套调用和递归调用的方法;4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。二、实验内容1、编写三个函数分别求某学生三门课程总成绩和平均成绩和及格率。2、 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数3、 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。4、输入三个字符串,按由小到大的顺序输出这些字符串。要求,对于三个字符串进行两两比较,将最小的串放在str1中,将最大的串放在str3中。设计一个函数,对两个字符串进行交换。提示:使用st
17、rcmp(str1,str2)函数。5、已知abc+bcc=1333,其中 a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。6、编写一个程序,包括主函数和如下子函数。(1) 输入10个无序的整数;(2) 用起泡方法从大到小排序;(3) 要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。7、定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?8、编写函数n 2 k 2求 2j2 + i!(-1)i j = n 1i = k 19、写函数实现2
18、分法求方程的根10、写函数求求5000以内的完数。11、写函数求输出数列2、2、4、4、6、16、8前20项。12、求函数1 n=0 Hn= x-2x+7 n=1hn-1(x)*(x3+2)+hn-2(x)*(x2-7x)。n113、比较数组a和数组b,得出a中的数(每一个)比b中的几个数大,并输出。14、投票选班长,5个候选人,10个人每人投一票,输入投票结果,输出每个候选人的得票数。三、实验源码及测试数据四、 调试运行结果五、 实验心得体会实验6指针一、实验目的1、掌握指针的概念、会定义和使用指针变量2、掌握指向数组的指针变量3、掌握字符串指针的使用二、实验内容1、用指针实现,输入3个数,
19、按从小到大输出。2、编一个程序,打入月份号,输出该月的英文月名,要求用指针数组处理。3、编写递归函数,将输入的以“?”结束的字符串按与输入相反的顺序输出。4、编写函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a0和an-1),要求以指针变量作函数参数。5、用指向指针的指针的方法对5个字符串进行排序。6、用指针的方式实现,33矩阵转置。7、设有一个单项链表,现欲将其倒置,试编写一函数实现此功能三、实验源码及测试数据四、 调试运行结果五、实验心得体会实验7结构体和共用体一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。2、掌握C程序的结构
20、化程序设计方法,能使用C语言开发简单的应用程序。3、掌握C程序的运行、调试方法等。二、实验内容1、定义一个结构体变量,其成员包括:职工号、职工名、性别、年龄、工龄、工资、地址。2、对上述定义的变量,从键盘输入所需的具体数据,然后用printf函数打印出来。3、按上述的结构体类型定义一个结构体数组,从键盘输入每个结构体元素所需的数据,然后逐个输出这些元素的数据(为简化起见,可设数组只有三个元素)。4、建立一个包括学生姓名,性别,年龄,一门课成绩的结构体,输出考分最高的学生个人信息。5、一个45人班级有两门课,求所有成绩中的最高成绩,及对应的姓名,学号课程编号,分别求两门课的平均成绩,并找出两门课都低于平均分的学生信息,按1课程成绩从高到低排序。6、已知一个无符号的整数占4个字节内存,现欲从低位存储地址开始,将其每个字节作为单独的一个ASCII码字符输出,使用共用体实现上述转换三、实验源码及测试数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资银行业务分析岗位实战手册
- 三年(2023-2025)湖北中考语文真题分类汇编:专题02 病句、排序、标点符号、文学常识(原卷版)
- 文化传媒公司市场部专员面试要点
- 2026年信息技术普及:计算机基础知识考试及答案
- 关于创业题材的演讲稿
- 2026年全球能源格局变化趋势试题
- 2026年全民科普知识竞赛试题
- 仿生科技演讲稿英语范文
- 央视关于的演讲稿范文
- 2026年安徽中考历史总复习分类汇编:模块五 世界近代史
- 高一《音乐鉴赏》《中国音乐》第4课时《中国近代音乐2 》
- 新标准日本语初级
- 天正变频器说明书
- HY/T 0338-2022海洋水文气象自动化观测系统现场比测方法
- LY/T 2497-2015防护林体系生态效益监测技术规程
- 主题班会-弘扬雷锋精神
- GA/T 1193-2014人身损害误工期、护理期、营养期评定规范
- 《财务管理案例分析》教学大纲
- 建筑施工安全风险管控与隐患排查治理手册
- 乳房疾病教案
- 急性上消化道出血急诊诊治专家共识
评论
0/150
提交评论