《C语言程序设计》核心试题(12)

标签:
c语言 |
分类: 教学文件 |
一、选择题:
(1)有以下程序段
A)以上的说明形式非法
C)OLD是一个结构体类型
(2)有以下程序
A)20045
537
(3)有以下程序
A)SunDan
(4)有以下程序
A)SunDan
union
{
}data;
B)变量data所占内存字节数与成员c所占字节数相等
C)程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
D)data可以作为函数的实参
(6)设有如下说明
typedef
{
} NEW;
B)ST是一个结构体类型
C)NEW是一个结构体类型
D)NEW是一个结构体变量
(7)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。
struct
{
} *p,*q,*r;
B)p->next=p->next->next;
C)p->next=r;
D)p=q->next;
(8)以下对结构体类型变量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
10~12.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。
#include <stdlib.h>
stuct node
{ char data; struct node *next;};
{ struct node *h,*p,*q);
}
main()
{ char str[]="link list";
}
(10) A) char *
(12) A) p->next
(13)
typedef struct
{
A)
可用S定义结构体变量
C)S是struct类型的变量
(14)
有以下程序
struc STU
{
};
void f1(struct STU C)
{
}
void f2(struct STU *C)
{
}
main( )
{
}
A)2041 2044
(15)
struct STU
{
};
main( )
{
}
A) 550
(16)
#include <stdlib.h>
struct NODE{
int num;
struct NODE *next;
};
main( )
{
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf(“%d\n”,sum);
}
A) 3
(17)
以下选项中不能正确把c1定义成结构体变量的是
A) typedef
COLOR
(18)
有以下程序
struct
{ int
main ()
{
printf("%d\n",++(p->x));
}
A)
10
(19)
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct
{ int
struct
} *p,
A) r->next=q;
(20)
typedef struct
{
A) STD tt[2]={{1,'A',62},{2,
'B',75}};
B) STD tt[2]={1,"A",62},2,
"B",75};
C) struct tt[2]={{1,'A'},{2,
'B'}};
D)structtt[2]={{1,"A",62.5},{2, "B",75.0}};
(21)
有以下程序
main()
{
}
A)
产生语法错
(22)若要说明一个类型名STP,使得定义语句STP s等价于char
A) typedef
(23)
struct
{
}std[3],*p=std;
A)
scanf("%d",&(*p).age);
C)
scanf("%c",&std[0].sex)
(24)
有以下程序
struct STU
{ char num[10];
main()
{
{“20022”,95,80,75},
{“20023”,100,95,90}},*p=s;
int i;
for(i=0;i<3,i++)
sum=sum+p->score[i];
printf(“%6.2f\n”,sum);
}
A)
260.00
(25)
设有如下定义:
struck sk
{
float b;
}data;
int *p;
A)
p=&a;
(26)
有以下程序
#include <stdlib.h>
struct NODE
{ int num;
main()
{
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(struct NODE));
r=(struct NODE*)malloc(sizeof(struct NODE));
p->num=10; q->num=20;
r->num=30;
p->next=q;q->next=r;
printf(“%d\n”,p->num+q->next->num);
}
A)
10
(27)
若有以下说明和定义
typedef int *INTEGER;
INTEGER p,*q;
以下叙述正确的是
A) P是int型变量
C) q是基类型为int的指针变量
(28)
若有下面的说明和定义:
struct test
{
union uu {char ul[5]; int
}
A)
12
(29)
若以下定义:
struct
{
struck
}a,b,c,*p,*q;
a
data
┌──┬──┐
│ 5
└──┴──┘
↑p
c
data
┌──┬──┐
│ 7
└──┴──┘
↑q
A) a.next=c;
C) p->next=&c;
q->next=p->next;
(30)
typedef
{
char
}PER;
A) PER
是结构体变量名
C) typedef
(31)
以下各选项企图说明一种新的类型名,其中正确的是
A) typedef
C) typedefv1
(32)
struct HAR
{
main()
{
h[1],x=3;h[1];y=4;
h[0],p=&h[1],p=h;
printf(“%d %d
\n”,(h[0],p)->x,(h[1],p)->y);
}
A) 12
(33)
union myun
{
{
int
} a;
main()
{
a.k=0;
printf(%d\n”,a.u.x);
}
A) 4
(34)
struct
{
A) struct结构体类型的关键字
C) x,y,z都是结构体成员名
(35)
以下程序的输出是
A)
10
struct
{
int
struct
main()
{
}
(36)
A) free(q);
B) (*p).next=(*q).next;
C) q=(*q).next;
D) q=q->next;
(37)
有如下定义
struct person{char
strict person
“Paul”,
“Mary”,
“Adam
A) prinft(“%c\n”,class[3].mane);
B) pfintf(“%c\n”,class[3].name[1]);
C) prinft(“%c\n”,class[2].name[1]);
D) printf(“%^c\n”,class[2].name[0]);
(38)
以下对结构体类型变量的定义中,不正确的是
A) typedef struct
aa
{
float
m;
}AA;
AA td1;
C)
struct
{
float
m;
}aa;