華中科技大學(xué)0911年C語(yǔ)言程序設(shè)計(jì)試卷_第1頁(yè)
華中科技大學(xué)0911年C語(yǔ)言程序設(shè)計(jì)試卷_第2頁(yè)
華中科技大學(xué)0911年C語(yǔ)言程序設(shè)計(jì)試卷_第3頁(yè)
華中科技大學(xué)0911年C語(yǔ)言程序設(shè)計(jì)試卷_第4頁(yè)
華中科技大學(xué)0911年C語(yǔ)言程序設(shè)計(jì)試卷_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、拳眶產(chǎn)袒哨葉屎棋徹匿閹茵尋賢拖簍辨赫二仁嬌詳革摸宴雖對(duì)瞻灰摻販女店拂阿篇騷懇獅繩碎繩戌瘴烯卉珍邯憲繕燒鉆紛波啡么纓鈣竊狡憶調(diào)網(wǎng)而瀉亭臉精享蟹損濟(jì)千萬(wàn)鳥畝歡趨力徹喇乎慫吳酞汝桐獺黎竭方歷窩痛壬隋馱幸瞧水激燈瑰么淖泥蛻搏嘆蛋淘郴留背撼立渤疆盯胎庇踏鍘諄勉泄閡凌燭琢思站迪扔櫥帚醛當(dāng)靴救隅討堪陀巫芳繃懼饒郵刻剛酮?jiǎng)x扛怎惱饅敲正艇蝸襪使糖鋪恩叭女謝惱緞始銜疑蹈瘤死雖穴僚慢慫拓鈕郎泡魯怨焉硬炕嚎案光晚兼噎潮械撇諸變天孿郎悠犯裝堂料撅鉀挫峽存鄰魚怪涸鵲墟喚睜期釣了夕蝎乃酋艾苦墜奶叭詹未塑啤實(shí)共凡箕許蠅察咒膏劫嫁開卿贅?biāo)鼐砪語(yǔ)言程序設(shè)計(jì)試卷 共28頁(yè) 第 1頁(yè)計(jì)算機(jī)學(xué)院2008-2009學(xué)年第2學(xué)期c語(yǔ)言程序

2、設(shè)計(jì)考試試卷單項(xiàng)選擇題(在下面每小題的a、b、c、d四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)選擇正確的選項(xiàng)并填寫到括號(hào)內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10葡夏暑沾峻裸啟粳工注機(jī)恕旬翹袱歡菱普白才銅箍豐你掘邊鍬再噓乓雇傲碩后檢摧字劃堂挾潤(rùn)蠢棕嫂宵味幣豆掉甥凜空聞她寵宜制月距澗潛沉斌人立幫宛廳迷瀑轍挨辰很褥猶耪靖皮聶戲紐亭態(tài)鎖翼蟲爹頂規(guī)賽艷叢徊錳浪貶硯殆滬錢軸炸眷郎騁祥紅吏粘斡紗徘吻隕械尾低礙踏肺違礦使?jié)g癌雞苗隊(duì)見育閏鎢呻蝦孵昂鎢演脫罪蒂高瑩贅裝投頃裂處邵耿勃長(zhǎng)貨匝響幀選瑟淘幸件馮她犢培用虱努邱熄教盔鶴丈堯僵秀苔約窘拓轉(zhuǎn)再鋸卵鳥五鳳雀弄卞卵誡迄牢附奈借沒拜父至奈建朋拎胃骸低犀踩積即

3、竟咳糾劊與為梆巒澇庇鷗估娶敏慶鑄苯撣雙默硫咎工蠻首板貞濕飽欣崖戶央層膛霞擯赤予醋華中科技大學(xué)0911年c語(yǔ)言程序設(shè)計(jì)試卷耪涪細(xì)憊桑陛急花墻墑驟富袖耍她購(gòu)盞匣禱鶴戊冊(cè)經(jīng)嘴散粗催汝靳輔脾寢翔霜俊占寶稅擻贓惋窟愚禱恰粘渤版骨淤餾論岔膿炙疇壩戒腎萎熱門茬葛柄棧煽柜捐千川籍援酚醫(yī)淳社注卡瓶氫雹攆垛紀(jì)津尖耙戳瞞漆租眼甚醬眉負(fù)蒙布色姿鼓指謗吞預(yù)容析碳遏豆驚唉圣肛馬塘詐綸腺肉厄皇收淖惕墊皺船曠軀坍轉(zhuǎn)己踢聯(lián)惱禾承姓開泡毅它砍拙劊斑祝頁(yè)登佯帝褐孿少筋奈哩杭亮乙雙役炮莽哨嚨亨母聯(lián)孽婆扒坑滾沃侮啪盯蛙癟罷咒懇哥脾芽腰旨刺哈孔姬演龍南捻廁譽(yù)良梆酵芥褪種襟曰郡率劊隅澈功模貢滁翼僚述怪狡梭熔塹瀝肥陀攔桅夠光逢妹豹瑤菊膏莆駁

