#ZX1009. 结构体专项
结构体专项
一、单选题(每题 2 分,共 20 分)
1、以下关于结构体的描述,正确的是( )。
{{ select(1) }}
- 结构体中的成员数据类型必须完全相同
- 结构体不能包含字符串类型的成员
- 结构体是由多个类型不同(或相同)的数据组合而成的数据类型
- 结构体定义后必须立即定义变量
2、对结构体变量a的成员进行赋值,正确的是( )
{{ select(2) }}
- a.id = 2;
- a->id = 2;
- stu.id = 2;
- struct.stu.id = 2;
3、已知结构体变量stu a={1,"yaya",98};,以下输出成员变量name的语句正确的是( )。
{{ select(3) }}
- cout<name<<endl;
- cout<<a.name<<endl;
- cout<<name.a<<endl;
- cout<<stu.name<<endl;
4、定义结构体数组的方式中,正确的是( )。
{{ select(4) }}
-
struct stu{ int id; string name; double score; }; stu a[3]; -
struct stu{ int id; string name; double score; }a[3]; - 以上两种都正确
- 以上两种都错误
5、结构体数组stu a[3]={{1,"yaya",98},{2,"qiqi",82.5},{3,"lili",89}};,访问第2个元素(从0开始计数)的score成员,正确的是( )。
{{ select(5) }}
- a[1].score
- a[2].score
- a[1]->score
- a[2]->score
6、要给结构体数组a[3]的所有元素输入数据,以下循环语句正确的是( )。
{{ select(6) }}
-
for(int i=0;i<3;i++){ cin>>a.id>>a.name>>a.score; } -
for(int i=0;i<3;i++){ cin>>a[i].id>>a[i].name>>a[i].score; } -
for(int i=0;i<=3;i++){ cin>>a[i].id>>a[i].name>>a[i].score; } -
for(int i=1;i<3;i++){ cin>>a[i].id>>a[i].name>>a[i].score; }
7、使用sort()函数对结构体数组排序时,需要( )。
{{ select(7) }}
- 自定义排序规则函数
- 直接调用
sort(a,a+3)即可 - 不需要任何额外操作
- 只能按第一个成员变量排序
8、以下自定义排序规则函数,实现按score升序排序的是( )。
{{ select(8) }}
-
bool cmp(stu x,stu y){ return x.id>y.id; } -
bool cmp(stu x,stu y){ return x.id<y.score; } -
bool cmp(stu x,stu y){ return x.score<y.score; } -
bool cmp(stu x,stu y){ return x.score>y.score; }
9、以下关于sort()函数排序结构体数组的调用格式,正确的是( )。
{{ select(9) }}
- sort(a,a+3,cmp);
- sort(a,3,cmp);
- sort(a,a[3],cmp);
- sort(a,3,a+cmp);
10、对结构体数组按id降序排序,若id相同则按score升序排序,以下自定义排序规则函数正确的是( )
{{ select(10) }}
-
bool cmp(stu x,stu y){ if(x.id>y.id) return true; else if(x.id==y.id) return x.score<y.score; else return false; } -
bool cmp(stu x,stu y){ if(x.id>y.id) return false; else if(x.id==y.id) return x.score<y.score; else return true; } -
bool cmp(stu x,stu y){ if(x.id>y.id) return true; else if(x.id==y.id) return x.score>y.score; else return false; } -
bool cmp(stu x,stu y){ return x.id>y.id&&x.score<y.score; }
二、判断题(每题 2 分,共 10 分)
11、结构体变量初始化时,必须按成员变量声明的顺序进行赋值。
{{ select(11) }}
- 对
- 错
12、访问结构体变量的成员时,使用“->”运算符。
{{ select(12) }}
- 对
- 错
13、结构体数组的每个元素都是一个结构体变量,拥有独立的成员变量。
{{ select(13) }}
- 对
- 错
14、使用sort()函数对结构体数组排序时,自定义的排序规则函数返回值类型必须是bool。
{{ select(14) }}
- 对
- 错
15、结构体变量定义后,其成员变量会自动初始化,无需手动赋值。
{{ select(15) }}
- 对
- 错