自定义数据类型习题及答案C语言.docx
- 文档编号:6934937
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:12
- 大小:18.10KB
自定义数据类型习题及答案C语言.docx
《自定义数据类型习题及答案C语言.docx》由会员分享,可在线阅读,更多相关《自定义数据类型习题及答案C语言.docx(12页珍藏版)》请在冰点文库上搜索。
自定义数据类型习题及答案C语言
第7章 自定义数据类型习题
一.选择题:
1.当定义一个结构体变量时,系统分配给它的内存空间是【】。
A)结构中一个成员所需的内存量B)结构中最后一个成员所需的内存量
C)结构体中占内存量最大者所需的容量D)结构体中各成员所需内存量的总和
2.若有以下说明,对初值中整数2的正确引用方式是【】。
staticstruct
{
charch;
inti;
doublex;
}a[2][3]={{‘a’,1,3.45,’b’,2,,’c’,3,}
{‘d’,4,,’e’,5,,’f’,6,}};
A)a[1][1].iB)a[0][1].iC)a[0][0].iD)a[0][2].i
3.根据以下定义,能打印字母M的语句是【】。
structp
{
charname[9];
intage;
}c[10]={“Jobn”,17,”Paul”,19,”Mary”,18,”Adam”,16};
A)printf(“%c”,c[3].name);B)printf(“%c”,c[3].name[1]);
C)printf(“%c”,c[2].name);D)printf(“%c”,c[2].name[0]);
4.以下说明和语句中,已知int型数据占两个字节,则以下语句的输出结果是【】。
structst
{
chara[l0];
intb;
doublec;
};
printf(“%d”,sizeof(structst));
A)0B)8C)20D)2
5.以下说明和语句中,对结构体变量std中成员id的引用方式不正确的是【】。
structwork
{
intid;
intname;
}std,*p;
p=&std;
A)B)*C)(*p).idD)&
6.如设有如下定义,若要使px指向rec中的成员x,正确的赋值语句是【】。
structaa
{intx;
floaty;
}rec,*px;
A)*px=;B)px=&
C)px=(structaa*);D)px=(structaa*)&;
7.下列程序的输出结果是【】。
#include
main()
{
structdate
{
inty,m,d;
};
union
{
longi;
intk;
charii;
}mix;
printf(“%d,%d\n”,sizeof(structdate),sizeof(mix));
}
A)6,2B)6,4C)8,4D)8,6
8.设有以下结构体定义,若要对结构体变量p的出生年份赋值.下面正确的语句是【】。
structdate
{inty;
intm;
intd;
}
structworklist
{charname[20];
charsex;
structdatebirthday;
}p;
A)y=1976;B)=1976;
C);D)=1976;
9.若有以下说明语句:
structp
{charname[20];
intage;
charsex;
}a={“liming”,20,‘m’},p=&a;
则对字符串“liming”的错误引用方式是【】。
A)(*p).nameB)*
C)D)
10.当说明一个联台体变量时,系统分配给它的内存为【】。
A)联台体中的一个成员所需的内存量
B)联台体中最后一个成员所需的内存量
C)联台体体中占内存量最大者所需容量
D)联台体中各成员所需内存量的总和
11.设有以下说明,则下面不正确的叙述是【】。
uniondata
{
intI;
charc;
floatf;
}a;
A)a所占的内存长度等于成员f的长度
B)a的地址和它的各成员地址都是同一地址
C)a可以作为函数参数
D)不能对a赋值,但可以在定义a时对它初始化
12.下面程序的运行结果是【】。
main()
{
unionu
{
char*name;
intage;
intincome;
}s;
=”wanghong”;
=26;
=2000;
printf(“%d\n”,;
}
A)8B)1000
C)0D)不确定
13.已知字符0的ASCII码为十六进制的30,下面程序的输出为【】。
main()
{
union
{
charc;
unsignedinta[4];
}z;
[0]=0x39;
[l]=0x36;
printf(“%c\n”,;
}
A)6B)9
C)0D)3
14.若定义共用(联合)体数据类型如下.
union
{
inta;
intb;
}x,y;
执行语句=3;=4;=*2;后,则的值为【】。
A)3B)4C)6D)8
15.定义以下结构体数组
structdate
{
intyear;
intmonth;
};
structs
{
structdatebirth;
charname[20];
}x[4]={{2010,8,"Beijing"},{1999,9,"Nanjin"}};
语句printf("%s,%d",x[0].name,x[0].;的输出结果为【】。
A)Beijing,8B)Nanjin,9
C)Beijing,2010D)Nanjin,1999
16.运行下列程序段,输出结果是【】。
structcountry
{
intnum;
charname[20];
}x[5]={1,”china”,2,”USA”,3,”France”,4,”England”,5,”Spanish”};
structcountry*p;
p=x+3:
printf(“%d,%c",*,(*p)name[2]);
A)3,aB)4,gC)2,UD)5,S
17.在以下程序段中,已知int型数据占两个字节,则输出结果是【】。
unionun
{
intI;
doubley;
}
structst
{
chara[10];
unionunb;
}
printf(“%d”,sizeof(structst));
A)14B)18C)20D)16
18.定义以下结构体数组
structst
{
charname[20];
intage;
}c[10]={“zhang”,16,”Li”,17,”Ma”,18,”Huang”,19};
执行语句printf(“%d,%c”,c[2].age,*(c[3].name+2))的输出结果为【】。
A)17,iB)18,MC)18,aD)18,u
19.若定义以下结构体数组
structcontry
{
intnum;
charname[20];
}x[5]={1,”China”,2,”USA”,3,”France”,4,”England”,5,”Spain”};
执行for(i=1;i<5;i++)printf(“%d%c”,x[i].num,x[i].name[2]);
输出结果为【】。
A)2A3a4g5aB)IS2r3n4p
C)1A2a3g4aD)2A3n4l5n
20.定义以下结构体数组
structdate
{
intyear;
intmonth;
};
structs
{
structdatebirth;
charname[20];
}x[4]={{1977,8,"hangzhou"},{1975,9,"Tianjin"}};
语句printf("%S,%d",x[0].name,x[1].;的输出结果为【】。
A)a,1977B)hangzhou,1975
C)Tianjin,1975D)Tianjin,1975
21.定义以下结构体类型
structs
{
inta;
charb;
floatf;
};
语句printf("%d",sizeof(structs))的输出结果为【】。
A)3B)4C)6D)7
22.定义以下结构体数组
structc
{
intx;
inty;
}x[2]={1,3,2,7};
语句printf("%d",x[0].x*x[1].x)的输出结果为【】。
A)2B)6C)14D)21
23.定义以下结构体类型
structs
{
inta;
floatf;
};
语句printf("%d",sizeof(structs))的输出结果为【】。
A)2B)3C)4D)6
24.定义以下结构体数组
structc
{
intx;
floaty;
}x[2]={1,,2,};
语句printf("%d-%f",x[0].x,x[1].y)的输出结果为【】。
A)B)2-4.1C)D)
25.下面程序运行后,输出结果是【】。
main()
{
struct
{
intnum;
charname[10];
s[3]={1,"china",3,"USA",4,"England"
};
printf("\n%d,%s",s[0].num,s[2].name);
}
A)1,EnglandB)4,USAC)3,ChinaD)2,USA
26.定义以下结构体数组
structdate
{
intyear;
intmonth;
};
structs
{
structdatebirth;
charname[20];
}x[4]={{1977,8,"hangzhou"},{1975,9,"Tianjin"}};
语句printf("%c,%d",x[1].name[1],x[1].;的输出结果为【】。
A)a,1977B)hangzhou,1977C)i,1975D)Tianjin,1975
二、读程序写结果
1.以下程序的运行结果是【】。
main()
{
structEXAMPLE
{
struct
{
intx;
inty;
}in;
inta;
intb;
}e;
=1;
=2;
printf("%d,%d”,;
}
三.填空题
1.以下程序用以输出结构体变量bt所占内存单元的字节数,请在【1】内填上适当内容。
structps
{
doublea;
chararr[20];
};
main()
{
structpst;
printf(“tsize:
%d\n”,【1】);
}
2.以下程序用来按学生姓名查询其排名和平均成绩。
查询可连续进行,直到键入0时结束,请在【】内填入正确内容。
#include
#include
#defineNUM4
structstudent
{
char*name;
floatscore;
intrank;
【1】stu[]={“Tom”,,
“Mary”,,
“Jack”,,
“Jim”,
};
main()
(
charstr[10];
intI;
do
{
printf(“Enteraname:
”);
scanf(“%s”,str);
for(i=0;i if(【2】) { printf(“name: %8s\n”,stu[i].name); printf(“rank: %3s\n”,stu[i].rank); printf(“average: %\n”,stu[i].score); 【3】; } if(i>=NUM)printf(“Notfound\n”); } while(strcmp(str,”0”)! =0); } 第7章 一、选择题 1.D2.B3.D4.C5.B6.D7.B8.C9.B10.C 11.C12.B13.B14.D15.A16.B17.B18.C19.A20.B 21.D22.A23.D24.D25.A26.C 二、读程序写结果 1.2,3 三、填空题 1.sizeof(structps) 2.【1】structstudent【2】strcmp(str,stu[i].name)==0【3】break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自定义 数据类型 习题 答案 语言