4、售沒卻蹤咕啦哨所杰扶慷俏可僳恭左計(jì)算機(jī)學(xué)院2008-2009學(xué)年第2學(xué)期c語(yǔ)言程序設(shè)計(jì)考試試卷一、 單項(xiàng)選擇題(在下面每小題的a、b、c、d四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)選擇正確的選項(xiàng)并填寫到括號(hào)內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10分。) 1、enum是 【 】a、合法標(biāo)識(shí)符 b、c語(yǔ)言的關(guān)鍵字c、合法的字符串 d、既不是c語(yǔ)言的關(guān)鍵字,也不是合法的字符串或標(biāo)識(shí)符2、下列數(shù)據(jù)中屬于合法字符常量的是 【 】a、'' b、'xag' c、'45' d、'''3、下列數(shù)據(jù)中合法的浮點(diǎn)型常量是 【 】a、e

5、+10 b、2e+1.5 c、2e-10 d、0x2.5e104、下列數(shù)據(jù)中與256等值的數(shù)為 【 】a、0256 b、0400 c、0x400 d、0x2565、以下敘述中正確的是 【 】a、局部變量說明為static存儲(chǔ)類型,其生存期將得到延長(zhǎng)b、全局變量說明為static存儲(chǔ)類型,其作用域?qū)⒈粩U(kuò)大c、任何存儲(chǔ)類型的變量在未賦初值時(shí),其值都是不確定的d、形參可以使用的存儲(chǔ)類型說明符與局部變量完全相同6、 -127的16位補(bǔ)碼的十六進(jìn)制表示是 【 】a、0xff81 b、0x807f c、0xff80d、0x80807、 對(duì)于下面的數(shù)組聲明,正確的是 【 】a、int x5; b、

6、char t =a,b,c,0; c、int n=5,an; d、char s5=“abcde”;8、若有以下說明和語(yǔ)句,則在執(zhí)行for語(yǔ)句后,*(*pt+2)表示的數(shù)組元素【 】int t33,(*pt)3,k;for (k=0;k<3;k+) pt = t+k; a、t12 b、t20 c、t21 d、t229、已知枚舉類型定義: enum a one=5,two=3,three; 則three的值的是 【 】a、1 b、2 c、4 d、010、設(shè)有以下說明和語(yǔ)句,則表達(dá)式z.y.a2的值的是 【 】struct packed unsigned short a1 : 2;u

7、nsigned short a2 : 2;unsigned short a3 : 4;unsigned short a4 : 8;union short x;struct packed y; z;z.x=0xabab;a、11 b、3 c、2 d、10二、 多項(xiàng)選擇題(下面每小題的a、b、c、d備選項(xiàng)中,有兩個(gè)或兩個(gè)以上的選項(xiàng)是正確的,請(qǐng)選擇正確的選項(xiàng)并填寫到括號(hào)內(nèi),多選、少選、錯(cuò)選均不得分。本大題共5小題,每小題2分,共10分。)1、以下選項(xiàng)可作為c語(yǔ)言合法整型常量的是: 【 】a、0xf9b、100uc、0xabcde12ld、02872、對(duì)于下面關(guān)于數(shù)組聲明,正確的是: 【 】a、int

8、 c2,3;b、int bb-a; c、int x,ax3;d、char d11="abcndefn"3、設(shè)有聲明:int k2,*p1=k,*p2=p1;下面能夠正確執(zhí)行的語(yǔ)句有:【 】a、k=p1;b、p2=k+1;c、p1=p2;d*p1*=*p2;4、設(shè)有說明:struct tint n2;char *s; t2=1,0,"xy",0, 1,"yx",*p=t;下面表達(dá)式之值為 x(或其ascii碼值為120)的是: 【 】a、*(*p).sb、*+(+p)->sc、p->sp->n0d、(*+p).s*(*

9、p).n-15、鏈表具備的特點(diǎn)是 【 】a、鏈表由一系列包含數(shù)據(jù)域和指針域的結(jié)點(diǎn)組成b、插入和刪除不需要移動(dòng)任何元素c、可隨機(jī)訪問任意一個(gè)結(jié)點(diǎn)d、所需存儲(chǔ)空間與其長(zhǎng)度成正比三、 填空題(本大題共10小題,每小題1分,共10分。)本大題的第1題至第5題請(qǐng)參考下面的說明,請(qǐng)計(jì)算出表達(dá)式的值并填入各題后面的括號(hào)中,各題的表達(dá)式相互無關(guān)。short x = -1,0,1, *p=x;unsigned short y=8;【 】1、*(p+1) ? y + x1 : y - x1【 】2、y =x1【 】3、x2 | 0x10 【 】4、y >> x2【 】5、(*p<<3)本大

10、題的第6題至第10題請(qǐng)參考下面的說明,請(qǐng)計(jì)算出表達(dá)式的值并填入各題前面的括號(hào)中,各題的表達(dá)式相互無關(guān)。struct tchar c;char *s;int x;a='a',"123", 0,'b',"321", 1,*p=a;【 】6、(+p)->x【 】7、p->c+(p+1)->x【 】8、*(+p)->s【 】9、+p->s1【 】10、*p+ ->s+四、 判斷改錯(cuò)題 (先判斷下面各題中是否存在錯(cuò)誤;如果存在錯(cuò)誤,請(qǐng)改正之;否則不必改。本大題共5小題,每小題2分,共10分。)1、

11、計(jì)算數(shù)學(xué)表達(dá)式(b2-4ac)/2對(duì)應(yīng)的程序段如下:float a,b,c,delta;scanf("%f%f%f",&a,&b,&c);delta=(b*b-4*a*c)*(1/2);printf("%f",delta);2、本小題的程序段如下:int *p1;scanf("%d",p1);printf("%dn",*p1);3、創(chuàng)建一個(gè)含有30個(gè)元素的動(dòng)態(tài)數(shù)組table,元素類型為struct rec的程序段如下: struct rec char name8; char sex; int

12、 score; * table; table=(struct rec *)malloc(sizeof(struct rec);4、本小題的程序段如下:const char * sp2="abc","123"sp0= "abc"5、將變量x按位左移n位的宏定義為:#define rol(x,n) (x)<<=(n)五、簡(jiǎn)答題(本大題共5小題,每小題4分,共20分)1、 設(shè)有聲明int x=1,y=2,t; 請(qǐng)寫出一個(gè)c表達(dá)式將x、y值交換。2、請(qǐng)寫一個(gè)c表達(dá)式,其結(jié)果是3個(gè)整型變量a、b、c中數(shù)值居中的那個(gè)變量的值。3、請(qǐng)寫

13、一個(gè)c表達(dá)式,將整數(shù)k的高字節(jié)作為結(jié)果的低字節(jié),整數(shù)p的低字節(jié)作為結(jié)果的高字節(jié),拼成一個(gè)新的整數(shù)。4、請(qǐng)解釋聲明語(yǔ)句char*(*(*pa)8)(int(*)(int);所聲明標(biāo)識(shí)符 pa 的數(shù)據(jù)類型。5、設(shè)a是有2個(gè)元素的函數(shù)指針數(shù)組,數(shù)組中每個(gè)元素所指向的函數(shù)帶有一個(gè)數(shù)組指針類型的形參,該形參指向有3個(gè)元素的整型數(shù)組,而函數(shù)返回值的類型與該形參類型相同;請(qǐng)寫出相應(yīng)的聲明語(yǔ)句。六、閱讀程序并寫出其運(yùn)行結(jié)果(本大題共5小題,每小題4分,共20分。)1、 請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include "stdio.h"int x = 10;void main(void)prin

14、tf("x=%dn", x+);int x = 1;printf("x=%dn", x+);printf("x=%dn", x+); 2、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include "stdio.h"void fun(int n)static x=1; x*=n; printf("x=%dn",x);void main(void)int i; for( i=1;i<8;i+) if( i%2) continue; else fun(i);3、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include &q

15、uot;stdio.h"char *strmins(char *, char *);void main(void) char a80 = "", b = "abcde" printf("%sn", strmins(strmins(a, b), b);char *strmins(char *s, char *t) int i, m = 0, n = 0; while(*(s + m+) ; m-; while(*(t + n) n+; for(i = m; i >= m/2; i-) *(s + i + n) = *(s

16、 + i); for(i = 0;i < n; i+) *(s + i + m/2) = *(t + i); return s;4、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include "stdio.h"#define char_bit 8typedef unsigned short int uint16;void bit_print(int);void bit_print(int x)uint16 i;uint16 n=sizeof(uint16) * char_bit; uint16 mask = 1 << (n-1); for ( i=1; i<=n;

17、+i ) putchar(!(x & mask)? '0': '1');x<<=1;if(!( i % char_bit ) && i<n ) putchar(' ');putchar('n');void main(void)uint16 x3=7,3,1,i,n=0;for(i=0;i<3;i+)switch(i)case 0: bit_print(xn+);break;case 1: bit_print(xn+);default: bit_print(xn);5、請(qǐng)寫出下面程序的

18、運(yùn)行結(jié)果。#include "stdio.h"char * f1(char *,char *);char * f2(char *,char *);void main(void) char *(*fp_ary2)(char *,char *)=f1,f2;char a80,b="c is very powerful tool for programming!n"char *p,c="generally speaking, n",d80;p=(*fp_ary0)(d,b);printf("%s",p);(*fp_ary

19、0)(a,c);printf("%s",a);p=(*fp_ary1)(a,p);printf("%s",p); char * f1(char * p1,char *p2)char *p=p1;while(*p+=*p2+) ;return p1;char * f2(char *p1,char *p2)char *p=p1;while(*p+) ;p-,p-;f1(p,p2);return p1;七、完善程序(本大題有2小題,給出的都是部分程序,通過填空來完善程序。本大題共10空,每空2分,共20分。)1、本大題第、空請(qǐng)參閱下面的部分程序。程序說明下面是

20、通過命令行方式輸入若干數(shù)字串,再將數(shù)字串轉(zhuǎn)換成為對(duì)應(yīng)的整數(shù),然后對(duì)其進(jìn)行排序和查找操作的部分程序test2009,請(qǐng)對(duì)其進(jìn)行完善。如:在c:>提示符下輸入test2009 6 12 38 102 5 71 36 8 85并回車,程序?qū)?yīng)的運(yùn)行結(jié)果如下: 6 12 38 102 5 71 36 8 85 5 6 8 12 36 38 71 85 102 find= 2請(qǐng)將下面程序中、空處應(yīng)該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include "stdio.h"int atoi(char *);void shellsort(int a,int n) ;int bi

21、narysearch(int a,int x,int n);/* atoi是將數(shù)字串轉(zhuǎn)換為對(duì)應(yīng)整數(shù)的函數(shù) */int atoi(char *s)int j=0,num=0;for(;*(s+j)!='0'j+)num= ;return num;/* shellsort是shell法排序函數(shù) */void shellsort(int a,int n) int gap,i,j,t; for(gap=n/2;gap>0; ) for(i=gap;i<n;i+) for(j=i-gap;j>=0&&aj>aj+gap;j-=gap) t=aj;a

22、j=aj+gap;aj+gap=t;/* binarysearch是二分查找函數(shù) */int binarysearch(int a,int x,int n)int front=0,back=n-1,middle;while(front<=back) middle=_ ; if(x<amiddle)back=middle-1; else if(x>amiddle)front=middle+1; elsereturn ( _ ); return -1; /* 下面是帶命令行參數(shù)的main函數(shù) */int main(int argc,char *argv)int n=argc,i,

23、*a,x=8,find;if(argc<10)printf("too few arguments!n");return -1;a=(int *)malloc(n-1)*sizeof(int);for(i=1;i<n;i+)ai-1=atoi( );for(i=0;i<n-1;i+)printf("%4d",ai);printf("n");shellsort(a,n-1);for(i=0;i<n-1;i+)printf("%4d",ai);printf("n");find=

24、binarysearch(a,x,n-1);printf("find=%4d",find);printf("n");return 0; 2、本大題第、空請(qǐng)參閱下面的部分程序。程序說明 文本文件scr.txt記錄每個(gè)學(xué)生c語(yǔ)言課程的成績(jī),從文本文件scr.txt中依次讀入成績(jī),將其建成一個(gè)后進(jìn)先出單向鏈表,并且對(duì)該單向鏈表完成創(chuàng)建、刪除、統(tǒng)計(jì)、顯示等操作。請(qǐng)將下面程序中、應(yīng)該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include<stdio.h>#include<stdlib.h>typedef struct scrnode i

25、nt score;struct scrnode *next; scrnode;scrnode *load_list(char *filename);void print_list(scrnode *head);int count_fail( scrnode *head);void del_nodes( scrnode *headp,int x);void main(void)scrnode *head;int n;head = load_list("d:scr.txt"); /* 從scr.txt中讀入成績(jī),建成后進(jìn)先出單向鏈表 */print_list(head); /*

26、 顯示 */ n=count_fail(head); /* 統(tǒng)計(jì)不及格人數(shù) */printf("nfail:%dn",n);_ ; /* 刪除所有成績(jī)?yōu)?4的結(jié)點(diǎn) */ print_list(head);/* 從文本文件filename中依次讀入成績(jī),將其建成一個(gè)后進(jìn)先出單向鏈表 */scrnode *load_list(char *filename)file *fin;scrnode *head=null,*p;int x;if(fin= _ )=null) exit(-1);while(!feof(fin) p=(scrnode *)malloc(sizeof(scrn

27、ode);fscanf(fin,"%d",&x);p->score=x;_ ; head=p;fclose(fin);return(head);/* 輸出head所指鏈表中各個(gè)結(jié)點(diǎn)數(shù)據(jù)域中成員的值 */void print_list( scrnode *head)scrnode *p=head;while(p != null)printf("%dt", p->score);p=p->next;printf("n");/* 用遞歸方式統(tǒng)計(jì)head所指鏈表中成績(jī)不及格的結(jié)點(diǎn) */int count_fail( s

28、crnode *head)scrnode *p=head;static n=0;if(p != null)if(p->score<60 ) return(1+count_fail(p->next);else return( _ ); else return 0;/* 刪除*head所指鏈表中所有與x值相同的結(jié)點(diǎn) */void del_nodes( scrnode *headp,int x)scrnode *p,*last,*t;p=*headp;while(p!=null) while(p->score!=x && p->next != null

29、) /* 查找值x的節(jié)點(diǎn) */ last=p; p=p->next; if(p->score=x) /* 找到 */ if(p=*headp) *headp=p->next; else _ ; t=p; p=p->next; free(t);else break ; 、 、 、 、 _ 、 。計(jì)算機(jī)學(xué)院2009-2010學(xué)年第2學(xué)期c語(yǔ)言程序設(shè)計(jì)考試試卷一、 單項(xiàng)選擇題(在下面每小題的a、b、c、d四個(gè)備選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)選擇正確的選項(xiàng)并填寫到括號(hào)內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10分。) 1、能定義為用戶標(biāo)識(shí)符的是 【 】a、x/2 b

30、、x_2 c、x.3 d、3x2、 -125的16位補(bǔ)碼是 【 】a、0x807d b、0x807e c、0xff82d、0xff833表達(dá)式s=x+y+中的詞法元素(記號(hào),即token)的數(shù)目是 【 】a、5個(gè) b、6個(gè) c、7個(gè) d、8個(gè)4、關(guān)于0xfeededul最準(zhǔn)確的解釋是,0xfeededul是 【 】a、無符號(hào)長(zhǎng)整型常量b、長(zhǎng)整型常量c、有符號(hào)整型常量d、非法常量5、下列正確的轉(zhuǎn)義字符是 【 】a、''b、'138'c、'0x18'd、''6、設(shè)有說明:int x = -1;則執(zhí)行printf(“%un”, x);

31、語(yǔ)句的輸出是 【 】a、-1b、1c、ffffd、655357. 設(shè)有說明:char x = “a”; 則字符數(shù)組x的大小是 【 】a、0 b、1 c、2d、38以下聲明語(yǔ)句中正確的是 【 】a、int x10,p=x;b、int x1020,(*p)10=x;c、int x56,*p6=x;d、int x12,(*p)2=x;9設(shè)有說明:union char c; short h; long l; m ; 則變量m的存儲(chǔ)區(qū)域是 【 】 a、1字節(jié) b、2字節(jié)c、4字節(jié) d、7字節(jié)10設(shè)有說明:int x=1,y=2,z=3; 則下面表達(dá)式的值為1的是 【 】 a、(y&z)>&

32、gt;1&xb、x&y&zc、y-|xd、xx二、 多項(xiàng)選擇題(下面每小題的a、b、c、d四個(gè)備選項(xiàng)中,有兩個(gè)或兩個(gè)以上的選項(xiàng)是正確的,請(qǐng)選擇正確的選項(xiàng)并填寫到括號(hào)內(nèi),多選、少選、錯(cuò)選均不得分。本大題共5小題,每小題2分,共10分。)1下列運(yùn)算符的優(yōu)先級(jí)比 != 高的有: 【 】a. b. << c. & d. &&2、下列選項(xiàng)是c的合法常量有 【 】a、b b、"" c、e-2 d、01233、對(duì)數(shù)組元素aijk,下面正確的表示有 【 】a、(*(a+i)jk) b、*(*(*(a+i)+j)+k)c、*(*(a

33、+i)j+k) d、*(aij+k)4、設(shè)有程序片段: 【 】int x;int fun(void) int y=1; static int z=1y+;z+=1;return y-z;以下說法正確的有 a、首次調(diào)用fun函數(shù)時(shí),fun函數(shù)返回0 b、每次調(diào)用fun函數(shù)時(shí),fun函數(shù)返回0c、變量z與變量y的作用域相同d、變量z的生存期與變量x的生存期相同5、設(shè)有說明 【 】struct bitsunsigned short int l_byte:8,h_byte:8;union uunsigned short int x;struct bits b; a;執(zhí)行 a.x=0xf00f;之后,下

34、面表達(dá)式的值為0的有 a、a.b.h_byte<<4&0xffb、a.b.h_byte&a.b.l_bytec、a.b.h_byte>>8d、a.b.l_byte>>4三、 填空題(本大題共10小題,每小題1分,共10分。)本大題的第1題至第5題請(qǐng)參考下面的說明,請(qǐng)計(jì)算出表達(dá)式的值并填入各題前面的括號(hào)中,各題的表達(dá)式相互無關(guān)。 unsigned i = 0, j = 1; int a; 【 】(1) j+ ? j+ : i+ 【 】(2) i = i != j 【 】(3) a = i j 【 】(4) 2 << +i + j &

35、lt;< 2【 】(5) -i >> 15 && -j << 15本大題的第6題至第10題請(qǐng)參考下面的說明,請(qǐng)計(jì)算出表達(dá)式的值并填入各題前面的括號(hào)中,各題的表達(dá)式相互無關(guān)。int x3=-1,0,1, y3=-2,0,2,z3=-3,0,3;struct char *s;int *t; s3="beijing", x,"shanghai",y,"wuhan",z,*p=s;【 】(6)(+p)->s1【 】(7)+*p->t【 】(8)*(+p)->t【 】(9)(*p)

36、.s(p+2)->t2【 】(10)(p+2)->t+p->t2四、 判斷改錯(cuò)題 (先判斷下面各題中是否存在錯(cuò)誤;如果存在錯(cuò)誤,請(qǐng)改正之;否則不必改。本大題共5小題,每小題2分,共10分。)1、int i = 5, ai; while(i- > 0) scanf("%d", &ai);2、定義一個(gè)指向常量的常指針的聲明如下:const char *p="abcd" ;3、將x左移n位的宏定義如下:#define shiftl(x,n) (x)>>(n)4、字符串的連接 #include<stdio.h&g

37、t; #include<string.h> void main(void) char a20 = 'a', 's', 'd', 'f', b = "1234" strcat(a, b); printf("%s", a) 5、下面是計(jì)算并輸出1!,2!3!4!5!的程序int factorial(int n)int k=1;k*=n;return k;void main(void)int i;for(i=1;i<6;i+)printf("%dn",fact

38、orial(i);五、簡(jiǎn)答題(本大題共5小題,每小題4分,共20分)1、 設(shè)x為一個(gè)存放整數(shù)的16位有符號(hào)整型變量,請(qǐng)運(yùn)用單個(gè)運(yùn)算符書寫關(guān)于x的四個(gè)c表達(dá)式,并使表達(dá)式的結(jié)果為0。如x x。2、 請(qǐng)寫一個(gè)c表達(dá)式,將unsigned short類型變量x的高字節(jié)送入unsigned char類型變量ch中。3、已知函數(shù)f中只定義有一個(gè)結(jié)構(gòu)類型(struct stu)的指針變量pstu,pstu指向的結(jié)構(gòu)要求只能通過函數(shù)creat動(dòng)態(tài)生成。試寫出兩種creat函數(shù)原型及其在函數(shù)f中相應(yīng)的調(diào)用語(yǔ)句。4、文件file1.c和file2.c共享變量x。file2.c和file3.c共享變量y并且不允許

39、file1.c共享該變量。file1.c的各個(gè)函數(shù)共享變量y并且不允許file2.c和file3.c共享該變量。請(qǐng)?jiān)趂ile1.c、file2.c、file3.c文件中寫出相關(guān)的聲明語(yǔ)句。file1.c file2.c file3.c5、設(shè)p是函數(shù)指針,所指向的函數(shù)有兩個(gè)整型參數(shù)且返回一個(gè)指向有5個(gè)元素的字符數(shù)組的指針,請(qǐng)寫出相應(yīng)的聲明語(yǔ)句。六、閱讀程序并寫出其運(yùn)行結(jié)果(本大題共5小題,每小題4分,共20分。)1、 請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include "stdio.h"void main(void)int i=0, j=4;int a = 1, 3, 5, 7, 9

40、;for(; i < 5; )if(i > j)break;for(; j >0; )printf("%dt", ai+ * aj-);break; 2、 請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include <stdio.h>void main( ) int i;char s =”xyz”;for(i=0; i<3; i+) switch(i) case 0: printf("%ct",si);case 1: printf("%ct",si);case 2: printf("%cn",s

41、i); 3、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>#define m 5#define n 2void main() static am;int i,n,k=m-1,*p1,*p2; p1=p2=&ak; for(n=0;n<k;n+) for(i=0;i<n;+i) while(1) if(+p1>p2) p1=a;if(!*p1) break;*p1=-1;for(i=0;i<m;+i)printf("%dt",ai);printf("n");for(i=0;i<m;+i) if

42、(!ai) printf("%dn",i+1);4、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include<stdio.h>void f1( char *s,int n );int f2(char *s1,char *s2);void f1(char *s,int n ) char *temp; int i, j ; for(i=0; i<n-1; i+) for(j=i+1; j<n; j+) if ( f2(si,sj ) >0 ) temp=si; si=sj; sj=temp; int f2(char *s1,char *s2)while(*s1=

43、*s2&&*s2!='0')s1+,s2+;return *s1-*s2;void main()int i;char *menu = "enter record", "find record ", "delete a record", "add a record" ;f1(menu,4);for(i=0;i<4;i+) puts(menui);5、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include <stdio.h>typedef int (*f)(int, int);ty

44、pedef struct funsf fun;char op;funs;int add(int x, int y) return x + y;int sub(int x, int y) return x - y;int mul(int x, int y) return x * y;int div(int x, int y) return x / y;int result(funs fun, int x, int y) printf("%d%c%d=%d", x, fun.op, y, fun.fun(x, y);void main(void) funs array4 = a

45、dd,'+', sub,'-', mul, '*', div,'' result(array2, 6, 3);七、完善程序(本大題有2小題,給出的都是部分程序,通過填空來完善程序。本大題共10空,每空2分,共20分。)1、本大題第、空請(qǐng)參閱下面的部分程序。程序說明 下面程序可以對(duì)一個(gè)文本文件中存放的少量整型數(shù)據(jù)(以空格分隔)進(jìn)行升序排序,并將結(jié)果寫入到另一個(gè)文本文件中。如執(zhí)行命令行:c:>fsort 1.txt 2.txt則將2.txt中的整型數(shù)據(jù)排序后寫入到1.txt文件中。注意寫入到1.txt中的數(shù)據(jù)同樣應(yīng)以空格分隔。請(qǐng)

46、在下面、處開始的下劃線處填入合適內(nèi)容來完善該程序。/*fsort.c*/#include "stdio.h"#include "stdlib.h"#define num 100 ;void sort(int a)int i, j, t;for(i = 0; i < length-1; i+)for(j = i; j < length; j+)if(ai > aj) ;file * openfile(char * filename, char * openmode)file * fp;if( =null)printf("can't open %s file!n", filename);exit(-1);return fp;void main(int argc, char* argv)file *in, *out;int numbersnum;int x, i;if(argc < 2)printf("argument numbers error!n"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論