结构体共用体位运算及文件操作Word格式文档下载.docx
- 文档编号:18340779
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:27
- 大小:37KB
结构体共用体位运算及文件操作Word格式文档下载.docx
《结构体共用体位运算及文件操作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《结构体共用体位运算及文件操作Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
D)structabc{intn;
abcx,y;
(8)以下叙述中正确的是
A)使用typedef说明新类型名时,其格式是:
typedef新类型名原类型名;
B)使用typedef说明新类型名时,后面不能加分号
C)在程序中,允许用typedef来说明一种新的类型名
D)在使用typedef改变原类型的名称后,只能使用新的类型名
(9)以下叙述中错误的是
A)typedef的作用是用一个新的标识符来代表已存在的类型名
B)typedef说明的新类型名必须使用大写字母,否则会出编译错误
C)可以用typedef说明的新类型名来定义变量
D)用typedef可以说明一种新的类型名
结构体类型
(10)下面结构体的定义语句中,错误的是
A)structord{intx;
inty;
intz;
};
structorda;
B)structord{intx;
}structorda;
C)structord{intx;
}a;
D)struct{intx;
(11)有以下程序
#include<
stdio.h>
typedefstruct{intb,p;
}A;
voidf(Ac)/*注意:
c是结构变量名*/{
intj;
c.b+=1;
c.p+=2;
}
main(){
i;
Aa={1,2};
f(a);
printf("
%d,%d\n"
a.b,a.p);
}
程序运行后的输出结果是
A)2,4
B)1,2
C)1,4
D)2,3
(12)有以下程序
structS{inta,b;
}data[2]={10,100,20,200};
structSp=data[1];
printf("
%d\n"
++(p.a));
A)11
B)20
C)21
D)10
(13)设有定义:
structcomplex{intreal,unreal;
}
data1={1,8},data2;
则以下赋值语句中错误的是
A)data2=(2,6);
B)data2=data1;
C)data2.real=data1.real;
D)data2.real=data1.unreal;
(14)有以下程序
structS{intn;
inta[20];
voidf(structS*p)
{inti,j,t;
for(i=0;
i<
p->
n-1;
i++)
for(j=i+1;
j<
n;
j++)
if(p->
a[i]>
a[j]){t=p->
a[i];
a[i]=p->
a[j];
a[j]=t;
}
main()
{inti;
structSs={10,{2,3,l,6,8,7,5,4,10,9}};
f(&
s);
for(i=0;
s.n;
i++)printf("
%d,"
s.a[i]);
A)10,9,8,7,6,5,4,3,2,1,
B)2,3,1,6,8,7,5,4,10,9,
C)10,9,8,7,6,1,2,3,4,5,
D)1,2,3,4,5,6,7,8,9,10,
(15)有以下程序
string.h>
typedefstruct{charname[9];
charsex;
intscore[2];
}STU;
STUf(STUa)
{STUb={"
Zhao"
'
m'
85,90};
inti;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;
2;
i++)a.score[i]=b.score[i];
returna;
main()
{STUc={"
Qian"
f'
95,92},d;
d=f(c);
%s,%c,%d,%d,"
d.name,d.sex,d.score[0],d.score[1]);
c.name,c.sex,c.score[0],c.score[1]);
A)Zhao,m,85,90,Zhao,m,85,90
B)Qian,f,95,92,Qian,f,95,92
C)Zhao,m,85,90,Qian,f,95,92
D)Qian,f,95,92,Zhao,m,85,90
(16)程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针指向链表的第一个结点。
若有以下程序段:
q=s;
s=s->
next;
p=s;
while(p->
next)p=p->
p->
next=q;
q->
next=NULL;
该程序段实现的功能是
A)尾结点成为首结点
B)首结点成为尾结点
C)删除首结点
D)删除尾结点
(17)有以下结构体说明、变量定义和赋值语句structSTD{charname[10];
intage;
}s[5],*ps;
ps=&
s[0];
则以下scanf函数调用语句有错误的是
A)scanf("
%d"
&
s[0].age);
B)scanf("
%c"
(ps->
sex));
C)scanf("
%s"
s[0].name);
D)scanf("
ps->
age);
(18)若有以下语句typedefstructS{intg;
charh;
}T;
以下叙述中正确的是
A)可用S定义结构体变量
B)S是struct类型的变量
C)T是structS类型的变量
D)可用T定义结构体变量
(19)有以下程序
#include<
StructA
{inta;
charb[10];
doublec;
structAf(structAt);
{structAa={1001,"
ZhangDa"
1098.0};
a=f(a);
%d,%s,%6.1f\n"
a.a,a.b,a.c);
structAf(StructAt)
{t.a=1002;
strcpy(t.b,"
ChangRong"
);
t.c=1202.0;
returnt;
A)1002,ZhangDa,1202.0
B)1002,ChangRong,1202.0
C)1001,ChangRong,1098.0
D)1001,ZhangDa,1098.0
(20)设有以下语句typedefstructTT{charc;
inta[4];
}CIN;
则下面叙述中正确的是
A)TT是struct类型的变量
B)可以用TT定义结构体变量
C)CIN是structTT类型的变量
D)可以用CIN定义结构体变量
(21)有以下程序#includestructord{intx,y;
}dt[2]={1,2,3,4};
main(){structord*p=dt;
++(p->
x));
y));
程序运行后的输出结果是
A)4,1
B)2,3
C)3,4
D)1,2
(22)有以下程序段
structst{intx;
int*y;
}*pt;
inta[]={1,2},b[]={3,4};
structstc[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
A)pt->
x
B)*pt->
y
C)++pt->
D)(pt++)->
(23)有下列程序:
voidf(int*a,intn)
i++)a[i]+=i;
structSs={10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
A)3,4,2,7,9,8,6,5,11,10,
C)2,4,3,9,12,12,11,11,18,9,
D)1,2,3,6,8,7,5,4,10,9,
(24)有下列程序:
typedefstruct{charname[9];
charsex;
floatscore[2];
85.0,90.0};
inti;
strcpy(a.name,b.name);
a.sex=b.sex;
i++)a.score[i]=b.score[i];
returna;
95.0,92.0},d;
d=f(c);
%s,%c,%2.0f,%2.0f\n"
d.neme,d.sex,d.score[0],d.score[1]);
程序的运行结果是
A)Qian,m,85,90
B)Zhao,f,95,92
C)Zhao,m,85,90
D)Qian,f,95,92
(25)假定已建立以下链表结构,且指针p和q已指向如图所示的节点:
则以下选项中可将q所指节点从链表中删除并释放该节点的语句组是
A)p=q->
free(q);
B)p=q;
C)(*p).next=(*q).next;
free(p);
D)p->
next=q->
(26)有以下程序
#include<
structA
{inta;
charb[10];
doublec;
voidf(structAt);
main()
{structAa={1001,"
f(a);
voidf(structAt)
{t.a=1002;
strcpy(t.b,"
A)1002,ChangRong,1202.0
B)1001,ChangRong,1098.0
C)1001,ZhangDa,1098.0
D)1002,ZhangDa,1202.0
(27)有以下定义和语句:
structworkers
{intnum;
charname[20];
charc;
struct
{intday;
intmonth;
intyear;
}s;
structworkersw,*pw;
pw=&
w;
能给w中year成员赋1980的语句是
A)w.year=1980;
B)pw->
year=1980;
C)w.s.year=1980;
D)*pw.year=1980;
(28)有以下程序
structtt
{intx;
structtt*y;
}*p;
structtta[4]={20,a+1,15,a+2,30,a+3,17,a};
p=a;
for(i=1;
=2;
i++){printf("
p->
x);
p=p->
y;
A)20,15,
B)30,17
C)15,30,
D)20,30,
(29)有以下程序
#include"
string.h"
}STU;
voidf(STUa)
{
STUb={"
程序的运行结果是
B)Zhao,m,85,90
C)Zhao,f,95,92
(30)设有定义:
struct{charmark[12];
intnum1;
doublenum2;
}t1,t2;
若变量均已正确赋初值,则以下语句中错误的是
A)t2.num1=t1.num1;
B)t2.mark=t1.mark;
C)t1=t2;
D)t2.num2=t1.num2;
(31)有以下程序
structA{
inta;
voidf(structAt);
structAa={1001,"
a.a,a.b,a.c);
voidf(structAt){
t.a=1002;
t.c=1202.0;
B)1001,ZhangDa,1098.0
D)1002,ZhangDa,1202.0
(32)若有以下程序
structstu{char*name,gender;
intscore;
structstua={NULL,'
290},b;
a.name=(char*)malloc(10);
strcpy(a.name,"
b=a;
b.gender='
;
b.score=350;
strcpy(b.name,"
printf("
%s,%c,%d,"
a.name,a.gender,a.score);
%s,%c,%d\n"
b.name,b.gender,b.score);
则程序的输出结果是
A)Zhao,m,290,Qian,f,350
B)Qian,f,350,Qian,f,350
C)Zhao,m,290,Zhao,f,350
D)Qian,m,290,Qian,f,350
(33)若有以下程序
typedefstructstu{char*name,gender;
}STU;
voidf(char*p){p=(char*)malloc(10);
strcpy(p,"
STUa={NULL,'
strcpy(a.name,"
);
f(b.name);
b.gender='
a.name,a.gender,a.score);
b.name,b.gender,b.score);
C)Qian,m,290,Qian,f,350
D)Zhao,m,290,Zhao,f,350
(34)若有以下程序
typedefstructstu{charname[10],gender;
voidf(STUa,STUb){
b=a;
printf("
STUa={"
'
290},b={"
350};
f(a,b);
A)Zhao,m,290,Zhao,m,290
B)Zhao,m,290,Qian,f,350
C)Qian,f,350,Qian,f,350
(35)若有以下程序
typedefstructstu{charname[10],gender;
voidf(char*p){strcpy(p,"
b=a;
C)Zhao,m,290,Qian,f,350
(36)为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在【】处应填入的选项是
Structlink{chardata;
【】}node;
A)structlink*next;
B)linknext;
C)link*next;
D)structlinknext;
(37)若有以下程序段
structst{intn;
structst*next;
structsta[3]={5,&
a[1],7,&
a[2],9,'
\0'
},*p;
p=&
a[0];
则以下选项中值为6的表达式是
A)++(p->
n)
B)(*p).n
C)p->
n++
n
(38)以下叙述中正确的是
A)结构体类型中的成分只能是C语言中预先定义的基本数据类型
B)在定义结构体类型时,编译程序就为它分配了内存空间
C)结构体类型中各个成分的类型必须是一致的
D)一个结构体类型可以由多个称为成员(或域)的成分组成
(39)以下叙述中正确的是
A)结构体类型中的各个成分均不能是数组或指针
B)结构体类型的变量,不能在声明结构体类型组成时一起定义
C)使用typedef定义新类型名后,新类型名与原类型名实际上是等价的
D)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
(40)以下叙述中正确的是
A)函数的返回值不能是结构体类型
B)函数的返回值不能是结构体指针类型
C)在调用函数时,可以将结构体变量作为实参传给函数
D)结构体数组不能作为参数传给函数
(41)以下叙述中正确的是
A)结构体变量的地址不能作为实参传给函数
B)结构体数组名不能作为实参传给函数
C)即使是同类型的结构体变量,也不能进行整体赋值
D)结构体中可以含有指向本结构体的指针成员
(42)设有如下的说明和定义struct{inta;
char*s;
}x,*p=&
x;
x.a=4;
x.s="
hello"
则以下叙述中正确
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 共用 体位 运算 文件 操作