用戶自定義數(shù)據(jù)類(lèi)型_第1頁(yè)
用戶自定義數(shù)據(jù)類(lèi)型_第2頁(yè)
用戶自定義數(shù)據(jù)類(lèi)型_第3頁(yè)
用戶自定義數(shù)據(jù)類(lèi)型_第4頁(yè)
用戶自定義數(shù)據(jù)類(lèi)型_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、用戶自定義的數(shù)據(jù)類(lèi)型復(fù)習(xí)題一、 選擇題1下列程序的輸出結(jié)果是()。A) 5 B) 6 C) 7 D) 8struct abc int a, b, c; ;main() struct abc s2=1,2,3,4,5,6; int t;t=s0,a+s1,b;printf(%d n,t);2下列程序執(zhí)行后的輸出結(jié)果是()。A) 6 B) 8 C) 10 D) 12#define MA(x) x*(x-1)main() int a=1,b=2; printf(%d n,MA(1+a+b);3. 有以下結(jié)構(gòu)體說(shuō)明和變量的定義,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是()。A) a.next=q; B)

2、 p.next=&b;C) p-next=&b; D) (*p).next=q;struct node char data;struct node *next; a,b,*p=&a,*q=&b;4變量a所占內(nèi)存字節(jié)數(shù)是()。A) 4 B) 5 C) 6 D) 8union U char st4;int i;long l;struct A int c;union U u;a;5有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 #main() int i; for(i=1;ix);8以下程序的輸出結(jié)果是()。struct HAR int x, y;

3、 struct HAR *p; h2;main() h0,x=1;h0;y=2;h1,x=3;h1;y=4;h0,p=&h1,p=h;printf(“%d %d n”,(h0,p)-x,(h1,p)-y);A) 12 B) 23 C) 14 D) 329. 以下程序的輸出結(jié)果是()。union myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf(%dn”,a.u.x);A) 4 B) 5 C) 6 D) 010. 以下程序的輸出結(jié)果是()。#define M(x,y,z) x*y+z

4、main() int a=1,b=2, c=3;printf(“%dn”, M(a+b,b+c, c+a);A) 19 B) 17 C) 15 D) 1211. 若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,不正確的語(yǔ)句是()。A) p=2*(int*)malloc(sizeof(int);B) p=(int*)malloc(2*sizeof(int);C) p=(int*)malloc(2*2);D) p=(int*)calloc(2,sizeof(int);12. 若有下面的說(shuō)明和定義:struct test int ml; char m2; float m3;union uu

5、 char ul5; int u22; ua; myaa;則sizeof(struct test )的值是()。A) 12 B) 16 C) 14 D) 913. 若以下定義:struct link int data;struck link *next;a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):a b cdata next data next data next 5 9 0 7 p q指針p指向變量a,q指向變量c。則能夠把c插入到a和b 之間并形成新的鏈表的語(yǔ)句組是:()。A) a.next=c; c.next=b; B) p.next=q; q.next=p.nex

6、t;C) p-next=&c; q-next=p-next; D) (*p).next=q; (*q).next=&b;14. 設(shè)有以下說(shuō)明語(yǔ)句typedef struct int n;char ch8;PER;則下面敘述中正確的是()。A) PER 是結(jié)構(gòu)體變量名 B) PER是結(jié)構(gòu)體類(lèi)型名C) typedef struct 是結(jié)構(gòu)體類(lèi)型 D) struct 是結(jié)構(gòu)體類(lèi)型名15. 程序中頭文件typel.h 的內(nèi)容是:#define N 5#define M1 N*3程序如下:#include “type1.h”#define M2 N*2main() int i;i=M1+M2; prin

7、tf(“%dn”,i);程序編譯后運(yùn)行的輸出結(jié)果是:()。A) 10 B) 20 C) 25 D) 3016. 有以下程序struct STU char num10; float score3; ;main() struct stu s3=“20021”,90,95,85,“20022”,95,80,75,“20023”,100,95,90,*p=s;int i; float sum=0;for(i=0;iscorei;printf(“%6.2fn”,sum);程序運(yùn)行后的輸出結(jié)果是()。A) 260.00 B) 270.00 C) 280.00 D) 285.0017. 設(shè)有如下定義:str

8、uck sk int a;float b;data;int *p;若要使P指向data中的a域,正確的賦值語(yǔ)句是()。A) p=&a; B) p=data.a; C) p=&data.a; D) *p=data.a;18. 有以下程序#include struct NODE int num; struct NODE *next; ;main() struct NODE *p,*Q,*R;p=(struct NODE*)malloc(sizeof(struct NODE);q=(struct NODE*)malloc(sizeof(struct NODE);r=(struct NODE*)mal

