搜档网
当前位置:搜档网 › 单片机c语言学习心得

单片机c语言学习心得

单片机c语言学习心得
单片机c语言学习心得

单片机 c 语言学习心得

(一)

相信很多爱好电子的朋友 , 对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他

叫单片机,他的全称是什么也许并不太清楚,更不用说他的英文全称和简称了。单片机

是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或

单片机( Single Chip Computer) 。单片机的应用到处可见,应用领域广泛,主要应用在智能仪

表、实时控制、通信、家电等方面。不过这一切都没什么关系,因为我(当然也包括任何人)都

是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给

大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把

我个人学习的经历讲述一遍而已,仅仅对那些想学习单片机,但又找不到好方法或者途径的朋友,

提供一个帮助,使他们在学习过程中,尽量少走些弯路而已!

首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,

而明天玩上半天,后天就不知道那个本书在讲什么东西了。还是先说说我吧,我从大二的第

一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫

单片机,但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。

嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片机长成什么样子呢!而我对单片

机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书

在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我

还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,或许这也是在一些三

流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。

于是,我横下一条心,坚持看我的单片机书和资料。

当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为

单片机编写程序呢?这个问题,困扰了我好久。具体选择C51 还是 A51 呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,

但是一合上书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终

还是决定学 C51,毕竟 C51 和我们课上讲的 C 语言,有些类似,编程的思想可以说是相通的。

而且 C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想

的那么深远, C51的特点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了 C51,那么请继续往下看, 如果你选择了 A51, 那么你可以不要看了 ! 因为下面讲的全是C方面的 ,完全在浪费你的时间!呵呵^_^

第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆

拆的 ( 但是在后期会介绍给大家一个很好用的硬件仿真软件, 并不需要你用实验板和仿真器了 ,直接在你的 PC 上完成 , 但是软件毕竟是软件, 从某个特定的意义上来说是并不能代替硬件

的 ) ,即使你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,

看了资料,一定会对以下几个词见的比较多,但是具体的概念还是比较模糊,现作如下说明:( 1)编程器编程器是用来烧单片机芯片的,是把HEX或者 BIN 文件烧到单片机 ROM里的。

( 2)实验板实验板是专为初学者根据某些要求而特做的板,一般上面就有一个单片机

的最小系统,使用者只需写好程序,烧好芯片,放到上面加以验证的这么一个工具。有了实

验板,对与初学者来说,省去了焊个最小系统的麻烦。但是对于电子开发人员来说,作用并

不是很大

( 3)仿真器仿真器是直接把 HEX或者 BIN 文件暂时放在一个芯片里,再通过这个芯片

的引脚连接到实验板或者系统上工作。这样以来,可以省去了来回插拔芯片带来的不必要麻

烦。

我一开始也不知道上面 3 个的概念和作用 , 嘿嘿 , 原本想买个实验板 ( 不想焊板 , 因为不可能为了点亮几个流水灯 , 而去焊个单片机的最小系统) 的 , 可是结果 , 确和我想的正好相反 , 人家出售的是编程器。等货物寄到后,才知道自己搞错了!汗。。。嘿嘿。现在想想实在是又气又笑。我花了 160 大样买了个编程器(很不幸的是,这个编程器更本用不了,一烧芯片,芯

片就烧坏了)把我给气的,这个编程器,现在还躺在我的抽屉里呢不过,现在想想,唯一让

我觉得欣慰的是,那个老板每次能解答我的问题,连那种超级幼稚的问题,他也能不嫌麻烦

地尽量帮我解答!这点让我很感动!

第三,想学单片机的必需品 --PC 。因为写程序,编译或者是仿真都是通过PC完成的。如

果没有 PC,什么也做不了!!!有了 PC 最好还要可以上网,因为如果你没有可以和你交流单

片机的人,遇到自己解决不了的问题,一直都想不通,那么估计你学习单片机的热情就会随

着时间的推移而慢慢耗尽。如果你能上网通过论坛或者QQ群,问题就很快得到解决。这样的学习效率一定很高!真正的高手是从论坛中泡出来的!

有了上述 3 个条件后,你就可以开始学你的单片机了。但是,真的做起来并没有我所说

的那么简单。你一定会遇到很多很多的问题。比如为了让单片机实现某个功能,你可能不知

道怎么去写某个程序。或是你看懂了资料上某个相似的程序,你自己却写不出来。遇到类似

的情况,记住:千万不要急噪,就行!

(二)

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上

面讲过几个条件的哦)。那个单片机究竟有什么功能和作用呢?先不要着急!接下来让我们点亮一

个 LED(搞电子的应该知道 LED是什么吧 ^_^ )

我们在单片机最小系统上接个 LED,看我们能否点亮它 ! 对了 , 上面也有好几次提到过单片机最

小系统了,所谓单片机最小系统就是在单片机上接上最少的外围电路元件让单片机工

作。一般只须连接晶体、VCC、 GND、 RST即可,一般情况下,AT89C51的 31 脚须接高电平。

#include//头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。

//在 Keil安装文件夹中,找到相应的文件,比较一下便知!

sbit P1_0 = P1 ^ 0;

void main (void)

{

while(1)

{

P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效}

}

就那么简单,我们就把接在单片机P1_0 上的 LED点亮了,当然 LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。

P1_0 = 0;类似与C语言中的赋值语句,即把的电平。那么这样就能达到了我们预先的要求了。

状态,即一直输出低电平。如果我们要试着点亮其他的0赋给单片机的P1_0 引脚 , 让它输出相应while(1)语句只是让单片机工作在死循环LED,也类似上述语句。这里就不再

讲了。

点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可

以让几个LED依次按顺序亮呢?答案是肯定的!其实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8 个 LED分别接在P1 口的 8 个引脚上。硬件连接,在P1_1--P1_7 上再接 7 个 LED即可。例程如下:

#include

sbit P1_0 = P1 ^ 0;

sbit P1_1 = P1 ^ 1;

sbit P1_2 = P1 ^ 2;

sbit P1_3 = P1 ^ 3;

sbit P1_4 = P1 ^ 4;

sbit P1_5 = P1 ^ 5;

sbit P1_6 = P1 ^ 6;

sbit P1_7 = P1 ^ 7;

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++); //

}//i从

一个 ;表示空语句,CPU空转。

0 加到 125, CPU大概就耗时 1 毫秒

}

void main(void) {

while(1)

{

P1_0 = 0;

Delay(250);

P1_0 = 1;

P1_1 = 0;

Delay(250);

P1_1 = 1;

P1_2 = 0;

Delay(250);

P1_2 = 1;

P1_3 = 0;

Delay(250);

P1_3 = 1;

P1_4 = 0;

Delay(250);

P1_4 = 1;

P1_5 = 0;

Delay(250);

P1_5 = 1;

P1_6 = 0;

Delay(250);

P1_6 = 1;

P1_7 = 0;

Delay(250);

P1_7 = 1;

}

}

sbit定义位变量,unsigned char a定义无符字符型变量a,以节省单片机内部资源,

其有效值为 0~255。main 函数调用 Delay() 函数。Delay 函数使单片机空转, LED持续点亮后,再灭,下一个 LED亮。 while(1) 产生循环。

(三)

上面我们讲了如何使LED产生流动,但是你是否发现一个问题:写的太冗长了!能不能

再简单点呢?可以!可以使用C51 的内部函数INTRINS.H 实现。函数unsigned char

