C语言的基本知识.ppt

上传人:本田雅阁 文档编号:2142856 上传时间:2019-02-21 格式:PPT 页数:44 大小:281.01KB
返回 下载 相关 举报
C语言的基本知识.ppt_第1页
第1页 / 共44页
C语言的基本知识.ppt_第2页
第2页 / 共44页
C语言的基本知识.ppt_第3页
第3页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言的基本知识.ppt》由会员分享,可在线阅读,更多相关《C语言的基本知识.ppt(44页珍藏版)》请在三一文库上搜索。

1、C语言的基本知识,辅助训练,C语言提要,C语言的语法 C语言的基本运算及流程控制语句 控制系统中常用的C语言函数 TC2.0 环境的使用 C程序的编写要求,C语言的语法-C语言的特点,程序以函数为单元,并且有且仅有一个主函数 main(); 变量的声明和定义必须在函数头部; 语句必须以“;”结束; 注释:/*/ C语言允许直接访问物理地址;可以直接对硬件进行操作;能进行位(bit)操作,C语言的语法-C语言的数据类型,整型:int、short、long(数据在内存中以2进制形式存放) 字符型:char 浮点型:float、double 指针:char*、int*、float* 一维整形数组:i

2、nt a10; 数组是有序数据的集合,数组中的每一个元素都属于同一个数据类型 结构体:struct 公用体:union 无符号数:unsigned(unsigned int;unsigned char),C语言的基本运算算术运算,C语言的基本运算算术赋值运算,注意:5/2 = 2; 5/2.0 = 2.5,C语言的基本运算位运算,位运算的举例-位与运算,规则: 两个运算量中相应位都是1,则该位的结果为1,否则为0。例:,0 1 0 1 0 1 0 1,0 1 0 1 1 0 1 0,0 1 0 1 0 0 0 0,与,x=0x55(01010101) y=0x5a(01011010) x&y=

3、0x50(01010000),位运算的举例-位或运算,规则: 两个运算量中相应位只要有一个是1,则该位的结果为1,否则为0。例:,0 1 0 1 0 1 0 1,0 1 0 1 1 0 1 0,0 1 0 1 1 1 1 1,或,x=0x55(01010101) y=0x5a(01011010) x|y=0x5f(01011111),位运算的举例-位反运算,规则: 一个运算量的每一位都取反,即将1变为0,0变为1。例:,0 1 0 1 0 1 0 1,1 0 1 0 1 0 1 0,反,x=0x55(01010101) x=0xaa(10101010),位运算的举例-移位运算,规则: 对整型操

4、作数中的每一位向右或向左移动,变量一端被移出的位被舍弃,另一端空出的位则以0填补。例:,0 1 0 1 0 1 0 1,0 0 0 0 0 1 0 1,移位(舍弃0101),x=0x55(01010101) x 4 0x05,*在计算机系统中常常采用移位运算以快速实现乘法和除法的运算,每左移1位等效于乘以2,每右移1位等效于除以2。,位运算的应用举例,方法1:先右移n位,再与“0x01”进行与运算 bit = (byten),0 0 0 0 1 1 1 0,1,思考:如何从一个字节byte中取出第n位?,C语言的基本运算关系运算,C语言的基本运算逻辑运算,C语言的流程控制语句(1),if (表

5、达式) 语句1 else 语句2 while (表达式) 语句 do 语句 while (表达式); for (i=0;iN;i+) 语句,C语言的流程控制语句,选择语句 if (表达式) 语句1 else 语句2,C语言的流程控制语句,循环语句 while (表达式) 循环体语句 do 语句 循环体语句 while (表达式);,C语言的流程控制语句(续),for (i=0;iN;i+) 循环体语句,C语言的流程控制语句(2),switch(表达式) case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; case 常量表达式n: 语句n;break;

6、 default: 语句n+1; ,多分支选择语句:当表达式的值与某一个case后面的常量表达式的值相等时就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行defaut后面的语句,辅助控制语句,Break语句 多分支选择语句 switch语句,在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行。可以用一个break语句来达到此目的。实际上break语句用来从循环体内跳出循环体,即提前结束循环接着执行循环下面的语句。 break语句的一般形式为: Break; Break语句不能用于循环语句和switch语句之外的任何其

7、它语句中。,辅助控制语句,Continue语句 一般形式为:Continue; 其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。 continue语句和Break语句的区别是: continue语句只结束本次循环,而不是终止整个循环的执行。而Break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。,C语言的流程控制语句,转移语句 break; continue; int n; for(n=10;n100;n+) if(n%3!=0) continue; printf(“%5d”,n); return; goto,表达式,表达式,N,Y,Y,

8、break,continue,N,N,Y,Y,N,break语句退出循环,continue结束本次循环,表达式1,表达式2,d:十进制整数 5:输出字段的宽度,辅助控制语句,Goto语句: goto语句为无条件转向语句,它的一般形式为: goto 语句标号; 语句标号用标识符表示它的定名规则与变量名 相同(即由字母、数字及下划线组成,第一个字 符必须为字母或下划线)。,辅助控制语句,Return语句 return语句将被调用函数中的一个确定值带回主调函数中去。 如果需要从被调用函数带回一个函数值(供主调函数使用),被调用函数中必须包含一个return语句 如果不需用被调用函数带回函数值可以不要

9、return语句。 一个函数中可以有一个以上的return语句执行到哪一个return语句,哪一个语句起作用。 return语句后面的括弧也可以不要。,常用的C语言函数(1),标准输入输出: scanf (“格式控制字符串”,地址列表); 例: scanf(“%d ”, /*写端口*/,format,按10进制 整形输出,地址运算符&+变量名,n换行,将当前位置移到下一行开头,bioskey(int cmd) 它在Bios.h头文件中进行了说明,该函数实际上调用了BIOS的INT16H中断,参数用来确定BIOSKEY()如何操作,键盘控制,C语言中几个常用的函数(2),键盘输入: kbhit(

10、) /* 检查当前按下的键*/ bioskey(0) /*返回键盘输入并清空*/ while(!kbhit() /* 如果没有按下任意键继续 */ 延时: delay(millisecond) /*延时若干毫秒*/ Sleep(second) /*延时若干秒*/,Turbo C 2.0 环境,管理文件和目录,装入或保存程序等,进入Turbo C 的编辑程序,输入和修改源程序,管理多文件工程,设置编译程序和连接程序的各种选择项,设置各种调试选择项,设置断点,在调试阶段以便监视所需的变量,编译、连接和运行装入Turbo C 环境的当前程序,编译和连接装入Turbo C 环境的当前程序,Turbo

11、C 2.0 环境,File:管理文件和目录,装入或保存程序等; Edit:进入Turbo C的编辑程序,输入和修改源程序; Run:编译、连接和运行装入Turbo C环境的当前程序; Compile:编译和连接装入Turbo C环境的当前程序; Project:管理多文件工程; Options:设置编译程序和连接程序的各种选择项; Debug:设置各种调试选择项; Break/Watch:设置断点,在调试阶段以便监视所需要观察的变量。,Turbo C 2.0 环境,Break/Watch:Watch指屏幕的监视窗口,位于屏幕的编辑窗口的下部,可以从这个监视窗口中看到你所指定的某些变量在程序执行

12、过程中的变化。 Add Watch :允许键入变量名或表达式,在调试程序时,通过窗口监视该变量或表达式的变化情况; Delete Watch :在监视窗口中删除变量或表达式; Edit Watch :允许修改监视窗口中的变量或表达式。,Turbo C 2.0 环境的使用,菜单栏: Alt+F F10 几个常用的命令 打开:F3 保存:F2 编译连接生成EXE:F9; 运行:Ctrl+F9(用AltF5切换到用户窗口) 调试: 单步:F8 不可进入函数体,取消ctrl+F2 单步: F7 可进入被调函数体 断点:Ctrl+F8 观察变量:Ctrl+F7,Turbo C 2.0 环境的使用,全屏窗

13、口 模式切换:Alt+Enter ALT+X退出 Ctrl+break跳出 编辑程序 编写程序:打开记事本进行编辑,保存文件名后缀为TXT,之后在TC中打开调试,编译时出现:Unable to open input file xxxxx,不能打开输入文件xxxxx(例cos.OBJ) 解决办法:1、点右键 另存 2、设路径 3、或者点属性,取消只读文件,编译时出现:Unable to open input file xxxxx,不能打开输入文件xxxxx(例cos.OBJ) 解决办法:激活菜单到options derectory E:turboc2.0include E:turboc2.0li

14、b E:turboc2.0 save,Turbo C 2.0 环境,环境配置文件:,C语言程序的编写和要求,需要解决的问题是什么? 抓住主要问题 把自然语言描述转换为计算机语言描述: 伪代码 如何解决? 理清思路,画出流程图 记事本上先编写代码,在TC环境中调试 模块化编程:主函数中的语句尽量清晰明了,多用子函数来完成功能模块。,程序编写提示,使用帮助:F1 或Ctrl+F1 根据函数说明快速使用 提高程序可读性: 程序模块化 简洁、明了、易读 缩进编写 多写注释 程序调试:单步执行,加watch,观察变量。,例1,main() for(k=0;k) for(j=0;j.) ,例2,main(

15、) for(k=1,) for(j=1;) . ,复合语句配对的括弧要对齐,变量申明,全局变量与局部变量(作用域) int x; /* x就是一个全局变量 */ main() int y; /*y就是一个局部变量 */ 尽量少用全局变量,因为系统为其分配固定的永久存储空间;而系统为局部变量分配动态存储空间。,Int I /* 全局变量*/ main() int DI_in6,DO_out6,i; /* 局部变量*/ DataInput(参数) ReadPort(参数) WritePort(参数) Control(参数) DataOutput(参数) ,程序规范(例),/*屏幕输入模块*/,/*

16、I/O端口输入模块*/,/*I/O端口输出模块*/,/*控制模块*/,/*屏幕输出模块*/,训练内容,完成下列位操作程序代码: 字节byte位bits8 把一个字节byte分离成8位,存于数组bits8: void bytetobits(unsigned int byte, unsigned int* bits) 把存于数组bits8中的8位合成一个字节byte: unsigned int bitstobyte(unsigned int* bits),实现方法,void bytetobits(unsigned int byte, unsigned int* bits) int i; for(i=0; ii) ,把一个字节byte分离成8位,存于数组bits8,1. 变量:全局变量与局部变量; 2. 子函数:屏幕输入/输出、I/O端口输入输出 控制模块 3. 调试方法:主程序开始,子函数一个一个编 写调试 4. 程序注释,程序规范,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1