9、loc(sizeof(struct NODE);p-num=10; q-num=20; r-num=30;p-next=q;q-next=r;printf(“%dn”,p-num+q-next-num);程序運(yùn)行后的輸出結(jié)果是()。A) 10 B) 20 C) 30 D) 4019.若有以下說(shuō)明和定義typedef int *INTEGER;INTEGER p,*q;以下敘述正確的是()。A) P是int型變量 B) p是基類(lèi)型為int的指針變量C) q是基類(lèi)型為int的指針變量 D) 程序中可用INTEGER代替int類(lèi)型名20. 有以下程序main() unsigned char a,b,

10、c;a=0x3; b=a|0x8; c=b1;printf(“%d%dn”,b,c);程序運(yùn)行后的輸出結(jié)果是()。A) 11 12 B) 6 13 C) 12 24 D) 11 2221. 以下函數(shù)的功能是:通過(guò)鍵盤(pán)輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#define N 10void arrin(int xN) int i=0; while(isex);26. 以下選項(xiàng)中不能正確把cl定義成結(jié)構(gòu)體變量的是()。A)typedef struct B)struct color cl int red; int red;int green; int green;int blue; int blue; C

11、OLOR; ;COLOR cl;C)struct color D)struct int red; int red;int green; int green;int blue;int blue; cl; cl;27. 有以下程序#include #define F(X,Y) (X)*(Y)main() int a=3, b=4;printf(%dn, F(a+, b+);程序運(yùn)行后的輸出結(jié)果是()。A)12 B)15 C)16 D)2028. 有以下程序struct s int x,y; data2=10,100,20,200;main() struct s *p=data;printf(%dn

12、,+(p-x);程序運(yùn)行后的輸出結(jié)果是()。A)10 B)11 C)20 D)2129. 有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中的三個(gè)連續(xù)結(jié)點(diǎn)。struct node int data;struct node *next; *p, *q, *r;現(xiàn)要將q和r所指結(jié)點(diǎn)的先后位置交換,同時(shí)要保持鏈表的連續(xù),以下錯(cuò)誤的程序段是()。A)r-next=q; q-next=r-next; p-next=r;B)q-next=r-next; p-next=r; r-next=q;C)p-next=r; q-next=r-next; r-next=q;D)q-next=r-n

13、ext; r-next=q; p-next=r;30有以下程序#define f(x) x*xmain( ) int i; i=f(4+4)/f(2+2); printf(“%dn”,i);執(zhí)行后輸出結(jié)果是()。A) 28 B) 22 C) 16 D) 431. 設(shè)有以下語(yǔ)句typedef struct S int g; char h; T;則下面敘述中正確的是()。A) 可用S定義結(jié)構(gòu)體變量 B)可以用T定義結(jié)構(gòu)體變量C)S是struct類(lèi)型的變量 D)T是struct S類(lèi)型的變量32.有以下程序struc STU char name10; int num;void f1(struct S

14、TU C) struct STU b=“LiSiGuo”,2042; c=b;void f2(struct STU *C) struct STU b=“SunDan”,2044; *c=b;main( ) struct STU a=“YangSan”,2041,b=“WangYin”,2043; f1(A) ;f2(&B) ; printf(“%d %dn”,a.num,b.num);執(zhí)行后的輸出結(jié)果是()。A)2041 2044 B)2041 2043 C)2042 2044 D)2042 204333. 有以下程序main( ) unsigned char a,b; a=4|3; b=4&

15、3; printf(“%d %dn”,a,b(;執(zhí)行后輸出結(jié)果是()。A) 7 0 B) 0 7 C) 1 1 D) 43 034. 有以下程序struct STU char name10; int num; int Score;main( ) struct STU s5=“YangSan”,20041,703,“LiSiGuo”,20042,580, “wangYin”,20043,680,“SunDan”,20044,550, “Penghua”,20045,537,*p5,*t; int i,j; for(i=0;i5;i+) pi=&si; for(i=0;i4;i+) for(j=i

16、+1;jScorepj-Score) t=pi;pi=pj;pj=t; printf(“5d %dn”,s1.Score,p1-Score);執(zhí)行后輸出結(jié)果是()。A) 550 550 B) 680 680 C) 580 550 D) 580 68035. 有以下程序#include struct NODEint num;struct NODE *next;main( ) struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE);q=(struct NODE *)malloc(sizeof(struct

17、 NODE);r=(struct NODE *)malloc(sizeof(struct NODE);p-num=1;q-num=2;r-num=3;p-next=q;q-next=r;r-next=NULL;sum+=q-next-num;sum+=p-num;printf(“%dn”,sum);執(zhí)行后的輸出結(jié)果是()。A) 3 B) 4 C) 5 D) 636. 有以下說(shuō)明和定義語(yǔ)句 struct student int age; char num8; struct student stu3=20,21,109,; struct student *p=stu; 以下選項(xiàng)中引用結(jié)構(gòu)體變量成員