_crol_(unsigned char a, unsigned char n)可以使变量 a 循环左移n 位,如果我们先给

P1 口赋 0000 0001 那么当 n 为 1 时,便会产生和上面一样的效果!

#include

#include

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++);

}

}

void main(void)

{

unsigned char b, i;

while(1)

{

b = 0xfe;

for(i = 0; i < 8; i++)

{

P1 = _crol_(b, 1);

b = P1;

Delay(250);

}

}

}

INTRINS.H 函数中的unsigned char _cror_(unsigned char a, unsigned char n)右移也可以实现同样的效果!这里就不再累述。

流水灯的花样很多,我还写过那种拉幕式的流动等,程序很简单,有兴趣的朋友,可以

自己试着写写!

对了,讲了那么多,有些朋友一定还不知道编译软件怎么用?这里给大家介绍几个吧?

WAVE(伟福)大家一定听说过吧!还有一个就是KEIL2,我用的就是KEIL2 ,下面就来讲讲如

何使用 KEIL2 这个编译软件!

1.安装软件,这个应该不用再讲了吧!

2. 安装完后,启动KEIL 软件左击Project-->New Project-->输入文件名-->选择我们所以使用的芯片(这里我们一般用到Atmel 的 AT89C51或 AT89C2051,点确定。

3. 点 File-->New--> 输入我们编写的程序,保存为 .C 文件。(一般情况下,我们保存的文件名和

前面的工程名一样。)

4.展开 Target 1 --> 右击 Source Group 1 -->Add Files to Group 'Source Group 1'-->

选择刚才保存的 .C 文件点击 ADD后,关闭对话框。这样 .C 文件就被加到了Source Group 1 下。

5. 右击 Target 1-->Options for'Target 1' -->Target中填写晶体的大小,Output 中,在 Create HEX Files前打上钩,点确定。

6. 点 Project-->Rebuild All Traget Files,若提示

creating hex file from "XXX"...

"XXX" - 0 Error(s), 0 Waring(s).

表示编译和生成 HEX文件成功!接下来的就是把 HEX文件烧到单片机中,或是仿真器上,看是

否达到预先的目的!

嘿嘿!现在是否自己好有成就感了,如果让你去做个流水彩灯,开发一个简单的产品,只要加上驱动电路,就可以做出漂亮的流动彩灯了!到现在为止,你应该知道单片机的功能有

多强大了吧,如果单纯的用数字电路或模拟电路的知识去设计一个流动彩灯,可能要花点工

夫和时间才行,有了单片机,那就不一样了,你只要写程序控制他就行!有人说过这样一句

话,也并不无道理的,学单片机,程序思想很重要!

(四)

呵呵,朋友!相信你的流水灯也做的不错了吧,现在能玩出几种花样了?你可能会说,

只要你想得到,想怎么流就怎么流!呵呵,是的。但是工程师们设计这么一个单片机,并不

是只为了让它做流水灯的,那样也太浪费点了吧... ^_^

学过数字电路的朋友,一定动手做过8 路或者 6 路的抢答器。用纯粹的数字电路知识来

做,自己设计电路,感到比较困难!抢答器上用的显示器多为7 段数码管,这里我们来讲讲,如何用单片机让数码管显示0-8 。抢答器的实现,我们放到后面再来探讨,因为抢答器还涉

及了键盘的内容。8 段数码管分为共阴和共阳两种。8 段数码管是由8 个 LED组成(还包括一个小数点)。若为共阳,则 8 个 LED的阳级是连接在一起的,同理若为共阴,则阴极连接在一起。 8 个 LED对应的标号如下:

a

__

f | | b

|__|

|g | c

e |__| . dp

d

一般情况下,为了计算或取码的方便,我们把a-dp依次接到单片机某个口上的

Px.0--Px.7上。x表示0,1,2,3其中的一个。这样我们只要给某个口,赋一个值,则相应

的 LED 段就被点亮,但是在硬件连接上要注意了:单片机可能不能直接驱动LED,所以我们可以通过控制三级管的导通或截止,来控制LED的亮与灭!

如果我们把共阴的数码管的a--dp依次接到单片机的P0.0--P0.7上,注意:P0口需接上拉电阻。何为上拉电阻,简单的说,就是把电平拉高,以提高驱动能力。那么比如: P0 = 0X3F;则显示为数字0。因为0X3F即为2进制的0011 1111我们低位往高位数,依次为1111 1100,其 I/O 的电平分别为高、高、高、高、高、高、低、低,即对应的a--dp为亮、亮、亮、亮、亮、亮、灭、灭,由上图我们可以看出g 和 dp 段不亮其他段均亮,即为我们所看到的数字0字样。其他的数字或字符,也同理可以得到。但是有些朋友就会问,那我们每取一个字模,

岂不是很麻烦?还有自己考虑高低电平什么的?^-^呵呵,其实网上有很多LED取模软件,如果有一定计算机编程语言的朋友,也可以试着自己写个取模的程序,让计算机为我们计算,诸如上述0X3F的数值。

#include

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++);

}

}

void main(void)

{

P0 = 0X3F; //显示0

Delay(250);//延时

P0= 0X00;//短暂的关闭显示,若不关闭,可能会造成显示模糊不清。

P0= 0X06; //显示 1

Delay(250);

P0= 0X00;

...//以下显示数字2-F ,略。

}

看到这里,想必大家一定可以把0-F显示出来了吧!但是如果要你显示两位数,三位数

呢?或许,有的朋友会这么想:在P0 口上接一个数码管,再在P1 口上接个数码管!但是,如果要显示 4 位、 5 位的数字呢?那岂不是一块AT8951 都接不过来!难到就不能接4位或 5位以上的吗?肯定不是的!

说到这里,我们来讲讲数码管的显示方式,可分为两种:动态扫描和静态显示。上面我

们所说的即为静态显示。但是如果我们采用动态扫描显示,那么就可以解决上面的问题,即

可以显示多个数码管了。上面我们所说的静态显示把数码管的COM脚接至 VCC或 GND端,

他的接至 PX口上,这样只要 PX口上输出相应的高低电平,就可以显示对应的数字或字符。

但是如果我们采用动态扫描的方法,比如显示 6 个数码管,硬件连接可以这样解决:a--dp 还是接至 P0.0--P0.7 上,还有 6 个 COM脚再接至另外口的P2.0--P2.5。 P0 口作段选(控制数字字符) P2 口作位选(选通哪个数码管导通)这样我们控制P0 和 P2 口就可以控制 6 个数码管了。但是,细心的朋友,会问这样的问题:P2 位选,是让数码管一个一个亮的,那还是

不能控制 6 个一起亮或灭嘛!?^_^想想好象是对的哦?怎么办... 难道错了?

嘿嘿,问你个问题?黑夜里,拿着一支烟,在你面前快速的晃动,你会发现什么样的现

象?是不是原本不连续的点变成了一条看上去连续的曲线或者直线!再回过头来,仔细想想

我们的数码管!原理是一样的,你可别忘了,我们的单片机可是一个计算机哦,计算机的运

算速度,大家可想而知吧!

这里再说说 51 单片机的机器周期和时钟周期等概念。所谓机器周期就是访问一次存储器

