书签 分享 收藏 举报 版权申诉 / 57
上传文档赚钱

类型C语言程序设计精品PPT课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:2448837
  • 上传时间:2022-04-19
  • 格式:PPTX
  • 页数:57
  • 大小:431.42KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言程序设计精品PPT课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 精品 PPT 课件
    资源描述:

    1、高级语言程序设计高级语言程序设计 诸如学生花名册、通讯录之类的数据,最适合用结构体来处理。因为这类数据具有如下特点: 每个人信息都是一个复合的构造数据,如由姓名、学号、性别、年龄、家庭住址、联系电话等“成员”组成。 不同的人,数据的值不同,但都有共同的成员组成。 struct 结构体名 类型标识符 成员名; ; 关键字 用户指定/*struct 结构体名合称“结构类型标识符”*/*成员表列*/*此处分号不能省略*/【例一】main() struct student int number; char name6; char sex; int age; char address20; ; 本质上,

    2、它定义了一个名为”student”的“结构体类型”(表头)。 在定义结构体类型的同时定义结构体类型变量 struct 结构体名 变量名1,变量名2, 变量名n; 直接定义结构体类型变量 struct 变量名1,变量名2, 变量名n;实际使用中,还可以使用以下形式:先定义 #define STU struct student尔后 STU student1,student2;【例四】main() struct student int number; char name6; char sex; int age; char address20; ; printf(%dn ,sizeof(struct

    3、student); 结果: 31答案:C).real=1 正确编程:main() struct char name15; char class12; long num; stu; scanf(%s,stu.name); scanf(%s,stu.class); scanf(%ld,&stu.num); printf(%s,%s,%ldn,stu.name,stu.class,stu.num);亦可用以下赋值语句:strcpy(stu.name,”wenli”); strcpy(stu.class, “Computer”);stu.num=200113;为什么啊?但是如果改为stu.name=”

    4、wenli”是错误的。 #include stdio.hstruct datetp unsigned year,month,day;unsigned months =0,31,28,31,30,31,30,31,31,30,31,30,31;main() struct datetp d; printf(请输入年 月 日:); scanf(%u%u%u,&d.year,&d.month,【1】); if (d.year%4=0&d.year%100!=0)|(d.year%400)=0) months2=29; printf(%d年%d月%d日是该年的第%d天。n, d.year,d.month

    5、, d.day, getdays(d); getdays(【2】date) unsigned days=0,i; for(i=1;idate.month;i+) days+=【3】; days+=date.day; return days;答案:【1】&d.day 【2】struct datetp 【3】monthsi struct student int num; char name20; char sex; int age; float score; char addr30;struct student stu3;struct student int num; char name20; c

    6、har sex; int age; float score; char addr30;stu3;struct student int num; char name20; char sex; int age; float score;stu3= 10101,李宁,M,18,87.5, 10102,张凡,M,19,99, 10103,王敏,F,20,78.5 ;struct student int num; char name20; char sex; int age; float score;;Struct student stu3= 10101,李宁,M,18,87.5, 10102,张凡,M

    7、,19,99, 10103,王敏,F,20,78.5 ; main() struct student int num; char name20; char sex; int age; float score; stu3= 10101,李宁,M,18,87.5, 10102,赵凡,M,19,99, 10103,王敏,F,20,78.5 ; int i; clrscr(); for (i=0;i3;i+) printf(%s,学号%d,成绩:%.2fn,stui.name,stui.num,stui.score); 试一试运行结果这里面的花括号能不能去掉?struct tm int hours,m

    8、inutes,seconds;main() struct tm time; time.hours=time.minutes=time.seconds=0; clrscr(); printf(Now, press any key to begin my clock.); getch(); for(;) update(&time); display(&time); update(struct tm *t) (*t).seconds+; if (*t).seconds=60) (*t).seconds=0; (*t).minutes+; if (*t).minutes=60) (*t).minute

    9、s=0; (*t).hours+; if(*t).hours=24) (*t).hours=0; delay();display(struct tm *t) clrscr(); printf(%d:,(*t).hours); printf(%d:,(*t).minutes); printf(%dn,(*t).seconds);delay() long int t; for(t=1;t结果有什么变化?特点: 按需分配内存 不连续存放 有一个“头指针”(head)变量 每个结点中应包括一个指针变量,用它存放下一结点的地址。 最后一个结点的地址部分存放一个“NULL” (空地址)。 A) for (

    10、 ;p!=NULL;p+) printf(“%7d,”,p-data); B) for ( ;!p;p=p-next) printf(“%7d,”,(*p).data); C) while (p) printf(“%7d,”,(*p).data); p=p-next; D) while (p!=NULL) printf(“%7d,”, p-data); p+; 答案:Cmain() struct stu int num; char *name; int age; st=12,ABC,100,*p=&st; clrscr(); printf(%pn,p+); printf(%pn,p+); pr

    11、intf(%pn,p+); printf(%pn,p+); printf(%dn,sizeof(st); 结果: FFD2 FFD8 FFDE FFE4 6结论: 若p指向某个结构体变量,则 p+ 的功能是将指针p 移到本结点后的存储单元,而不是本结点的下一个成员处。所以链表中不能用p+进行结点间的跳转。#define NULL 0struct student long num; float score; struct student *next;main() struct student a,b,c,*head,*p; a.num=99101;a.score=89.5; b.num=9910

    12、3;b.score=90; c.num=99107;c.score=85; head=&a; a.next=&b; b.next=&c; c.next=NULL; p=head; do printf(%ld,%.1fn,p-num,p-score); p=p-next; while(p!=NULL);注意有关技巧:结点是如何定义的?结点是如何建立的?如何使诸结点形成链表?最后一个结点如何建立?如何从一个结点转到下一结点?如何遍历所有结点?1、“动态内存分配”的概念 使用户程序能在运行期间动态地申请和释放内存空间,从而更有效地利用内存并提高程序设计的灵活性。 如,为了保证程序的通用性,最大需要建

    13、立一个1000个元素的字符数组,每个数组元素占30个字符,共需30000个字节存储空间。但程序某次运行时,可能只使用30个数组元素,于是就有29100个字节的已分配存储空间被浪费。 此时,可通过动态内存分配技术,将程序设计成运行时才向计算机申请内存,并在用完时立即释放占用的内存空间。 使用动态内存分配技术建立的链表称为“动态链表”。结果:10 9 8 7 6 5 4 3 2 1 union 共用体名 类型标识符 成员名; ; 关键字 用户指定/*union 共用体名合称“共用类型标识符”*/*成员表列*/*此处分号不能省略*/示例union data int i; char ch; float

    14、 p; ; 用union 共用体名 复合词声明 union 共用体名 ; union 共用体名 变量名1,变量名2, 变量名n; 在定义共用体类型的同时声明 union 共用体名 变量名1,变量名2, 变量名n; 直接声明共用体类型变量 union 变量名1,变量名2, 变量名n;结果:18结果:1,2p 经常不断地学习,你就什么都知道。你知道得越多,你就越有力量p Study Constantly, And You Will Know Everything. The More You Know, The More Powerful You Will Be写在最后谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way演讲人:XXXXXX 时 间:XX年XX月XX日

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言程序设计精品PPT课件.pptx
    链接地址:https://www.163wenku.com/p-2448837.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库