2021-2022学年高二下学期C语言程序设计案例教程章节练习题+答案2_第1页
2021-2022学年高二下学期C语言程序设计案例教程章节练习题+答案2_第2页
2021-2022学年高二下学期C语言程序设计案例教程章节练习题+答案2_第3页
2021-2022学年高二下学期C语言程序设计案例教程章节练习题+答案2_第4页
2021-2022学年高二下学期C语言程序设计案例教程章节练习题+答案2_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

(中职)C语言程序设计案例教程章节练习题+答案(七)一、填空题。.结构体是构造类型数据,它与数组的区别在于其中的成员可以不是同一种数据类型。.声明一个结构体类型的一般形式为:struct结构体名(数据类型成员1的名字;数据类型成员2的名字;数据类型成员3的名字;.假设有structStuintnum;intnum;charname[20];charsex;intage;floatscore;}stul;变量stul占33intnum;charname[20];charsex;intnum;charname[20];charsex;intage;floatscore;}stul;变量stul占33/*学号为整型*//东姓名为字符串*//*性别为字符型*//*年龄为整型*//*成绩为实型*/个字节。.假设定义结构体数据Stu类型变量stul的同时,对stul进行初始化为“2018001,〃Peter〃,'M',18,85”;那么该语句写为structStustul口={2018001,“Peter",'Nf,18,85”}。.引用结构体变量使用—乳!1—运算符(也称“圆点运算符”),引用结构体变量Stu的成员age的一般形式为Stu.age。.假设该班有30个学生,那么这30个学生的信息都可以用结构体变量来表示,它们具有相同的数据类型,可以用结构体数组一存储这30个学生的信息。.假设定义指向结构体变量的指针变量*stul,可以用stul2age表示stul所指向结构体变量的成员ageo.假设有“stuctStuSI;”定义结构体变量S1,语句"stuctStu*p=&Sl;”的作用是指针P指向结构体变量S1。.假设定义了如下的共用体类型变量x和结构类型变量y,unionstulintnum;charname[5];chars;}x;structstu2(intnum;charname[5];chars;}y;那么X和y所占用的内存字节数分别为5字节和10字节。.结构体数组s[30]的前3个元素进行初始化,其他未被指定初始化的数值型数组元素成员被系统初始化为_2_,字符型数组元素成员被系统初始化为'\0'',指针型数组元素成员被系统初始化为_NULL_。.将不同类型的数据组织在一起共同占用同一段内存的构造数据类型为出皿声明这种构造类型数据的关键字union。二、选择题。1.假设有structStu(intnum=2018001;charname[20]=,,Peter,z;charsex='M';intage=18;floatscore=85;)S1;以下说法正确的选项是(A)A.错误B.以上程序段为结构体变量进行了初始化C.Stu是结构体变量D.以上说法都成立2.假设有结构体变量S1和S2,以下说法正确的选项是(A)A.结构体变量不能作为整体进行输入和输出。B.printf(^%d%s%c%d%dv,SI);输出S1的值。C.以上说法都不对。D.S2二二S1表示的是S2和S1相等。3.假设有结构体类型Score和StudentstructScore{floatChinese;floatEnglish;floatmaths;);structStudent{intnum;charname[20];structScorescore;}student;以下说法正确的选项是(B)A.student.English是正确的B.student,score.English是正确的C.score.English是正确的D.以上说法都不对.设有p是一个指向结构体变量S1的指针,以下语句是给结构体变量S1中的num成员赋值2018001的不是(D)oA.si.num=2018001;B.(*p).num=2018001;C.p->num=2018001;D.以上都不对.以下说法正确的选项是(A)oA.由于成员运算符”比指针运算符“*”优先级高,因此,*p必须使用括号括起来。B.成员运算符”和指针运算符一起使用,不用区分什么C.由于指针运算符比成员运算符”优先级高,因此,*p不需要用括号括起来。D.以上都不对.设有如下定义:structstrul(inta;floatb;)c2,*p;假设有p=&c2;那么对c中的成员a的正确引用是(B)oA.(*p),c2.aB.(*p).aC.p->c2.aD.p.c2.a.假设有“stuctStuSI;",定义结构体变量SI。“stuctStu*p=&Sl;”的含义是(A)oA.定义指针变量p,指向结构体变量SI.定义指针变量p,将结构体变量S1的值赋给指针变量pC.定义指针变量p,将结构体变量S1的值按位与指针变量pD.以上都不对.假设有结构体数组和指向结构体对象的指针变量,可使结构体指针P指向结构体数组的首地址的是(B)structStu*s[3],p=&s;structStus[3],*p;p=s;structStus[3],p;p=s;structStu*s[3],p=s;.用结构体变量成员作函数参数。将实参值传给形参,这种传递方式是(B)。A.值传递B.地址传递C.混合传递D.以上都不是.用指向结构体变量(或数组元素)的指针作函数实参,其实质是(A)oA.向函数传递结构体的地址B.向函数传递结构体的值C.向函数传递结构体的名称D.以上都不对.共用体的所有成员共同占用一段内存,共用体变量所占内存空间大小取决于(C)A.其所有成员占内存空间之和B.其成员中占内存空间最少的那个成员变量C.其成员中占内存空间最多的那个成员变量D.以上都不是.假设有定义枚举类型weekday,^enumweekday{sun,mon,tue,wed,thu,fri,sat};'各成员的值依次是(B)A.1234567B.0123456C.135791113D.以上都不对13.假设有“typedefintInteger;",以下说法正确的选项是(A)int数据类型的新名字是IntegerInteger是整型变量typedef不是C语言关键字D.以上都错误三、程序填空题。.以下程序的执行结果是平均分为:86为。#include<stdio.h>4include<stdio.h>structStu

