微处理器系统原理与应用设计-8-C语言入门实践-公开_第1页
微处理器系统原理与应用设计-8-C语言入门实践-公开_第2页
微处理器系统原理与应用设计-8-C语言入门实践-公开_第3页
微处理器系统原理与应用设计-8-C语言入门实践-公开_第4页
微处理器系统原理与应用设计-8-C语言入门实践-公开_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

平台安装一个免费专用的学习软件小熊猫Dev-Cpp(32位版)01文件目录先建文件夹Dev-Cpp,把解压后的所有文件全部放在该文件夹中/devcpp/download

下载绿色版直接解压双击devcpp.exe新建文件先建一个C语言程序文件test.c在菜单栏“文件”下选“新建”再选“源代码”会出现未命名文件在菜单栏“文件”下选“另存为”后出现对话框,选择存储目录,并为文件命名为test.c,确认后界面的文件名改为test.c输入测试程序代码运行程序编译和链接生成可执行文件程序使用的是文本(字母与数字)用编译器和链接器生成计算机认识的机器指令编译链接在菜单栏“运行”中选“编译”或直接点击图标

或按F9键若源代码没有错误,则可生成可执行文件,否则会报告错误。运行在菜单栏“运行”中选“运行”或直接点击图标

或按F10键程序运行,在控制台窗口显示“您好!HelloWorld!”,再按任一键程序结束变量赋值计算机用来帮助人类处理信息,实质是进行数据运算。运算量需要保存且还要赋值。02变量定义最简单运算是1+1=2最简单的问题是1+1=?小学生:2中学生:设和为s,根据题意可得s=1+1=2。将数用字母表示,建立了“和=加数+加数“的关系式将每个量表示出来两个加数为1,他们本身就是值,直接使用和需要一个符号来表示,故用字母s代替两个加数的值直接给出,和的值是计算获得的,需要保存操作加运算完成后把计算结果赋给s对需要保存的量分配一个空间命名且指明类型(表明空间的大小)需要分配空间的量称为变量值是可更改的量使用变量必须先定义如同数学中的要用一个字母作为未知数或变量时需要假设一样变量范围char型(字符型)unsignedchar型称为无符号字符型short型称为短整型 unsignedshort型称为无符号短整型long型称为长整型 unsignedlong型称为无符号长整型int型称为整型 unsignedint型称为无符号整型float型称为单精度浮点型 double型称为双精度实型。

类型值范围类型值范围整数char-128~127unsignedchar0-255short-32768~+32767unsignedshort0~65535long-32768~32767unsignedlong0~4294967295int-32768~32767unsignedint0~4294967295实数float-3.4×10-38~3.4×1038double-1.7×10-308~1.7×10308编程实现先定义一下和变量s只计算1+1,s取char型chars;规定每条语句用“;”来表示结束。求和,就是将运算结果赋给和变量,写做s=1+1赋值操作用“=”,把右边表达式的值赋给左边的变量相等比较操作用“==”,两边的表达式值进行比较必须有一个主程序main主程序中放置具体操作程序代码结束时采用返回整型值语句一定要有返回值,否则会报错在语句后面加点注释用“//”分隔运行调试要用调试工具来测试一下代码运行是否正确在菜单栏“运行”中选“调试”或直接点击图标

或按F5键,进入调试界面标号前面的箭头表示当前要执行的语句当前要执行语句为s=1+1监视栏加入s观察其值的变化在菜单栏“运行”中选“添加监视”,或直接点击图标键入s后确认,在左侧的竖栏中出现s的当前值点击图标

(单步进入)或按F8键箭头下移一行监视栏的s值变为2点击图标

(单步进入)或按F6键结束调试常用算术运算+(加)-(减)*(乘)/(除)两个都是整数时是整除%(求余)整除求余,只能是两个整数使用所有数学表达式中的“{、[、(”都用“(”代替,“}、]、)”都用“)”代替算术表达式中不允许出现“{、}、[、]”。{[(2+3)×2+2]÷4+2}×3

