12.C语言(数组)单元练习四 31
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(数组)单元练习四
一.单选
1. 下面给出的是使用typedef 定义一个新数据类型的4项工作,如果要正确定义一个新的数据类型,进行这4项工作的顺序应当是______。
1.把变量名换成新类型名2.按定义变量的方法写出定义体
3.用新类型名定义变量4.在最前面加上关键字typedef
A. 2,4,1,3
B. 1,3,2,4
C. 2,3,4,1
D. 4,2,3,1
2. 设有以下链表,则不能将q所指的结点插入到链表末尾的是______。
A. q->next=NULL;p=p->next;p->next=q;
B. p=p->next;q->next= p->next; p->next=q;
C. p=p->next;q->next= p; p->next=q;
D. p=(*p).next;(*q).next= (*p).next; (*p).next=q;
3. 阅读程序,选择正确的输出结果______。
#include
void main()
{ union
{ int i[2]; long k; char c[4]; } t, *s = &t;
s->i[0] = 0x39; s->i[1] = 0x38;
printf("%c\n",s->c[0]); }
A. 39
B. 9
C. 38
D. 8
4. 设有以下定义,则不正确的引用是______。
struct student
{int age;
int num;
}stu,*p;
p=&stu;
A. stu.age
B. p->age
C. (*p).age
D. *p.age
5. 设有以下说明union { int i; char c; float f; }a;
则错误的叙述是______。
A. a所占的内存长度等于成员f的长度
B. a的地址和它的各成员地址都是同一地址
C. a可以作为函数参数
D. 不能对a赋值,也不能在定义a时对它初始化
6. 阅读程序,选择正确的输出结果______。
#include
void main()
{ union
{ char c; int i; }t;
t.c = 'A'; t.i = 1;
printf("%d,%d",t.c , t.i); }
A. 65,1
B. 65,65
C. 1,1
D. 以上都不对
7. 结构体类型变量所占内存是______。
A. 各成员所需内存的总和
B. 结构体中第一个成员所需内存量
C. 结构体中占内存量最大者所需内存量
D. 结构体中最后一个成员所需内存量
8. 对结构体类型变量定义不正确的是______。
A. #define STUDENT struct student
B.struct student
STUDENT { char name;
{char name; int num;
int num; }stu;
}std;
C. struct
D. struct
{char name; {char name;
int num; int num;
}std; }student;
struct student stu;
9. 设有以下定义,则不正确的引用是______。
struct student
{int age;
int num;
}*p;
A. ( p++)->num
B. p++
C. (*p).num
D. p=&student.age
10. 设有以下定义,p指向num域的是______。
struct student
{int num;
char name[10];
}stu,*p;
A. p=&stu.num;
B. *p=stu.num;
C. p=(struct student *)&(stu.num);
D. p=(struct student *)stu.num;
11. 设有以下定义,则不正确的引用是______。
struct student
{int age;
char sex;
char name[10];
}stu[5],*p;
p=stu;
A. scanf("%s",stu[0].name);
B. scanf("%d",&stu[0].age);
C. scanf("%c",&(p->sex));
D. scanf("%d", p->age);
12. 阅读程序,选择正确的输出结果______。
#include
void main()
{ union
{ short int i[2]; long k; char c[4]; } t, *s = &t;
s->i[0] = 0x39; s->i[1] = 0x38;
printf ("%x\n",s->k); }