C语言实习大纲(精选10篇)
课程编号:20212502 总学时数:1周 总学分数:1 课程性质:专业必修课 适用专业:地理信息系统一、课程的任务和基本要求:
让学生在掌握C语言的基本语法的基础上,能够更好的理解和运用其解决实际问题。让学生对结构化程序设计有更进一步的认识。
二、基本内容和要求: 用链表实现简单的学籍管理
1、总体功能要求
(1)链表的建立:每个节点包括:学号、姓名、性别、语文、数学、英语、总分;(2)节点的插入:按学号的顺序插入;
(3)删除链表中的节点:按学号或者姓名;(4)链表的输出:按学号排序、按总分排序。
2、性能的要求:
(1)各个功能分别用函数实现;
(2)节点信息让用户通过键盘输入;(3)总分通过计算获得;(4)有简单的操作界面;
尽可能考虑程序的容错性、可操作性。
三、实践环节和要求: 实习报告要求
1、系统概况
2、需求分析
(1)总体功能要求
(2)功能模块图、流程图(要求有总体的功能模块图、各部分流程图)(3)性能的要求
3、详细设计(1)程序代码
(2)关键部分的注视和说明。
4、设计心得。
四、教学时数分配:
资料准备,需求分析 1天 详细设计(程序代码及关键部分的注释和说明)3天 完成实习报告 1天
五、说明:
1、教学和考核方式:本课程属考查课,考试方式为开卷
2、习题:
3、能力培养要求:熟练掌握各种语法以及结构化程序设计的方法
4、与其它课程和教学环节的联系: 先修课程和教学环节:C程序设计 后续课程和教学环节:平行开设课程和教学环节:
5、教材和主要参考书目:
(1)教材:《C程序设计》,谭浩强编著,清华大学出版社(2)主要参考书目:
①《C程序设计教程》,谭浩强编著,清华大学出版社;
②《C语言程序设计——习题与实验指导》,谭浩强编著,清华大学出版社。
关键词:计算机,等级考试,C语言,方法
由于教育部考试中心对全国计算机等级考试进行了较大调整。很多考生都关心如何备考新的二级C语言考试,根据新大纲的考试情况和与以前考试的异同给大家一些备考建议。新二级C语言考试仍然分为笔试和上机两部分。
1 笔试
笔试分为两大部分内容:基础知识占30分;C语言知识占70分。与改革前的考试相比,基础知识部分的难度提升了,内容调整为由数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分公共基础知识组成。
公共基础知识是新二级考试的难点,其中数据结构与算法是需要理解的内容,考核重点主要在二叉树、排序和查找。二叉树考核形式主要为二叉树的遍历问题(如给图求遍历序列、给前序、中序遍历求后序遍历等)、二叉树的结点问题(如给出一些条件然后求叶子结点个数);排序主要以计算时间复杂度的形式考核;查找主要以计算最佳/最坏比较次数的方式考核。其余的知识点主要以概念的形式考察,尤其是树、排序知识在考察时都很灵活。
程序设计基础与软件工程基础主要是记忆性的知识点。程序设计基础增加了面向对象程序设计的内容;软件工程基础主要考核内容为结构化分析及结构化设计方法。
数据库设计基础主要的考核点是关系模型、关系代数及数据库系统的基本概念,其中数据库的设计和管理部分可以结合软件工程的知识来看。
C语言部分的知识点是必须熟练掌握C语言程序设计的数据结构和算法,如数据类型、表达式、顺序结构、选择结构、循环结构、函数等,并能阅读简单的程序。考核的重点—函数、指针、数组、字符串等,以和C语言的基础部分结合的方式来考察,这些内容需要记忆的规则较多,尤其是指针和字符串在出题的时候会很灵活,学习这些内容时一定要仔细看书分析,防止概念和规则的混淆。
2 上机考试
上机考试是对考生计算机综合应用水平的检验。新考试将以前的操作系统基本操作题改成了C程序填空题,二级C上机考试题目类型目前有三种:程序填空题30分,程序修改题30分,程序设计题40分。
2.1 程序填空题
程序填空题是程序设计题的一种简化形式,在一段程序中“挖掉”几句,然后让你填写。通常“挖掉”的部分可能是条件表达式,也可能是关键语句等。根据题目要求将正确的答案填在程序行指定位置的下划线处。填空时应注意:
(1)填写语句时要删除程序行上的下划线,将正确的答案填在原下划线处;
(2)不要删除觹觹觹觹觹觹found觹觹觹觹觹觹注释行;
(3)不要将需要填空的行分成多行;
(4)不要修改其它语句。
2.2 程序修改题
要根据题目指定的要求修改程序和调试程序,并得到正确结果。要对变量类型、各种运算符、括号的匹配、语句后的分号等知识有清楚的认识。要对题目仔细推敲,修改后要运行,观察结果是否达到题目要求。
方法是:根据题目要求自上而下阅读指定的源程序,找出错误语句或在指定位置填写语句。一般来说,在要修改的程序中有若干个觹觹觹觹觹觹found觹觹觹觹觹觹或觹觹觹觹觹FOUND觹觹觹觹觹注释行,这是修改程序的标志行,错误总是存在于每个注释语句的下面一行或某行中。注意:不要改动main函数;不要删除、增加或移动程序中的任何行(包括空行);不能更改程序的结构;不要删除注释行。
程序修改题中的错误有语法错误、逻辑错误、函数或命令用错等。语法错误是指违背了C语言的语法规定,比较容易解决。逻辑错误是指程序中没有语法错误,但是执行结果与题目要求不符,这种错误的发现和排除较为困难。
若程序编译成功了,说明程序是逻辑错误,应该先读懂该程序的编程思路,然后跟踪程序的执行来找出错误;如果编译没通过,可借助给出的提示信息来修改错误。
常见错误:
(1)字母大小写问题。要注意区分大小写字母;
(2)条件表达式错误;
(3)循环控制错误;
(4)混淆运算符。如:=与==。“=”是赋值,“==”是比较运算中的相等;
(5)字符串的结束符是'�',而不是'0',还要注意字符串末尾是否有结束符;
(6)语句末尾缺少分号。
2.3 程序设计题
根据题目指定的要求编制程序。程序编写是上机考试的重点。首先对题目的要求进行仔细分析,判断是哪一类问题。将题意理解后应该把问题细化,通常编写的程序都不会只有一个要求,因此注意各要求之间的前后搭配。编写程序时应注意:
(1)不要修改题目中已经给出的任何语句;
(2)只能在函数fun的花括号间的空白处编写程序;(3)程序编制完成后一定要运行。
3 上机考试应注意的问题
(1)熟悉考试软件的使用。目前上机考试环境由Turbo C版改为Visual C++6.0版,考生在考试前应熟悉Visua C++6.0集成开发环境,掌握软件的使用方法及解答不同类型题目的操作步骤;
(2)程序填空题、修改题和程序设计题做完后一定要先存盘再调试运行;
(3)提高操作速度。上机考试是有时间限制的,要在短时间内做完所有的题目,速度是必不可少的;
(4)掌握操作方法和技巧。考试软件中每项操作都有明确的要求,要了解具体要求,并按要求去做才能得分。
总之,扎实的计算机基本知识和熟练的操作技能是顺利通过计算机等级考试的关键。提高程序阅读能力和程序设计能力;掌握程序调试方法,提高上机操作技能。
参考文献
一、教材名称:<
二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]
三、适用专业和开课学期:软件技术专业,第2学期。
四、实验的目的与任务:
《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。
五、主要仪器设备及台(套)数
安装Windowsxp,TC2.0等软件的计算机,每生一台。
六、主要实验教材(指导书)及参考用书:
谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。
七、成绩考核方式及评分标准
实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。
八、实验开出率:100%
九、实验项目与要求
实验一:C程序的运行环境和运行一个C程序的方法(2学时)
实验性质:验证性实验
一、实验目的
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?
2.输入并运行教材第一章中例1.2。
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二 数据类型、运算符和表达式(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容
1.输入并运行教材第三章例3.6.即: #include
printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。
2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。
3.输入并运行习题3.10。即: #include
printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}
实验三 最简单的C程序设计(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。
二、实验内容
1.输入并运行以下程序:
#include
void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;
unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;
f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;
f=3157.890121;g=0.123456789; d=f;e=g;
p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。
② 在①的基础上将printf语句改为:
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);
printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。
2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
实验四 选择结构程序设计(2学时)
实验性质:设计性实验
一、实验目的
1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。
二、实验内容
先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~
10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
实验五 循环控制(4学时)
实验性质:设计性实验
一、实验目的
1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、实验内容
编程序并上机调试运行。
1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
实验六 数组(4学时)
实验性质:设计性实验
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容
编程序并上机调试运行。
1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)
实验性质:设计性实验
一、实验目的
1.掌握定义函数的方法;
2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。
二、实验内容
编程序并上机调试运行。
1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。
(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。
(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。
实验八 预处理命令(2学时)
实验性质:设计性实验
一、实验目的
1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。
二、实验内容
编程序并上机调试运行。
1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。
实验九 指针(4学时)
实验性质:设计性实验
一、实验目的
1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;
二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。
2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:
1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。 实验十 结构体和共用体(4学时) 实验性质:设计性实验 一、实验目的 1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。 要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。 2.输入和运行以下程序: #include union data {int i[2]; float a; long b; char c[4]; }; void main(){union data u; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。 然后将scanf语句改为: scanf(“%ld”,&u.b); 输入60000给b。分析运行结果。 实验十一 位运算(1学时) 实验性质:设计性实验 一、实验目的 1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 二、实验内容 编写程序,上机调试并运行。 1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。 实验十二 文件(1学时) 实验性质:设计性实验 一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时) 实验性质:综合性设计性实验 一、实验目的 1.综合运用C程序设计知识,解决实际问题。 二、实验内容 1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。 2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。 3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 学生的原有数据为: 91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为: 91108 Xin 90,95,60 制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人: 1.课程认识 可以围绕目的、性质、任务等方面写 2.课题选择 可以围绕课题 背景、意义、实用性等方面写 3.总体设计与分析 总体框架图及简要功能说明 4.模块详细设计 必须是自己承担任务的流程图+说明 5.主要实现方法 可以说明: 结构体、文件结构 函数功能 主要程序段及实现方法与技巧(严禁只粘贴长篇程序段) 6.课程设计总结 问题及解决方法 系统总体实现情况、评价 存在问题及改进思路 7.结论 课程设计心得 适用专业:计算机科学与技术、软件工程,网络工程,计算机相关专业 (电气,电子科学,工业工程,数字媒体,电力,电商,信管)学 时 数:1.5周 执 笔 者:陈云华 学 分 数:1.5 编写日期:2006年6月 一 课程性质与任务 C语言课程设计是配合计算机专业的主干课程《C语言程序设计》开设的课程设计。要求学生在学习C语言程序设计的基础上,独立完成一个具有一定难度的程序设计题目。通过本课程设计的训练,学生应具备一定的利用C语言进行程序设计的能力,为学习后续专业课程打下良好的基础。 二 课程教学内容 本课程为实践性教学环节,学生独立完成相关的程序设计和调试任务,属设计型实验。1.实验设备要求 (1)计算机及操作系统:PC机,WindowsXP(2)编译器:Turbo C 2.0/Turbo C++3.0 2.题目参考:(1)编辑器(2)标准化考试系统(3)通讯录管理系统(4)学生成绩管理系统 3.设计和调试过程规范化要求 (1)需求分析:分析系统功能需求以及用户操作流程。 (2)概要设计:在需求分析的基础上,确定系统总体框架(系统功能结构图)。 (3)详细设计:定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。 (4)代码设计:根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。 姓名:黄方成班级:天目计算机0 4一、课程设计题目: 《公司职工管理系统》 二、程序主要功能: 实现基本的学生的数据管理,如:创建新数据文件、添加数据记录、查找数据记录、删除数据记录、显示所有的数据记录,以及数据的排序等等。(分别使用了shuru()、insert()、found()、delete()、inputs()、list()、putin()、print()、resave()等函数)。其中数据的输入、插入、查找、数据的删除,输入又可通过不同的方式按姓名查找等进行操作。 三、函数实现说明: 主要函数: 1、shuru() 该函数主要用来创建新数据文件,当第一次使用该程序或者原创建的文件的内容无效,需建立一个新的文件的时候,可通过该函数来实现。 该函数实现过程中首先定义了两个变量i,初始化为0,用来存储学生的数量,它们均随着输入记录的增加而增大(每输入一条增加1),用变量i来抽象表示其中的任何一条记录,对该程序来讲即为通讯录中包含的学生人数。之后需使用户输入数据,这就需要设计时先在屏幕上显示有关输入数据性质提示信息(如学生号、姓名、电话、入学分数等等)。输入完一条记录进行保存。从而使数据在文件中得到保存,另外在输入姓名为空时,函数认为添加已经结束,自动关闭函数的输入记录功能,跳出该功能。 2、insert() 该函数可对文件的数据进行插入。在进行添加的时候需要首先打开原来的数据文件,在该函数中调用了load()函数将数据文件打开。再调用shuru()函数文件之后同shuru()中一样的形式输入数据,输入完之后进行保存,对插入的 1 数据进行保存前要先确定插入的地点,insert()函数在设计时将插入点放在了文件末尾,即将添加的数据加到文件的最后。Insert()函数与创建新数据文件的shuru()函数除保存及被功能上的使用时间不同外,其他功能基本相同。 3、found() 该函数调用了find()这个函数来实现不同方式的查找。具体使用什么方式查找需由用户自己选择,于是使用switch语句先设计一个选择过程。当选择按名字查找方式,就启用find()函数查找,过程为先要求用户输入所要查找的数据文件的名字(例如是毕业学校的文件保存名字),然后再将这个名字与以存数据名字逐个进行比较,当找到数据的时候就调用printin()函数将该数据的所有信息打印出来,否则显示“没有找到这个姓名!”以示没有找到。 4、delete() 该函数用来删除不需要的数据记录。实现过程为:首先输入需要删除的记录的名字,将该数据逐一与以存文件中的学号进行比较,在比较过程中定义了若干个指针变量*node,*before,*pt,并初始化为*before=NULL,接着就是对该记录的删除操作,将此记录及其后的每一条记录逐一用它们之后的那一条记录替换,即实现了对数据的删除。并且还调用了函数load(),用来对文件数据的删除。若没有找到需要删除的数据,before的值任为1,则屏幕显示“没有该学生的记录!”。在删除记录后需对操作结果进行保存,最后根据用户的选择来决定是否继续删除,为空时是离开。 5、print() 使用该函数可以显示所有的操作员自己输入的所有的学生数据记录。它只用到了简单的printf(“”)语句,但是它用了含有++i的变量来输出下一个记录,每打开一个记录就自己增加1。当需先打开数据文件时,读取其中的数据记录,然后将这些记录按一定的形式打印在屏幕上,为是打印的效果整齐、美观,则要对其输出的方式、格式进行设计,采用了t的对齐方式。 6、putin() 该函数可对数据文件中数据具体的存放顺序进行操作,主要是用来实现排序功能。设计的此程序对数据的存放顺序只按照姓名的长度进行排列。该功能用循环实现,并且包含了许多的字符函数,包括在头文件#include 据文件的开头起,将第一条记录的姓名与之后的每一条记录的姓名的字符长度进行比较,若前者大于后者,则交换它们的位置,这一循环完毕后,再类似对第二条、第三条„„直到倒数第二条为止进行比较,即实现了第二次循环。两次循环比较完之后便将数据文件中的数据按照姓名长度的顺序,从短到长排列起来。最后保存操作结果。 7、main() 一个程序主函数不能少。当以上的函数均编完之后,要实现各个功能操作的连接,还必须有主函数将它们联系起来,这样才能达到理想的结果。对以上函数的连接,此程序采用了switch语句,格式清晰、容易接受。至此班级通讯录管理的基本功能便基本实现。 8、在其他方面对界面的美观进行了改动,采用了许多符号的编排,和大量的对齐方式。 三、调试分析: 程序调试是指对程序的查错和排错。 为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我后来的调试过程带来了很多方便。 为了方便,我先大量的阅读了许多优秀程序员的成功例子,觉得在使用变量时采用大量的指针形式是使功能能大量的进行,并且使程序运行的很快。 所以就写了一份草稿,进行对低级错误的修改,在修改过程中,发现很多都是因为在写完一个语句时,忘了加上分号(;),在用到scanf时,忘了写上取地址(&)符号。过分重视分号的重要性而在for、if、while语句中画蛇添足加分号;在使用文件的时候忘记将文件先打开,对打开的方式与使用的情况不太注意而造成不匹配;还有漏掉形参的定义是值不能传递等等。这些语法错误有信息框的提示一般是能够排除的。 等低级错误。 经过仔细检查之后进行上机调试。进行编译,如果在编译和连接过程中发现错误,屏幕上显示了出错信息,根据提示找到出错的位置,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。在本次实习过程中碰到的编译、连接的错误主要有: 1、定义变量时; 变量不容易联系起来,经常会写错变量名,但是在错误信息的提示下一般还是很容易找到。但是在写各个函数时,发现一个变量名,只要不是全局变量就可以无数次定义,只要分开在不同的函数中就可以了。不过需要注意的是在定义的时候有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。因此,我都才用node做为一个结构体的指针变量。采用llink为头指针,从而减少这样的变量名过多出现的错误,结果引起的那些错误解决了。 在编写程序时要安静,才不会出现低级错误。 2、语法错误; 语法错误在通过书本参考下能够修改,并且在上机的错误提示中得到修改,但是由于书本是C语言。不是C++的,所以在使用时要注意在主函数和一些定义变量跟声明函数时有些不同,这不是语法的错误,而是作为一个程序员必须要注意到的,要体会两种语言的区别,由于平时看书不仔细、没有经过仔细的思考造成的。如没有注意具体数据使用是有一定的范围限定; 在本次调试过程中我还碰到了一些以前上机过程中从未碰到过的错误。逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。这也是本次程序编辑过程中碰到的最大的难题。因此我使用的是一个一个函数的检查,并通过调试修改。 在调试时,碰到了许多平时没有的错误,如:开辟内存时,忘了加*号,使得检查的时候认为是指针的错误,还有是在类型转换时,发现在类型转换为时要加上teperdef,并且在调试时在学习时的有个强制转换比teperdef更有用,如(strect llist*)llink与teperdef llist struct nodeteperdefnode *llink,以上两句是一样的。 四、心得体会: 编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。当这个自己编写的程序在计算机上实现自己想要的功能时,很有成就感,发现了许多原来的错误,使自己的水平上升了一个大台阶。 这个程序的成功对以后要学习的数据结构就更有信心了。 贺秀山 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以学生有效地利用课程上机实验的机会,尽快掌握用c语言设计简单程序的能力,为今后的继续学习打下一个良好的基础。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: 1.加深对课堂讲授内容的理解 课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。 通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去“掩盖”程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。 2.熟悉程序开发环境、学习计算机系统的操作方法 一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓“环境”就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 3.学习上机调试程序 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。 通过一个学期的C语言上机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,经过上机操作,我们也了解了一个程序的编辑、编译、调试的全过程,学会编写一些简单的程序,这对我们今后的学习将会有莫大的帮助。 实验一: Visual C++实验环境 一、实验任务 实验一 二、实验目的 1.了解C程序结构,熟悉VC++ 6.0开发环境。 2.熟悉在VC++ 6.0开发环境中编辑、编译、连接、运行和调试C语言程序。3.通过运行简单的C语言程序,初步连接C语言源程序的特点。 三、实验环境 硬件:PC兼容机 CPU Core i5,内存4GB; 操作系统:中文版 Windows 7; 应用软件 Visual C++ 6.0程序开发环境。 四、实验准备及作业提交方法 1.提交位置 在计算机硬盘(E盘)上新建以学生“学号姓名”命名的文件夹,本次实验学生编写的程序文件先保存到上述文件夹中,待上机实验结束时,将文件夹通过校园网络提交到规定服务器位置上。2.提交内容 本次作业需提交2类文件:.c文件、上机实习报告.doc 五、实验内容(因实验内容较多,本实验报告中仅体现部分内容) 1.编写一个程序,输出以下信息: ***************************** Welcome to the world of C! ***************************** 【源程序代码】 电子与信息工程学院上机实习报告 第1页 2.编写程序求两数之和 【源程序代码】 3. 编写程序。 【源程序代码 六、思考与实践 6.【修改后源程序代 】 码】 7.【源程序代码】 七、实验分析总结 一、实验目的(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。 ⑵了解条件型循环结构的基本测试方法。 ⑶掌握如何正确地控制技术型循环结构的次数。 ⑷了解对技术型循环结构进行测试的基本方法。 ⑸了解在嵌套循环结构中,提高程序效率的方法。 二、实验内容 1.输入一个正整数,并将其颠倒过来,如12345对应54321.程序 : #include #include int main() { int n,m,t=0; scanf(“%d”,&n); if(n<0) { printf(“数据输入错误!n”); exit(0); } while(n!=0) { m=n%10; t=t*10+m; n=n/10; } printf(“反序数为: %dn”,t); return 0; } 运行: 12345 反序数为: 54321 Press any key to continue 2.将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t,其高位仍在高位,低位仍在低位,如s=87653142时,t中的数为8642.程序: #include int main() { long s,t=0,p=1; scanf(“%ld”,&s); while(s!=0) { if((s%10)%2==0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf(“%ld“,t); return 0; } 运行: 87653142 8642 Press any key to continue_ 3.判断101~200之间有多少个素数。 程序: #include #include int isprime(int m); int main() { int n,s=0; for(n=101;n<=200;n++) { if(isprime(n)) s++; } printf(”%dn",s); return 0; } int isprime(int m) { int i; for(i=2;i<=sqrt(m);i++) if(m%i==0) return 0; return 1; } 运行: Press any key to continue_ 三、分析与讨论 (1)总结条件循环结构的一般方法。 (一)for循环 for循环的一般形式为: for(<表达式1>;<表达式2>;<表达式3>) { 语句序列 } (1)先求解表达式1,然后求解表达式2,若其值为真(true),则执行for语句中内嵌的循环语句;若其值为假(false),则结束循环转到{ }后面的语句执行。 (2)求解表达式3。 (3)转回上面求解表达式2,继续执行。 (4)循环结束,执行for语句下面的一个语句。 (二)while语句 while(表达式) { 语句序列 } 其语义是,首先计算表达式的值,当值为真(true)时,返回循环体语句;当值为假(false)时结束循环。直到表达式的值为0,则执行结构后面的语句。 特点:先判断,后执行。 (三)do-while语句 do { 语句序列 }while(表达式); 特点:先执行,后判断。 当循环条件为真(true)时反复执行循环体,直到循环条件为假(false)终止循环。因此,其循环体将至少被执行一次。 如果for、while或do-while循环控制语句的循环体中又包含循环控制语句就构成了嵌套循环。这3种循环语句之间可相互嵌套,构成复杂的逻辑嵌套结构。 (2)如何测试计数型循环结构的控制表达式中的错误? 断点,或使用try,catch抛出异常 (3)从实验中你得到了哪些提高嵌套循环程序效率的启示? 课程代码:AE02019 总学分、学时:1学分;30学时(理论0学时,实践30学时) 适用于计算机应用技术、计算机网络技术专业、计算机软件技术专业 一、课程的地位、性质和任务 《C课程设计》是针对刚学完C语言的计算机类专业学生的课程设计教学。C语言是学生的第一门计算机高级语言课程,课程结束后,学生已经对C语言程序设计有了较全面的了解,但接触的基本上是为了阐述相关概念或知识点而列举的示例,都是较小的程序,程序功能单一,因此缺乏整体观点和编写一个具体实用的综合程序的思想。 本课程设计的目的是要培养学生初步具有系统分析思想,并能利用开发工具开发一个简单实用的综合程序。为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。 二、本课程教学的基本要求 要求学生以VC++ 6.0为开发工具,完成一个小型应用软件的设计和开发。进一步提高学生进行程序设计的能力。 三、课程的主要内容及学时分配 1. 选题 2. 进行系统分析 3. 程序设计实现 4. 系统测试 5. 编写、上交课程设计报告 四、实践要求与实践内容 实践要求: 1、系统设计要实用。 2、对系统进行功能模块分析、控制模块分析正确,要画出主要功能模块的流程图。 3、编程简练,可用,界面友好,功能全面。 4、课程设计报告、流程图要清楚。建议题目: 1. 学生成绩管理系统:能实现学生成绩添加、删除、修改,求平均分、总分,排序以及查找等功能 2. 通讯录管理:能实现通讯录的添加、删除、查找(实现顺序查找、二分查找两种查找)、排序等功能。3. 常用算法集: 要求在程序中实现如下算法: 1. 小学生算术练习(随机产生一个10以内的+、-、×、÷算式,判断用户输入的计算结果判断用户计算是否正确)2. 求圆周率的近似值 3. 打印九九乘法表 4. 数组排序,二分查找 5. 输出100-200内的所有素数 6. 输入一个十进制数,将其转换成二进制并输出 7. 不用strcat()函数,实现两个字符串连接 8. 输出杨辉三角的前n行,n的值由键盘输入 9. 用递归方法求Fibonacci数列前n项的值,n的值由键盘输入 10. 从键盘输入5个学生(学号、姓名、成绩(三门课))信息,计算出每个学生的平均成绩,再输出以上学生信息。并将学生信息写入文件中。 学生也可根据自身特点和爱好,自行拟定合适的课程设计题目报指导老师处。 五、考核方式及成绩构成 考核方式:在机器上演示程序,上交课程设计报告 成绩构成: 1.上机调试运行,占总成绩50%。2.课程设计报告,占总成绩50%。 六、必要的说明 1.课程设计应以学生为主体,在指导教师指导下完成。2.教学参考书目: 谭浩强 《C程序设计》(第二版)清华大学出版社 1999.12 谭浩强 《C程序设计题解和上机指导》(第二版)2000.9 杨路明 《C语言程序设计教程》(第2版)北京邮电大学出版社 【C语言实习大纲】推荐阅读: c语言程序设计实习报告程序02-22 语言实习报告02-04 语言交流中心实习报告12-19 c语言总结07-15 c语言课程12-13 黑马程序员C语言教程:C语言基础之#define详解01-13 c语言概念题09-22 C语言教学建议10-25 c语言递归程序11-06《C语言大作业》设计说明书大纲 篇4
C语言实习大纲 篇5
C语言实习 篇6
C语言实验实习总结 篇7
c语言上机实习报告 篇8
C语言实习大纲 篇9
c课程设计大纲 篇10