C语言第七章选择题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C 语言选择题库
汕头大学许创编辑
s->i[0]=0x39; s->i[1]=0x38; printf("%c\n", s->c[0]); } A) 39 B) 9 C) 38 D) 8 730.在微机上使用 turbo C,若有如下定义: union data {int i; char c; double f; } b; 则共用体变量 b 占用内存的字节数是 A) 2 B) 1 C) 11 D) 8 731*.执行下列程序的输出结果是 #include<stdio.h> union pw {int i; char ch[2]; } a; main( ) { a.ch[0]=13; a.ch[1]=0; printf("%d\n",a,i); } /* 注意:ch[0]在低字节,ch[1]在高字节 */ A) 13 B) 14 C) 208 D) 209 732.变量 a 所占内存字节数是 union U
wk.baidu.com
C 语言选择题库
汕头大学许创编辑
A) 1 B) 7 C) 9 D) 11 726.若要用下面的程序程序片段使指针变量 p 指向一个存储整型变量的动态存储单元: int *p; p=________malloc(sizeof(int)); 则应填入 A) int B) int * C) (*int) D) (int *) 727*.字符'0'的 ASCII 的十进制数为 48,且数组的第 0 个元素在低位,则以下程序的输出 结果是 #include<stdio.h> main() {union { int i[2]; long k; char c[4]; } r, *s=&r; s->i[0]=0x39; s->i[1]=0x38; printf("%c\n", s->c[0]); } A) B) C) D) 39 9 38 8
C 语言选择题库
汕头大学许创编辑
C 语言选择题库
汕头大学许创编辑
707.下列描述说明正确的是 A) 定义结构体时,它的每个成员的数据类型可以不同。 B) 不同结构体的成员名不能相同。 C) 结构体定义时,其成员的数据类型不能是结构体本身。 D) 结构体定义时各成员项之间可用分号也可用逗号隔开。 708.下列描述说明正确的是 A) 定义结构体时,系统按照各成员项的大小分配相应的存储空间。 B) 定义结构体时,系统按照各成员项中占用空间最大的成员项分配存储空间。 C) 结构体定义时, 结构体本身并不占用存储空间, 即系统并不给结构体分配存储空间。 D) 以上说法均不正确。 709.下列描述说明正确的是 A) 结构体变量说明时,系统按照结构体定义时所需空间的大小实际分配存储空间。 B) 结构体变量说明时,系统按照各成员项中占用空间最大的成员项分配存储空间。 C) 结构体变量说明时,系统并不给结构体分配存储空间。 D) 以上说法均不正确。 710.下列描述说明正确的是 A) 结构体变量可以作为一个整体进行其值的输入和输出。 B) 结构体成员项不可以是结构体。 C) 结构体成员项可以是结构体或其他任何 C 语言的数据类型。 D) 结构体变量和结构体是相同的概念。 711.在微机上使用 turbo C,若有如下定义: struct data {int i; char c; double f; } b; 则结构变量 b 占用内存的字节数是 A) 1 B) 2 C) 7 D) 11 712.下面程序的运行结果是 main( ) { struct {long a; int b; char c; } m; printf("%d\n", sizeof(m)); }
C 语言选择题库
汕头大学许创编辑
A) 0 B) 1 C) 3 D) 6 717.下列程序的输出结果是 struct abc { int a, b, c; }; main( ) {struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n", t); } A) 5 B) 6 C) 7 D) 8 718.若有以下说明,则下列表达式中值为 20 的是 struct sampl {int a; int b;}; struct sampl test[3]={{1,10},{2,20},{3,30}}, *p=test; A) (p++)->b B) (p++)->a C) (*++p).b D) (*++p).a 719.若有以下定义和语句: struct student { int age; int num; }; struct student stu[3]={{20,1001},{19,1002},{21,1003}}; main() { struct student *p; p=stu; … } 则以下不正确的引用是 A) (p++)->num B) p++
┌──┬───┐ │ G │ │ └──┴───┘ ↑s
724.若有说明:long *p, a;则不能通过 scanf 语句正确给输入项读入数据的程序段是 A) *p=&a; scanf("%ld", p); B) p=(long *)malloc(8); scanf("%ld", p); C) scanf("%ld", p=&a); D) scanf("%ld", &a); 725*.以下程序的输出结果是 fut(int **s, int p[2][3]) {**s=p[1][1];} main() {int a[2][3]={1,3,5,7,9,11}, *p; p=(int *)malloc(sizeof(int)); fut(&p, a); printf("%d\n", *p); }
C 语言选择题库
汕头大学许创编辑
结点插入到链表末尾的语句组是 data next data next ┌──┬───┐ ┌──┬───┐ head│ E │ +→│ F │ NULL│ └──┴───┘ └──┴───┘ ↑p A) s->next=NULL; p=p->next; p->next=s; B) p=p->next; s->next=p->next; p->next=s; C) p=p->next; s->next=p; p->next=s; D) p=(*p).next; (*s).next=(*p).next; (*p).next=s; 723.以下程序的输出结果是 #include int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, *p; main( ) {p=(int*)malloc(sizeof(int)); f(p, a); printf("%d\n", *p); } f(int *s, int p[ ][3]) {*s=p[1][1];} A) 1 B) 4 C) 7 D) 5
728.下列描述说明正确的是 A) 共用体定义时,系统按照各成员项所需空间的大小和实际分配存储空间。 B) 结构体定义时并不分配存储空间,只有在结构体变量说明时系统才分配存储空间。 C) 共用体定义时,系统按照占用空间最大的成员项分配存储空间。 D) 以上说法均不正确。 729.以下程序的输出结果是 #include<stdio.h> main() {union{int i[2]; long k; char c[4]; } r, *s=&r;
C 语言选择题库
汕头大学许创编辑
第七章 结构体与共用体
701.下列描述说明正确的是 A) 只有外部存储类型的结构体变量可以进行初始化。 B) 只有静态存储类型的结构体变量可以进行初始化。 C) 外部存储类型和静态存储类型的结构体变量都可以进行初始化。 D) 以上描述均不正确。 702.以下正确的说法是 A) 结构体类型变量不能初始化。 B) 结构体类型变量为外部变量或静态变量时能初始化。 C) 结构体数组不能初始化。 D) 可以用赋值语句将一组常量赋给一个结构体变量。 703.结构体类型变量在程序执行期间, A) 所有成员一直驻留在内存中。 B) 只有一个成员驻留在内存中。 C) 部分成员驻留在内存中。 D) 没有成员驻留在内存中。 704.设有以下说明语句 struct stu { int a; float b; } stutype; 则下面不正确的叙述是 A) struct 是结构体类型的关键字。 B) struct stu 是用户定义的结构体类型。 C) stutype 是用户定义的结构体类型名。 D) a 和 b 都是结构体成员名。 705.下列说法不正确的是 A) 下列结构体定义时,占据了 5 个字节的空间。 struct s {int num; int age; char sex;} B) 结构体的成员名可以与程序中的变量名相同。 C) 对结构体中的成员可以单独使用,它的作用相当于普通变量。 D) 结构体的成员可以是一个结构体变量。 706.下列描述说明正确的是 A) 对于一个具体的结构体,它的成员可以根据自己的需要随时更改。 B) 结构体与数组一样,其每个成员的数据类型都相同。 C) 结构体的每个成员的数据类型必须是基本数据类型。 D) 以上描述均不正确。
C 语言选择题库
汕头大学许创编辑
C) (*p).num D) p=&stu.age 720.执行下列程序的输出结果是 struct st { int x; int *y; } *p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main( ) { p=aa; printf("%d\n",++p->x); printf("%d\n",(++p)->x); } A) 10 20 B) 50 60 C) 51 60 D) 60 70 721. 有以下结构体说明和变量的定义, 且如下图所示指针 p 指向变量 a, 指针 q 指向变量 b。 则不能把结点 b 连接到结点 a 之后的语句是 struct node { char data; struct node *next; } a, b, *p=&a, *q=&b; data next data next ┌──┬──┐ ┌──┬──┐ a│ 5 │ │b│ 9 │ 0 │ └──┴──┘ └──┴──┘ ↑p ↑q A) a.next=q; B) p.next=&b; C) p->next=&b; D) (*p).next=q; 722.若已建立了下面的链表结构,指针 p、s 分别指向图中所示的结点,则不能将 s 所指的
C 语言选择题库
汕头大学许创编辑
A) 7 B) 4 C) 6 D) 8 713.设有如下定义: struct st {int a; float b;} st1, *pst; 若有 pst=&st1;,则对 st1 中的 a 域的正确引用是 A) (*pst).st1.a B) (*pst).a C) pst->st1.a D) pst.st1.a 714.若有以下定义: struct stru {int a; long b; char c[6];} sampl; 则以下赋值正确的是 A) sampl.c= "abcd"; B) strcpy(sampl.c, "abcd"); C) sampl->c= "abcd"; D) 以上均不正确 715.以下程序的输出结果是 main() {struct stru{int a; long b; char c[6]; }; printf("%d\n", sizeof(struct stru)); } A) 2 B) 4 C) 6 D) 12 716.以下程序的输出结果是 main() {struct cmplx{int x; int y;} cnum[2]={1,3,2,7}; printf("%d\n", cnum[0].y/cnum[0].x*cnum[1].x); }