语言基础及教程 1_第1页
语言基础及教程 1_第2页
语言基础及教程 1_第3页
语言基础及教程 1_第4页
语言基础及教程 1_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

PAGE课题任务8.2多辆汽车的数据显示(结构体数组)课型讲练授课班级授课时数2教学目标1.掌握结构体数组定义2.灵活应用结构体数组教学重点灵活应用结构体数组教学难点灵活应用结构体数组学情分析学生已经有了数组得基础,也已经学过结构体变量。教学效果教后记任务8.2多辆汽车的数据显示(结构体数组)8.2.1任务目标从键盘上输入3辆货车的信息,包含车牌号、车辆识别码、载重吨数,并输出。程序运行结果如图8-5所示。图8-5程序运行结果8.2.2知识储备当需要的同类型的结构体变量超过2个及以上时,C语言可以与引入数组类似,此时引入的就是结构体数组。结构体数组在实际定义时,可以采用以下3种方法。方法一:先定义结构体类型,再定义结构体数组。其语法格式为:struct结构体名{成员类型成员名1;成员类型成员名2;成员类型成员名3;…成员类型成员名n;};struct结构体名数组[容量];例如:structstudent{intnumber;charname[9];charsex[3];};structstudentstu[5]; //定义结构体数组方法二:定义结构体类型的同时定义结构体数组。例如:structstudent{intnumber;charname[9];charsex[3];}stu[10];方法三:定义无名结构体类型的同时定义结构体数组。例如:struct{intnumber;charname[9];charsex[3];inthight;intweight;structbirthdaydate_of_birth;charphone[12];charaddress[30];}stu[10];结构体数组中各元素在内存中也是连续存放的,如图8-6所示。图8-6结构体数组各元素在内存中的存储情况8.2.3典型案例典型案例1:定义一个结构体,名称为发动机(DATA_ENGINE),包含3个成员,发动机状态(Engine_Status)=0、曲轴转速(Crankshaft_Speed)=1500r/min、燃料消耗率(Fuel_Consumption_Rate)=10L,输出3辆汽车发动机的各项数据。代码如下:#include"stdio.h"structDATA_ENGINE{charEngine_Status;intCrankshaft_Speed;doubleFuel_Consumption_Rate;}DATA_ENGINE[3];voidmain(){structDATA_ENGINEDATA_ENGINE[3]={{'0',1500,150},{'1',1800,200},{'2',1200,225}};inti;for(i=0;i<3;i++)printf("发动机状态为%c\n曲轴转速为%d,燃料消耗率为%lf\n",DATA_ENGINE[i].Engine_Status,DATA_ENGINE[i].Crankshaft_Speed,DATA_ENGINE[i].Fuel_Consumption_Rate);}典型案例1的运行结果如图8-7所示。典型案例2:定义一个结构体,名称为车辆位置(Data_Location),包含3个成员,定位状态(GPS_Status)、经度(Longitude)、纬度(Latitude)、从键盘上输入三辆汽车位置的信息,并输出。代码如下:#include"stdio.h"structData_Location{charGPS_Status;intLongitude;intLatitude;}Data_Location[3];voidmain(){structData_LocationData_Location[3];inti;for(i=0;i<3;i++){printf("请输入车辆状态、经度、纬度信息\n");scanf("%c,%d,%d",&Data_Location[i].GPS_Status,&Data_Location[i].Longitude,&Data_Location[i].Latitude);}for(i=0;i<3;i++)printf("车辆状态为%c,经度%d,纬度%d\n",Data_Location[i].GPS_Status,Data_Location[i].Longitude,Data_Location[i].Latitude);}典型案例2的运行结果为8-8所示。 图8-7典型案例1的运行结果 图8-8典型案例2的运行结果8.2.4任务目标与实现代码如下:#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;}Truct[3];voidmain(){structTructTruct[3];inti;printf("请输入货车的信息\n");for(i=0;i<3;i++){printf("第%d辆货车的信息\n",i+1);printf("车牌号");scanf("%s",Truct[i].Plate_Number);printf("车辆识别码");scanf("%s",Truct[i].VIN);printf("载重吨数");scanf("%d",&Truct[i].Load);}printf("货车的信息为\n");for(i=0;i<3;i++){printf("车牌号%s\n",Truct[i].Plate_Number);printf("车辆识别码%s\n",Truct[i].VIN);printf("载重吨数%d\n",Truct[i].Load);}}8.2.5巩固练习一、选择题1.以下各选项用于说明一种新的类型名,其中正确的是()。A.typedefv1int; B.typedefv2=int;C.typedefintv3; D.typedefv4:int;C2.以下变量a占用的内存字节数是()。(假设int类型为4字节)。structstu{charname[20];longintn;intscore[4];}a;A.28 B.30 C.32 D.46C3.以下程序的输出结果是()。structabc{inta,b,c;};main()t=s[0].a+s[1].b;printf("%d\n",t);}A.5 B.6 C.7 D.84.已知有如下定义:structperson{charname[9];intage;};structpersoncalss[4]={"Johu",17,"Paul",19,"Mary",18,"Adam",16,};根据以上定义,能输出字母M的语句是()。A.printf("%c\n",class[3].name); B..printf("%c\n",class[3].name[1]);C.printf("%c\n",class[2].name[1]); D.printf("%c\n",class[2].name[0]);5.假设有以下结构类型说明和变量定义,则变量a在内存中所占字节数是()。structstud{charnum[6];ints[4];doubleave;}a;A.22 B.18 C.14 D.286.已知有以下定义:structex{intx;floaty;charz;}example;下面的叙述中不正确的是()。A.structex是结构体类型 B.example是结构体类型名C.x、y、z都是结构体成员名 D.struct是结构体类型的关键字二、填空题使用structstudent结构体类型,存储10个学生的信息,请填空。#include<stdio.h>struct________{intyear;intmonth;intday;};________{intnumber;charname[9];charsex[3];inthight;intweight;structbirthdaydate_of_birth;charphone[12];charaddress[30];};voidmain(){structstudent________={{83104002,"马超","男",185,84,1989,10,21,,"江苏苏州"},,{83104006,"梁金飚","男",175,80,1989,7,2,,"江苏南京"},{83104008,"胡芳","女",159,45,1989,12,23,,"江苏扬州"},printf("\n");printf("学号\t姓名性别身高体重出生日期电话\t住址\n");printf("\n");inti;for(i=0;_________;i++){printf("%d%-8s%s%d%d%d.%2d.%2d%s%s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].hight,stu[i].weight,date_of_birth.day,stu[i].phone,stu[i].address);pri

温馨提示

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

最新文档

评论

0/150

提交评论