C语言程序稳定性(共9篇)
1.C语言程序稳定性 篇一
1.数据库管理和应用程序方面
C语言的非数值处理功能很强,因此它被广泛地应用于数据库管理系统和应用软件。大多数的关系数据库管理系统,如dBASE,Fox$ASE,ORACLE等,都是由C语言编写的。各种不同部门的应用软件也大都是用G语言开发的,C语言在开发数据库应用软件方面应用很广,深受开发者的欢迎。
2.图形图像来统的应用程序方面
C语言在图形图像的开发中也有着广泛的市场。很多图形图像系统,如AutoCAD通用图形系统等,就是使用C语言开发的,并且在这些图形系统中可以直接使用C语言编程,实现某些功能。C语言编译系统带有许多绘图功能的函数,利用这些函数开发图形应用软件十分方便。所开发的应用程序常用C语言编写接口界面,这样既方便又灵活,效果很好。这是因为该语言提供有图形处理功能,便于实现图形图像的各种操作。因此,C语言在图形图像的应用方面很好地发挥了它的作用。
3.编写与设备的接。程序方面
C语言不仅在建立友好界面方面有着广泛应用,如下拉式菜单、弹出菜单、多窗口技术等;而且在编写与设备的接口程序方面也有着广泛应用。这是因为C语言不仅具有高级语言的特性还具有低级语言的功能,因此,在编写接口程序方面十分方便,有时它与汇编语言一起使用,会显示出更高的效率。
4.数据结构方面
由于C语言提供了十分丰富的数据类型,不仅有基本数据类型还有构造的数据类型,如数组、结构和联合等,把它们用于较复杂的数据结构〔例如,链表、队列、伐、树等)中显得十分方便,这方面已有许多成熟的例程供选择使用。
5.排序和检索方面
排序和检索是数据处理中最常遇到并较为复杂的间题。使用C语言来编写排序和检索各种算法的程序既方便又简洁。特别是有些排序算法采用了递归方法进行编程,更显得清晰明了。因此、人们喜欢使用G语言来编写这方面的程序。
上述列举了五个方面的应用,但绝不是说C语言的应用仅限如此,而是说在这几个方面目前使用得更多些。C,语言可以说在各个领域中都可以倪用,并且都会有较好的效果。所以,C语言是当前被用于编程的最广泛的语言之一。
另外,C语言是一种结构化程序设计语言,在编写大型程序中也很方便,特别是该语言又提供了预处理功能,其中文件包含在多人同时开发一个大程序时将带来减少重复和提高效率等好处,因此,越来越多的人喜欢用C语言来开发大型程序。
1.计算机二级C语言程序设计考点:C语言的特点
2.计算机二级C语言程序设计考点解析:C语言程序实例
3.计算机二级C语言程序设计考点:指针
4.计算机二级C语言程序设计考点:数组
5.计算机二级C语言程序设计考点:函数
6.计算机二级C语言考点:字符型数据
7.计算机二级c语言试题
8.计算机二级C语言程序设计考点解析:常用的输人函数
9.计算机二级C语言程序设计考点:单词及词法规则
10.计算机二级C语言程序设计考点解析:常用的输出函数
2.C语言程序稳定性 篇二
一、实验材料
1. 仪器与设备。
ZZJ-801型榨汁机 (广东省江门市全球制造基地产品) , JY-3002型电子天平 (上海精科有限公司产品) , HH-6数显恒温水浴锅 (金坛市科析仪器有限公司产品) , DNM-9602A型酶标仪 (北京普朗新技术有限公司产品) 。
2. 原料与试剂。
黄瓜、白菜 (实验当天购于本地且挑选最新鲜的) ;1%草酸溶液 (天津市致远化学试剂公司产品) ;活性炭 (天津市恒兴化学试剂制造公司产品) ;10%硫脲 (上海展云化工公司产品) ;抗坏血酸 (东北制药总厂产品, 纯度为99.18%) ;2%2, 4-二硝基苯肼 (上海展云化工公司产品) ;85%硫酸 (东莞市中天化工公司产品) 。
二、实验方法
1. 样品的取样。
黄瓜和白菜用自来水冲洗干净, 去其已坏死叶片, 蒸馏水清洗, 用滤纸将蔬菜表面残留的水分吸干。分别准确称取黄瓜、白菜各100g, 黄瓜加白菜共100g。蒸馏水反复清洗榨汁机, 利用榨汁机得到相应的三种蔬菜汁并倒入干燥的锥形瓶中, 做标记。待用 (分别测定0min、10min、20min时三种蔬菜汁维生素C的含量, 每种蔬菜汁每个时间段测定2次, 取平均值, 确保数值的准确性) 。
2. 样品提取、氧化及脱色。
取5ml样品原汁于烧杯中, 加1%草酸溶液45ml (稀释10倍) 。混合样品及原汁各取2.5ml混合液放入烧杯中, 再加1%草酸溶液45m L (稀释10倍) 混匀。取约25ml提取液于干燥锥形瓶中, 加活性碳0.5g, 因为活性炭能够在这里起到氧化剂和吸附剂的作用。剧烈振摇1min后, 静置过滤, 弃去最初的几毫升滤液, 以确保实验的准确性, 吸取剩余的样品滤液。
3. 显色及脎的溶解。
取3支10ml试管编号, 1号试管为空白试剂作对照, 取2.5ml草酸于1号试管, 各取2.5ml样品滤液于2、3号试管。各取1.0m L 10%硫脲于三支试管中, 再各取1.0ml 2%2, 4-二硝基苯肼于1, 2, 3号试管中, 37℃恒温水浴3h后, 流水冲洗、冷却。将3支试管置于冷水中, 缓慢倒入85%硫酸3.0ml, 注意加液、摇晃、冷却同时进行。混合后, 于室温下静置30min。在492nm波长下进行比色。以对照组调零, 测吸光度值并记录, 同理分别对上述三种蔬菜汁进行测量。
4. 绘制标准曲线。
标准抗坏血酸溶液:精确称取粉状结晶100mg的纯抗坏血酸用1%草酸溶液溶解于100m L的容量瓶中, 并定容至刻度线, 摇匀。分别准确吸取标准抗坏血酸溶液 (1mg/ml) 0、5、10、20、30、40、50、60、70、80、90、100ml于试管, 用10%硫脲溶液稀释至100ml并加0.5g活性炭, 过滤后分别吸取10ml于各试管中, 接下来同2.3显色及脎的溶解中的方法进行处理, 以维生素C标准溶液的浓度为横坐标 (x) , 吸光度值 (OD) 为纵坐标 (y) , 得到标准曲线。
5. 结果的计算。
根据标准曲线查找或由回归方程计算出“样品氧化液”中总抗坏血酸的浓度, 再根据以下公式计算:X=mc·V×F×1001000, 同一实验至少重复测定3次, 以确保相对偏差值≤10%, 尽量减少实验过程中所产生的误差。由此来最终求得各样品中维生素C的含量。
6. 统计与分析。
采用SPSS16.0统计软件对实验数据进行统计学分析处理。维生素C的含量用均数±标准差来表示。采用单因素方差分析的方法, 运用t检验进行两两比较, 设定检验水准为0.05, 若P<0.05, 差异有统计学意义。
三、结果与讨论
1. 线性方程。
通过分光光度法得出线性回归方程y=0.0339x+0.1015, R2=0.9889 (n=11) 。结果表明, 维生素C含量在5~100mg的范围内时, 有良好的线性关系, 符合线性回归方程的原则。
2. 样品中维生素C含量的测定结果。
通过以上实验, 可得出下表。通过此表可知, 三者维生素C的含量不同且均不稳定, 随暴露时间的延长, 三者维生素C的含量均有所下降。其中, 白菜中维生素C含量最高但其稳定性最差, 下降速度最快;黄瓜中维生素C含量低于白菜但其稳定性最好, 下降速度缓慢;黄瓜加白菜组合中维生素C的含量最低, 稳定性介于两者之间。
注:**:食物不同时间段维生素C的含量之间的比较存在差异, P<0.05。
3. 讨论。
黄瓜中维生素C的含量之所以低于白菜, 是因为嫩茎、叶、苔、花类维生素C含量普遍较高, 所以白菜中维生素C的含量高于黄瓜中维生素C的含量。由实验结果得知黄瓜加白菜组合中维生素C的含量少于白菜、黄瓜各自的原有量, 因为黄瓜中含有较为丰富的维生素C分解酶, 植物体内的维生素C往往是与维生素C分解酶并存的, 又因为黄瓜本身维生素C的含量较少, 与白菜混合时, 黄瓜的分解酶分解了白菜中的维生素C, 所以最终导致两者混合后维生素C的含量降低。同时又因为维生素C的极不稳定性, 在与空气接触时会加速维生素C的破坏, 所以三者均表现出随暴露时间的延长维生素C的含量下降。同时, 因与空气的接触使分解酶更加地促进了维生素C的氧化, 导致了黄瓜加白菜中维生素C的含量随着暴露时间的延长变得更低。
四、结论
综上所述, 相对于黄瓜而言, 白菜是维生素C含量相对丰富的蔬菜, 所以建议日常生活中我们应多食类似白菜这样的嫰茎、叶、苔、花类蔬菜, 可以提高人们吸收维生素C的量, 使维生素在体内不会因缺乏而引起健康危害;黄瓜和白菜不宜混合后食用, 因其混合后含量的减少会使机体吸收维生素C的量也减少。因为维生素C的不稳定性所以新鲜的蔬菜不宜久置食用, 在空气中暴露的时间越长, 特别是室温时空气中各种霉菌以及空气的强烈氧化作用, 会使其维生素C损失, 所以建议人们购买新鲜的蔬菜并及时食用, 减少维生素C及其他营养成分的损失。
摘要:为了研究不同蔬菜中维生素C的稳定性, 现利用黄瓜、白菜这两种蔬菜及其组合观察它们在空气中暴露时间不同时维生素C含量的变化, 并为人们食用蔬菜提出建议。
3.C语言程序稳定性 篇三
【关键词】C语言;编程技巧;学习技巧;教学效果
前言:我国高校已经普遍开展C语言的学习,对培养知识经济时代下高素质、复合型人才起到了重要的推动作用。然而在实践过程中却发现,学生学习C语言的动力不足、掌握及运用能力较低,为C语言进一步发展蒙上了一层阴影。所以本文首先对C语言学习过程中的难点进行分析,随后探讨C语言编程技巧的应用内容,以为学生学习及课堂教学效果的提升提供帮助。
一、当前C语言学习难点
(一)函数的定义和应用
由于C语言是一门较为高级的计算机汇编语言,在学习过程中包含了大量的函数,而相应函数如何定义和使用成为当前学生学习的难点之所在。众所周知,C语言编程过程中往往会通过汇编语言来将函数功能在相应代码中实现[1]。然而,在实际运用及学习过程中经常会出现函数嵌套的事情发生,而产生该现象的原因则是在C语言编程过程中已經定义了一个函数,但是操作者并没有注意到此种情况,当使用不同定义的函数时,系统就会提示不能在函数体内定义函数。所以在C语言学习过程中关于函数的定于和使用是困扰学生的主要问题。
(二)编写程序的工整严谨性
运用C语言编写程序是当前知识经济时代下较为常用的程序编写方式,需要操作人员具有较强的逻辑思维能力以及编写水平,并且耐心要足够良好。编写程序主要是通过计算机检验来实现相应的功能,在编写过程中每一个细节问题都需要处理到位。一旦某个环节某个字母没有正确书写,那么将会导致编写的整段程序无法运行,降低了程序编写效率。而编程工整性和严谨性是考验每一个学生学习效果及能力的重要指标。但是对于当前大多数学生来说,编写程序仍然是一个难点问题,出错几率始终居高不下,导致学生在经过了很长时间学习后依然无法掌握正确的编写技巧,继而丧失了继续学习的兴趣和信心。所以C语言学习过程如何运用编程技巧来提高编写程序的工整严谨性成为当前亟待解决的问题。
二、C语言编程技巧在C语言学习中的应用
(一)指针技巧的掌握与运用
C语言编程技巧中指针是一个较为特殊的变量,在其中存储着大量的数值,可以被称作是内存地址之一。指针技巧可以通过分解来将各部分内容展现在学生面前,以促使学生明确指针的使用。当前C语言学习中指针由指针类型、指针指向类型、指针值、指针自身所占内存区所组成。指针类型是C语言学习及编程中最为常见的知识点,学生可以通过去除指针声明语句中所包含的指针名字来判断该指针类型,如:int*ptr、char*ptr,将指针名字ptr去掉后剩下的int*、char*即为指针类型。学生通过该技巧的使用可以在短时间内明确所有C语言指针的类型,为其应用提供了便利条件。指针指向类型相较于指针类型稍稍复杂一些,上例中去掉*后剩下的int、char等即为指针指向类型。所以指针技巧的掌握与运用主要在于学习者的耐心及细心程度,加强其主观重视程度后,学习C语言将会更加得心应手。
(二)C语言特有函数技巧的掌握于应用
C语言编程中函数的应用是实现特定功能的基础与前提,学生往往在函数的定义及使用过程中出现不同程度的问题,造成其学习效果不佳。因此,在C语言课堂教学中教师可以在函数定义所包含的名字、参数名称、类型以及函数返回值类型逐步分解并一一明确其各组成部分的功能,并且将独立的函数存储在编译系统数据库中,使用时输入#include指令即可将想要使用的头文件放入本文件中,使得C语言特有函数能够在短时间内被学生掌握及利用[2]。随着计算机技术快速发展,C语言特有函数的编写已经可以通过程序化步骤来实现,在方便了使用的同时,也降低了学生学习难度,使得C语言教学效果得到大幅提升。
(三)算法技巧的掌握与应用
算法是程序编写工作的重要组成部分,也是学习过程中花费时间较长的环节。为了能够提高学生学习效率,教师需要在课堂教学中将常用流程符号普及给学生,并且利用流程图来讲算法的应用逐一分解,向学生直观展示算法的应用。当前还可以利用自然语言来表示算法,同时与流程图讲解相结合,使得具备一定数学知识的学习者能够熟练掌握算法技巧,并运用在具体的程序编写工作中。C语言是建立在数学思想基础上的应用学科,数学思维在算法技巧掌握及应用中起到了重要的辅助所用。所以,在通过系统展示及分步讲解基础上拓展数学思维去寻找C语言程序编写规律,可以为其血气起到事半功倍的效果。
(四)位运算技巧的熟练掌握与应用
C语言之所以独立于其他计算机语言,就在于位运算使用。位运算是一种以二进制为对象、进行各种程序、数据、结果运算的一种基本算法。特别是在计算机文件中其应用更为频繁,掌握了位运算技巧,就相当于掌握了打开宝藏大门的钥匙。比如:数独时需要使用大量Hash表来统计九宫格里已经存在那些数据,如果在一个九宫格之中已经存在数字2和5,那么采用位运算后该九宫格可以使用数字18来表示;如果某一行或某一个九宫格为运算状态为511,则代表了该九宫格空间已满。要想改变其状态,只需要对其进行位操作,而省去了将数据重新转换成为二进制修改之后在转回来的步骤,使得整个C语言学习效率得到大幅提升[3]。
结论:综上所述,本文通过对当前C语言学习难点的分析得出了困扰学生的主要问题在于函数的定义及使用和编写程序的工整严谨性。并以此为依据提出了C语言编程技巧中指针、特有函数、算法、位运算等技巧熟练掌握是提高C语言学习效率的关键。希望通过本文的分析能够为我国高校改进C语言教学提供帮助,以促使C语言知识正迁移。
参考文献:
[1]段煅.C语言编程技巧在C语言学习中的应用[J].电脑编程技巧与维护,2010,12(20):150-151.
[2]余勍,王捷.浅谈C语言编程技巧在C语言学习中的应用[J].信息通信,2013,25(07):108.
4.C语言程序稳定性 篇四
1、标识符
由字母、数字和下划线组成。标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字符数有不同的规定,一般允许7个字符。
2、注释
“/*”和“*/”必须成对出现; 注释不能嵌套;
注释可出现在程序的任何位置。
3、常量
整型常量十进制常数(八进制常数、十六进制常数、长整型常数); 字符常量(用单引号括起来的字符); 字符串常量(用双引号括起来的字符序列); 浮点型常量(小数形式、指数形式)。
4、表达式
算术表达式(整型表达式、实型表达式);
逻辑表达式(用逻辑运算符连接的整型量,结果为一个整数0或1,逻辑表达式可以认为是整型表达式的一种特殊形式); 字位表达式;
强制类型转换表达式(用“类型”运算符使表达式的类型进行强制转换); 逗号表达式;
赋值表达式(将赋值号“=”右侧表达式的值赋给赋值号左边的变量); 条件表达式;
指针表达式(对指针类型的数据进行运算)。
5、数据定义
对程序中用到的所有变量都需要进行定义。对数据定义其类型,需要时要指定其存储类别。类型标识符可用:int、short、long、unsigned、char、float、double、struct 结构体名、union 共用体名等;存储类别可用:auto、static、register、extern(如不指定存储类别,作auto处理)。注意:外部数据定义只能用extern或static,而不能用auto或register。
6、函数定义
形式为:存储类别 数据类型 函数名(形参表列);形参说明;函数体。
函数的存储类别只能用extern或static。函数体是用花括弧括起来的,可包括数据定义和语句。
7、变量的初始化
5.C语言课程设计程序 篇五
//定义学生结构体,st数组。
int score[5];float jqave;int rank;}st[27];
struct kecheng { int num;char kcname[20];
//定义课程结构体,course数组.float xuefen;float biaozhuncha;int youxiu;int lianghao;int zhongdeng;int jige;int bujige;
}course[5];
void readdata1(){
int i,j;
char str1[100];
FILE *f1;
f1=fopen(“c:xinji110213.txt”,“r”);
fgets(str1,100,f1);// printf(“%-s”,str1);
for(i=0;i<27;i++)
{
fscanf(f1,“%d%s”,&st[i].num,st[i].name);
// printf(“%-4d%-10s”,st[i].num,st[i].name);
for(j=0;j<5;j++)
{
fscanf(f1,“%d”,&st[i].score[j]);// printf(“%-9d”,st[i].score[j]);}
// printf(“n”);}
fclose(f1);}
void readdata2(){
int k;
char str2[100];
FILE *f2;
f2=fopen(“c:xj02kc.txt”,“r”);
fgets(str2,100,f2);// puts(str2);
for(k=0;k<5;k++)
{
fscanf(f2,“%d%s%f”,&course[k].num,course[k].kcname,&course[k].xuefen);
// printf(“%-8d%-10s%2.1fn”,course[k].num,course[k].kcname,course[k].xuefen);
}
fclose(f2);} void jqave(){ int i,j;float s=0,sum=0;for(i=0;i<27;i++)
{
for(j=0;j<5;j++)
{
s+=course[j].xuefen;
sum+=st[i].score[j]*course[j].xuefen;
}
st[i].jqave =sum/s;
} }
void ranking()
{ int i,j;
for(i=0;i<27;i++){
st[i].rank=1;
for(j=0;j<27;j++)
if(st[i].jqave st[i].rank=st[i].rank+1;} } void paiminghoudechengji(){ int i,j;FILE *fp;fp=fopen(“c:MC110213.txt”,“w”);printf(“ 名次 学号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 n”);fprintf(fp,“ 名次 学号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 n”); for(i=0;i<27;i++) { printf(“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name); fprintf(fp,“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name); for(j=0;j<5;j++) { printf(“%10d”,st[i].score[j]); fprintf(fp,“%10d”,st[i].score[j]); } printf(“%12.2fn”,st[i].jqave); fprintf(fp,“%12.2fn”,st[i].jqave);} fclose(fp);} void xiechengji(){ int j;FILE *fp;fp=fopen(“c:xj1110213.txt”,“w”);fprintf(fp,“ 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格 n”);printf(“ 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格 n”);for(j=0;j<5;j++) { printf(“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen);fprintf(fp,“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen); printf(“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige); fprintf(fp,“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige); } fclose(fp);} void pingjunfen(){ int i,j; for(j=0;j<5;j++) { float zongfen=0,pingjunfen=0; for(i=0;i<27;i++) zongfen+=st[i].score[j]; pingjunfen=zongfen/27; } } void biaozhuncha(){ int i,j; for(j=0;j<5;j++){ float zongfen=0,pingjunfen=0,x=0; for(i=0;i<27;i++) zongfen+=st[i].score[j]; pingjunfen=zongfen/27; for(i=0;i<27;i++) x+=(st[i].score[j]-pingjunfen)*(st[i].score[j]-pingjunfen); course[j].biaozhuncha=(float)sqrt((x/27)); } } void count(){ int i,j; for(i=0;i<5;i++) { course[i].youxiu=0,course[i].lianghao=0,course[i].zhongdeng=0,course[i].jige=0,course[i].bujige=0; for(j=0;j<27;j++) { if(st[j].score[i]<60) course[i].bujige++; else if(st[j].score[i]<=69) course[i].jige++; else if(st[j].score[i]<=79) course[i].zhongdeng++; else if(st[j].score[i]<=89) course[i].lianghao++; else course[i].youxiu++; } } } void chengjitiao(){ int i,j;FILE *fp;fp=fopen(“c:cjt110213.txt”,“w”);do { printf(“请输入你要查询的编号 退出请按零”); scanf(“%d”,&i); fprintf(fp,“ 编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);printf(“ 编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);if(i>=0&&i<=26)fprintf(fp,“%3d%10s”,st[i-1].num,st[i-1].name); printf(“%3d%10s”,st[i-1].num,st[i-1].name);for(j=0;j<5;j++){ printf(“%9d”,st[i-1].score[j]); fprintf(fp,“%9d”,st[i-1].score[j]);} printf(“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fprintf(fp,“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fclose(fp);} while(i>0&&i<28); } void bujigexueshengmingdan(){ int i,j; printf(“不及格学生名单如下:n”);printf(“ 学号 姓名 不及格课程 分数 n”);for(i=0;i<27;i++){ for(j=0;j<5;j++) if(st[i].score[j]<60) {printf(“%3d%12s”,st[i].num,st[i].name); printf(“%15s%8dn”,course[j].kcname,st[i].score[j]); // printf(“ 平均分”); // printf(“%10.2f 名次%8dn”,st[i].jqave,st[i].rank); } } } void youdeng(){ int i,k;printf(“ 优等生名单如下n”);printf(“编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);for(i=0;i<27;i++){ // for(j=0;j<5;j++) if(st[i].jqave>=90||st[i].rank<=3) { printf(“%2d%10s”,st[i].num,st[i].name); for(k=0;k<5;k++) printf(“%9d”,st[i].score[k]); printf(“%10.2f%8dn”,st[i].jqave,st[i].rank); } else; } } void caidan() { loop: printf(“ &&简易教学管理系统&&n”); printf(“press 1 for 排名后的成绩表 !n”); printf(“press 2 for 各科成绩情况!n”); printf(“press 3 for 成绩条!n”); printf(“press 4 for 不及格学生名单!n”); printf(“press 5 for 优等生名单!n”); printf(“press 0 for 退出n”); int t; scanf(“%d”,&t); switch(t) { case 1: paiminghoudechengji();break; case 2: xiechengji();break; case 3: chengjitiao();break; case 4: bujigexueshengmingdan();break; case 5: youdeng();break; case 0: exit(0); } goto loop; } void main(){ readdata1(); readdata2(); jqave(); ranking(); pingjunfen(); biaozhuncha();count(); #define PI 3.1416 main(){ float Radius,Area;scanf(%f,&Radius);/*输入半径的值*/ Area=PI*Radius*Radius;printf(%fn,Area);/*输出圆的面积*/ } 1.一个C语言程序,通常由带有#号的编译预处理语句开始。关于预处理我们在以后介绍,这里的#define PI 3.1415926相当于PI代表3.1416,下面在程序中遇到PI,我们就用3.1416替代一下。在以后的程序中,在学习预处理之前,我们都将不使用预处理语句。 2.main()任何一个完整的程序都需要main(),这是一个函数,具体什么是函数,以后再讲,这儿你就要记住就行。后面有一对{}把所有的语句都括在里面,表明那些语句都属于main()里面。程序运行时从这个左大括号开始。 3.{}里面的4行语句大家应该都能明白,先定义两个变量,一个代表半径,一个代表面积,然后输入半径的值,然后求面积,最后在屏幕上输出面积。程序到main()的那对{}的右大括号结束。求面积的语句Area=PI*Radius*Radius;相当于Area=3.1416*Radius*Radius;(完全用3.1416替代PI)。 具体程序从编写到运行得到结果的步骤为: 1.双击tc.exe,进入Turbo C 2.0编译界面 2.ALT+E 进入编辑模式 3.书写程序 4.F2 存储程序(也可进入File菜单,选择save),第一次存储需要写上程序名称(*.C),回车 5.ALT+F9 编译,如果有错误和警告,光标停留在错误行,回车进行修改,修改后,回到4;没有错,下一步 6.CTRL+F9 连接和运行程序 7.用ALT+F5查看程序运行结果,任意键返回程序 如何打开一个已有的C文件: 1.双击tc.exe,进入Turbo C 2.0编译界面 2.F3 进入load状态,找到所要打开文件的目录,找到文件,回车;后面都一样。具体的有哪些快捷键及其它们的作用,请查看第一节概述。 说明: 1.必须在程序的最开始部分定义所有用到的变量,例如这里的Area,Radius。2.变量的命名要尽量有意义,如用代表该意思的英文单词、或者是汉语拼音,例如这里的Radius,Area,绝对禁止用毫无干系的字母,如a,b,c。例如下面的程序,虽然意思和上面的一样,但是看上去意思不明朗,时间长了,很可能忘记程序本身的意思。对于仅仅是控制程序运行,不代表实际意思时,可以用一些简单字母。main(){ float a,b;scanf(%f,&a);b=3.1416*a*a;printf(%fn,b);} 3.采用层次书写程序的格式,要有合理的缩进,必要的时候要有空行,一行只书写一个语句。所有语句尽量不分行,除非太长(分行时变量、运算符,格式字符等等不能拆开),例如下面两个程序看起来就不好看了,虽然它们的功能和前面是一样的。main(){float Radius,Area;scanf(%f,&Radius);Area=3.1416*Radius*Radius;printf(%fn,Area);} main(){ float Radius,Area;scanf(%f, %Radius);Area=3.1416*Radius *Radius;printf(%fn, Area);} 4.程序在适当的地方要用/*……*/注释,它的意思表示在/* */里面的所有字符都不参加编译。因为一个较大的程序,经过一段时间,有些地方可能连编程者都忘记了,增加注释可以帮助恢复记忆,调试程序时,也容易找出错误。注释也可以分行写。5.在书写{}时要对齐。虽然不对应也不影响程序运行,但对齐后方便以后检查程序,也是为了美观,特别是后面学到流程控制时,{}一定要对齐。 程序设计方法: 1.从问题的全局出发,写出一个概括性的抽象的描述。 2.定义变量,选取函数,确定算法。算法这个东西不好说,遇到的问题多了,自然就会形成自己一整套的算法。 3.按照解决问题的顺序把语句和函数在main()里面堆砌起来。一个好的C程序员应该做到: 1.在运行程序之前存盘 2.所有在程序中用到的常量都用预处理语句在程序开头定义 3.所有在程序中用到的函数都在程序开头声明 4.头文件的#ifndef 5.变量名和函数名使用有意思的英文单词或汉语拼音 6.尽量少用全局变量或不用全局变量 7.采用层次的书写程序格式,对for,while,if_else,do_while,switch_case等控制语句或他们的多重嵌套,采用缩格结构 8.所有对应的{}都对齐 9.尽量用for,而不用while做记数循环 10.尽量不用goto语句 11.一个函数不宜处理太多的功能,保持函数的小型化,功能单一化 12.一个函数要保持自己的独立性,如同黑匣子一样,单进单出 13.函数的返回类型不要省略 14.用malloc()分配内存空间时,以后一定要用free()释放 15.打开文件后,记住在退出程序前要关闭 16.出错情况的处理 17.写上必要的注释 关键词:C语言,程序设计,教学方法 C语言以其功能丰富、表达能力强、使用灵活、应用面广、目标程序效率高,可移植性好等优点,广泛应用于数据处理、科学计算、系统软件设计和计算机控制等领域。C语言也是一门典型的结构化程序设计语言,既适合编写应用程序,又适合编写系统程序,实用性很强。通过学习C语言,学生不仅能学习有关程序设计的知识,为以后的学习和工作打好基础,而且还能够逐渐培养缜密的思考能力和细致的观察能力,提高整体的工作、学习及生活能力。在学习C语言时,随着开始几堂课大量难以理解和记忆的新概念、新名词、新术语、新规则的介绍,以及枯燥乏味的例题分析后,学生普遍认为这门课难度大、抽象、不太容易学习;而且C语言规则繁多,使用灵活,在实际应用中,常常出错而不知其所以然,使不少学生在学习时感到困难。在教学过程中,作为教师需要加大教学研究力度,应该根据C语言的特点,把握C语言的重点和难点,深入浅出,把课程内容介绍得通俗易懂,以便学生更好地掌握C语言。本人就近年来对C语言程序设计教学的体会进行交流探讨,以抛砖引玉。 1 结合现实生活,激发学习兴趣 为了激发学生对C语言的学习兴趣,通常教师首先会找一些已学课程如数学方面的问题,通过编写C语言程序来实现求解,使学生体会程序设计的用途和一种全新的解决问题的方法。有些教师还会介绍一些趣味性算例,如“鸡兔同笼”、“水仙花数”等,以培养学生的学习兴趣,让大家积极主动、自觉地获取知识,打好学习程序设计语言的基础。整个教学过程中把解题思路、方法和步骤(即“算法”)当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。 这种教学模式是目前许多教师所采取的一种教学方式,也体现出很多的优点。但是由于学生初次学这门课程,这种方法也使得他们的思维受到制约,产生一种印象,即编程就是为了解决某些数学模型。虽然是一些简单的数学问题,但很多学生会联想到数学的其它难题,这使数学基础差的学生产生一种畏惧感,反而会收到不好的教学效果。大量实践证明,学生的确有如此感受,他们需要简单易懂的程序示例。那么,结合现实生活和学习中的简单且常用的实例来说明C语言程序的应用是非常可行的。 本人注意采用大家平时用得较多的软件如Word中的一个应用(英文字母大小写的自动转换)作为教学引入首例,使用C程序实现。通过运行的效果,使学生对C语言有初步的了解;并一直注意采用一些比较常用的软件功能设计如加密、猜拳、图形设计等作为案例来进行教学示例,从而进一步说明学习C语言后能在平时常用的一些应用软件、以后的课程学习及工作应用中做些什么事情,来激发学生的学习兴趣。 2 注重编程细节,培养缜密的思考能力和细致的观察能力 C语言的规则颇多,编写C程序应该严格按照其规则进行程序设计,对初学者而言,常常马虎大意,所编写的程序不能正常编译和执行结果。因此在教学初期,教师必须强调C语言的许多细节问题,让学生的诸多不良习惯扼杀于“萌芽”状态。如学生常常在写程序时出现以下问题: 2.1 标点符号问题 学生在编写程序时,往往忽视标点符号。问题主要表现在: 1)忘记录入标点。C语言中,经常用到各种括号,括号要求成对出现的,并且一条语句的结束需要用分号与另一语句隔开。对初学的学生,他们通常会忽略掉这个细节问题,这需要教师在讲授中明确地指出,让学生弄清楚。特别是括号太多时,一定要养成缩进书写的良好习惯,以减少错误的发生。 2)标点录入错误。要强调不同标点符号的作用和区别,如分号和逗号,“{}”与“[]”,“()”与“<>”等等。在录入程序时,很多学生录入的标点是不正确的。如分号“;”和“;”是有区别的,前者为中文下的标点符号,而后者才是程序中需要的。必须给学生强调程序中所需要的标点符号都应该是英文状态下的。 2.2 字母大小写问题 C语言程序中大小写字母是不同的,所以应严格区分字母的大、小写,一般情况下字母都有小写。此规则一定要讲清楚,让学生记住那些使用大写字母的特例。如符号常量一般都用大写,在用科学计数法表示浮点数中的“E”,弄清该计数法的规则,其中的字母“E”可以不区分大、小写;再如表示16进制数的符号“0x”,其中字母“x”也可不区分大小写等等。在教学过程中,对该类问题应该进行总结、归纳以方便学生掌握。 2.3 容易混淆的符号 C语言中有一些符号很容易混淆,如字母“o”、“O”与数字符号“0”,字母“l”与数字符号“1”,字母“z”与数字符号“2”的区别等等,需要特别提出。 2.4 运算符问题 C语言的一个显著特点是它的运算符丰富,利用这一点可以巧妙地解决许多在其他语言中难以解决的问题,但另一方面,有时也会出现令人混淆的问题,是许多学生在学习C语言时感到比较头疼的,同样需要教师在教学中重点突出讲授。下面就其中几种有代表性的运算符的运算做一些举例说明。 除(/)、求余(%)这两种运算符进行的都是除法运算,但前者结果是取商,而且结果可为整型亦可为实型,且当被除数和除数都为整型时其取整型(相当多的学生在教师讲授时明白,而一旦自己应用于程序编写时就忘记了),当被除数和除数有任何一个为实型则结果取实型;而后者取余运算的结果是取余数,要求被除数和除数必须都为整型,结果也只能取整型。 自增(++)和自减(--)运算,运算量必须是变量(错误:一些学生将符号常量、表达式也用于自增和自减),结合方式都是右结合性(错误:习惯性左结合),区别只在于一个是使变量自增1,一个是使变量自减1,关于它们的用法在此以自增(++)为例。自增形式有两种:1)i++;2)++i。而对于运算规则建议不要急于在此就先说明它们的区别,最好分为两种情况来讲。 第一种情况,当这两种形式中的任何一种单独作为一个C语句存在时,两者可以看作没有差别,都等价于i=i+1;。如: 这三个程序段的分别运行结果是一样的,i的值都为2。 第二种情况,当这两种形式中任何一种和其他的运算符相结合,一起构成一个复合表达式时,两者的运算规则就有很大的差别。而这个很大的差别可归纳为一口决:“名前先取,名后先增”,理解并记住这口诀就用不怕出错了。无论是i++还是++i在此时的操作都可分解为两步:1)取变量i的值参加其他运算;2)变量i自身的值增1;问题就在于这两步谁先执行谁后执行,而口诀的前半句“名前先取”就是指变量名在前就先作第一步,后半句“名后先增”是指变量名在后就先作第二步。 关系运算(或比较运算)表达式求值,表面上运算规则与数学中的比较运算相同,但是有一点要特别注意的是:关系运算表达式在数学中的值是一个逻辑值,“真”或“假”,“成立”或“不成立”,而在C语言中它的值是算术值,当表达式成立时其值为“1”,不成立时其值为“0”,这样就造成了某个表达式在数学上是成立的、合理的,而在C语言中它变成了非法的、不合理的。如表达式8 3 因材施教,任务驱动学习 在C语言的教学中,不可避免地会用到大量的数学知识。教师在教学过程中要针对学生的数学知识基础,将教材中涉及到的学生未掌握的数学知识类例题进行更换,避免因数学方面的问题形成教学障碍。 如在设计“循环语句”教学时,可以先给学生讲清楚学习循环语句的用处及优点,介绍学习重点、难点,要求掌握一些程序设计的算法,让他们明确该语句的重要性。如实现求等差数列s=1+2+3+…+n的和时,主要介绍使用循环语句求解,并要求学生掌握其求解方法,并按照此方法推广,以掌握算法思想,然后再通过作业的形式编写累加算法的相关程序,如求s=1!+2!+3!+…+n!等。 在下面这个图形的输出设计教学中, 本人先比较详细地介绍程序的实现方法,然后要求学生在掌握的基础上自行编写这个图形经过变形后得到的图形的程序代码,图形的变形包括颠倒、塔状、旗状、倒三角等,让学生带着任务学习,在总结中提高编程水平。 学生通过自己的练习不断总结编写循环程序的经验,体会循环的思想,使得他们对循环语句有更深的理解和认识,从而达到较好的教学效果。 4 注重实践教学,提高动手能力 C语言的学习,不仅要掌握理论知识,而且实践操作的经验积累也是非常重要的。教师在讲授C语言时,不能忽视学生上机实践课的教学。 有些教师认为,上机课就是让学生自由练习,及时为有疑问的学生解决问题。实际上这种教学辅导方式是不合理的,应该在以下方面进行改进: (1)学生上机应有明确的练习目标,提高编程效率。教师要结合上课的理论知识,确定上机课要完成的目标,有目的地给学生安排上机实验的任务;并且引入相关的程序实例,逐步分析解决该程序的思路和相关的程序代码,让学生了解如何下手去编写程序。 (2)根据引入的程序实例再扩展开,让同学们自己动手完成相关的程序代码。 (3)鼓励学生相互讨论、共同完成,鼓励公开自己的程序设计,评讲相关的程序代码,并引出新的程序,引导学生自己独立完成。 (4)整个上机课堂中教师随时走动,进行课堂答疑,并敦促学生完成相关程序编写。 C语言具有许多的优点,是使用性很强的程序设计语言之一,它的知识点比较多,初学的学生不好掌握。这就要求教师在教学过程中,注重条理性,多从技巧性入手,把一些琐碎复杂的规则用一些简洁、形象的语言来描述代替,提高教学效率,降低学生学习难度,激发他们的学习兴趣,这样才有可能达到良好的教学效果。 参考文献 [1]谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,1998. [2]李凤霞.C语言程序设计[M].北京:北京理工大学出版社,2001. [3]谭浩强,张基温,唐永兴.C语言程序设计教程[M].北京:高等教育出版社,1992. 关键词:记忆法;C程序设计语言;口诀记忆 中图分类号:H319文献标识码:A文章编号:1671-864X(2016)08-0190-01 计算机C语言具有设计特性、高效性、可移植性、灵活性、强大的功能等优势,学好C语言有非常重要的意义[1]。但由于初学者缺少先验知识,该课程学习难度大,知识掌握较困难。本文采用“口诀记忆法”,将一些较为复杂和零散的知识点进行编写串联,对促进学习者有效学习的发生,提供了一种较好的选择。 该课程新增知识点较少,教材内容变化不大,通过以下四个步骤(如图1),即可完成编写过程,后续只需在教材章节的基础上对知识点上进行细化。 一、分析环节 分析环节一般分为两个步骤,第一是对学习者的分析,第二是对知识点的分析。分析学习者应该着重分析学习者的一般特征、入门能力和学习风格。教师可以通过查看学生以前的学习成绩记录、直接向学生提问、与学生交谈、与教师交谈、标准化测试、教师自己出题等方式来了解教学对象的特征和入门能力[2]。学习风格可以选择问卷或量表进行测量。在此基础上,确定要进行记忆的重难点。教学者应重点关注那些理解力和思维能力较弱,但容易调动积极性的学习者,进行重点的教学辅导。 对于知识点的分析,一般应结合教材目录、前人总结、课后习题、题库试题等方面进行。以《第二章C程序设计的初步知识》[3]章节为例,首先借助教材对知识点进行初步细分。由目录可知,该章节包括“简单的C语言程序的格式”、“标识符、常量和变量”、“数据类型”、“算术表达式”、“赋值表达式”、“自加、自减运算符和逗号运算符”等小节。其次是对每小节具体知识点进行分析,教材一般都提供了课后习题,这些习题是专家教师经过长期实践总结出的,具有一定的代表性。教学者可以将其中一部分作为要点暂时列出。最后在结合对学习者分析的基础上,进一步筛选出要点知识,即编写知识点。 二、选择记忆方式 对于编写知识点,可以采用口诀记忆可以选择谐音、简化、对偶和综合等方式进行编写。谐音记忆就是把需要记忆的教学难点内容跟日常生活中的谐音结合起来,采用押韵、联想等方式进行记忆;简化是将复杂的知识点,突出重点后进行选择性的简化;对偶是用对称的字句加强语言的效果,但一般情况下在记忆法中,较难达到完整的对偶,只要求字数大概一致即可;综合的方式是指没有固定的格式,可以将几种方式结合运用(如表1所示)。初步完成编写的记忆法往往较为粗陋,还会存在混淆概念或知识点的可能,教学者需要在不断实践的基础上进行修改,同时最好配有口诀的解析说明,方便学习者理解记忆,避免产生歧义。 三、学习者参与编写 对编写的口诀而言,学习者参与编写,可以发挥群体智慧,逐步完善其解释和记忆功能。对学习者自身而言,积极参与会提高学习效果[2]。对教学者而言,可以减轻教学者编写负担。教学者可以定期组织学习者展示上交记忆法成果。 四、评价反馈与修改 评价反馈与修改在整个记忆法的编写过程中都在不断进行,包括判断学习者分析是否准确、对知识点的分析是否适当、对记忆方式是否有改进、对学习者学习和编写过程及结果是否有效。在此过程中,记录调查结果、原始口诀和改进口诀及其解释说明、学习者学习表现等都会为评价过程提供重要的数据依据。同时鼓励并组织学习者对学习中的重难点和学习中出现的问题进行反馈;最后,教学者要把握谨慎修改,修改必须记录说明的原则,逐步修改和完善记忆法。 参考文献: [1]普拉塔.C Primer Plus(第五版)中文版[M].人民邮电出版社,2005. [2]斯马尔迪诺.教学技术与媒体[M].高等教育出版社,2008. [3]教育部考试中心.全国计算机等级考试二级教程——C语言程序设计[M].2010年版.北京:高等教育出版社,2010. 尊敬的 院(系)分团委(团总支)、学生会 第三届C语言程序设计大赛 随着计算机技术的快速发展,计算机程序语言也呈现多样化的发展趋势。C语言作为一种最基本的计算机语言对于当代大学生来说已经越来越重要。 为了丰富校园文化生活,发掘大学生潜能,提高同学们的动手动脑能力,展现大学生的精神风貌,知识应用以及相关创新能力。同时,也让更多的同学关注C语言、学习C语言,增强C语言爱好者之间的经验交流,促进共同进步,特举办本次C语言程序设计大赛。 一、主办单位 合肥师范学院实验实训中心 合肥师范学院团委 二、承办单位 计算机科学与技术系 三、比赛地点 躬行楼三楼软件机房 四、比赛时间 2014年4月26日 五、参赛对象 合肥师范学院全日制在校大学生 六、报名时间 【C语言程序稳定性】推荐阅读: c语言模拟迷宫程序07-07 c语言程序设计实例06-19 c语言源程序结构08-03 c语言程序设计试题库07-01 c语言程序设计第10章07-07 c语言程序设计第五章09-15 C语言程序设计实验指导及报告07-26 微课在C语言程序设计教学中的应用论文08-18 991“数据结构与C语言程序设计”考试大纲(2018版)08-04 C语言与语言混合编程DSP设计08-236.5编写一个C语言程序 篇六
7.C语言程序设计教学探讨 篇七
8.C语言程序稳定性 篇八
9.C语言程序设计策划书 篇九