资源描述:
《c程第十一章结构体上机习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十一章结构体与共用体问题与思考1.下面程序的运行结果是___________.main(){structcmplx{intx;inty;}cnum[2]={1,3,2,7};printf("%d",cnum[0].y/cnum[0].x*cnum[1].x);}a)0b)1c)3d)62.以下对结构体变量stu1中成员age的非法引用是____b____.structstudent{intage;intnum;}stu1,*p;p=&stu1;a)stu1.ageb)student.agec)p->aged)(*p).ag
2、e3.以下scanf函数调用语句中对结构体变量成员的不正确引用是_____d___.structpupil{charname[20];intage;intsex;}pup[5],*p;p=pup;a)scanf("%s",pup[0].name);b)scanf("%d",&pup[0].age);c)scanf("%d",&(p->sex));d)scanf("%d",p->age);4.以下程序的运行结果是___10,x_____.structn{intx;charc;};main(){structna={10,'x'};f
3、unc(a);printf("%d,%c",a.x,a.c);}func(structnb){b.x=20;b.c='y';}5.若有定义:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;则表达式pn->b/n.a*++pn->b的值是___12_____,表达式(*pn).a+pn->f的值是____6.0____.???6.以下程序的运行结果是____7,3____.structks{inta;int*b;}s[4],*p;main(){intn=1;print
4、f("");for(i=0;i<4;i++){s[i].a=n;s[i].b=&s[i].a;n=n+2;}p=&s[0];p++;printf("%d,%d",(++p)->a,(p++)->a);}7.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请在_______内填入正确内容。statistructman{charname[20];intage;}person[]={"li=ming",18,"wang-hua",19,"zhang-ping",20};main(){structman*
5、p,*q;intold=0p=person;for(;p_____;p++)if(oldage){q=p;______;}printf("%s%d",______);}8.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带头结点)。请在______内填入正确内容。structlink{chardata;structlink*next;};....structlink*p,*first;intc=0;p=first;while(_____){_______;p=_______;}9.有以
6、下程序输出结果是。#includestructstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s",(*p).name);}main(){structstustudents[3]={{9801,"zhang",20},{9802,"Wang",19},{9803,"zhao",18}};fun(students+2);}A.Zhang B.Zhao C.Wang D.1810.根据下面的定义,能打出字母M的语句是c。s
7、tructperson{charname[9];intage;}structpersonclass[10]={〞John〞,17,〞Paul〞,19,〞Mary〞,18,〞Adam〞,16};A.printf(〞%c〞,class[3].name);B.printf(〞%c〞,class[3].name[1]);C.printf(〞%c〞,class[2].name[1]);D.printf(〞%c〞,class[2].name[0];