




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲:鲁法明 fm_ 课程相关 计算机学科核心课程 多编程(手写),多调试(上机) l l本章要点本章要点 适用范围与特点适用范围与特点 C C程序概述程序概述 语法对照语法对照 C C指针与链表指针与链表 1.1 适用范围及特点 JavaC语言 面向对象,平台无关,安 全稳定,多线程。适合开 发大型应用程序,尤其是 Internet应用开发 最初用于编写操作系统, 简洁灵活功能强,尤其适 用于系统软件及对硬件进 行操作的场合 纯面向对象(类,继承), 多线程 (分析问题,设计类 ,通过 继承和接口等有效实现类 ) 面向过程,逐个函数逐条语 句执行。 (确定解题步骤,逐条步 骤编码 ) 1.2 C程序概述 void main( ) /*程序入口,主函数 */ printf(“Hello World! ”); /*调用标准输出函数输出*/ lC程序由函数构成,main函数是程序入口 l函数包括函数首部和函数体两部分 l函数体以作为开始和结束的标志 l输入输出用库函数实现,需包含相应头文件 l语句以分号结束,文件包含等除外,换行无关 l程序中可用/*/加注释,单行亦可用/ #include/*标准输入输出头文件,类似import*/ 例1.1 输出HelloWorld. 例1.2 令a=123,b=456,求两整数之和 # include void main( ) int a,b,sum; a=123;b=456; sum=a+b; printf(“变量sum值为%d”,sum); /*格式控制符%d,%c,%f*/ l函数体分声明部分和执行部分 l变量必须先定义后使用 l定义变量实际就是在内存空闲区域中分配存 储单元,对变量名赋值或取值就是对该存储单 元进行读写,存储单元地址通过 scanf(“%f”, 例1.3输入2个数输出大者,定义max函数求大者 # include void main( ) int a,b,c; scanf(“%d,%d”, c=max(a,b); /*调用子函数*/ printf(“max=%dn”,c);/回车n l函数分main函数、库函数和自定义函数 l函数首部包括返回值类型 函数名 参数及其类型 l若函数的具体定义出现在使用语句之后,则必须 在使用前进行声明 int max(int x, int y)/*形参*/ int z; if(xy)z=x; /* 分支语句*/ else z=y; return(z); int max(int x,int y);/*函数声明*/ C程序结构小结: #include #define void main( ) /函数次序可调 子函数声明与变量定义 执行语句组 返回值类型 函数名1(参数表) 变量定义与函数声明 执行语句组 . 返回值类型 函数名n(参数表) 变量定义与函数声明 执行语句组 结构:由若干函数(main函 数、库函数、自定义函数) 组成,main函数是程序入口。 函数包括函数首部和函 数体两部分,函数体包括声 明部分和执行部分,声明部 分包括变量定义和函数的声 明,执行部分包括各类语句 。函数不能嵌套定义,函数与 变量不能重名 找出以下源程序中存在的9处错误: int max( x, y) int z; if(xy)z=x; else z=y; return(z); void main scanf(“%d,%d”, a, b); /*读入两整数,用逗号分隔 c=max(a,b); printf(“max=%cn”,c) #include ; int a,b,c; */ %d 1、变量未定义或函数使用前未声明,缺少头文件 2、丢分号和 a=1/2; int int 1.3 语法对照数据类型 分类JavaC 基本数 据类型 boolean,byte short int longshort,int,long,如int i float doublefloat,double如float x charchar如char c=w 数组int a; a=new int3; char b;b=new char3k int a=new int2; a0=new int6; a1=new intk; int a3;/长度不省 char b34;/需常数 short a3=3,2,5; int b2=1,2,3 各维长度固定不变 类vs 结构体 class Student int number; char name; Student s1=new Student(); s1.number=0;Java中默认值0 struct Student int number; char name20; ;/注意分号 struct Student s; s.number=0;默认随机 其它对象或数组名为引用型,值为 对象的内存地址s1=new Student(); 指针类型,存放变量地址 如int i;int *p; p= 符号常 量/自定 义类型 C中可用符号常量#define PI 3.14,也可使用自定义类型 ,即为已有类型起别名,如typedef int ElemType; typedef struct student StuType; StuType s; 1.3 语法对照运算符 分类javaC 算术+ - * / % + - 比较 = = !=(C中成立返回非零值,不成立返回0) 逻辑等同sum=sum+i; 类型 转换 int x; float y; y=13.56; x=(int)y; 其它C中无instanceof运算符,有sizeof运算符,如sizeof(int),或 sizeof(x) 1.3 语法对照控制结构 分类javaC 选 择 结 构 if(con)s1; if(con)s1;else s2; if(con)else if(con1) else if(con2) else if(con3) else /使用时注意缩进与花括号对齐 循 环 结 构 for(i=1;i0) sum+=i; -i; 其它break退出当前循环,continue跳到下一次循环 1.3 语法对照函数,值传递参数 函数示例,f(n)求n!说明 long f(short n) long result; for(int i=1;i void main() void swap(int /函数声明 int a=3,b=5; swap(a,b); printf(“%d,%d”,a,b); C+中允许按引 用方式传递参数 ,此时形参是实 参变量的一个别 名,两者是同一 变量。只需在函 数头的形参变量 前加 temp=x; x=y; y=temp; 1.4 指针与链表 p谭浩强-C程序设计(第3版)-第十章指针 基本概念 指针的定义及用法 指针在数组访问中的应用 利用指针创建动态数组 利用指针创建和操作链表 内存区的每一个字节有一个编号,该编号称为内存单 元的地址或指针。若在程序中定义一个变量,在编译 时会给其分配若干内存单元,其中第一个存储单元的 编号称为该变量的地址或指针 int i; short j,k; scanf(“%d %d”, printf(“%d”,k); 直接访问:通过变量名存取值的 方式 间接访问:将变量的地址存放在 另一变量(p)中,通过p访问变量 short *p p= scanf(“%d”,p) p=scanf(“%d”,p) 地址 指针 变量的地址 指针变量 某些变量专门用以存放别的变量的地址,称这类变量为指 针变量,该类变量的类型称为指针类型 定义格式:基类型 *指针变量名 如:short j; short *p; p= scanf(“%d”, scanf(“%d”,p) printf(“%d”,j); printf(“%d”,*p); (1)通过指针对变量进行读写时如何知道需要读写的字节数?在定 义指针变量时必须指定基类型,且变量的类型和指针的基类型要 一致! (2)指针类型与整数类型不同.只能将变量的地址赋给一个指针变量 ,而不能将一个常数赋给一个指针变量(零除外,代表NULL空地址) 。此外,指针变量加减1,则指针指向的单元变动并非1,而是基 类型所占字节数,即以sizeof(基类型)为一个移动单位 (3)指针运算符*在定义变量时用于指明所定义变量是指针类型, 在普通语句中用于取指针变量所指向存储单元的值.如 printf(“%d”,*p); 指针变量的定义与用法 回顾 lC程序由函数构成,包括main函数、库函数 和自定义函数.函数不能嵌套定义,若先使用后 实现,则需声明,库函数的声明在头文件中 lC语言中数组在定义时必须同时指定大小,而 且大小必须为常数,不能为变量 lC语言中函数参数传递为值传递,C+中新加 引用传递 lC语言中无boolean类型,0代表假,非零代表真 lC语言中有指针类型,指针变用以存储其它变 量的地址,基类型决定能存储何类变量的地址. lint i; int *p; p= lscanf(“%d”,p);printf (“%d”,*p); C语言中,一维数组的数组名是指向数组首元素的指针常 量,该指针常量的基类型与数组元素的类型相同,指针 常量的值是数组的起始地址。可通过数组名用下标法访 问数组元素,如果将该指针常量赋值给一个相应类型的 指针变量,则也可借助指针变量用指针法访问数组元素 指针法访问数组 如: int a10; int *p=a ; /*也可用 int *p=*/ (1)下标法 for(i=0;i void * malloc(unsigned size); void free(void *p); p孙承爱-程序设计基础(基于C语言)-链表 引言:数组元素依次存储在一片连续的内存单元中,这为成批数 据存储带来两方面问题:其一,个数不确定时需定义一个最大长 度;其二,向数组增加或删除一个数据时,需要移动大量元素。 链表:一种动态地进行存储分配的数据结构,不需要事先确定最 大长度,在插入或者删除一个元素时也不会引起大量数据的移动 要求:掌握链表的基本结构、结构定义与链表的创建与输出 链表结构: 【结构】 “首”结点+“尾”结点+中间结点,每个结点包括两部分: 一部分是用户需要用的实际数据,称为数据域;另一部分是下一 个结点的地址,称为指针域。头指针head指向链表的首结点,首 结点与中间结点的指针域指向后继结点,表尾结点的指针域存放空 地址(常表示为NULL,是值为0的符号常量,编程时需先定义)。 【说明】(1)链表中各元素在内存中的存储单元通常不连续 (2)头指针至关重要,可标识或者代表整个单链表, 声明一个链表实际就是声明一个基类型为结点类型的头指针 struct LNode /单链表结点结构定义 char data; /数据域 struct LNode * next;/指针域 ; Strcut LNode node1,node2;/定义两个结点 struct LNode* La,Lb; /定义两个链表 /或typedef struct LNode LNode /typedef struct LNode* LinkList; /LNode node1,node2; LinkList La,Lb; /元素类型定义 typedef char ElemType; /-链表定义- typedef struct LNode ElemType data; /数据域 struct LNode * next; /指针域 LNode,* LinkList; LNode node1,node2; LinkList La,Lb; 链表定义: 链表的创建 void CreateList(LinkList LNode *p,*q; for(int i=1;inext=NULL;/q-next等同(*q).next, 读作q指向的结点的 /data成员; 无此语句则尾结点指针值错 scanf(“%c”,/为方便用q-data代替(*q).data if(i=1) L=q; p=q; else p-next=q; p=q; 链表的输出 void PrintList (LinkList L) LNode *p=L; while(p!=NULL) printf(“%cn”, p-data
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 压力管道培训课件合集
- 2025年制造业行业智能制造技术应用前景研究报告
- 商场员工消防安全培训课件
- 2025年工业0行业智能制造技术应用前景研究报告
- 压力容器维修安全培训课件
- 2025年人工智能在医疗健康领域应用前景预测报告
- 国家事业单位招聘2025民族文化宫招聘拟聘用人员(第三批)笔试历年参考题库附带答案详解
- 国家事业单位招聘2025商务部配额许可证事务局第一次招聘15人笔试历年参考题库附带答案详解
- 北京市2025北京人民艺术剧院招聘6人笔试历年参考题库附带答案详解
- 东莞市2025广东东莞市自然资源局黄江分局招聘合同制聘员笔试历年参考题库附带答案详解
- 福建省全国名校联盟2026届高三上学期联合开学摸底考试语文试题及参考答案
- 2025年广工建筑电气试卷及答案
- 2024年广西桂林理工大学南宁分校招聘真题
- 排污许可证管理条例课件
- 乡镇人大主席“干在实处、走在前列”学习讨论发言材料
- 2025年食品安全管理员考试题库及参考答案
- 用户反馈收集及问题分析表
- 无人机飞行操作规范手册
- 【里斯】年轻一代新能源汽车消费洞察与预测 -新物种 新理念 新趋势(2024-2025)
- 医院收费室培训课件
- 信仰思政课件
评论
0/150
提交评论