的时间。而 1 个机器周期包括 12 个时钟周期。如果单片机工作在12M晶体下,那么一个时钟周期为: 1/12 微妙。一个机器周期12*1/12= 1 微妙。如果晶体为6M,时钟周期和机器周期各是多少呢?在汇编中,我们还要关心,指令执行的机器周期长短不一,有1个周期、 2个周期和 4 个周期等。

说着说着,跑了这么远了 ...还是回到原来的话题,如果我们把位选的P2 也看作上面的“烟”一划而过,那么我们看到的是不是 6 个一起亮或一起灭了!^_^哈哈,原来如此 ...记住,在任何某一时刻,有且只有一个数码管能发光。如果你能把这句话理解了,你是真明

白我的意思了!朋友,现在给你个任务,让 6 个数码管分别显示1、2、3、4、 5、 6。看你自己可以搞定不?你自己先试着写写看咯...

#include

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++);

}

}

void main(void)

{

while(1)

{

P0= 0x06;//1的码段

P2= 0x01;//选通一位,或者P2_0 = 1;

Delay(20);//延时约 20 毫秒

P0= 0X00;//关闭显示

P0= 0x5b;//2的码段

P2= 0x02; //选通一位,或者P2_1 = 1;

Delay(20);

P0= 0X00;

P0= 0x4f;//3的码段

P2= 0x04; //选通一位,或者P2_2 = 1;

Delay(20);

P0= 0X00;

P0= 0x66;//4的码段

P2= 0x08; //选通一位,或者P2_3 = 1;

Delay(20);

P0= 0X00;

P0= 0x6d;//5的码段

P2= 0x10;//选通一位,或者P2_4 = 1;

Delay(20);

P0= 0X00;

P0= 0x7d;//6的码段

P2= 0x20;//选通一位,或者P2_5 = 1;

Delay(20);

P0= 0X00;

}

}

(五)

相信大家一定见过数字时钟,教学楼大厅一定有吧。每次路过,基本上只是随便瞟上一

眼,根本没去想过他的工作原理什么。但是今天你也可以把他做出来了,是不是觉得自己很

有成就感呢!呵呵!^_^

接上面所讲的,我们先来做个简单的实验:在一个数码管上轮流显示0--9这10个数字。还楞着干什么,快动手写程序呀!好象有点难哦,要不先不要往下看了,嘿嘿,关机吧,自

己先去想想,怎么样?

#include

unsigned char code ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9SEG_TAB[

数字

]

void Delay(unsigned int a) //unsigned int定义为无符整形,取值范围为0--32768 {

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++);

}

}

void main(void)

{

unsigned char i;

while(1)

{

for(i = 0; i < 10; i++)

{

P0 = SEG_TAB[ i ]; //

P2 = 0X01;

Delay(1000);

取 SEG_TAB数组中的值

}

}

}

是不是显示从 0--9 ,跳动显示,你的心是不是也跟着一起跳呀,离我们的目标又迈进了

一步!不错,继续努力!

上面只显示了一个数码管的数字0--9 ,但是怎么样要让他显示 6 个数字呢?这样我们就可以做个时钟出来玩玩了!还记不记得我们前面讲过的P2 口的位选作用!嘿嘿,没忘记就好!

#include

unsigned char hour = 12, min = 0, sec = 0;

unsigned char code

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9SEG_TAB[

数字

]=

void Delay(unsigned char a)

{

unsigned char i;

while( --a != 0)

{

for(i = 0; i < 125; i++);

}

}

void disp(void)

{

P0= SEG_TAB[ sec % 10 ];//显示秒的个位P2= 0X01;

Delay(15);

P2= 0;

P0= SEG_TAB[ sec / 10 ];//显示秒的十位P2= 0X02;

Delay(15);

P2= 0;

P0= SEG_TAB[ min % 10 ];//显示分的个位P2= 0X04;

Delay(15);

P2= 0;

P0= SEG_TAB[ min / 10 ];//显示分的十位P2= 0X08;

Delay(15);

P2= 0;

P0= SEG_TAB[ hour % 10 ];//显示时的个位P2= 0X10;

Delay(15);

P2= 0;

P0= SEG_TAB[ hour / 10 ];//显示时的十位P2= 0X20;

Delay(15);

P2= 0;

}

void main(void)

{

while( 1 )

{

disp( );

}

}

编译烧录芯片后,观察运行现象。矣...怎么一直显示12: 00: 00,难道是时钟没有启动?还是,另外的原因呢?哦,原来是3个变量sec,min,hour初始化后,其值一直没有

改变!那我们怎么样才能让他改变数值呢?有的朋友一定会这么认为:让秒个位延时 1 秒,后加 1,而秒十位延时10 秒后,再加1,一直加到6,分个位加1,依次类推 ...这样的想法

是不错,但是朋友你有没有想过C语言的一般延时(除非你把他放到中断里)极不精确!这

样累计下来,一天24 小时的误差,肯定很大很大,我曾经也用延时的方法写过时钟, 1 个小时误差 8 秒,那是个什么概念!一天24 小时就要24*8=192 ,约为 3 分钟,一个月就是10 分钟... 有没有其他的方法可以改进些呢?有!这里就要涉及到单片机中另一个比较重要的核心部

分:单片机的中断和定时器的运用!想写出比较精确(这里说的只的相对前面的做法而言

比较精确而已,如果要做更加精确的时钟,用时钟芯片比较好点,常用的有 DS12887和 DS1302

等)的时钟程序,就一定要调用中断和定时器。还是大家先看看教材和书吧,毕竟人家出的

书,肯定比我要写的系统多了,下面我们再来简单的讲讲!

(六)

什么是中断呢?讲个比较通俗的例子:比如你正在家中看电视,突然电话响了,你的第

一反应是什么?是不是先跑过去接电话!接完电话后,继续看电视。这就是个中断的例子,

中断是由电话引起了,你跑过去就是响应中断,接电话就是中断的处理!接完电话后,接续

看电视,即恢复中断,等待下个中断的到来!

但是这个好象和单片机没什么联系呀?有的朋友或许会这样疑问。是的。单片机当然不

会看电视了,也不会接电话了! ^_^但是,类比一下:比如单片机正在执行某个任务,

突然要有更重要的事件,要求单片机响应,单片机就会应答响应,去执行更为重要的任务(中

断处理),原来的任务就继续等待(现场的保护)。执行完更重要的任务后,回到中断的入口

处,继续执行原来的任务(现场中断的恢复)。 51 系列的单片机共有 5 个中断源,分别为:

外中断 0 、定时器T0 中断、外中断1、定时器T1 中断、串口中断。

或许,有些朋友已经大概领会了其中的意思,有些朋友还迷迷糊糊。不过不要紧,我们

继续往下看,下面我们来讲讲单片机的定时器是什么?如何工作的?定时器,大家从字面上就

可以看出其大概的意思吧?简单的说:就是起定时作用!也就是让单片机计数。定时器分

为:方式 0 方式 1、方式 2 和方式 3 等 4 种工作方式。有些朋友一定会问:定时器如何启动?

风扇的定时器,相信大家一定都用过吧!但是单片机的定时器,该如何启动呢?总不该也用

手一拧定时器吧! ^_^当然不是,我们只要给单片机一些指令,就可以启动定时器了!下面

我们就定时器0,来说说怎么启动定时器0。

TMOD = 0X01;//设置定时器0 工作方式TH0 = (65536 - 5000) / 256;//载入高TL0 = (65536 - 5000) % 256;//载入低TR0 = 1;//启动定时器0

8 位初值8 位初值

