C語(yǔ)言測(cè)試題及答案_第1頁(yè)
C語(yǔ)言測(cè)試題及答案_第2頁(yè)
C語(yǔ)言測(cè)試題及答案_第3頁(yè)
C語(yǔ)言測(cè)試題及答案_第4頁(yè)
C語(yǔ)言測(cè)試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、、選擇題1 .語(yǔ)句int a=10,*point=&a ; D 其值不為地址。A. point B. &a C. &point D. *point2 .若p為指針變量,y為變量,則y = *p+ ;的含義是 AA. y=*p;p+B. y=(*p)+ C . y=p;p+ D. p+;y=*p3 .語(yǔ)句 char str="visual C+ :char *p=str;則 p 的值為 BA. ”visual C+ ” B.str的首地址 C. n D. V4 .設(shè)有說(shuō)明語(yǔ)句 char *s= student ", "Teacher"

2、;, "Father ", "Month", *ps=s2;執(zhí)行語(yǔ)句:printf( %c,%s,%c,*s1,ps,*ps);則輸出為AA. T,Father,FB.Teaher,F,FatherC. Teacher,Father,Father D.語(yǔ)法錯(cuò),無(wú)輸出5 .下列說(shuō)明或賦值語(yǔ)句,不正確的是 CA. char *p;p="Visual C+ ”; B. char p112=v', 'i ', 's', 'u'C. char p212;p2="Visual C+ ” D.

3、 char p3="Visual ”;6 .現(xiàn)有 int b34,*p;p=(int *)b;若要指針 p 指向 b23,以下正確的是_BA. p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int) D.p+=(2*4+3)*sizeof(int)7 .語(yǔ)句int i,*p1,*p2;以下語(yǔ)句語(yǔ)法不正確的是 BA. p1=&i; B. p2=&i; C.p2=&p1; D.i= '0x23'8 .如下圖結(jié)構(gòu)體說(shuō)明和變量的定義,p指向a,q指向變量b.下面不能把 結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是_Babp >

4、data nextq > data nextA. a.next=q; B. p.next=&b;C. p->next=&b; D.(*p).next=q;9 .下面正確的語(yǔ)句是 AA. int a34,(*p)4; p=a; B. int a34,*p4; p=a;C. int a34,*p; p=a; D. int a34,*p;*p=a;10. 以追加”方式打開(kāi)文本文件a:aa.dat,下列語(yǔ)句中哪一個(gè)是正確的是_BA. fp=fopen("a:aa.dat","ab"); B. fp=fopen("a:aa.d

5、at","a");C. fp=fopen("a:aa.dat","r+"); D. fp=fopen("a:aa.dat","w");1 1.設(shè)有函數(shù)定義:int f1(void)return 100,150; 調(diào)用函數(shù) f1()時(shí),_BA.函數(shù)返回值100 B.函數(shù)返回值150C.函數(shù)返回二個(gè)值100和150 D.語(yǔ)句return 100,150; 語(yǔ)法錯(cuò).1 2 .數(shù)組作為函數(shù)的形參時(shí),把數(shù)組名作為實(shí)參,傳遞給函數(shù)的是_AA.該數(shù)組的首地址B.該數(shù)組的元素個(gè)數(shù)一C.該數(shù)組中的各元素

6、值D.該數(shù)組的大小1 3 .執(zhí)行以下語(yǔ)句序列:則上enum Sun,Mon,Tue,Wed,Thu,Fri,Satc1,c2;/Ac1=Mon;/Bprintf(%d,c1);A.輸出1 B.輸出2 C.輸出0 D. B行語(yǔ)法錯(cuò)1 4 .執(zhí)行以下語(yǔ)句序列:則-Cchar *p1= "Speaking”;/Achar *p2= "English ”;/Bchar *p3= ”a piece of cake:/Cchar *str=p1,p2,p3;/Dprintf(%c*(str0+1);A.輸出 EnglishB.輸出 SpeakingC.輸出pD. D行語(yǔ)法錯(cuò)二、填空題1

7、. (2*2分=4分)下面程序的運(yùn)行結(jié)果為6、2void main()static int a32=12,14,16,1,2;int *p=a1;printf( %dn”,*(p+1);printf( %dn”,*(p+3);2. (2*2分=4分)若有以下程序段,則*(*(b+2)+1)的值為11*(*(p+1)+1)的值為static int b32=1,3,5,7,9,11;int (*p)2;p=b;3. (1*4分=4分)下面程序的運(yùn)行結(jié)果為 26#include<stdio.h>void sub(int *x,int i,int n)if(n<=i)sub(x,i

8、,3*n);*x+=n+; 相當(dāng)于 *x=*x+(n+)void main()int x=0;sub(&x,12,2);printf( %d”,x);4. (2*2分=4分)以下程序運(yùn)行結(jié)果為 Hello,world 、 ello,world void main()char *p,*q;char str="Hello,World'n"q = p = str;p+;printf( %sn”,q);printf( %sn”,p); 5. (1*4分=4分)以下程序運(yùn)行結(jié)果是121232343454void main()short ar5=1,2,3,4,5 ;s

9、hort * par=&ar1;int i;for(i=0; i<4; i+)printf( %d %d %d”,ari,pari,*(ar+i); 6. (2*2分=4分)以下程序運(yùn)行結(jié)果是 200 100.void swap2(int *x,int *y)int t;t=*x;*x=*y;*y=t;void main() int a=100,b=200;swap2(&a,&b);printf( %dt%d”,a,b);7. (3*2 分=6 分)void fun(int n, int *s) int f1,if(n= =1|n= =2)*s=1;elsefun

10、(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf( %dt%dn”,f1,f2);void main() int x;fun(4,&x);printf("x=%dn”,x);程序輸出的第一行是1 1第二行是4 1最后一行是x=108. (3*2 分=6 分)void f(int *q1,int *q2,int *q3)*q3=*q1+*q2;void main() int i,j,a33=1,1,*p1=a0,*p2=a0+1,*p3=a0+2;for(i=2;i<9;i+)f(p1+,p2+,p3+);for(i=0

11、;i<3;i+) for(j=0;j<3;j+)printf( %d",aii);printf( 'n');程序輸出的第一行是111第二行是555最后一行是3434349. (2*3 分=6 分)int f(int x,int y)return x*y;void main() int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i+) switch(i)case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;printf("j=

12、%d”,j);程序而出的第一行是j=2第二行是j=6最后一行是j=10三、完善程序1. (2*3分=6分)以下min函數(shù)的功能是:在非空單向鏈表中查找結(jié)點(diǎn)數(shù)據(jù)域?yàn)?最小的值,并作為函數(shù)返回值.鏈表如下.head7struct NODEint data;NODE *next;int min(NODE *first)NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next) if(m> p->data )m=p->data;return m;2. (3*2分=6分)以下程序求二維數(shù)組的平均值

13、float average(float (*p)4,int n)float sum=0;for(int i=0; i<n ;i+)for(j=0;j<4;j+)sum+=(*p)j或 *(*p+j):p+;return sum/(n*4);void main() float score34=56,65,70,76,89,97,52,81,90,99,91,86; printf("平均值=%f",average$core, 3);3. (2*3.5分=7分)以下程序?qū)崿F(xiàn)將以L為頭指針的鏈表逆置(設(shè)結(jié)點(diǎn)個(gè)數(shù)n>2), 即將鏈表頭當(dāng)鏈表尾,鏈表尾當(dāng)鏈表頭。如下圖

14、:提示:本算法的思想是,p指向等待插入的結(jié)點(diǎn)構(gòu)成的鏈表表頭,逐個(gè)地把p的第一個(gè)結(jié)點(diǎn)插入到L的第一個(gè)結(jié)點(diǎn)之前,L指向倒序鏈表。void reverse(NODE * L)p=L->next;q=p->next;L->next=NULL ;while(q!=NULL)p->next=L;L=p;p=q;q=q->next;p->next=L;L=p;4. (3*2分=6分)以下程序?qū)崿F(xiàn)鏈表L中刪除第i個(gè)元素(設(shè)1&iw元素個(gè) 數(shù)),并釋放該節(jié)點(diǎn)空間。/ p表示i號(hào)節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)的指針void Delete(NODE *L,int i)NODE *p,*q

