第八章测试
1.已经声明了一个如下的结构体类型Student:下列哪个选项能定义一个Student 类型的结构体变量?( )
A:Student.name = "John"; B:Student s = new Student; C:Student s[5]; D:struct Student st;
答案:D
2.已经声明了一个如下的结构体类型Car:以下哪个选项的结构体成员引用是正确的?( )
A:Car.brand; B:Car->year; C:car.price; D:car[year]; 3.设有以下程序段struct person{char name[4];char sex;float weight;} zhang, *ptr;ptr = &zhang;若要从键盘读入姓名给结构体变量zhang的name成员,以下写法中错误的是( )。
A:scanf("%s", zhang*name); B:scanf("%s", zhang.name); C:scanf("%s", ptr->name); D:scanf("%s", (*ptr).name); 4.设有如下定义struct{ int n; char c; } a[2],*p=a;则以下错误引用结构体成员n的是( )。
A:p->n B:(*a)->n C:a[0].n D:(*p).n 5.在使用结构体指针时,以下哪些操作是可能的( )。
A:通过解引用符获取结构体的数据 B:动态分配内存以存储结构体实例 C:通过指针进行结构体成员的访问 D:通过指针变量值添加成员 6.结构体指针指向一个结构体类型变量。( )
A:错 B:对 7.结构体指针可以动态分配自身所占有的内存空间。( )
A:对 B:错 8.如果有一个名为 personArray 的结构体指针数组,要访问第三个元素的某个成员,可以使用( )。
A:personArray[2]->member B:personArray->member[2] C:personArray.member[2] D:personArray[2].member 9.在动态内存分配中,如果要为结构体指针数组ptrArray分配内存,通常会使用( )。
A:malloc(sizeof(MyStruct) * n); B:malloc(sizeof(struct MyStruct *) * n); C:malloc(sizeof(ptrArray) * n); D:malloc(sizeof(struct MyStruct) * n); 10.结构体指针数组与结构体数组的区别包括( )。
A:结构体指针数组支持更灵活的内存管理,数组元素占有的内存空间大小可以不一样 B:结构体数组在声明时需要指定大小,而结构体指针数组可以动态改变大小 C:结构体指针数组的元素是指针类型,而结构体数组的元素是非指针类型 D:结构体指针数组存储的是结构体指针,而结构体数组直接存储结构体变量 11.结构体指针数组需要遍历数组来访问每个结构体的成员。( )
A:对 B:错 12.结构体指针数组可以动态分配数组所占有的内存空间。( )
A:错 B:对 13.下列结构体类型在函数中的运用说法正确的是( )。
A:结构体数组的元素是结构体指针 B:形式参数的类型是结构体指针,实际参数的类型也必须是结构体指针 C:结构体数组在函数中会隐式转换为结构体指针 D:结构体变量不可以作为返回值 14.已知函数定义void fun(struct ex par),下列函数调用正确的是( )。
A:struct ex2 par;fun(&par); B:struct ex par;fun(&par); C:struct ex2 par;fun(par); D:struct ex par;fun(par); 15.当需要传递结构体指针给函数时,可以使用什么作为参数( )。
A:结构体数组 B:结构体指针 C:结构体变量 D:结构体变量的地址 16.结构体指针不能作为函数返回值。( )
A:对 B:错 17.函数可以不通过结构体直接修改成员的值。( )
A:对 B:错 18.有以下程序#include <stdio.h>struct tt{ int x; struct tt *y; } s[3]={ 1,0,2,0,3,0};main( ){ struct tt *p=s+1;p->y=s;printf("%d,",p->x);p=p->y;printf("%d\n",p->x);}程序运行后的输出结果是( )。
A:3,1 B:2,3 C:2,1 D:1,2 19.如果有一个名为 person 的结构体,其中包含一个嵌套的结构体 address,要访问地址的城市成员,可以使用( )。
A:person->address->city; B:person.address->city C:person->address.city D:person.address.city 20.下列关于结构体嵌套说法正确的是( )。
A:支持创建复杂的数据结构和层次化的对象。 B:减少命名冲突,将相关数据和操作组织在一起。 C:提高代码复用。 D:提供一种方式来实现继承性。 21.既可以不同的结构体间嵌套也可以结构体嵌套自身。( )
A:错 B:对 22.结构体嵌套自身需要使用指针实现。( )
A:错 B:对

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(5) dxwkbang
返回
顶部