




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
};};十.结构体和共用体下列程序中fun()函数的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。disp()函数的功能是显示输出该单链表中所有结点中的字符串。请填空完成(06.4)disp()函数。#includetypedefstructnode/*链表结点结构*/(charsub[3];structnode*next;}Node;Nodefun(chars)/*建立链表*/( }voiddisp(Node*h)(Node*p;p=h->next;while(【】){printf("%s\n",P->sub);p=【】;}}main(){Node*hd;hd=fun();disp(hd);printf("\n");}设有以下语句:typedefstructTT{charc,inta[4];}CIN;则下面叙述中正确的是(06.9)。可以用TT定义结构体变量TT是struct类型的变量可以用CIN定义结构体变量CIN是structTT类型的变量有以下结构体说明、变量定义和赋值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则以下scanf函数调用语句中错误引用结构体变量成员的是(06.9)。scanf(%s”,s[0].name);B)scanf(%d”,&s[0].age);C)scanf(%c”,&(ps->sex));D)scanf(%d”,ps->age);若有以下定义和语句uniondata{inti;charc;floatf;}x;inty;则以下语句正确的是()。x=10.5B)x.c=101C)y=x;D)printf("%d\n”,x);(47)程序中已构成如下图所示的不带头节点的单向链表结构,指针变量s、p、q均正确定义,并用于指向链表节点,指针变量s总是作为头指针指向链表的第一个节点八、、s若有以下程序段:s若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q-next=NULL;该程序段实现的功能是(06.9)。A)首节点成为尾节点 B)尾节点成为首节点C)删除首节点 D)删除尾节点(6)下面程序的功能是建立一个有3个节点的单向循环链表,然后求各个节点数值域data中数据的和请填空。(06.9)#include<stdio.h>structNODE{intdata;structNODE*next;main(){structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->data=100;q->data=200;r->data=200;p->data=q;q->data=r;r->data=p;sum=p->data+p->next->data+r->next->datL;printf("%d\n",sum);}有下列程序:structS{intn;inta[20];};voidf(structS*p){inti,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,l,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d,”,s.a[i]);}程序运行后的输出结果是(07.4)。1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9, D)10,9,8,7,6,1,2,3,4,5,有下列程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d,”,s.a[i]);}程序运行后的输出结果是(07.4)。2,4,3,9,12,12,11,11,18,9,B)3,4,2,7,9,8,6,5,11,10,C)2,3,1,6,8,7,5,4,10,9,D)1,2,3,6,8,7,5,4,10,9,有下列程序段:typedefstructnode{intdata;structnode*next;}*NODE;NODEp;下列叙述中正确的是(07.4)。p是指向structnode结构变量的指针的指针NODEp;语句出错p是指向structnode结构变量的指针p是structnode结构变量设有说明:structDATE{intyear;intmonth;intday;};请写出一条定义语句,该语句定义d为上述结构体类型变量,并同时为其成员year、month、day依次赋初值2006、10、1:【】。(07.4)以下关于typedef的叙述错误的是(07.4)用typedef可以增加新类型typedef只是将已存在的类型用一个新的名字来代表用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名用typedef为类型说明一个新名,通常可以增加程序的可读性有以下程序#includestructtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,”,p->x);p=p->y;}}程序的运行结果是(07.9)20,30,B)30,17C)15,30,D)20,15,有以下程序#include#includetypedefstruct{charname[9];charsex;floatscore[2];}STU;STUf(STUa){STUb={"Zhao”,'m',85.0,90.0};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score=b.score;returna;}main(){STUc={”Qian”,f,95.0,92.0},d;d=f(c);printf("%s,%c,%2.0f,%2.0f\n”,,d.sex,d.score[0],d.score[1]);}程序的运行结果是(07.9)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,m,85,90 D)Zhao,f,95,92设有以下定义uniondata(intd1;floatd2;}demo;则下面叙述中错误的是(07.9)变量demo与成员d2所占的内存字节数相同变量demo中各成员的地址相同变量demo和各成员的地址相同若给demo.d1赋99后,demo.d2中的值是99.0函数main()的功能是:在带头结点的单链表中查找数据域中值最小的结点.请填空(07.9)#include<stdio.h>structnode(intdata;structnode*next;};intmin(structnode*first)/*指针first为链表头指针*/(strctnode*p;intm;p=first->next;m=p->data;p=p->next;for(;p!=NULL;p=_[20])if(p->data<m)m=p->data;returnm;)以下结构体类型说明和变量定义中正确的是(08.4)A)typedefstruct B)structREC;(intn;charc;}REC;{intn;charc;};RECt1,t2; RECt1,t2;C)typedefstructREC;D)struct(intn=0;charc='A';}t1,t2;(intn;charc;}RECt1,t2;(17)有以程序#include<stdio.h>#include<string.h>typedefstruct(charname[9];charsex;floatscore[2];}STU;voidf(STUa)(STUb={“Zhao”,'m',85.0,90.0};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}main()(STUc={“Qian”,'f',95.0,92.0};f(c); printf("%s,%c,%2.0f,%2.0fn'',,c.sex,c.score[0],c.score[1]);}程序的运行结果是(08.4)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,f,95,92 D)Zhao,m,85,90(18)以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。请填空:(08.4)#include<stdio.h>#defineN3typedefstruct(intnum;charnam[10];charsex;}SS;intfun(SSperson[])(inti,n=0;for(i=0;i<N;i++)if(【14】=='M')n++;returnn;}main()(SSW[N]=((1,”AA”,'F'},{2,”BB”,'M'},{3,”CC”,'M'}};intn;n=fun(W);printf("n=%d\n'',n);}有以下程序#include<stdio.h>#include<stdlib.h>intfun(intn)(int*p;p=(int*)malloc(sizeof(int));*p=n;return*p;}main()(inta;a=fun(10);printf("%d\n",a+fun(10));}程序的运行结果是(08.9)A)0B)10C)20 D)出错有以下程序#include<stdio.h>main()(structSTU(charname[9];charsex;doublescore[2];};structSTUa=(”Zhao”,'m',85.0,90.0},b=(”Qian”,f,95.0,92.0};b=a;printf("%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的运行结果是(08.9)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,f,95,92 D)Zhao,m,85,90(21)假定已建立以下链表结构,且指针p和q已指向如图所示的结点: ► —►1 —+
a b cheadp q则以下选项中可将q所指向结点从链表中删除并释放该结点的语句组是(08.9)A)(*p).next=(*q).next;free(p);B)p=q->next;free(q);p=q;free(q);p->next=q->next;free(q);(22)有以下程序#include<stdio.h>structord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf(“%d,”,++p->x);printf("%d\n”,++p->y);}程序的运行结果是(09.4)A)1,2B)2,3C)3,4D)4,1(23)下列程序的运行结果为【】(09.4)#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structA*t);main(){structAa={1001,”ZhangDa”,1098,0};f(&a);printf("&d,&s,&6.1f\n'',a.a,a.b,a.c);}voidf(structA*t){strcpy(t->b,''ChangRong'');}以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空(09.4)#include<stdio.h>structnode{intdata;structnode*next;};typedefstructnodeNODETYPE;main(){NODETYPEa,b,c,*h,*p;a.data=10;b.data=20;c.data=30;h=&a;a.next=&b;b.next=&c;c.next='\0';p=h;while(p){printf("%d”,p->data);【】;}}.下列结构体的定义语句中,错误的是(09.9)structord{intx;inty;intz;};structorda;structord{intx;inty;intz;}structorda;structord{intx;inty;intz;}a;struct{intx;inty;intz;}a;.有以下程序#include<stdio.h>#include<string.h>StructA{inta;charb[10];doublec;StructAf(structAt);main(){structAa={1001,”ZhangDa”,1098,C};a=f(a);printf("%d,%s,%6.1f\n'',a,a,a,b,a,c);}}structAf(structAt)(t.a=1002;strcpy(t.b,"ChongRong");t,c=1202;returnt;}程序运行后的输出结果是(09.9)1001,ZhangDa,1098.01002,ZhangDa,1202.01001,ChangRong,1098.01002,ChangRong,1202.0.设有定义:structperson{intID;charname[12];}p;请将scanf(“%d”,);语句补充完整,使其能够为结构体变量的成员正确读入数据(09.9).有以下程序#include<stdio.h>typedefstruct(intnum;doubles;}REC;voidfunl(RECx){x.num=23;x,s=88.5;}main(){RECa={16,90.0};funl(a);printf("%d\n'',a,num)}程序运行后的输出结果(09.9)(29)设有定义:structcomplex{intreal,unreal;}data1={1,8},data2;则以下赋值语句中错误的是(10.3)data2=data1;data2={2,6};data2.real=data1.real;data2.real=data1.unreal;(30)有以下程序#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa”,1098.0};f(a);printf(”%d,%s,%6.1f\n”,a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong”);t.c=1202.0;}程序运行后的输出结果是(10.3)1001,zhangDa,1098.01002,changRong,1202.01001,ehangRong,1098.O1002,ZhangDa,1202.0(31)有以下定义和语句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是(10.3)A)*pw.year=198O;w.year=1980;pw->year=1980;w.s.year=1980;十一.位运算若变量已正确定义,则以下语句的输出结果是(06.9)。s=32;s"=32;printf("%d”,s);A)-1 B)0C)1 D)32有下列程序:main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);)程序运行后的输出结果是(07.4)。A)3B)4 C)5D)6(3)有以下程序#includemain(){inta=1,b=2,c=3,x;x=(aAb)&c;printf("%d\n",x);}程序的运行结果是(07.9)A)0B)1C)2D)3⑷变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是111100000若要求将a的高4位取反,低4位不变,所要执行的运算是(08.4)A)aAbB)albC)a&bD)a<<4⑸有以下程序#include<stdio.h>main(){chara=4;printf("%d\n'',a=a<<1)}程序的运行结果是(08.9)A)40B)16C)8D)4有以下程序#include<stdio.h>main(){inta=5,b=1,t;t=(a<<2lb);printf("%d\n”,t)}程序运行后的输出结果是(09.4)A)21B)11C)6D)1以下程序运行后的输出结果是【9】(09.4)#include<stdio.h>main()(intk=1,s=0;do{if(((k&2)!=0)continue;s+=k;k++;}while(k>10);printf(“s=&d/n”,s);}(8)若有以下程序:intr=8;printf("%d\n'',r>>1);输出结果是(09.9)A)16B)8C)4D)2(9)有以下程序#include<stdio.h>main()(inta=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是(10.3)A)0B)1C)2D)3十二.文件执行下列程序后,test.txt文件的内容是(若文件能正常打开)(06.4)。#includemain()(FILE*fp;char*s1="Fortran”,*s2="Basic”;if((fp=fopen(”test.txt”,”wb”))==NULL)(printf("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/fwrite(s2,5,1,fp);fclose(fp);}A)Basican B)BasicFortranC)Basic D)FortranBasic以下叙述中正确的是(06.9)。C语言中文件是流式文件,因此只能顺序存取数据打开一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据当对文件的读(写)操作完成之后,必须先关闭,否则可能导致数据丢失有以下程序:#includemain()(FILE*fp;inti;charch[]="abcd”,t;fp=fopen("abc.dat","wb+");for(i=0;i<4;i++)fwrite(&ch[i],1,1,fp)fseek(fp,-2L,SEEK_END);fread(&t,1,1,fp);fclose(fp);printf("%c\n",t);}程序执行后的输出结果是(06.9)。A)dB)c C)bD)a有以下程序,其功能是:以二进制“写”方式打开文件d1.dat,写入1〜100这100个整数后关闭文件。再以二进制“读”方式打开文件d1.dat,将这100个整数读入另一个数组b中,并打印输出,请填空。(06.9)#includemain()(FILE*fp;inti,a[100],b[100];fp=fopen(”d1.dat”,”wb”);for(i=0;i<100;i++)a[i]=i+1;fwrite(a,sizeof(int),100,fp);fclose(fp);fp=fopen("d1.dat”,【20】);fread(b,sizeof(int),100,fp);fclose(fp);for(i=0;i<100;i++)printf("%d\n”,b[i]);}有下列程序:#include<stdio.h>main()(FILE*fp;intk,n,a[6]=(1,2,3,4,5,6};fp=fopen(”d2.dat”,”w”);fprintf(fp,"%d%d%d\n”,a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n”,a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d”,&k,&n);printf("%d%d\n”,k,n);fclose(fp);}程序运行后的输出结果是(07.4)。A)12B)14C)1234D)123456有下列程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={l,2,3,4,5,6};fp=fopen("d3.dat”,"wb+");fwrite(a,sizeof(int),6,fp);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/fseek(fp,sizeof(int)*3,SEEK_SET);fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;i<6;i++)printf("%d,”,a[i]);}程序运行后的输出结果是(07.4)。A)4,5,6,4,5,6, B)1,2,3,4,5,6,C)4,5,6,1,2,3, D)6,5,4,3,2,1,设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。(07.4)fw=fopen("readme.txt”,【】);读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是(07.9)一个文件指针,指向待读取的文件一个整型变量,代表待读取的数据的字节数一个内存块的首地址,代表读入数据存放的地址一个内存块的字节数有以下程序#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat,"wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen(”d2.dat”,”rb”);fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d”,a[i]);}程序的运行结果是(07.9)A)1,2,3,0,0,0,0,0,0,0, B)1,2,3,1,2,3,0,0,0,0,C)123,0,0,0,0,123,0,0,0,0,D)1,2,3,0,0,1,2,3,0,(10)以下叙述中错误的是(08.4)gets函数用于从终端读入字符串getchar函数用于从磁盘文件读入字符fputs函数用于把字符串输出到文件fwrite函数用于以二进制形式输出数据到文件有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fbpen("dl.dat'',”w'')for(i=0;i<3;i++)fprintf(fp,”%d”,a[i])fprintf(fp,”\n”)fclose(fp);fp=fopen("dl.dat'',''r”)fscanf(fp,”%d”,&n)fclose(fp);printH"%d\n”,n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收养家庭育儿指导服务平台构建路径考核试卷
- 木片尺寸精度与自动化检测考核试卷
- 煤炭产业政策建议与展望考核试卷
- 摄影摄像器材租赁服务要点考核试卷
- 搪瓷制品的质量保证体系与认证考核试卷
- 活动背景板租赁业务操作要领考核试卷
- 灌溉与农业生态环境保护规划考核试卷
- 日用品生产设备操作安全防护设备的选择与应用考核试卷
- 农村合股经营合同标准文本
- 海洋测绘软件考核试卷
- 河流纳污能力计算
- 液压与气压传动完整版课件
- 水平三(六年级)体育《障碍跑》教学设计及教案
- 2013-04 FLUENT工程技术与实例分析(套装上下册) 周俊杰、徐国权、 张华俊 中国水利水电出版社
- 慢性阻塞性肺病.ppt
- 司马管道防腐保温涂漆施工检查记录
- 一组超全的6S可视化标准办公室课件
- 采矿试题题库
- 2022年配网设计考试题库(核心题版)
- 基于PID的恒温箱温控制系统设计
- 厌氧氨氧化ppt
评论
0/150
提交评论