^_^,简单吧,这样我们就可以把定时器启动了。其中TMOD为 T/C 方式控制寄存器:

D7D6D5D4D3D2D1D0

__

GATE C/T M1M0GATE C/T M1 M0

|___________________||___________________|

|T/C1||T/C0|

C/T就是 counter(记数器)和 timer(定时器)的选择位,若值为1,则作计数器用。为 0,则为定时期用! GATE为门控位。 M1和 M0工作方式的选择:若 M1=0;M0=0 则为方

式0:13 位定时 / 记数器。若 M1=0;M0=1则为方式1,16 定时 / 记数器。若 M1=1;M0=0则为方式2,自动装载 8 位定时 / 记数器。若 M1=1;M0=1则为方式 3,只适用于 T/C0,2 个 8 位定时 / 记数器。

说了一大堆,感到有点困惑了吧。那我们还是来说说上面的。TMOD= 0X01; // 至于为什么是 0X01,大家看:我们选择的是定时器0 方式 0,所以 T/C1 全为 0,而 T/C0 的 M1为 0。M0为 1,所以 D0-D7 为 0X01;0X01 表示的是16 进制数,这个大家应该都知道吧!还有 D0-D7表示的是 2 进制数。还需要转换一下!

TH0 = (65536 - 5000) / 256;//载入高8 位初值。若在12M晶体下,定时 5000 微秒,即为 5 毫秒;但是如果不是在 12M下,那又该怎么计算了呢?如果是11.0592M 呢?还记不记得,我们前面讲过的机器周期和时钟周期的概念?^_^ 忘了,还是看看前面吧!呵呵!没事,学习嘛,忘了再翻翻书,看看就可以了!其实上诉的5000=1*C很显然 C=5000,但是如果是 11.0592M 那么就不是 1 了,应该是 1.085了,那么 5000= 1.085 * C,则 C 就为 5000 / 1.085 = ? 具体多少,大家自己去算算吧?同理TL0 也是一样的!但是,细心的朋友会发现

网上或者是资料上的TH0, TL0 并不是和上面一样的,而是直接TH0 = 0XEC; TL0 = 0X78是不是和上面的一样的,别忘了单片机也是计算机的一种哦。用 C 的话,直接写上计算公式就行,计算就交给单片机完成。

TR0= 1;这句就是启动定时器0,开始记数!哦,还有一点,有些朋友会问,你是65536是哪里来的呢?呵呵你可别忘了:设置定时器0 工作方式 0是16位的( 2 的 16 次方是多少,自己算算就知道了)简单吧?但是如何和中断一起使用呢?请继续看下面的讲解!

TMOD = 0X01;//设置定时器0 工作方式TH0 = (65536 - 5000) / 256;//载入高TL0 = (65536 - 5000) % 256;//载入低TR0 = 1;//启动定时器0

8 位初值8 位初值

EA = 1;//开总中断

ET0 = 1;//开定时器中断。若为0 则表示关闭!

这样我们,就初始化定时器T0 和中断了,也就是定时器满 5 毫秒后,产生一次中断。产生中断后,我们怎么处理呢?嘿嘿!仔细想想?^_^

每次中断后,我们可以让一个变量自加1,那么 200 次中断后,不就是 1 秒的时间了吗?比起上面我们说的延时来出来是不是更加精确多了呢?那是肯定的!但是想想 1 秒种的时间就让单片机产生那么多次的中断,单片机会不会累着呢?恩,那么不好。如果在12M的晶体下,

T0 每次中断不是可以产生最多65.336 毫秒的时间吗?那么我们让他每

50 毫秒中断一次好了!这样我们就20 次搞定一秒的时间了!·爽·

好了,讲了那么多,现在我们来写个时间的程序吧!^_^

#include

#define HI((65536 - 50000) / 256)

#define LO((65536 - 50000) % 256)

#define _TH0_TL0_(65536 - 50000)

#define M20//(1000/25)

/*******************************************************************************

***************/

unsigned hou = 12, min = 0, sec = 0;

unsigned char SEG_TAB_B[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//0-9 数字

unsigned char SEG_TAB_A[]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//0.-9.数字

/*******************************************************************************

**************/

void Delay(unsigned char a)//延时程序a*1MS

{

unsigned char j;

while(a-- != 0)

{

for (j = 0; j < 125; j++);

}

}

/*******************************************************************************

**************/

void Disp(void)//数码管显示

{

P2_0 = 1;

P1 = SEG_TAB_B[ hou / 10 ];

Delay(5);

P2_0 = 0;

P2_1 = 1;

P1 = SEG_TAB_A[ hou % 10 ];

Delay(5);

P2_1 = 0;

P2_2 = 1;

P1 = SEG_TAB_B[ min / 10 ];

Delay(5);

P2_2 = 0;

P2_3 = 1;

P1 =S EG_TAB_A[ min % 10 ];

Delay(5);

P2_3 = 0;

P2_4 = 1;

P1 = SEG_TAB_B[ sec / 10 ];

Delay(5);

P2_4 = 0;

P2_5 = 1;

P1 = SEG_TAB_B[ sec % 10 ];

Delay(5);

P2_5 = 0;

}

/*******************************************************************************

*************/

void IsrTimer0(void) interrupt 1 using 1 //定时50ms

{

static unsigned char count = 0; //定义静态变量count

count++;

if(count == M)

{

count = 0;

sec++;

if(sec == 60)

{

min++;

sec = 0;

if(min == 60)

{

hou++;

min = 0;

if(hou == 24)

{

hou = 0;

}

}//if

}//if

}//if

}

/*******************************************************************************

***********/

void Timer0Init(void) //定时器0

{

TMOD = 0x01;

TH0 = HI;

TL0 = LO;

TR0 = 1;

ET0 = 1;

EA=1;

}

/*******************************************************************************

***********/

void main(void) //主函数

{

Timer0Init();

while(1)

{

Disp();

}

}

简单吧,还是有点看不懂哦,那你自己慢慢体会吧,如果你自己能写个时钟程序来,那

么你的 51 单片机也就学了80 % 了。中断和定时/ 记数器器,是个很重要的东西,几乎用到

单片机的地方都会涉及到中断和定时!所以大家要好好掌握哦!^_^

哈哈,赶紧编译HEX文件,搭好硬件,烧入单片机,上电看看效果先!呵呵,现在你应

该有成就感了吧,想不到一个时钟居然那么简单,嘿嘿!但是问题来了!时钟虽然做出来了,但是他的精度怎么样呢?一两个小时,或许看不出什么误差,但是一天或者一年呢?晕,我

的天呀,要是按年来算的话,那这个时钟根本没有实用价值!人家都说用 C 写不出,精度高

的时钟程序来的!!!是不是有点后悔了,去学汇编吧!但是既然选择了C,那么就不要后悔!嘿嘿,想想 C 的高级语言,怎么会输给汇编呢^_^呵呵!看下面这段代码:

static unsigned char count = 0;

TR0 = 0;

TL0 += (_TH0_TL0_ + 9) % 256;

TH0 += (_TH0_TL0_ + 9) / 256 + (char)CY;

TR0 = 1;

count++;

在中断处理服务程序中,我们加入上面的代码。TR0 = 0;先关闭定时器T0,然后重新

给TH0和 TL0 赋值,再开启 TR0 = 1; 烧入单片机看看效果,怎么样,你第一次精确多了吧。但

是还是有误差!郁闷!为什么呢?那是硬件造成的误差,我们可以用软件来弥补!我们先

把时钟点亮,让他走上几个小时或者是几天,看看到底误差是多少!取个平均值。(这里比如我

们 10 小时快 1 秒)那么可以通过以下语句

if(hour % 10 = 0)

{

sec--;

}

来弥补!这样可能会出现这样的现象:秒直接跳变!我们可以再通过细分来实现,不要10小时那么大,小些的就行!具体的操作还是留给朋友们吧!

(七)

这回我们来讲讲键盘,大家肯定见过银行柜员机吧,取钱输入密码就要用到键盘,超市

购物取回寄存物品要输入密码,还有你现在在用的PC 机的键盘。但是键盘的是怎么工作的呢?一般有 2 种方式:( 1)扫描法,不断扫描键盘的状态,送CPU判断并处理。如果键盘数目一大的话,显然不适合(2)线反转法,通过行列状态的改变来判断有无键被按下!

现在我们在 P1 口接个 4*4的键盘, P1.0 -- P1.3 接行 ,P1.4---P1.7接列,再接 4个 4K7的上拉电阻至 VCC。代码如下:

//----键盘扫描法程序 -------

//----用数码管显示相应的键值-----

//P1.0-- P1.3 接行 -------

//P1.4---P1.7接列 -------

#include

unsigned char code tab[ ]={0x3F,0x06,0x5B,0x4F,

0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,

0x39,0x5E,0x79,0x71};//0到 F 的16 个键植

/******************************************************************************/ void Delayt(unsigned char

延时函数

t)// {

unsigned char i;

for(t=0;i<=t;t++)

for(i=0;i<255;i++);

}

