二级C语言教程章节测试14.结构体与共用体及用户定义类型

文章作者 100test 发表时间 2007:05:12 13:45:51
来源 100Test.Com百考试题网


计算机等级考试训练软件《百宝箱》

  一、选择题:
(1)有以下程序段
typedef struct NODE
{ int num. struct NODE *next.
} OLD.
以下叙述中正确的是
A)以上的说明形式非法 B)NODE是一个结构体类型
C)OLD是一个结构体类型 D)OLD是一个结构体变量

(2)有以下程序
# include
struct STU
{ int num.
float TotalScore. }.
void f(struct STU p)
{ struct STU s[2]={{20044,550},{20045,537}}.
p.num = s[1].num. p.TotalScore = s[1].TotalScore.
}
main()
{ struct STU s[2]={{20041,703},{20042,580}}.
f(s[0]).
printf("%d %3.0f\n", s[0].num, s[0].TotalScore).
}
程序运行后的输出结果是
A)20045 537 B)20044 550 C)20042 580 D)20041 703

(3)有以下程序
# include
struct STU
{ char name[10].
int num. }.
void f(char *name, int num)
{ struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}.
num = s[0].num.
strcpy(name, s[0].name).
}
main()
{ struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p.
p=&.s[1]. f(p->name, p->num).
printf("%s %d\n", p->name, p->num).
}
程序运行后的输出结果是
A)SunDan 20042 B)SunDan 20044
C)LiSiGuo 20042 D)YangSan 20041

(4)有以下程序
struct STU
{ char name[10]. int num. float TotalScore. }.
void f(struct STU *p)
{ struct STU s[2]={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s.
p . q. *p=*q.
}
main()
{ struct STU s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}}.
f(s).
printf("%s %d %3.0f\n", s[1].name, s[1].num, s[1].TotalScore).
}
程序运行后的输出结果是
A)SunDan 20044 550 B)Penghua 20045 537
C)LiSiGuo 20042 580 D)SunDan 20041 703

(5)若有以下说明和定义
union dt
{
int a. char b. double c.
}data.
以下叙述中错误的是
A)data的每个成员起始地址都相同
B)变量data所占内存字节数与成员c所占字节数相等
C)程序段:data.a=5.printf("%f\n",data.c).输出结果为5.000000
D)data可以作为函数的实参

(6)设有如下说明
typedef struct ST
{
long a.
int b.
char c[2].
} NEW.
则下面叙述中正确的是
A)以上的说明形式非法
B)ST是一个结构体类型
C)NEW是一个结构体类型
D)NEW是一个结构体变量

(7)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct node
{
int data.
struct node *next.
} *p,*q,*r.
现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是
A)p->next=q->next.
B)p->next=p->next->next.
C)p->next=r.
D)p=q->next.

(8)以下对结构体类型变量td的定义中,错误的是
A)typedef struct aa
{
int n.
float m.
}AA.
AA td.
B)struct aa
{
int n.
float m.
} td.
struct aa td.
C)struct
{
int n.
float m.
}aa.
struct aa td.
D)struct
{
int n.
float m.
}td.

(9) 有以下说明和定义语句
struct student
{ int age. char num[8].}.
struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}.
struct student *p=stu.
以下选项中引用结构体变量成员的表达式错误的是
A) (p )->num B) p->num C) (*p).num D) stu[3].age
10~12.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。
#include
stuct node
{ char data. struct node *next.}.
(10) CreatList(char *s)
{ struct node *h,*p,*q).
h=(struct node *) malloc(sizeof(struct node)).
p=q=h.
while(*s!=\0)
{ p=(struct node *) malloc(sizeof(struct node)).
p->data= (11) .
q->next=p.
q= (12) .
s .
}
p->next=\0.
return h.
}
main()
{ char str[]="link list".
struct node *head.
head=CreatList(str).
...
}



相关文章


二级VB基础教程:8.2多选项卡对话框——页框(TabStrip)
等考二级VB考点分析之键盘与鼠标事件过程
二级C语言教程章节测试8.指针
等级考试二级VB考点分析之多重窗体与数据文件(2)
二级C语言教程章节测试14.结构体与共用体及用户定义类型
二级C语言教程章节测试13.编译预处理和动态存储分配
如何快速有效学好C语言
经典一则C语言程序设计
解析C语言中的sizeof
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