《高级语言程序设计练习题5及答案.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计练习题5及答案.docx(13页珍藏版)》请在优知文库上搜索。
1、一、单选题1、关于如下结构体说法正确的是structnodeintid;structnodenext;;A.node为数据类型B.next指向下一个结构体变量C.struct可以省略D.此结构体定义存在错误正确答案:D2、关于如下结构体structnodeintid;structnode*net;;说法不正确的是A.结构体标识符node可以省略B.structnode为数据类型C.next指向下一个结构体变量D.structnode可以用于定义链表正确答案:A3、对于如下结构体定义structnodeintid;structnode*net;)a;若声明如下变量structnode*p;在32
2、位系统中,不能实现创建链表节点的操作是A.p=(structnode*)malloc(8);B. p=(node*)malloc(sizeof(node);C. p=(structnode*)malloc(sizeof(structnode);D.p=(structnode*)malloc(sizeof(a);正确答案:B4、对于如下语句structnodeintid;structnode*net;)*P;p=(structnode*)malloc(sizeof(structnode)*10);如下说法正确的是A.*p.id=10实现给首节点的id成员赋值B.(*p).id=10实现给首节点的
3、id成员赋值C.p=id=10实现给首节点的id成员赋值D.p.id=10实现给首节点的id成员赋值正确答案:B5、对于如下结构体定义structnodeintid;structnode*net;;假设list存储链表首地址,p当前的链表的某节点,q为p前一个节点,也就是说q-net=p如下说法正确的是A.表达式p-next=q-net,free(p)实现删除节点PB.表达式q-next=p-next,free(p)实现删除节点PC.表达式q-next=p-next实现删除节点PD.表达式p-net=q-net实现删除节点P正确答案:B6、设有以下语句typedefstructintn;cha
4、rch8;MYTYPE;则下面叙述中正确的是A.MYTYPE是结构体类型名B.typedefstruct是结构体类型C.MYTYPE是结构体变量名D.struct是结构体类型名正确答案:A7、对于如下语句typedefstructmytype(intn;charch8;*MYTYPE;如下说法正确的是A.MYTYPE是StrUCtmytyPe类型别名B.MYTYPE是StrUCtmytype*类型别名C.MYTYPE结构体指针变量名D.MYTYPE结构体变量名正确答案:B8、对于如下结构体structpointfloatx,y;;声明如下变量structpointpl=l,2zp2=3z4,s
5、,*p;如下说法正确的是?A.表达式(P=&pl,*p=p2)结果为3,4B.表达式s=p2+l结果为4,5C表达式(P=pl,s=*p)结果为1,2D.表达式s=pl+p2的结果为4,6正确答案:A9、对于如下结构体structpointfloatx,y;;如下语句执行后输出结果为structpointpl=l,22=3z4,*t,*q;t=(structpoint*)malloc(sizeof(structpoint);memcpy(t,&pl,sizeof(structpoint);memcpy从源内存地址&pl的起始位置开始拷贝若干个字节到目标内存地址t中printf(%.Ofzt-x
6、);A.存在语法错误B.0C.2D.l正确答案:D10、结构体structnode(intid;structnode*next;;定义了链表list假设P为其中一个节点;如果在P后插入节点w,如下操作正确的是A.t=w,w=p,p=t;B.p-next=wzw-next=p-next;C.w-next=p-next,p-net=w;D.t=p-next;p-next=w;正确答案:C11、对于如下程序intmain()printf(%d,CT);returnO;)输出结果为A.lB.3C.2D.l+2正确答案:B12、对于如下程序#defineCT1+2intmain()(printf(%s,
7、CT);return0;输出结果为B.lC.l+2D.2正确答案:C13、对于如下程序#defineCT2-1intmain()(printf(%d,zCT*CT);returnO;)输出结果为A.1B.-3C.-1D.存在语法错误正确答案:C14、对于如下程序#defineCT34#defineCECT?3:4intmain()printf(%dCE);returnO;输出结果为A.0B.4C.lD.3正确答案:B15、对于如下程序#defineIFif(ab)t=a;intmain()(inta=3zb=4,t=0;IFa=b;b=t;)printf(%d,a);return0;输出结果为
8、A.3B.0C.存在语法错误D.4正确答案:D16、对于如下程序#defineSWAP(a,b)intt;t=a;a=b;b=t;intmain()(inta=3zb=4,t;t=SWAP(a,b);printf(%d,a);returnO;输出结果为A.3B.存在语法错误C.4正确答案:B17、对于如下程序#defineADD(a,b)a=a+bintmain()(inta=3,b=4,t=0;t=ADD(a,b);printf(%d,t);return0;A.3B.4C.7D.存在语法错误正确答案:C18、对于如下程序#defineMAXintmain()(inta=3zb=4,t=0;t=a;if(ab)t=b;#endifprintf(%d,t);)输出结果为A.3B.0C.存在语法错误D.4正确答案:D19、对于如下程序intmain()(inta=3zb=4,t=0;#ifdefMAXt=a;if(ab)t=b;#endifprintf(%d,t);输出结果为A.4B.0C.3D.存在语法错误正确答案:C20、如下说法不正确的是?A.宏被预处理为C语言语句后,再参与编译。B.使用宏会增加代码的规模C.宏支持参数,其参数传递机制与函数的参数传递机制一致,均遵循值拷贝机制D.使用宏比调用函数的运行效率高正确答案:C