/******************************************************************************/ bit pkey(void)//判断键的否被按下,通过返回值确定

{

P1=0xf0;

if(P1!=0xf0)

{

Delayt(25);

if(P1!=0xf0)

return 1;

else

return 0;

}

else

return 0;

}

/******************************************************************************/ void main(void)//主函数

{

unsigned char key,j,k,s;

while(1)

{

if(pkey()==1)

{

P1=0xfe;

k=0xfe;

for(j=0;j<4;j++)

{

s=P1&0xf0;

switch(s)

{

case 0xe0: key=4*j+0; break;

case 0xd0: key=4*j+1; break;

case 0xb0: key=4*j+2; break;

case 0x70: key=4*j+3; break;

default: break;

}

k=(k<<1)|0x01;

P1=k;

}//for

}//if

//if((P1&0xf0)==0xf0)

P0=tab[key];

P2=1;

Delayt(50);

}//while

}

还有一种就是线反转法,实现如下:

1.和扫描法相同,把列线置低电平,行置高,读行状态

2.与 1 相反,把行置低,列置高,读列状态

3. 若有键按下,则为 2 次所读状态的结果即为键所在的位置,这样 2 次输出和 2 次读入可以完成键的识别!!!

子函数如下:

unsigned char key_vscan(void)

{

unsigned char row, col;

P1 = 0xF0;

row = P1&0xF0;

row = row&0xF0;

P1 = 0x0F;

col = P1&0x0F;

col = col&0x0F;

return(key_val(row|col));

}

下面我们再来介绍介绍一键多能的程序,即按下一个键,可以执行不同的命令!

void main (void)

{

unsigned char b = 0;

while( 1 )

{

if(P1_0 == 0)

{

Delay(10);

if(P1_0 == 0)

{

b++;

if( b == N )//N为键的功能数目

{

b = 0;

}

while(P3_2 == 0);//等待键松开

}

}

switch( b )

{

case 1: P2_0 = 0xFE;

break;

case 2: P2_1 = 0xfd;

//..............add your code here!

}

}

}

(八) // 以上的文字写于 2005 年 5 月 , 由于时间关系 , 一直未能将此完成 , 最近闲着无聊又接着写了些文字 , 以下写于 2006 年 6 月 5 日 !

在这里我想对上面一点,作个简单的说明,如果你是刚学单片机,那么你写的代码是VERY GOOD的,但是如果把上面的代码应用于产品的话,那么我可以告诉你,上面所写的按

键识别代码全部是垃圾代码,^_^, 这下傻了吧,呵呵。为什么?我的按键不是可以正常工作吗?

请看这里:

if(P1_0 == 0)

{

Delay(10);//问题就在这里,你让CPU在这里空转?

if(P1_0 == 0)

{

//...add your code here.

}

}

进入第 1 个 if 判断语句后,就进入了 Delay(10); 再看 Delay 函数,完全让 CPU执行(;空语句),所以在做大的产品或者代码时,这个是非常耗费单片机内部资源的。有什么办法吗?呵呵,那是肯定的。

解决方法大致有如下 2 种:

1.将延时函数放在中断中,在中断里查询延时的标志位。 /* 不仅仅用于键盘识别 , 亦可以用于其他的延时代码,见 EX1*/

2. 直接在中断中查询按键的标志位.//见EX2。

EX1:

unsigned char Delaytime;

void Delay(unsigned char Delaytime)//

{

while(Delaytime !=0 );//等在这里,直到Delaytime为0。

}

void Timer0_interrupt(void) interrupt 1 using 2

{

if(Delaytime != )

Delaytime--;

//...add your other code here

}

Delay 函数具体延时多长时间,就要看你设定的 T0 定时器中断和 Delaytime 的乘积,比如你的定时器中断为 50MS, Delaytime 为 20 的话,那么 50MS*20=1S。

EX2:

#define Press_key = P2 ^ 7;//定义按键的I/O

void P_key(void)

{

char new_value,old_value;

new_value = Press_key;

if(new_value && !old_value)//识别按键。

{

Turn_On_LEd( );

//...add your other code here.

}

old_value = new_value;

}

void Timer0_interrupt(void) interrupt 1 using 2

{

P_key();

//...add your other code

}

当然在实际过程当中,并不是如此简单简洁的,还希望大家能够举一反三哦... ^_^。

c语言实验报告总结

篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后

输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在

一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。

大一学生C语言学习心得

大一学生C语言学习心得 The Standardization Office was revised on the afternoon of December 13, 2020

C语言学习心得 通过半个学期的学习,我由以前的对C语言的懵懂与好奇逐渐转变为熟悉与理性,也逐渐发现了其中的博大精深。还是在上个学期的时候,我就渴望着学习C语言,而当我真正学习他的时候,却发现它并非我想象中的那么好学。我还记得刚上第一节课的时候,我是满怀信心的去听的,到最后却听的一头雾水。随着课程的深入,我发现自己越来越跟不上老师的进度,这让我感到很心慌。我觉得自己应该静下心来好好学学,然后我就从第一章开始慢慢的看,通过反复的看,我慢慢的对C语言的总体结构有了一个了解,也知道了#include<>,main() { }为一个C语言程序最基本的组成部分,有了这个框架的总体意识,我对C语言也有了一个入门。通过进一步的学习,我还发现其实C 语言是由许许多多的小分支组成的,比如第二章的“顺序结构程序设计”,第三章的“分支结构程序设计”,第四章的“循环结构程序设计”以及第五章的“数组”。通过这些小的组成部分,我就能编写出一些功能比较复杂的程序出来了。 以上是我对C语言的总体认识,下面我想说一下我的编程体会。我现在发现,对于书上的代码,我能够看懂他们的意识,但当自己去编写的时候,却相当的不顺利,我觉得主要有以下几点困难:一是对于在编程的时候没有一个总体的思路,我不知道应该如何来进行一个总体的布局,还有我不知道应该如何来运用各种语句,比如对于“顺序结构程序设计”,我对scanf函数就感到很难,还

