#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) }}