15、;if(i= =1) q=L;L=L->next; / 刪除第一個(gè)元素 elsep=L;while(-i>1) p=p->next;q=p->next;p->next=q->next ; /刪除第 i 個(gè)元素free(q);5. (4*2.5分=10分)設(shè)鏈表上結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)定義如下:struct PNODEint x;PNODE *next;設(shè)已建立了一條鏈表,h為鏈表首指針。函數(shù)DelAdd的功能為:若鏈表上 能找到結(jié)點(diǎn)的x值為value,則從鏈表上刪除該結(jié)點(diǎn)(假設(shè)鏈表上各個(gè)結(jié)點(diǎn)值是 不同的);否則構(gòu)造一個(gè)新結(jié)點(diǎn),其 x的值為value,并將新結(jié)點(diǎn)插入鏈

16、尾。該 函數(shù)要返回鏈表的首指針。/任何時(shí)候,刪除節(jié)點(diǎn),都需要前驅(qū)節(jié)點(diǎn)的指針,pl表示當(dāng)前被比較節(jié)點(diǎn)的指針,p2表示前驅(qū)節(jié)點(diǎn)的指針PNODE *DelAdd(PNODE *h, int value)PNODE *p1, *p2;int flag=0;/值為1時(shí),表示已刪除值為value的結(jié)點(diǎn)p1=h;while(p1 && flag= =0) if(p1->x= =value)flag=1;if(p1= =h)h= p1->next; free( p1); elsep2->next= p1->next; free( p1);else p2=p1; p1=

17、p1->next;if(flag= =0)p1 = (PNODE *)malloc(sizeof (PNODE);p1->x=value;p1->next=0;if(h= =0) h=p1;else p2->next =p1;return h;6. 鏈表算法,函數(shù)sort完成按num值升序排序的鏈表/p指向被插入節(jié)點(diǎn)(11, 7, 3, 5, 6,8, 15)typede struct node double num; struct node * next; Node;Node *sort(Node * head) Node *p1,*p2;Node *h=0, *p; /先讓h指向空鏈,依次從head所指向的鏈表上取下 個(gè)結(jié)點(diǎn)插入到已排序的h所指向的鏈表上if(head=0) return head;while(head) p=head; head=head->next;if(h=0) h=p; p->next

溫馨提示

  • 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)論