18、的表達(dá)式錯(cuò)誤的是 ()。A) (p+)-num B)p-numC)(*p).num D)stu3.age3739.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的 字符依次轉(zhuǎn)儲(chǔ)到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選若中選擇出 正確的選項(xiàng)。 #include stuct node char data; struct node *next; (37) CreatList(char *s) struct node *h,*p,*q); h=(struct node *) malloc(sizeof(struct node); p=q=h; while(*s!=0) p=

19、(struct node *) malloc(sizeof(struct node); p-data= (38) ; q-next=p; q= (39) ; s+; p-next=0; return h; main() char str=link list; struct node *head; head=CreatList(str); . (37)A)char * B)struct nodeC) struct node*D) char(38)A)*s B)s C)*s+D)(*s)+(39)A)p-nextB)pC)s D)s-next40. 有以下程序#define N 20fun(int

20、 a,int n,int m) int i,j;for(i=m;i=n;i-)ai+1=ai;main()int i,aN=1,2,3,4,5,6,7,8,9,10;fun(a,2,9);for(i=0;iy B) pt-x C) +pt-x D) (pt+)-x 二、 填空1.以下程序的輸出結(jié)果是 。 #define MAX(x,y) (x)(y)?(x):(y) main() int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(%dn,t); 2.若要使指針p指向一個(gè)double類(lèi)型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?p= malloc(sizeof(d

21、ouble); 3.設(shè)有以下結(jié)構(gòu)類(lèi)型說(shuō)明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是 18 。 Struct stud char num6; int s4; double ave; a,*p;4. 以下程序用來(lái)輸出結(jié)構(gòu)體變量ex所占存儲(chǔ)單元的字節(jié)數(shù),請(qǐng)?zhí)羁?。struct st char name20; double score; ;main() struct st ex;printf(“ex size: %dn”,sizeof( 【14】 );5. 以下程序中,主函數(shù)調(diào)用了LineMax函數(shù),實(shí)現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值。請(qǐng)?zhí)羁铡?define N 3#define M 4voi

22、d LineMax(int xNM) int i,j,p;for(i=0; i p=0;for(j=1; j if(xip printf(“The max value in line %d is %dn”, i, 【19】 );main() int xNM=1,5,7,4,2,6,4,3,8,2,3,1;【20】 6. 以下程序段用于構(gòu)成一個(gè)簡(jiǎn)單的單向鏈表,請(qǐng)?zhí)羁铡truct STRU int x, y ;float rate;【18】 p; a, b;a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;7. 若有如

23、下結(jié)構(gòu)體說(shuō)明:struct STRU int a, b ; char c; double d:struct STRU p1,p2;請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類(lèi)型【19】 t20;8. 設(shè)有如下宏定義#define MYSWAP(z,x,y) z=x; x=y; y=z;以下程序段通過(guò)宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容交換,請(qǐng)?zhí)羁?。float a=5,b=16,c;MYSWAP( 【15】 ,a,b);9. 以下程序中,select 函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,并通過(guò)形參傳回此最大值所在的行下標(biāo)。請(qǐng)?zhí)羁铡?define N 3#defi

24、ne M 3 select(int aNM,int *n) int i,j,row=1,colum=1;for(i=0;ifor(j=0;jif(aijarowcolum)row=i;colum=j;*n= 【17】;return 【18】; main() int aNM=9,11,23,6,1,15,9,17,20,max,n; max=select(a,&n); printf(max=%d,line=%dn,max,n); 10. fun函數(shù)的功能是:首先對(duì)a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個(gè)最大值中的最小的那個(gè)數(shù)作為函數(shù)值返回。請(qǐng)?zhí)羁铡?include #define

25、 N 100int fun(int(*a)N) int row,col,max,min;for(row=0;row for(max=arow0,col=1;colif( 13 )max=arowcol; if( row=0)min=max; else if( 14 )min=max; return min;11. 下面程序的運(yùn)行結(jié)果是: 19 。typedef union student char name10;long sno;char sex;float score4;STU;main() STU a5;printf(“%dn”,sizeof(a);12. 以下程序的輸出結(jié)果是【18】 。#defint MCRA(m) 2*m#define MCRB(n,m) 2*MCRA(n)+mmain() int i=2,j=3; printf(%dn,MCRB(j,MCRA(i);13.設(shè)有以下定義struct ss int info;struct ss *link;x,y,z;且已建立如下圖所示鏈表結(jié)構(gòu): X Y Z請(qǐng)寫(xiě)出刪除點(diǎn)y的賦值語(yǔ)句【19】 。14. 已有定義如

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論