中国传媒大学语言学及应用语言学专业方向介绍

中国传媒大学语言学及应用语言学专业方 向介绍 (感谢凯程罗老师对本文的有益指导.) 语言学及应用语言学专业(050102) 1.应用语言学方向 应用语言学方向是适应我国应用语言学发展需要设立的研究方向,它以“人机交际”和人际交际的语言理论和技能、技术为主要研究对象。作为跨学科的语言应用学科,它同人文科学、自然科学(数学、物理学、信息科学、计算机科学等)都有密切关系。 本方向有社会语言学和计算语言学两个研究领域。社会语言学,重在研究语言在社会生活中的应用。它结合中国社会的文化背景,对语言应用进行多角度、全方位的研究,总结社会生活不同领域(如旅游、交通、商贸、公关、司法、教育等)人际交往中语言应用的特殊规律,对语言实践提供理论指导,并为我国语言文字规范化工作服务。计算语言学是利用计算机对人类自然语言处理和加工的科学,它是适应信息时代的要求而产生和发展起来的一门边缘交叉性学科。机器翻译、自然语言理解、语音识别与合成等都是本方向研究的重要课题,这些课题的研究对人工智能计算机的研制,起着举足轻重的作用。 本方向将发挥中国传媒大学文、理、工多科院校、以及与教育部语言应用研究所合作的优势,为二十一世纪的应用语言学培养高层次专门人才。 2.对外汉语教学方向 本研究方向以对外汉语教学研究为重点。汉语教学法历来都是汉语言基础理论体系中的重要组成部分,汉语教学法研究,也是汉语言基础理论研究中不可缺少的部分。 自现代汉语诞生之日起,其教学过程即随之开始;应用语言学的产生和发展,更进一步推动了汉语教学研究的理论升华。特别是近几十年来,汉语教学研究,无论是对内的,还是对外的,都越来越受到重视。从建立完整的理论体系的角度说,我校有国内著名语言学家为学科带头人的现代汉语语法、修辞研究的深厚基础,最近又增添了应用语言学研究的雄厚实力,如果再加上汉语教学研究理论的参与,必将使汉语语言理论研究体系更趋完善。我校作为全国广播电视人才培养基地,多年来一直担负着为广播电视事业培养专门人才的重要任务。如何在汉语教学中把结构、意义和交际功能三者有机地结合起来,更好地培养学生实际运用语言的能力,也是多年来面临的理论与实际的大问题。随着时代要求的不断提高,矛盾日益突出。汉语教学如何借鉴心理学、教育学等相关学科的研究成果,结合语言应用实际,力求走出一条新路子。 对外汉语教学专业人才的需求,近年来不断加大,国内各汉语教学机构为了在来华留学生的市场竞争中占有更多的份额,都纷纷把对外汉语教学高学历师资的竞争放到了首位。此外,全球性“汉语热”方兴未艾,特别是在进入新世纪之后,国内外汉语教学师资的需求量呈上升趋势。本方向将竭力培养对外汉语教学方面的高层次专门人才。 3. 语言信息处理方向 语言信息处理是语言学与计算机科学交叉形成的一门新型学科,是应用语言学的重要组成部分。 我国“十五”发展规划的重要方针之一,是大力推进信息化进程,以信息化带动工业化。

c语言实训心得

C语言实践心得体会 在这个星期里,我们在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。个人认为课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: 1、加深对课堂讲授内容的理解 课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。 通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。 2、熟悉程序开发环境、学习计算机系统的操作方法 一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 3、学习上机调试程序

c语言实验心得体会

