版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、以下說法中正確的是: 。A:一個結(jié)構(gòu)只能包含一種數(shù)據(jù)類型B:不同結(jié)構(gòu)中的成員不能有相同的成員名C:兩個結(jié)構(gòu)變量不可以進行比較D:關(guān)鍵字typedef用于定義新的數(shù)據(jù)類型,C,結(jié)構(gòu)體、鏈表綜合習題,設(shè)有以下說明,則值為210的表達式是: 。struct s { int a;int *b;};int x0[]={110,120},x1[]={210,220};struct s x[]={{100},{200}}
2、,*p=x;x[0].b=x0;x[1].b=x1;A:*p->b B. (++p)->a C. *(p++)->b D.*(++p)->b,D,結(jié)構(gòu)體、鏈表綜合習題,struct{ int x,y;}c[3]={ {1,2},{2,3}};正確的語句是 。A:C[2]={3,4};B:C[2]=C[1];C:C[2]=C[1]-C[0];D:if(c[1]>c[0])c[2]=
3、c[1];else c[2]=c[0];,B,結(jié)構(gòu)體、鏈表綜合習題,已知有如下的結(jié)構(gòu)類型定義和變量聲明: struct student { int num; char name[10]; } stu = {1,”Mary”},*p=&stu;則下列語句錯誤的是_____A:printf(“%d”,stu.num);B:printf(“%d”,(&stu) -> num);C:
4、printf(“%d”,&stu -> num);D:printf(“%d”,p -> num);,C,結(jié)構(gòu)體、鏈表綜合習題,已知有結(jié)構(gòu)類型定義:typedef struct ex{long int num; char sex; struct ex *next;
5、 }student;下列敘述錯誤的是___________。struct ex 是結(jié)構(gòu)類型 student是結(jié)構(gòu)類型的變量名C. ex可缺省 D. student不可缺省,B,結(jié)構(gòu)體、鏈表綜合習題,若要使表達式“P++”無語法錯誤,則變量P不能聲明為___________。A. int P; B. double P; C. int *P;
6、 D. struct{int x;}P;,D,結(jié)構(gòu)體、鏈表綜合習題,數(shù)組和鏈表都可以用于存儲一組彼此有關(guān)聯(lián)的數(shù)據(jù),以下說法中不正確的是: A:數(shù)組占用一塊連續(xù)的存儲區(qū)域,鏈表可能占用 若干不連續(xù)的存儲區(qū)域B:數(shù)組和鏈表所占用的存儲區(qū)域均不能在程序運行期間動態(tài)地分配C:數(shù)組中的數(shù)據(jù)可以隨機存取或順序存取,鏈表中的數(shù)據(jù)只能順序存取D:數(shù)組的長度是固定的,鏈表的長度是不固定的,B,結(jié)構(gòu)體、鏈表綜合習題,值為6的表達式為
7、struct st{int n;struct st *next;}static struct st a[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];A)p++->n B)p->n++ C)(*p).n++ D) ++p->n,D,結(jié)構(gòu)體、鏈表綜合習題,對以下結(jié)構(gòu)體變量example中成員x的引用
8、正確的是 struct { int x ; int y ; } example , *p=&example;(*p).example. x B) (*p). x C) p->example D) p.example. x,B,結(jié)構(gòu)體、鏈表綜合習題,結(jié)構(gòu)體、鏈表綜合習題,對于下列程序段: struct SD {int x; float y;
9、 }; struct SD a[3]={{1001, 3.5},{1002,4.5},{1003,4.0}}, *p; p=a;則下面不正確的使用是__________。A. (++p)->x B. p++ C. (*p).y D. p=&a[0].x,D,結(jié)構(gòu)體、鏈表綜合習題,若有以下程序段: struct SD {int x; int *r; };
10、 int a=1,b=2,c=3; struct SD s[3]={{1001,&a},{1002,&b},{1003,&c}}; main() {struct SD *p; p=s; …… }則以下表達式中值為2的是_________。A. *(++p)-> r B. *(p++)-> rC. (*p).r D.
11、 (p++)-> r,A,結(jié)構(gòu)體、鏈表綜合習題,有以下結(jié)構(gòu)體類型的說明和變量定義,并給出圖示,則選項中不能把結(jié)點b連接到a之后的語句是__________。 data next data next a b p q
12、 struct ND {char data; struct ND *next; }a,b,*p=&a,*q=&b;a.next=q; B. p.next=&b;C. p->next=&b; D. (*p).next=q;,B,,,,,,,結(jié)構(gòu)體、鏈表綜合習題,設(shè)有定義如下:typedef struct{int x,y;}POINT;typ
13、edef enum{ RED,YELLOW,BLUE,GREEN}COLOR;struct{ POINT xy;COLOR c;}pixel,*p=&pixel;以下對變量pixel的賦值操作中正確的是 。A:pixel={ 1,2,BLUE};B:scanf(“%d%d%d%d”,p->xy.x,p->xy.y,&pixel.c);C:p->xy.x=1;p->xy.y
14、=2;p->c=BLUE;D:scanf(“%d%d”,&pixel.xy);pixel.color=2;,C,設(shè)鏈表上的結(jié)點的數(shù)據(jù)結(jié)構(gòu)定義如下:struct node{ int x; struct node *next; }; 函數(shù)create的功能是:創(chuàng)建一個有序的鏈表(結(jié)點中x的值按升序排列),鏈表中結(jié)點的個數(shù)為參數(shù)n的值,函數(shù)返回該有序鏈表的頭指針。算法思想如下:每產(chǎn)生一個
15、新結(jié)點,插入到鏈表中的恰當位置,使得插入新結(jié)點后的鏈表仍然保持有序。,(27) creat(int n){ struct node *p, *p1, *p2, *h=NULL;int i=0;if(nx);p->next=NULL;if(h= =NULL) (29) ;else { p1=p2=h; while(p2&&p->x>=p2->x){p1=p2;p2=p2-&
16、gt;next;} if( p2= =h){ (30);h=p;} else{p->next=p2;p1->next=p;} } i++; }return h;},struct node *inext=h,已知某鏈表中結(jié)點的數(shù)據(jù)結(jié)構(gòu)定義如下:struct node{int x; struct node *next;};函數(shù)find_del功能是:在參數(shù)head指向的鏈表中查找并刪除x值
17、最大的結(jié)點,如有多個相同的x值最大的結(jié)點,刪除第一個結(jié)點,保存該結(jié)點的地址到pm指向的指針變量中,函數(shù)返回鏈表首結(jié)點的指針。,struct node *find_del(struct node *head,struct node **pm){stuct node *p1,*p2,*pmax,*pre; if(head= =NULL) return NULL;pmax=(1) ;p2=p1=pmax; while(p1)
18、 {if(p1->x> (2) ) {pre=p2;pmax=p1;} p2=p1;p1=p1->next; } if(pmax= =head)head=pmax->next; else (3) =pmax->next; (4) =pmax; return head; },1 head2 pmax->x3 pre->next4
19、 *pm,設(shè)鏈表上的結(jié)點的數(shù)據(jù)結(jié)構(gòu)定義如下:struct node { int x; struct node *next;};假設(shè)已經(jīng)建立了一個鏈表,h為鏈首指針。函數(shù)deladd的功能是:若鏈表上能找到結(jié)點的x值為value,則從鏈表上刪除該結(jié)點(假定鏈表上的各個結(jié)點的值是不同的);否則構(gòu)造一個新結(jié)點,其值為value,并將新結(jié)點插入鏈尾。該函數(shù)要求返回新鏈表的首指針。,struct node *deladd(stru
20、ct node *h,int value){ struct node *p1, *p2;int flag=0;p1=p2=h;while(p1&&flag= =0){if(p1->x= =value) { flag=1;if(p1= =h){ h= (1) ;free(p1);}else { p2->next= (2) ; free(p1);}} el
21、se{ p2=p1;p1= (3) ;}},if(flag= =0){ p1=(struct node *)malloc(sizeof(struct node));p1->x=value;p1->next=0;if(h= =0)h=p1;else (4) ;}return h;},(1)h->next (2)p1->next(3)p1->next (4)p
22、2->next=p1,顛倒鏈表的鏈接順序struct node{int data; struct node *next; };reverse (struct node *h) {struct node *p,*v1,*v2; _______________; v1=NULL; while(v2!=NULL) {_________
23、________; v2->next=v1; v1=v2; v2=p; } h=v1; return h; },v2=hP=v2->next,已知某鏈表中結(jié)點的數(shù)據(jù)結(jié)構(gòu)定義如下:#includestruct node{int x; struct node *next;};函數(shù)loop的功能是:根據(jù)dir的值循環(huán)移位head指向的鏈表中的所有結(jié)點,當dir為正數(shù)時實現(xiàn)循環(huán)右移一次,否則循環(huán)左移一次
24、。函數(shù)返回鏈表首結(jié)點的指針。例如,移位前的鏈表數(shù)據(jù):head->1->3->5->4, 移一次后的鏈表數(shù)據(jù):head->4->1->3->5。算法提示:循環(huán)右移時,將鏈表最后一個結(jié)點刪除,再將其插入到鏈表首部;循環(huán)左移時,將鏈表第一個結(jié)點刪除,再將其連接到鏈表尾部。,struct node *loop(struct node *head,int dir){stru
25、ct node *p1,*p2; p1=head; if(p1= =NULL||p1->next= =NULL)return head; if(dir>=0) {while(p1->next) {p2=p1;p1=p1->next;} __(1)__=NULL; p1->next=_(2)__;
26、 head=p1; } else {head=___(3)__; p2=head; while(p2->next)p2=p2->next; _(4)_; p1->next=NULL; } return head;},(1)p2->next(2)head(3)p1->next(4)p2->next=p1,.以下程序中函數(shù)padd的功能是:調(diào)整
27、pa指向的鏈表中各結(jié)點的位置,使得所有x值為偶數(shù)的結(jié)點出現(xiàn)在鏈表的前半部,所有x值為奇數(shù)的結(jié)點出現(xiàn)在鏈表的后半部。#includetypedef struct p{ int x; struct p *next;} PNODE;PNODE *padd(PNODE *pa){PNODE *p1, *p2,*p; p1=p2=pa; while(p1) {if(p1->x%2= =0&& (1) )
28、 {p=p1; p1=p1->next; (2) =p1; p->next=pa;(3) ; } else {p2=p1;p1=p1->next;} } return pa;}main(){PNODE a[10]={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}},*ha=a,*p; int i ; for(i=0;i",p-
29、>x);p=p->next;}},(1)p1!=pa(2)p2->next(3)pa=p(4)NULL,.下面程序用來從鍵盤上讀入一行字符,并按輸入順序建立一個鏈式結(jié)點序列,新添加的結(jié)點存入當前剛讀入的字符,讀入完成后,再按該鏈式序列的反向順序輸出這一行字符,最后,釋放全部結(jié)點空間。請在 處填入正確內(nèi)容。 #define getnode(type) (type*)malloc (size
30、of(type)) #define null 0 #include “stdio.h” main(){struct node {char info; struct node *link; }*top,*p; char c; top= (1) ; while((c=getchar())!=’\n’)
31、 {p=getnode( (2) ); p->info=c; p->link= (3) ; top= (4) ; } while (top!=null) {p= (5) ; top= (6) ; putchar(p->info);free(p);}},(1)null(2)struct no
32、de(3)top(4)p(5)top(6)top->link,.設(shè)鏈表上的每個結(jié)點的數(shù)據(jù)結(jié)構(gòu)為: struct node {int data; struct node *next;}; 假設(shè)已建立了一條鏈表, 鏈表上第一個結(jié)點的值為該鏈表上結(jié)點的個數(shù). 下面的函數(shù)要刪除鏈上具有相同值的所有結(jié)點, 使得結(jié)點上的數(shù)值各不相同.struct node *delsamenode(struct nod
33、e *head) { struct node *p, *q, *r; p=head->next; if(p!=NULL) {while (p->next!=NULL) {q=p; while ( (1) ) {if( (2) ) {r=q->next; q->next=q->next->next;
34、 free(r); __(3)____;} else q=q->next;} p=p->next; } } },(1)(q->next!=NULL(2)q->next->data==p->data(3)head->data=head->data-1,以下程序?qū)σ唤M點坐標(x,y)按
35、升序進行排序。要求:先按x的值排序,若x的值相同,則按y的值排序。排序算法為選擇法。#include #define N 5typedef struct{int x,y;}POINT;void point_sort( (1) *x, int n){POINT t; int i,j,k; for(i=0;i(x[j].x)) k=j; else if( (4) &
36、;&x[k].y>x[j].y) k=j; if(k!=i) t=x[i],x[i]=x[k],x[k]=t; }}main(){POINT a[N]={0}; int i=0; while(i<N) {scanf("%d %d",&a[i].x,&a[i].y);i++;} point_sort(a,N); for(i=0;i<N;i++)printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有些祝福,不可以省略
- 員工獎懲不可以隨意
- 有些祝福,不可以省略
- 員工獎懲不可以隨意
- 大衛(wèi)不可以繪本講解
- 小說是不可以修訂的
- 可不可以游戲
- 繪本閱讀《大衛(wèi)不可以》教案
- 繪本閱讀《大衛(wèi)不可以》教案
- 可不可以不勇敢
- 《大衛(wèi)不可以》閱讀教學設(shè)計教案
- 賞繪本,講故事《大衛(wèi),不可以》
- 幼兒繪本故事大衛(wèi)不可以(ppt)
- 大衛(wèi),不可以-閱讀-教學設(shè)計方案-教案
- 太陽鏡不可以亂戴的原因
- 關(guān)鍵字
- 中人以上-可以語上也;中人以下-不可以語上也。
- 【演講稿】【讀書征文】你可以傻但是不可以放不下
- “遺產(chǎn)可不可以留給二奶”
- 壽險-增員系列才干——只能發(fā)現(xiàn),不可以培養(yǎng)
評論
0/150
提交評論