(((2+3)*2+2)/4+2)*3习题编程实现以下算术题采用数值表达式5-4=?1.1×2=?-120×100=?100÷8=?((4+8)÷3+1)×2.5=?类型的选取根据实际运算选取合适的类型才能保证运算不出错03变量表达最简单的问题是1+1=?假设两数分别为x和y,其和为s,即s=x+y。求当x=1、y=1时s的值。答:s=x+y=1+1=2程序代码:charx,y;chars;intmain(){ x=1; y=1; s=x+y; return0;}变量范围100+50=?charx,y;chars;intmain(){ x=100; y=50; s=x+y; return0;}每个变量都是有大小约束的,不能超过限制。char型变量值的范围是-128~127x和y在范围之内s最大只能到127,保存值150一定出错变量范围100+50=?s定义为unsignedchar型仅此例,不通用s定义为short型习题编程实现以下算术题采用变量表达式5-4=?1.1×2=?-120×100=?100÷8=?((4+8)÷3+1)×2.5=?函数函数是程序设计最为常用的模块化编程方法。04数学转化最简单的问题是1+1=?已知函数f(x,y)=x+y,求f(1,1)的值。解:f(1,1)=1+1=2f(x,y)的程序shortf(charx,chary){ returnx+y;}函数一个多输入(自变量)一个输出(因变量)的处理功能模块f是功能模块名,即函数名功能语句称为函数体以“{”开启、以“}“结束x和y是局部变量(自变量),保存输入的数值因变量的值是f(x,y)的输出采用return语句实现值的输出,因变量的值就是返回值函数调用调用在一个函数体内使用另一个函数子函数被调用的函数相对调用者调试函数外部无法监视到局部变量进入函数体可看到局部变量和全局变量凡是在函数外部定义的变量,称为全局变量。在函数体外和体内都可以使用;函数定义及函数体内定义的变量只能在函数体内使用,称为局部变量。局部变量在使用函数时有效,在函数结束后无效。习题编程实现以下算术题采用函数调用5-4=?1.1×2=?-120×100=?100÷8=?((4+8)÷3+1)×2.5=?变量作用域值是1并不代表只能为1。我是我,今天的我就是今天的我,绝对不是明天的我,不要用今天的我来定义我。05同名变量shortf(charx,chary){ returnx+y;}charx,y;shorts;intmain(){ x=1; y=1; s=f(x,y); return0;}x和y是哪个x和y?同名变量shortf(charx,chary){ returnx+y;}charx,y;shorts;intmain(){ x=1; y=2; s=f(y,x); return0;}同名不同姓在函数体内,相同名称的全局变量和局部变量,该变量只能是局部变量。调用过程把全局变量y的值2传给函数局部变量x局部变量x值为2把全局变量x的值1传给函数局部变量y局部变量y值为1局部变量函数名的局部变量每个局部变量是在函数调用时才生成的每次调用生成的变量名字是相同的,但分配的空间可不一定在同一个地方全局变量与局部变量重名,实质是两个不同的变量全局变量局部变量f的x、f的y习题利用函数编程并调试分析令f(x,y)=x+y,g(x,y)=x×y,h(x,y)=g(x,y)÷f(x,y)。编程求解当x=4,y=6时h(x,y)的值。分支结构人们有时总要在两件事情上做选择,“如果(条件关系)成立,那么(做这件事),反之(做那件事)”06语句描述两支体if(条件关系)//如果条件关系成立,那么{

做这件事;}else//反之(条件关系不成立){

做那件事;}单支体if(条件关系)//如果条件关系成立,那么{

做这件事;}示例:求绝对值习题

循环结构重复着,一个简单的操作,尽管每次对象不同,。。。。。。071+2+…+10=?不断用以前求得的和值与当前数值相加的结果更新和值s保存和s=s+n,先把s值取出来,与n相加,所得的和值再保存至s中变量的值在赋值前后有可能不同的s=0

s=s+1

s=s+2

s=s+3

……

s=s+9

s=s+10序号n前面数的总和0+…+(n-1)加当前数n等于当前数及以前的数总和0+…+n10+1=121+2=333+3=6⁞⁞⁞⁞⁞⁞936+9=451045+10=55操作序号操作执行1s=02n=13若n<=10则执行4,否则结束4s=s+n5n=n+16执行3循环执行过程1

