C語言程序設計 結構體與共用體_第1頁
C語言程序設計 結構體與共用體_第2頁
C語言程序設計 結構體與共用體_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、選擇題1、定義結構類型時,下列敘述正確的是()A、系統(tǒng)會按成員大小分配每個空間 B、系統(tǒng)會按最大成員大小分配空間C、系統(tǒng)不會分配空間 D、以上說法均不正確2、已知結構類型變量x的初始化值為{“20”,30,40,35.5},請問合適的結構定義是()A、Structs{intno;intx,y,z};B、Structs{charno[2];intx,y,z};C、Structs{intno;floatx,y,z};D、Structs{charno[2];floatx,y,z};3、若程序中有定義structabc{intx;chary;};abcs1,s2;則會發(fā)生的情況是()A、編譯時會有錯誤 B、鏈接時會有錯誤C、運行時會有錯誤 D、程序沒有錯誤4、已知學生記錄描述為structstudent{intno;charname[20];charset;struct{intyear;intmonth;intday;}birth;};structstudents;設變量s中“生日應“1984年11月11日下列對生日的正確賦值方式(A)year=1984; B)birth.year=1984;month=11; birth.month=11;day=11; birth.day=11;C)s.year=1984; s.month=11; s.birth.month=11;s.day=11; s.birth.day=11;5、當說明一個結構體變量時系統(tǒng)分配給它的內(nèi)存是().A)各成員所需內(nèi)存量的總和 B)結構中第一個成員所需內(nèi)存量C)成員中占內(nèi)存量最大者所需的容量D)結構中最后一個成員所需內(nèi)存量6、以下對結構體類型變量的定義中不正確的是().A)#defineSTUDENTstructstudent B)structSTUDENT {intnum;{intnum; floatage;floatage; }std1;}std1;C)struct D)struct{intnum; intnum;floatage; floatage;}std1; }student;structstudentstd1;7、設有以下說明語句structstu{inta;floatb;}stutype;則下面的敘述不正確的是().A)struct是結構體類型的關鍵字structstustutypeab8、C語言結構體類型變量在程序執(zhí)行期間()..A)所有成員一直駐留在內(nèi)存中B)只有一個成員駐留在內(nèi)存中C)部分成員駐留在內(nèi)存中沒有成員駐留在內(nèi)存中9、在16位IBM-PC機上使用C語言,若有如下定義:structdata{inti;charch;doublef;}b;則結構變量b占用內(nèi)存的字節(jié)數(shù)是(A)1 B)2 C)3 D)410、以下程序的運行結果是().#include“stdio.h”main(){structdata{intyear,month,day;}today;printf(“%d\n”,sizeof(structdata));}A)6 B)8 C)10 D)1211、若有以下定義和語句;structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21}};main(){structstudent*p;p=stu;..}則以下不正確的引用是()。A(P++)—》num B)p++ C)(*p).num 12、以下scanf函數(shù)調用語句中對結構體變量成員的不正確引用是()。stuctpupil{charname[20intage;intsex;}pup[5,]*p;p=pup;scanf(“%s”,pup[0].name);B)scanf(“”%d),&pup[0].age;scanf(“%d”,&sex)); D)scanf(“%d”,P->age);13、有以下定義和語句,則以下引用形式不合法的是()。Structs{inti1;structs*i2,i0;};staticstructsa[3]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]},*ptr;ptr=a;ptr->i1++ B)*ptr->i2 C)++ptr->i0 D)ptr->i114、設有如下定義:structsk{intn;float}data,*p;若要使P指向data中的n域,正確的負值語句的是()。Ap=&data.n;B)*p=data.n;C)p=(structsk*)&data.n;D)p=(structsk*)data.n;15、若喲于以下說明和語句:structstudent{intage;intnum;}std,*p;p=&std;則以下對結構體變量std中成員age的引用方式不正確的是()A)std.age B)p->age C)(*p).age D)*p.age16、若有以下說明和語句,則下面表達式中值為1002的是( )Structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21};structstudent*p;p=stu;A)(p++)—>num B)(p++)—>ageC)(*p).num 17stulage的非法引用是(。structstudent{intintnum;}stul,*p;p=&stul;stul.age B)student.ageC)p—>age D)(*p).age18、若要利用下面的程序片段使指針變量p指向一個存儲整型變量的存儲單元,[]應填入的內(nèi)容是( 。int*p;P=[]malloc(sizeof(int));A)intB)int*C)(*int)D)(int*)19、當說明一個共用體變量時系統(tǒng)分配給它的內(nèi)存是( 。各成員所需內(nèi)存量的總和 B)結構中第一個成員所需內(nèi)存量C)成員中占內(nèi)存量最大者所需的容量D)結構中最后一個成員所需內(nèi)存20、以下對C語言中共用體類型數(shù)據(jù)的敘述正確的是( 。A)可以對共用體變量名直接賦值B)一個共用體變量中可以同時存放其所有成員C)一個共用體變量中不可能同時存放其所有成員D)共用體類型定義中不能出現(xiàn)結構體類型的成員21、若有以下定義和語句:uniondata{inti;charc;floatf;}a;intn;則以下語句正確的是( 。A)a=5; B)a={2,’a’,1.2}; C)printf(“%d\n”,a); 22、設有以下說明,則下面不正確的敘述是( 。uniondata{inti;charc;floatf;}un;A)un所占的內(nèi)存長度等于成員f的長度B)un的地址和它的各成員地址都是同一地址C)un可以作為函數(shù)參數(shù) D)不能對un賦值但可以在定義un時對它初始化23、C語言共用體型變量在程序運行期間() 。A)所有成員一直駐留在內(nèi)存中 B)只有一個成員駐留在內(nèi)存C)部分成員駐留在內(nèi)存中 D)沒有成員駐留在內(nèi)存中24、以下程序的運行結果是() 。#include“stdio.h”main(){union{longintb;charc;}m;printf(“%d\n”,sizeof(m));}A)2 B)4 C)6 D)825、以下程序的運行結果是 () #include“stdio.h”unionpw{inti;char}a;main(){ch[0]=13;ch[1]=0;printf(“%d\n”,a,i);}A)13 B)14 C)208 D)209二、填空題1、以下程序的運行結果是【】. structn{intx;charc;};main(){structna={10,‘x’};func(a);printf(“%d,%c”,a.x,a.c);}func(structnb){b.x=20;b.c=’y’;}2、以下程序的運行結果是【】.main(){structEXAMPLE{struct{intint}in;intint}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d,%d”,e.in.x,e.in.y);}3、以下程序用以輸出結構體變量bt所占內(nèi)存單元的字節(jié)數(shù),請在【】內(nèi)填上適當內(nèi)容.structps{doublei;chararr[20];};main(){structps bt;printf(“btsize:%d\n”,【】;}4、若已定義:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;則表達式pn->b/n.a*++pn->b的值是【】,表達式(*pn).a+pn->f的值是【】5、以下程序的運行結果是【】。structks{intint}main(){intn=1,i;printf(“\n”);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\n”,(++p)->a,(p++)->a);}6、以下程序運行結果為【】.structs{inta;floatb;char*c;}main(){staticstructsx={19,83.5,”zhang”};structs*px=&x;printf(“%d%.1f%s\n”,x.a,x.b,x.c);printf(“%d%.1f%s\n”,px―>a,(*px).b,px―>c);printf(“%c%s\n”,*px―>c―1,&px―>c[1]);}7、設有以下定義和語句,請在printf語句的【】中填上能夠正確輸出的變量及相應的格式說明。union{intn;doublex;}num;num.n=10;num.x=10.5;printf8、以下程序的運行結果是【】.main(){structEXAMPLE{unionintx;inty;}in;inta;intb;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d,%d”,e.in.x,e.in.y);}9、以下程序的運行結果是【】.unionks{inta;intb;};unionkss[4];unionks*p;main(){intn=1,i;printf(“\n”);for(i=0;i<4;i++){s[i].a=n;s[i].b=s[i].a+1;n=n+2;}p=&s[0];printf(“%d,”,p->a);printf(“%d,”,++p->a);}10、以下程序的運行結果是【】.main()unionEXAMPLE{sturuct{intx;inty;}in;inta;intb;}e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d%d”,e.in.x,e.in.y);}11、以下程序的運行結果為【】.#include“stdio.h”structw{charlow;charhigh;};unionu{sturctwbute;intword;}uu;main(){uu.word=0x1234;printf(“Wordvalue:%04x\n”,uu.word);printf(“Highvalue:%02x\n”,uu.byte.high);printf(“Lowvalue:%02x\n”,uu.byte.low);uu.byte.low=0xff;printf(“Wordvalue:%04x\n”,uu.word);}12、寫出下列程序的輸出結果【】.enumcoin{penny,nickel,dime,quarter,half_dollar,dollar};char*name[]={“penny”,”nickel”,”dime”,”quarter”,”hal_fdollar”,”dollar”};main(){enumcoinmoney1,money2;money1=dime;money2=dollar;printf(“%d%d\n”,money1,money2);printf(“%s%s\n”,name[(int)money1],name[(int)money2]);}13、以下程序的輸出結果是【】.typedefintINT;main(){INTa=5;b=6;printf(“a=%d\tb=%d\n”,a,b);{floatINT;INT=3.0;printf(“2*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論