intnum;intnum;charname[20];charsex;intage;floatscore;);voidmain()(inti;floatsum=0.0;intnum;charname[20];charsex;intage;floatscore;);intnum;charname[20];charsex;intage;floatscore;);voidmain()(inti;floatsum=0.0;/*性别为字符型*//*年龄为整型*//*成绩为实型*/structStus[30]={{2018001,"Peter",J,18,85},{201702,"Jack",'M',19,91},{201703,〃Lily〃,'F,,18,83}};/*对结构体数组进行初始化*/for(i=0;i<3;i++)sum=sum+s[i].score;/*计算3位同学的成绩总和*/printf(〃平均分为:%5.lf\n〃,sum/3.0);/*输出平均分*/).以下程序的执行结果是所占内存字节为:土。4include<stdio.h>unionUN{shorts;charc;floatf;);voidmain()(inta;unionUNul二⑵;a=sizeof(ul);printf(〃所占内存字节为:%d\n\a);).以下程序执行时从键盘输入0,结果是一星期日一4include<stdio.h>voidmain()inta;enumweekday{sun=0,mon=l,tue,wed,thu,fri,sat);printf(〃请输入一个数字:〃);scanf(〃%d〃,&a);switch(a)(casemon:printf(〃星期一\nz,);break;casetue:printf(〃星期二\n〃);break;casewed:printf(〃星期三\n〃);break;casethu:printf(〃星期四\n〃);break;casefri:printf(〃星期五\n〃);break;casesat:printf(〃星期六\n〃);break;casesun:printf(〃星期日\n〃);break;default:printf(〃错误!\n〃);break;})四、编程题。.编写程序,用结构体类型数据存储下面表格中的数据,并输出每一条记录的值。numnameScorelScore2Score32018001Peter8590842018002Jack8680782018003Lily757270#include<stdio.h>ttinclude<stdio.h>structStu(intnum;charname[20];intscorel;intscore2;intscore3;);voidmain()(inti;floatsum=0.0;structStus[3]={{2018001,"Peter",85,90,84],{2018002,"Jack",86,80,78),{2018003,"Lily",75,72,70}};printf(〃num\tnanie\tScorel\tScore2\tScore3\n〃);for(i=0;i<3;i++)printf(,,%d\t%s\t%d\t%d\t%d\n,z,s[i].num,s[i].name,s[i].scorel,s[i].score2,s[i].score3);).编写程序,通过指向结构体变量的指针变量输出结构体变量中成员的信息。学号:2018001姓名:Peter性别:'M'年龄:18成绩85#include<stdio.h>4include<stdio.h>structStuintnum;charname[20];charsex;intage;intscore;);voidmain()(structStus□={2018001,“Peter",'M',18,85},*p;P二s;printf(,,%d\t%s\t%c\t%d\t%d\n,/,p->num,p->name,p->sex,p->age,p->score);).编写程序,在main函数中定义结构体变量并赋初始值,然后在main函数中调用自定义函数print()将结构体变量的成员逐一输出,用指针实现。#include<stdio.h>4include<stdio.h>structStu(intnum;charname[20];charsex;intage;intscore;);voidprint(structStu*p,structStus[])(P=s;printf(,,%d\t%s\t%c\t%d\t%d\n,/,p->num,p->name,p->sex,p->age,p->score);)voidmain()(structStus口二{2018001,“Peter','M',18,85},*p;P=s;print(p,s);}.编写程序,定义枚举类型数据month,从键盘输入1~12之间的整数,输出每个月的英文表示。ttinclude<stdio.h>voidmainO(inta;enummonth{Jan=l,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);printf(〃请输入一个数字scanf(〃%d〃,&a);switch(a)caseJan:printf(,,Jan\n,");break;caseFeb:printf(,zFeb\nz/);break;caseMar:printf(,zMar\n/z);break;caseApr:printf(,zApr\nz/

温馨提示

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

评论

0/150

提交评论