2

3

4

5

6

3

4

6

3有一个循环操作反复执行的3

4

5

6

当循环条件成立时执行一些操作循环体循环条件当型循环语句while(条件关系){ //循环体}操作序号操作执行1s=02n=13若n<=10则执行4,否则结束4s=s+n5n=n+16执行3如果条件关系成立,那么执行循环体,反之执行循环体后续语句当型循环1+2+……+10=?的程序计数型循环采用计数量确定循环次数执行前对计数量赋初值每次执行循环体前检测计数量是否达到规定数值每次执行完循环体后计数量更新for(<计数量)=<初值>;<执行循环体的关系>;<循环量更新表达式>){//循环体;}s=s+n

s+=nn=n+1

n+=1、n++、++nn++表示先取n值使用,语句执行完后再将n增1 ++n表示执行语句之前先将n增1,再取n值使用习题

迭代与递归从前有个山,山里有个庙,庙里有个老和尚给小和尚讲故事:“从前有个山,山里有个庙,庙里有个老和尚给小和尚讲故事:“从前有个山,山里有个庙,庙里有个老和尚给小和尚讲故事:。。。。。。08迭代

递归

函数每调用一次,计算机会自动分配一次局部变量,所以函数反复调用,其局部变量位置是不同的习题

结构体与数组我的房子是三室一厅,你的房子是复式七室二厅,。。。他有五套房子。。。。09结构体变量集合structure名世经典房型{

主卧;客卧;书房;主卫;客卫;餐厅;客厅;厨房;储物间;洗衣间;阳台;}变量:我的房子

类型:名世经典房型struct名世经典房型我的房子;我的房子中的主卧是一个变量,直接写成:我的房子.主卧定义一个结构体变量,实质是定义了和结构体所包括的量一样多的变量。结构体

数组多个相同类型变量分组定义把N个共同类型的变量定义成数组

类型变量名[数量];其中之一的变量变量名[序号]序号从0开始,最大值为数量-15个点定义一个新的类型POStypedefstructposPOS;POSp[5];structposp[5];习题

地址与指针每个变量都有自己的存储空间,如同房子一样,存储空间都有唯一地址。10地址与指针变量的地址,也称为指针对于单变量,采用&来取该变量地址ints;&s对于数组,变量名就是地址intx[5];x指针变量保存地址值的变量

类型*变量名;示例long*pa;short*pb;char*pc;指针变量实质是指向某变量的空间,因此指针变量在使用之前必须赋合理的数值,否则程序会出现异常或错误。inta;int*p;p=&a;//把整型变量a的地址值保存在p中p=(int*)1236;//把1236作为整型变量的地址保存在p中当对指针变量所指的变量赋值时,采用*来赋值。*p=1236;如果向地址为1236的整型变量赋值1236,那么可以写成以下语句:*((int*)1236)=1236;指针对于结构体指针,采用“->”来连接其结构体所含的变量。structposp0,*p;p=&p0;p->x=1;//也可以写为(*p).x,相当于p0.xp->y=1;//也可以写为(*p).y,相当于p0.y习题编程调试实现将整型变量x的地址保存在指针变量y中。将整型指针变量y的地址保存在指针变量z中。通过调试获取变量a,b,c,d,e,f的地址,并分析值间的关系,给出原因。longa,b;shortc,d;chare,f;通过调试获取变量a,b,c,d,e的地址,并分析值间的关系,给出原因。chara,b,c;shortd;longe;分析下面语句的功能*(long*)0x12345678=0x12345678;常用杂项11变量和函数的声明变量/函数在使用前都要声明。如果变量/函数的定义在使用之前,那么声明可以忽略,反之需要在使用它们的函数定义之前声明一下。使用其它文件定义的某变量或函数,需要采用extern来声明该变量或函数。extern类型变量/函数名(变量列表);某个变量或函数不允许被其它文件使用,需要采用static来定义该变量。static类型变量/函数名(变量列表);intf(intx);inta;intmain(){ a=f(1); return0;}intf(intx){ return-x;}定义标识符采用#define来定义标识符它不是语句,只是用于编译程序代码文本时替代使用。#defineID123//程序中的ID都代表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论