c语言实验心得体会 篇一:C语言上机实验心得 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C 语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点: 1、学习耐心与细心不足,如scanf(“%d”,n);中的“”有时候会忘了。而在最后 输出时又错写成printf(“%d”,n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解

题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在 一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更

c语言课程设计心得体会文档2篇

c语言课程设计心得体会文档2篇C language course design experience document 编订:JinTai College

c语言课程设计心得体会文档2篇 小泰温馨提示:心得体会是指一种读书、实践后所写的感受性文字。语言类读书心得同数学札记相近;体会是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。本文档根据主题的心得体会内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 本文简要目录如下:【下载该文档后使用Word打开,按住键盘Ctrl键且鼠标单击目录内容即可跳转到对应篇章】 1、篇章1:c语言课程设计心得体会文档 2、篇章2:c语言课程设计的心得体会文档 篇章1:c语言课程设计心得体会文档 在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。 虽然在上个学期中,我们已经学习了《c 语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通

过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。 c语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。 在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。 这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自

c语言实验报告分析总结

c语言实验报告分析总结 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,以下是小编为大家整理分享的c语言实验报告分析总结。欢迎阅读。 c语言实验报告分析总结1 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握

它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解 课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为

c语言程序设计心得体会

c语言程序设计心得体会 本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意! 二十一世纪是计算机的世纪,是一个全新的世纪,计算机正逐步入侵我们的生活。刚开始接触计算机的时候感觉很新奇,那时觉得计算机很神秘,于是就产生了以后一定要熟练掌控计算机的念头。怀着这个愿望,我选择了计算机科学与技术为专业,有点兴奋又有点担忧,兴奋的是以后可以经常接触和了解计算机了,担忧的是我几乎没有任何基础,怕跟不上大家的步伐。有死党说我杞人忧天,结果证实我“忧”得不无道理。依然清楚地记得第一学期的上机课,每次上机老师都计分,所以经常手忙脚乱,用“惨不忍睹”来形容是最适合不过了。 紧张的一个学期过后,我们迎来了c语言的学习和一位风趣博学的老师。虽然刚开始学习c语言的时候大家都一筹莫展,但在老师的鼓励和教育下一步步地往前迈,很令人欣慰。在这之后的学习中仍然困难重重,然而“坚持到底就是胜利”这个坚定的信念激励着我们勇往直前。c语言课本的学习总算结束了,多么崎岖的一条学习之路。

大学的教育模式和中学有很大不同,从平常的课程安排和教学就可以知道,但是独立完成课程设计和写论文这种任务对我们来说无疑是一个很大的挑战。十七周开始进行课程设计,老师要求我们写一个计算器的程序,起初大家都被难倒了,然后开始一步步地摸索,先查找有关资料,画计算器的图形,写了好长一段程序才把图形搞定,可老师一看都不满意,要求我们用循环来做,“师”令如山,不得不听从,改吧,这一改又让大家死了好多脑细胞,感觉有点残忍。 完成了计算器的图形很有成就感,毕竟六月天坐在机子前不是令人愉快的事。接下来要进行计算器内部运算程序的设计,说实话,我根本就不知道要做,更不清楚如何着手,不是我妄自菲薄,独立完成这个程序设计根本就是不可能的事,可想而知只能寻求帮助了,但这个程序不是轻而易举就能完成的。有些积极的同学从网上搜索了好多有关这方面的资料,拼拼凑凑,进行了多次讨论,终于完成了这部分的设计,在同学的互相帮助下,大多数人都完成了最重要的一部分程序设计。 接下来就是用循环语句使按键上的数字有闪烁的功能,这个因为之前老师有过提点,所以相对简单一些。

2010年中国传媒大学考博语言学理论试题及答案

中国传媒大学2010年攻读博士学位研究生入学考 试 语言学理论试题 一.论述题。 1.必答题(40分) 就语言规划或语言规范化问题尽你所知进行论述。 2.选答题(30分,任选其一回答) A.就话语(也叫篇章、语篇)研究进行论述。 B.就形式主义语言学和功能主义语言学进行论述。 二.分析题(30分,每小题10分) 1.指出下面三个四字格之间的联系,分析形成的原因,并说明各自的表达效果。喜鹊登枝 喜上眉梢 喜上眉梢 2.下面两组句子,一组可逆,一组不可逆,请从认知角度解释。 我后悔死这件事了——这件事后悔死我了 我后悔这件事了——★这件事后悔我了 3.运用预设理论解释下面句子。

北京又要打击非法一日游了 中国传媒大学2010年攻读博士学位研究生入学考试 语言学理论试题 二.论述题。 1.必答题(40分) 就语言规划或语言规范化问题尽你所知进行论述。 (1)语言文字的合理发展,对一个国家或民族的发展具有不可估量的作用。国家或社会为了管理社会语言生活,对语言的现状及发展施加有计划有目的的影响以促进语言文字健康发展使其更好的尾社会服务而进行的各种工作就是语言规划。 (2)语言规划涉及的内容很多,主要包括民族共同语的确立和推广,民族共同语的规范和完善,语言选择,语言协调,语言调查,科技术语的统一和标准化,文字的创制和改革等。 (3)①语言文字立法是语言规划的一种体现。《中华人民共和国国家通用语言文字法》是语言政策的法律体现,对于加强语言文字工作有重要意义。②政府对语言的管理和影响表现在官方语言的选择上,外语教育也有语言选择问题,除了语言选择以外还有标准化问题,包括科技术语的标准化和语言规范化。 (4)语言规划的原则:语言规划必须尊重并且符合语言发展的客观规律,符合社会发展的需要,符合广大人民群众的意愿。避免两种倾向:一种是人在语言文字面前无能为力,无所作为;一种是过于夸大人的作用。

C语言学习心得体会

篇一:c语言心得体会作业 c语言心得体会 学习c语言已经一个学期了,刚开始学习的时候老是感觉力不从心。虽然认真听课了,但是并不能理解它。这种情况到了后来才有所改变。 之所以能有所改变,是因为本人找到了学习c语言的一些方法。由于c语言对于刚接触的学子,会感到很陌生。因为c语言所要用到的思维逻辑与我们平时的思维逻辑有所不一样。其显得更抽象。所以学习c语言,一定要打好基础。要把基础理解透彻。需要用到的语句要牢记,这样,在以后的运用当中,就能比较得心应手了。学习c语言的起步就是学习它的方法规则,如果把它学习得好在学习后面的时候就比较容易理。比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础,如果把它们都了解很好了,那么编起程序来就很得心应手。比如说if语句和switch语句,这两种条件语句都是用来执行判断功能的,那什么时侯用if 什么时侯用switch,如果很好地了解它们的结构和作用的话那么就能灵活运用:若它的条件分支是多个而且条件的值是一个确定的值时就可以选用switch。反之,在大多数情况下就用if。掌握了语言法规则,不一定就能编出程序来,其实学习编程就是要学习一种思想,一种思维方法,首先要确定一种算法,如从1加到100,判断润年等,我认为这些算法都是一种思维方法。画流程图就是在构建编写程序思路的过程,当画好一个流程图时编程思想也就出来了,程序也差不多了,再结合掌握的语言的方法规则,在计算机里实现就可以了。任何程序只要有思维,有想法,那么实现程序时就不会觉得无从下手。而要学习这种思维方法就是多做题,多读程序,学习别人好的思维方法,多想想一个程序还可不可以有另外一种方法来实现它。这样久而久之,自然会形成一种自己的思维方法。因此我认为不管学什么语言都是这样。 另外,良好的编程习惯也是学好c语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。 在学习的时候,我遇到过这么个情况。觉得c语言学起来很枯燥,很闷。后来才发现学习语言,是要有目的性。如果没有目的,你会发现自己在学习的过程中会很枯燥,会渐渐失去对c语言的学习兴趣。所以我们要有一个远大而又容易实现的目的,我要用c语言来做什么?再把这个最终的目的分成部分,让我们慢慢的一点一点的来完成它,这样在学习c语言的过程中,我们就会始终陶醉在一个又一个成功的喜悦里,让我们的学习越来越有兴趣。有一天,我们会发现:原来学习c语言真的是一件很有意思的事儿,而且学好c语言也不是很难么!学习c语言只看书也是不够的,我们要一边看书,一边上机做练习,或者在你学习了c语言的基础知识以后就可以找一些别人的程序来看,遇到不明白的函数可以再翻一下书,如果查书也理解不了,我们可以把他的程序输入到计算机里,情况好的话能够顺利通过编译,如果不能顺利执行,我们也同样可以学习到一些c语言调试方面的知识。课堂上要讲授许多关于c 语言的语法规则,听起来十分枯燥无味,也不容易记住。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正

2016年C语言实验报告

通知 各位老师: 本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1.统一用《武汉科技大学实验报告》本写。本学期交三次实验报告。 ①循环结构程序设计。 ②数组。 ③函数。 要求学生在完成以下实验报告,参考《C语言程序设计课程实验与题解》中的要求认真完成。 实验1 循环结构程序设计 一、实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3.熟悉break语句和continue语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } 输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。 三、编程序并上机调试运行。 1.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 解题思路:根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字,然后判断是否满足(某一三位数a=a的百位的立方+a的十位的立方+a的个位的立方)这个公式,满足这个三位数就是“水仙花数”。 2.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他

C语言学习心得体会篇

c语言学习心得体会一:c语言学习心得体会 c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我 们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了 几个比较重要的实际操作。包括了程序模块处理。简单界面程序。高级界面程序。程序的添加修改。用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程 的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计 方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 c语言学习心得体会二:c语言学习心得体会(1116字) c语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在 计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无 一例外,哪一个不是c语言写的?很多新型的语言如,c++,java,c#,j#,perl... 都是衍生自 c语言。掌握了c语言,可以说你就掌握了很多门语言。 学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必 修课程而且也是非计算机专业学习计算机基础的一门必修课程。所以作为我这个计算机专业的学 生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语 言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我 们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。同时,我觉得c 语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。 在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验: 要了解c语言就要从语法基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量 的定义方式(格式),其意义是什么(定义变量有什么用); 其次就是要我要怎么去运用它(我要用什么型式去应用它)。在c语言的命令行中所有的语句都是 有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的 就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是c语言的基础如果把它们 都了解很好了,那么你编起程序来就很得心应手了。比如说if else 和 switch case 这两种条件语句都是用来判断执行功能的,那我要什么时侯用if 什么时侯用 switch呢?如果你很好 地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个 字符值时就会选switch而不会选if。因为如果条件分支太多时要用if语句,这样一定会出现 if的嵌套,如果if的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在 降底。而switch就不同,它只要比较一次就可以找出条件的结果比起嵌套if它的效率就大大的

中国传媒06语言学及应用语言学

