计算机软件基础自考本科课件

PPT
  • 阅读 91 次
  • 下载 0 次
  • 页数 35 页
  • 大小 1.107 MB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
计算机软件基础自考本科课件
可在后台配置第一页与第二页中间广告代码
计算机软件基础自考本科课件
可在后台配置第二页与第三页中间广告代码
计算机软件基础自考本科课件
可在后台配置第三页与第四页中间广告代码
计算机软件基础自考本科课件
计算机软件基础自考本科课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 35
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】计算机软件基础自考本科课件.ppt,共(35)页,1.107 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2511.html

以下为本文档部分文字说明:

计算机软件基础第一篇C语言程序设计基础第六章结构类型第1页,共35页。一、结构类型的概念1.结构类型是指由用户自行定义的不同数据类型的组合体。学生的基本数据:学号长整型姓名字符型数组年龄整形性别字符型成绩实型数组第2页

,共35页。一、结构类型的概念2.结构类型的构建结构类型一般形式为:struct结构类型名{类型1成员1;类型2成员2;类型n成员n;};第3页,共35页。一、结构类型的概念2.结构类型的构建示例structstu1//定义一个s

tu1数据类型{longNum;//成员1:长整型学号charName;//成员2:字符型姓名charSex;//成员3:字符型性别intAge;//成员4:整型年龄floatScorce[3];//成员5:实型数组成绩};第4页,共35页。二、结构类型变量1.结构类型变量的定义方法1:先定

义结构类型,再定义结构变量step1:构建结构类型如:structstu1{longNum;charName;charSex;floatScore[3];};step2:定义相应变量如:structstu1a,b,c;第5页,共35页。二、结构类型变量1.结构类型变量的定义

方法2:定构建结构类型的同时定义相应变量如:structstu1{longNum;charName;charSex;floatScore[3];}a,b,c;第6页,共35页。二、结构类型变量2.结构类型变量的引用引用规则如下:(1)结构变量和结构体中成员,都不能单独引用;(2)

只能将结构变量与结构体成员合起来引用。引用格式:结构变量.结构体成员如:a.age第7页,共35页。二、结构类型变量3.结构类型变量的初始化(1)定义结构变量同时进行初始化。如:structstudent{longNum;

charName[20];floatScore[3];}a={520,”WangXin”,{78.5,49.5,90}};第8页,共35页。二、结构类型变量(2)也可以先定义结构变量,再进行初始化。如:structstudent{longNum;charName[20

];floatScore[3];};main(){structstudenta;a={520,”WangXin”,{78.5,49.5,90}};}第9页,共35页。二、结构类型变量例6-1分析程序,写出运行结果main(){structstu1{longNum;charName[20];cha

rsex;intage;floatScore[3];}a={99123L,"WangXin",'F',23,{78.5,49.5,90.0}};inti;printf("num:%1dname:%ssex:%cage:%d\n",a.N

um,a.Name,a.sex,a.age);for(i=0;i<3;i++)printf("%8.1f",a.Score[i]);}第10页,共35页。二、结构类型变量例6-2编写求两复数之和的程序struc

tstu3{intx;inty;};main(){structstu3a,b,c;scanf("%d,%d,%d,%d",&a.x,&a.y,&b.x,&b.y);c.x=a.x+b.x;c.y=a.y+b.y;printf("c=

%d+%di\n",c.x,c.y);}第11页,共35页。二、结构类型变量(3)结构变量占用的存储空间(size):是结构体中所有成员所占空间之和。如:structstudent{longNum;charName[20];floatScore[3];};main(){str

uctstudenta;printf("%d\n",sizeof(a));}第12页,共35页。三、结构数组1.结构类型数组的定义(1)在构建结构类型的同时定义相应的数组。一般形式示例struct结构类型名{成员表列;}数组名[数组长度];structstudent{longNum;

charName[20];floatscore[3];}No8class[45];第13页,共35页。三、结构数组(2)先构建结构类型,再定义相应的数组。一般形式示例在已经定义好结构类型后,使用如下形式

定义结构数组:struct结构类型名数组名[数组长度]structstudentNo8class[45];第14页,共35页。三、结构数组2.结构数组的初始化在构建结构类型的同时对数组初始化。如:structstu4{longNum;charNa

me[20];floatScore[3];}a[2]={{520,“WanXin”,{78.5,49.5,90}},{240,“LiMing”,{66.5,72.5,88}}};第15页,共35页。三、结构数组上例中的

存储关系:a[0]a[1]NumNameScore[3]NumNameScore[3]520WanXin78.549.590240LiMing66.572.588第16页,共35页。二、结构类型变量例6-3输入50个学生的基本信息(如图6-1所示),计算各个学生的平均分,并输出各人的学号、姓名

及平均。main(){inti,j;floats;structstu5/*定义名为stu5的结构类型*/{longnum;/*学号*/charname[20];/*姓名*/floatscore[3];/*三门课成绩

*/floatave;/*平均分*/}a[50];/*50个学生,各个学生具有以上信息*/第17页,共35页。二、结构类型变量for(i=0;i<50;i++){{printf("请输入第%d个同学的学号,姓名",(i+1));scanf("%Ld,%s",&a[i].num,a[i].n

ame);}printf("请输入第%d个同学三门课成绩",(i+1));for(j=0;j<3;j++)scanf("%f",&a[i].score[j]);}/*输入第i个同学三门课成绩*/for(i=0;i<50;i++)/*下面求各人三门课平均值

*/{s=0.0;for(j=0;j<3;j++)s=s+a[i].score[j];/*第i个同学的第j门课成绩累加*/a[i].ave=s/3.0;}for(i=0;i<50;i++)/*下面输出各人基本信息*/printf("no.%2dnum:%1dname

:%sare:%4.1f\n",i,a[i].num,a[i].name,a[i].ave);}第18页,共35页。四、指向结构类型的指针1.指向结构变量的指针一般形式示例struct结构类型名*指针变量名;structstudenta,*p=&a;第19页,共35页。二、结构类型变量例6-4

指向结构体变量指针的实例。main(){structstu6{longnum;charname[10];intage;floatscore;}a={2014L,"AnFeng",20,78.5},*p=&a;/*P指向结构变量a*/printf("num:%Ldna

me:%sage:%2dscore:%4.1f\n",a.num,a.name,a.age,a.score);printf("num:%Ldname:%sage:%2dscore:%4.1f\n",p->num,p->name,p-

>age,p->score);printf("num:%Ldname:%sage:%2dscore:%4.1f\n",(*p).num,(*p).name,(*p).age,(*p).score);}第20页,共35页。四、指向结构类型的指针2.指向结构数组的指针指针变量也可以

指向结构数组,其定义方法和指向一般数组一样。如:structstudent{longNum;charName[20];floatScore[3];}a[2],*p=a;structstudent{longNum;charName[20];floatScore[3];};structs

tudenta[2],*p=a;第21页,共35页。四、指向结构类型的指针结构体成员的引用的形式:形式示例结构变量.成员名;a.Num;(*指针变量名).成员;(*p).Num;指针变量名->成员名;P-

>Num;第22页,共35页。二、结构类型变量例6-5指向结构数组的指针示例。main(){structstu7{intx;floaty;charz;}a[3]={{2,1.5,'x'},{3,4.6,'y'},{4,7.8,'z'

}};structstu7*p;/*定义指向结构类型指针*/inti;/*定义变量i*/p=a;/*P指针指向结构数组a*/for(i=0;i<3;i++)printf("i=%d,x=%d,y=%f,z=%c\n",i,a[i].x,(*(p+i)).y,(

*(p+i)).z);}第23页,共35页。历年真题演练1.(2009.4单选)已知:Aa.ageBp.ageC(*p).ageDp->agestructperson{charname[20];intage;}a{"

Li",20},*p=&a;则对结构体变量a中成员age错误的引用是()。第24页,共35页。历年真题演练2.(2010.4单选)已知:As->numB*pp->numC(*pp)->numD(*pp

).numStructperson{charname[15];longnum;floatscore;}s,*pp=&s;则对结构变量成员正确的引用是()。第25页,共35页。同步跟踪测评1.已知如下程序代码,分析并写出它的运算结果。#include<stdio.

h>structqueueT{intiPiece[2];intiBlock[2];};main(){structqueueTqueue_t[2]={1,2,3,4,5,6,7,8};printf("%d\n",queue_t[1].iPiece[1

]);}第26页,共35页。同步跟踪测评题1分析queue_t[0]queue_t[1]成员1成员2成员1成员2iPiece[0]iPiece[1]iBlock[0]iBlock[1]iPiece[0]iPiece[

1]iBlock[0]iBlock[1]12345678第27页,共35页。同步跟踪测评2.下列哪个是正确的结构变量的定义?AstructAAA{inta;intb;intc;intd;}a,b,c;BstructBBB{inta;intb;intc;intd;}structBBBa,b

,c;CstructCCC{inta;intb;intc;intd;}structCCCa;b;c;DstructDDD{inta;intb;intc;intd;}DDDa,b,c;第28页,共35页。同步跟踪测评3.已知有如下结构类型的定义:Aa=1;Ba.a=2;Ca.a.a=3;D

a.a.a.a=4;structT1{inta;};structT2{T1a;};structT3{T2a;}a;下列哪个是正确的对结构类型变量a的赋值?()第29页,共35页。同步跟踪测评4.下列哪个是

正确的对结构类型变量的赋值()。AstructT1{inta;};T1a=1;BstructT1{inta;};T1=1;CstructT1{inta;};structt1a;a.a=1;DstructT1{inta

;};T1.a=1;第30页,共35页。同步跟踪测评5.已知有如下定义:A1B2C3D4那么printf("%d",sizeof(a));的输出结果是()。structT1{chara;charb;charc[2];}a;第31页,共35页。同步跟踪测评6.已知有如下定义:A1Btea

m2C3Dteam4那么printf("%d",*(p+2));的输出结果是()。structteam{intiID;charszName[20];}a[4]={1,"team1",2,"team2",3,"team3",4,"team4"},*p=a

;第32页,共35页。同步跟踪测评7.下列程序的功能是将输入学生的信息打印出来,试填写完整代码:#include<stdio.h>structstudent{longNum;charName[20];};intmain(intargc,ch

ar*argv[]){structstudentstd1,*p=&std1;gets(p->Name);scanf("%d",&);printf("Student\nName:%s\nNum:%d\n",p->Name,p->Num);}第33页,共35页。同步跟踪测评8.程

序设计:利用结构类型,编写一个程序,当输入五组长方体的长、宽、高后,可以输出体积最大的长方体的体积及其长、宽、高。第34页,共35页。同步跟踪测评8.程序设计:#include<stdio.h>structbox{int

length;intwidth;inthigh;intvolume;};intgetvolume(structboxs){s.volume=s.length*s.width*s.high;return(s.volume);}ma

in(){structboxb[5];inti;intmaxvolume=0;intindex=0;for(i=0;i<5;i++){scanf("%d,%d,%d",&b[i].length,&b[i].width,&b[i].high);b[i].volume

=getvolume(b[i]);if(maxvolume<b[i].volume){maxvolume=b[i].volume;index=i;}}printf(“maxvolume:%d(lengt

h:%dwidth:%dhigh:%d)",b[index].volume,b[index].length,b[index].width,b[index].high);}第35页,共35页。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?