結(jié)構(gòu)體,共用體,鏈表相關(guān)試題_第1頁
結(jié)構(gòu)體,共用體,鏈表相關(guān)試題_第2頁
結(jié)構(gòu)體,共用體,鏈表相關(guān)試題_第3頁
結(jié)構(gòu)體,共用體,鏈表相關(guān)試題_第4頁
結(jié)構(gòu)體,共用體,鏈表相關(guān)試題_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

};};十.結(jié)構(gòu)體和共用體下列程序中fun()函數(shù)的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個字符的字符串。disp()函數(shù)的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?zhí)羁胀瓿?06.4)disp()函數(shù)。#includetypedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/(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");}設(shè)有以下語句:typedefstructTT{charc,inta[4];}CIN;則下面敘述中正確的是(06.9)。可以用TT定義結(jié)構(gòu)體變量TT是struct類型的變量可以用CIN定義結(jié)構(gòu)體變量CIN是structTT類型的變量有以下結(jié)構(gòu)體說明、變量定義和賦值語句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語句中錯誤引用結(jié)構(gòu)體變量成員的是(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)程序中已構(gòu)成如下圖所示的不帶頭節(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均正確定義,并用于指向鏈表節(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個節(jié)點(diǎn)八、、s若有以下程序段:s若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q-next=NULL;該程序段實(shí)現(xiàn)的功能是(06.9)。A)首節(jié)點(diǎn)成為尾節(jié)點(diǎn) B)尾節(jié)點(diǎn)成為首節(jié)點(diǎn)C)刪除首節(jié)點(diǎn) D)刪除尾節(jié)點(diǎn)(6)下面程序的功能是建立一個有3個節(jié)點(diǎn)的單向循環(huán)鏈表,然后求各個節(jié)點(diǎn)數(shù)值域data中數(shù)據(jù)的和請?zhí)羁铡?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]);}程序運(yùn)行后的輸出結(jié)果是(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]);}程序運(yùn)行后的輸出結(jié)果是(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結(jié)構(gòu)變量的指針的指針NODEp;語句出錯p是指向structnode結(jié)構(gòu)變量的指針p是structnode結(jié)構(gòu)變量設(shè)有說明:structDATE{intyear;intmonth;intday;};請寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體類型變量,并同時為其成員year、month、day依次賦初值2006、10、1:【】。(07.4)以下關(guān)于typedef的敘述錯誤的是(07.4)用typedef可以增加新類型typedef只是將已存在的類型用一個新的名字來代表用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性有以下程序#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;}}程序的運(yùn)行結(jié)果是(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]);}程序的運(yùn)行結(jié)果是(07.9)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,m,85,90 D)Zhao,f,95,92設(shè)有以下定義uniondata(intd1;floatd2;}demo;則下面敘述中錯誤的是(07.9)變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同變量demo中各成員的地址相同變量demo和各成員的地址相同若給demo.d1賦99后,demo.d2中的值是99.0函數(shù)main()的功能是:在帶頭結(jié)點(diǎn)的單鏈表中查找數(shù)據(jù)域中值最小的結(jié)點(diǎn).請?zhí)羁?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;)以下結(jié)構(gòu)體類型說明和變量定義中正確的是(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]);}程序的運(yùn)行結(jié)果是(08.4)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,f,95,92 D)Zhao,m,85,90(18)以下程序中函數(shù)fun的功能是:統(tǒng)計person所指結(jié)構(gòu)體數(shù)組中所有性別(sex)為M的記錄的個數(shù),存入變量n中,并做為函數(shù)值返回。請?zhí)羁眨?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));}程序的運(yùn)行結(jié)果是(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]);}程序的運(yùn)行結(jié)果是(08.9)A)Qian,f,95,92 B)Qian,m,85,90C)Zhao,f,95,92 D)Zhao,m,85,90(21)假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn): ? —?1 —+

a b cheadp q則以下選項中可將q所指向結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是(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);}程序的運(yùn)行結(jié)果是(09.4)A)1,2B)2,3C)3,4D)4,1(23)下列程序的運(yùn)行結(jié)果為【】(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循環(huán)中輸出鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù),請?zhí)羁?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);【】;}}.下列結(jié)構(gòu)體的定義語句中,錯誤的是(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;}程序運(yùn)行后的輸出結(jié)果是(09.9)1001,ZhangDa,1098.01002,ZhangDa,1202.01001,ChangRong,1098.01002,ChangRong,1202.0.設(shè)有定義:structperson{intID;charname[12];}p;請將scanf(“%d”,);語句補(bǔ)充完整,使其能夠為結(jié)構(gòu)體變量的成員正確讀入數(shù)據(jù)(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)}程序運(yùn)行后的輸出結(jié)果(09.9)(29)設(shè)有定義: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;}程序運(yùn)行后的輸出結(jié)果是(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;十一.位運(yùn)算若變量已正確定義,則以下語句的輸出結(jié)果是(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);)程序運(yùn)行后的輸出結(jié)果是(07.4)。A)3B)4 C)5D)6(3)有以下程序#includemain(){inta=1,b=2,c=3,x;x=(aAb)&c;printf("%d\n",x);}程序的運(yùn)行結(jié)果是(07.9)A)0B)1C)2D)3⑷變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是111100000若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是(08.4)A)aAbB)albC)a&bD)a<<4⑸有以下程序#include<stdio.h>main(){chara=4;printf("%d\n'',a=a<<1)}程序的運(yùn)行結(jié)果是(08.9)A)40B)16C)8D)4有以下程序#include<stdio.h>main(){inta=5,b=1,t;t=(a<<2lb);printf("%d\n”,t)}程序運(yùn)行后的輸出結(jié)果是(09.4)A)21B)11C)6D)1以下程序運(yùn)行后的輸出結(jié)果是【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);輸出結(jié)果是(09.9)A)16B)8C)4D)2(9)有以下程序#include<stdio.h>main()(inta=2,b=2,c=2;printf("%d\n",a/b&c);}程序運(yùn)行后的輸出結(jié)果是(10.3)A)0B)1C)2D)3十二.文件執(zhí)行下列程序后,test.txt文件的內(nèi)容是(若文件能正常打開)(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語言中文件是流式文件,因此只能順序存取數(shù)據(jù)打開一個已存在的文件進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)當(dāng)對文件的讀(寫)操作完成之后,必須先關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失有以下程序:#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);}程序執(zhí)行后的輸出結(jié)果是(06.9)。A)dB)c C)bD)a有以下程序,其功能是:以二進(jìn)制“寫”方式打開文件d1.dat,寫入1?100這100個整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開文件d1.dat,將這100個整數(shù)讀入另一個數(shù)組b中,并打印輸出,請?zhí)羁铡?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);}程序運(yùn)行后的輸出結(jié)果是(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型數(shù)據(jù)*/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]);}程序運(yùn)行后的輸出結(jié)果是(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,設(shè)有定義:FILE*fw;,請將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。(07.4)fw=fopen("readme.txt”,【】);讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中buffer代表的是(07.9)一個文件指針,指向待讀取的文件一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址一個內(nèi)存塊的字節(jié)數(shù)有以下程序#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]);}程序的運(yùn)行結(jié)果是(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函數(shù)用于從終端讀入字符串getchar函數(shù)用于從磁盤文件讀入字符fputs函數(shù)用于把字符串輸出到文件fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件有以下程序#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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論