中国传媒大学2006年应用语言学考研试题 语言学理论 解释下列概念 互补分布 2、语义特征 3、屈折语 4、自源文字 5、隐喻 二、单项选择题 1、历史比较语言学出现在--------- A、19世纪中叶 B、20世纪初 C、19世纪初 D、20世纪中叶 3、从音质角度划分出来的最小语音单位是----------- A、音渡 B、音素 C、音位 D、音节 4、[p、t’、ts、k]这一组音的共同的区别特征是----------- A、不送气 B、清音 C、塞音 D、擦音 5、下列词语中的“子”是实语素的是---------- A、鸽子 B、傻子 C、莲子 D、日子 6、下列说法中正确的是 A、“老”可以同“新、旧、少、嫩”等构成反义词 B、“大”和“小”是绝对对立的反义词 C、“红”与“黑”这对反义词具有非此即彼的关系 D、“冷”和“热”是相对反义词 7、英语代词“我”,作主语时写作I,作宾语时写作me。这种变化时语法范畴中---------的表现。 A、性 B、树 C、格 D、人称 8、关于社会方言的形成,下列说法不正确的一项是--------- A、社会方言大多是在语言的相互接触中形成的 B、社会方言是随着社会的社群分化而产生的 C、一种语言的内部有可能形成社会方言 D、一种方言的内部有可能形成社会方言 9、克里奥尔语是指----------- A、用于特殊交际场合的皮钦语 B、功能单一,只能用于口头交际的一种混合语 C、结构简单,不可能得到充分发展的一种混合语 D、母语分化的皮钦语 10、下列各组内三个合成词构词类型不一致的是----------- A、天地宇宙阴阳 B、鱼子花儿锄头 C、改善揭露纠正 D、爸爸哥哥姐姐 三、分析题 1、请证明下列各组音素在汉语普通话中属于不同音位,还是同一音位的不同变体。[ t ]—[ t’ ] [ b ]—[ p ] [ i ]—[ u ] [ a ]—[ α ] 2用层次分析法分析下列词组(要求分析到词) 词汇是语言中反映社会发展变化最敏感的要素。 像流水一般晶莹剔透的月光。 3指出下列句子中划线词语的语义指向 小王把酒喝光了。 新买的球鞋也踢坏了。 4设置不同的语境,使“我等你半天了”这个语句形式表达不同的意思,呈现不同的交际效果(至少三个)。 5判断正误并说明理由。 语言是语言,言语是言语,二者完全不同,没有任何关系。 任何一种符号,都是由形式和内容两方面组成的。

C语言实验报告合集图文稿

C语言实验报告合集文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2;

b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为: 2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结) 《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容

c语言学习心得体会篇

c语言学习心得体会篇 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

c语言学习心得体会一:c语言学习心得体会 c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理。简单界面程序。高级界面程序。程序的添加修改。用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。 c语言学习心得体会二:c语言学习心得体会(1116字) c语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的 windows,unix,linux,mac,os/2,无一例外,哪一个不是c语言写的很多新型的语言如,c++,java,c#,j#,perl... 都是衍生自c语言。掌握了c语言,可以说你就掌握了很多门语言。 学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

C语言实验报告

郑州轻工业学院 实践报告 实现内容: OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件) 学号:541507020140 学生姓名:王红旭 专业班级:电子信息科学与技术15-01 所在院系:计算机与通信工程学院 指导教师:王秉政 成绩: 实践名称:上机实验课 来源课程:[0404230]C程序设计进阶 实践时间:2016.03-05 实践地点:科学校区实验楼301 报告撰写时间:2016.05.10 1123最佳校友(数组)

1实践目的 为了方便数组的管理和使用,提高程序设计的效率。 2 实践要求 熟练使用数组解决问题。 3 使用的技术、知识点、工具等 C语言程序设计书本教材,数组等。 4 需求分析和功能描述 要求;北京校友会每年举办两次,所有校友都有校友编号,每次到会的校友都在签到簿上写下自己的编号和姓名,在校友会成立5周年的聚会上将颁发“最佳校友奖”,该奖项颁发给到会次数最多的校友。现在请你编写程序,找出这个奖项的得主。若有多个校友并列第一,则均可获奖。 5 系统总体设计 #include int main() { int a[100]={0}; int i,n,max,k; while(scanf("%d",&n),n>=0) a[n]++; max=a[0]; for(i=1;i<100;i++) { if(a[i]>max) max=a[i]; } k=0; for(i=0;i<100;i++) { if(a[i]==max) { if(k==0) printf("%d",i); else printf(" %d",i); k++; } }

中传语言学及应用语言学考试大纲

中国传媒大学硕士研究生入学考试 “语言学理论”考试大纲 一、考试的总体要求 本考试大纲适用于报考中国传媒大学语言学与应用语言学专业硕士研究生的入学考试。语言学理论的主要内容包括:语言和语言学、语言的本质、语言的功能、语言结构、语言的运用、语言的历史、应用语言学、文字以及语言研究简史,等等。要求考生熟练掌握语言学理论的基本概念、基本原理,并具备综合运用所学知识以分析具体语言现象、解决实际问题的能力。 二、考试的内容 (一)语言和语言学 1.语言学的研究对象 (1)语言研究对象的演变及语言的概念(2)言语活动、语言、言语 2.语言学的学科体系 (1)规定语言学、描写语言学、解释语言学(2)历史语言学、历史比较语言学,历时语言学与共时语言学(3)理论语言学、应用语言学(4)普通语言学、语种语言学 (5)语言学的内部分支:语音学与音系学,词汇学与语义学,语法学;语用学、语篇分析(5)语言学的交叉学科和边缘学科 3.语言研究简史现代汉语》(修订本),胡裕树,上海教育出版社 ②《现代汉语》(增订三版),黄伯荣、廖序东,高教出版社 ③《古代汉语》王力,中华书局 ④《语音学教程》林焘、王理嘉,北大出版社 (1)传统语言学(语文学)(2)历史比较语言学(3)现代语言学:四大流派 (4)当代语言学:形式主义、功能主义、语序类型学、认知语言学 (二)语言的本质 1.语言作为符号系统 (1)符号与语言符号的概念(2)语言符号的特点(3)语言作为一个层级体系 (4)语言符号的组合关系和聚合关系 2.语言作为人类特有的现象 (1)语言能力(2)动物的语言和人类的语言的区别 (三)语言的功能 1.语言作为交际工具 (1)语言是人类社会的交际工具(2)语言是人类最重要的交际工具 2.语言作为思维工具 (1)语言与思维的关系(2)思维离不开语言的实验根据

c语言实验报告心得总结

c语言实验报告心得总结 c语言实验报告心得总结一在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期一周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲

课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收获。 通过这次实训,也使我们发现了许多问题。 在实训中,我们认识到自己还有很多的知识没学好,基础知识没理清,而且许多东西还要去翻书,去上网搜索。而且遇到一些小错误运行不出来,就会烦躁不安,觉得有些自暴自弃或者抱怨项目的变态,以后要克服,尽量保持一颗良好的心态,学好C语言,也学好用C语言编写一个按要求的系统。 还有就是对于未来,近程就是下学期,我觉得我还有许多方面需要提高。 首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。然后每天都能写一些程序,上网时候多看一些优秀的教程和优秀的代码。遇到问题时多和同学讨论,并且多弄出几套方案,多锻炼自己结局问题的能力和与同学合作的能力。 总之,这一切都成为我记忆里面的一个篇章,更是在C 语言编程上的一个里程碑。 c语言实验报告心得总结二在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,

相关主题