第十四部分:结构体与共用体及用户定义类型
一、选择题:
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]=,
= s[1].num; =s[1].totalscore;
main()
struct stu s[2]=,
f(s[0]);
printf("%d %3.0f", 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]=,
num = s[0].num;
strcpy(name, s[0].name);
main()
struct stu s[2]=,p;
p=&s[1]; f(p->name, p->num);
printf("%s %d", 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]=,q=s;
+p ; q; *p=*q;
main()
struct stu s[3]=,
f(s);
printf("%s %d %3.0f", 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)程序段:"%f",输出结果为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
struct student stu[3]=,
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);
10) a) char * b) struct node c) struct node* d) char
11) a) *s b) s c) *s++ d)(*s)++
12) a) p->next b) p c) s d) s->next
13) 设有以下语句
typedef struct s
int g; char h;} t;
则下面叙述中正确的是
a) 可用s定义结构体变量 b)可以用t定义结构体变量
c)s是struct类型的变量 d)t是struct s类型的变量
14) 有以下程序
struc stu
char name[10];
int num;
void f1(struct stu c)
struct stu b=; c=b;
void f2(struct stu *c)
struct stu b=; c=b;
main( )
struct stu a=,b=;
f1(a) ;f2(&b) ;
printf(“%d %d”,
执行后的输出结果是
a)2041 2044
b)2041 2043
c)2042 2044
d)2042 2043
15) 有以下程序
struct stu
char name[10];
int num;
int score;
main( )
struct stu s[5]=,
“wangyin”,20043,680},,
“penghua”,20045,537}},p[5],*t;
int i,j;
for(i=0;i<5;i++)p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->score>p[j]->score)
t=p[i];p[i]=p[j];p[j]=t;}
printf(“5d %d”,s[1].score,p[1]->score);
执行后输出结果是
a) 550 550
b) 680 680
c) 580 550
d) 580 680
16) 有以下程序
#include <>
struct node{
int num;
struct node *next;
main( )
struct node *p,*q,*r;
int sum=0;
p=(struct node *)malloc(sizeof(struct node));
q=(struct node *)malloc(sizeof(struct node));
船舶结构与货运模拟题一
班级姓名成绩 1.上甲板以下的第一层甲板常称为 a.一层甲板 b.二层甲板 c.舱内甲板 d.舱壁甲板。2.船舶尺度根据不同的用途和计量方法可分为 a.船长 登记宽度 型深和吃水 b.船长 型宽和型深。c.船长 船宽 船深和吃水 d.船型尺度,最大尺度和登记尺度。3.下列有关运河吨位表述正确的是 分...
12 13年模拟题
2012 2013学年高一第一学期期末复习试题。命题人 蒋湘。一 选择题。1 已知全集,集合或 则。ab c 或 d 2 在下列四组函数中,函数f x 与g x 相等的是 a b c d 3 函数。a 1b 4cd 4 若直线与直线互相垂直,则的值是。ab.1c.0或d.1或。5 若直线,则b的值为...
《建筑结构与设备》临考模拟题
二级建筑师考试科目 建筑结构与设备 临考模拟题1 1.风荷载标准值,k kn m2 与风压高度变化系数 z 基本风压 0存在一定关系,以下几种说法哪个是正确的?a 建筑物受到风荷载的大小与高度无关。b 建筑物越高,受到的风荷载越小。c 建筑物所受风压与建筑物体型无关。d 建筑物越高,受到的风荷载越大...