c語言試題及答案_第1頁
c語言試題及答案_第2頁
c語言試題及答案_第3頁
c語言試題及答案_第4頁
c語言試題及答案_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精品文檔C 語言部分一、選擇題(每小題2分,共10分)(下在各小題,分別有一個或多個正確答案,請將所有正確答案的編號,填寫在 該小題題干后的括號內(nèi)。錯選或漏選均不得分)。1、若定義:int a230,2, 4, 6, 8,10;以下描述正確的有(A,C,D, E)A、* (a+1)為元素6的地址這里a+1=a1的地址;*(a+1)的值是6,故A正確。B、* (a1+1 )的值為 2為8,故B不正確C、* (a+1) +2 的值為 8這里a+1是一個指針,指向的是a1.*(a+1)為a1 , a1指向的是a10.*(a+1)為 6,加 2得 8,故 C正確;D a0與a相同因二者都是指針,指針的

2、地址都是指向數(shù)組中的第一個元素的地址,故D正確。E、a12的值為 10它是指第二行的第三個元素,為10,正確2、 對函數(shù)的正確使用方法描述(A, C, D )。A、用數(shù)組做函數(shù)參數(shù)時,必須在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組B、 實參數(shù)組元素和形參數(shù)組元素類型可以不一致|C、 形參數(shù)組長度可以不指定D形參數(shù)組長度可以大于實參數(shù)組長度E、數(shù)組名做參數(shù)屬于值傳遞3、對靜態(tài)變量的正確描述(A, B, D, E)A、靜態(tài)局部變量在靜態(tài)存儲區(qū)內(nèi)分配單元()B、靜態(tài)外部變量可以賦初值,也可以不賦初值C、靜態(tài)外部變量的作用與外部變量相同D靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束時,仍保存其值,不會隨著消失。E、靜態(tài)局部變量

3、只賦一次初值4、下列描述正確的是(慣,C)。A、 由main函數(shù)及其參數(shù)argc和* argv可以實現(xiàn)命令行方式B、使用fclose關(guān)閉文件時,先釋放文件指針,再寫緩沖區(qū)數(shù)據(jù)到文件中/先寫緩沖區(qū)數(shù)據(jù)到文件中,再釋放文件指針C、 字符數(shù)組并不要求它的最后一個字符是0 /是的,以字符指針指向的字符串才要求,因為只有這樣,才能知道字符串的長度,而在字符數(shù)組中,不用0, 樣可以知道到哪里是字符數(shù)組的結(jié)尾。D A和“A”都是字符串常量E、若char*S= “ta017bc ”;則指針變量S指向的字符串所占的字節(jié)數(shù)是 75、 在緩沖文件系統(tǒng)中用于讀寫的函數(shù)有(A, B, D )A、putchar ()B、

4、fread()C、rewind () D purw() E、fseek()二、 程序閱讀,并給出運行結(jié)果(共10分,每題5分)。(1) main() unsigned a,b,xint n;a=0x763輸出結(jié)果:n=6;b=avv (12-n);x=(a n-2)S;/+,-, 的優(yōu)先級比 高。printf(hb=%x,nx=%x ”,b,x);在用2個字節(jié)表示整數(shù)的系統(tǒng)中結(jié)果為d8c0d8b6在用4個字節(jié)表示整數(shù)的系統(tǒng)中結(jié)果為1d8c01d8b6故以上兩種結(jié)果都正確。(2) #include stdin.h I門1Istruct m int x;int *y;*p;int a 4=12,

5、33, -40 , 100;struct m b 4=10,&a2,9,&a3,8,&a0,7,&a1mai n()p=b;輸出結(jié)果:printf(“ dn”,+p- x) ; /- 的優(yōu)先級高于 +,因此等于是 +(p-x),為11printf(“ dn” ,(+p)- x) ; /p后移一個元素,其 x 值為 9;printf(“ dn” ,+(*p- y);/-的優(yōu)先級高于*,此時p已指向b1,故*(p-y)為a3為100.自加后為 101; r故輸出結(jié)果為:119101三、程序設(shè)計(共10分)設(shè)在文件a.txt和文件b.txt中分別存有兩個字符串,設(shè)計一個程序?qū)⑦@兩個字 符串按依序交叉

6、的方式合并為一個字符串(例如“ aaaaa”與“bbb”的合并結(jié)果 為“ abababaa”,而“ bbb”與“ aaaaa”的合作結(jié)果為“ bababaa”,)并將結(jié) 果存入文件a.txt中?!敬鸢浮繉懗绦驎r,可以分別讀取a.txt文件和b.txt文件,注意(1),無論a文件先 讀完還是b文件先讀完,程序都能作出適應(yīng)性的判斷。注意(2)把a(bǔ)和b合并 的結(jié)果,寫到一個臨時文件c中,最后把c的文件覆蓋到a文件中,達(dá)到題意的 要求。#i ncludemai n()FILE *fp,*fq,*fr;char ch;if(fp=fope n( a.txt,葉)=NULL) prin tf(ca nno

7、t ope n file a.txt);exit(0);網(wǎng)址:http:/www.docba.c n/doc/26/9315.html|if(fq=fope n(b.txt,廣)=NULL) prin tf(ca nnot ope n file b.txt);exit(0); |fr=fope n( c.txt,w+);while(!feof(fp)|ch=fgetc(fp);fputc(ch,fr); if(!feof(fq)ch=fgetc(fq);fputc(ch,fr);while(!feof(fq)ch=fgetc(fq); fputc(ch,fr);rew in d(fp); re

8、wi nd(fr);while(!feof(fr)ch=fgetc(fr);fputc(ch,fp);fclose(fp);fclose(fq); fclose(fr);1.2四川大學(xué)2001年攻讀碩士學(xué)位研究生入學(xué)考試試題 及答案1.2.1第2001年 C語言程序設(shè)計 題目一、單項選擇題(在每小題的四個備選答案中,選出一個正確的答案,并將其號碼寫在答題紙上。請注意注明題號。每小題 1分,共計6分)1、 t 表示什么? 字符串常數(shù)標(biāo)識符 變量字符常量答案:2、對宏定義不正確的描述是哪一個? 在進(jìn)行宏定義時,可以引用已經(jīng)定義的宏名,可以層層置換/可以引用已經(jīng)定義了的宏名,可以層層置換 宏名的有效

9、范圍包括本文件的任何位置/宏名的有效范圍定義命令之后到本源文件結(jié)束,可以用#define終止宏定義的作用域 寵定義不是語句,不必在行末加分號/是預(yù)處理定義語句 對程序中雙引號括起來的字符串,即使與宏名相同,也不進(jìn)行置換3、若定義 static char s20=” computer”; 則執(zhí)行語句 x = strlen(s)后,x的值為多少?209 819/strlen 函數(shù)計算char*型字符串的長度的時候,并不包含末尾的0 ;4、以下哪一個表達(dá)式取值是正確的?65結(jié)果為66& 5結(jié)果為76|5結(jié)果為765結(jié)果為05、如定義enum weekday one, two, thr, fou, f

10、iv;enum weekday working ; 以下哪個是不正確的枚舉變量的使用? worki ng = thr; worki ng =2; worki ng = (enum weekday)2; worki ng = (enum weekday) (5-3);/不能對其賦值 &下列說法中正確的是哪一個? sizeof (char) sizeof (char) sizeof (char) sizeof (char)是結(jié)果為整型的表達(dá)式 是一個不合法的表示形式 是一種函數(shù)調(diào)用是結(jié)果為實型的表達(dá)式 二、閱讀程序,并回答問題(共12分)1、下列程序的輸出是什么? ( 3分) # in clude

11、 void mai n ()char * aplha 6 = “ABC, “DEF,“GHI”,“ JKL”,“MNO, “PQR I; char *p;int i;p = aplha;for (i = 0; i4; i+)printf (%s,pi);printf (n ”);/輸出結(jié)果ABCDEFGHIJKL剛好是字符串?dāng)?shù)組里面的前四個元素的內(nèi)容連接起來2、下列程序為什么無法將用戶輸入的三個整數(shù)按從小到大排序輸出?應(yīng)該如何修改? ( 6分)# in elude void swap (int x, int y)int t = x;seanf (“%d, %d, %d” , &a, & b,

12、&e);if (ab)swap (a, b);if (ae)swap (a, e);if (be)swap (b, e);printf (%d, %d, %d”,a, b, e);/函數(shù)swap采用值傳遞,雖然將形參x和y交換了,但是并不影響到實參。將 值傳遞改成指針傳遞就可以了。C函數(shù)參數(shù)采用值傳遞方式,雖然swap函數(shù)將形式參數(shù)x和y的值進(jìn)行了調(diào)換, 但是影響不到相應(yīng)的實在參數(shù)。所以在主函數(shù)中,通過調(diào)用sawp函數(shù)調(diào)換a和b (或a或e,或b和c)的值是根本達(dá)不到目的的。修改:|(1) ( 2 分)if (ac) swap (& a, & c); if (bc) swap (& b, &

13、c);、假設(shè)系統(tǒng)為基本整型量分配2個字節(jié),為字符型量分配1個字節(jié)。下列程序 完成的功能是什么? ( 3分)# in elude vstdio. hunionint n;char ch 2; u;void mai n ()int m;scanf (“ d,& m);.n = m;printf (“n%u, %u”,u.ch0, u.ch1);/該程序的功能,取用戶輸入的整數(shù)值的高字節(jié)和低字節(jié),并按照任意整數(shù)的低字節(jié)和高字節(jié)分別輸出。三、程序設(shè)計題(12分)假設(shè)一個文本文件中保存著100個整數(shù),請將這100個整數(shù)按從小到大的順序?qū)?到另一個文本文件中去,并且在新文件中每 10個整數(shù)占一行。源文件名

14、和目標(biāo) 文件名通過命令行參數(shù)獲取?!?”w”& ai);fin = fope n (argv1, fout = fope n (argv2, for (i = 0; i100; i+) fscanf (fin, “ %d for (i = 0; i99; i+)-i; i+)for (i = 0; iaj+1) t = aj; aj = aj+1; aj+1=t;for (i = 0; i2的值為A、50 B、25 C、12.512/每右移一位除以2,且由于a為整型,結(jié)果為整型4、若c,c1,c2均為字符型變量,下列語句執(zhí)行后。c=a; c1=+c; c2=c+;c1,c2的值分別為。A、c1

15、=b,c2=cB c1=a,c2=cC、c1=b,c2=bD c1=a,c2=b/前加加,先加1后使用值,后加加是先使用其值在加加,所以c加加后的值賦 予cl, cl得值b, c2先使用值,再加加,c2得值b5、以下c語句執(zhí)行后,int i, s=0;for (i=O;i v 10;i+)s+=i;printf (%dn, i);輸出的內(nèi)容為。A、0B、9 C、10 D 11/i值在循環(huán)外定義,所以其值循環(huán)結(jié)束仍有意義,得值106以下c語句執(zhí)行后,char s1100 =I like C 1an guage ,s2100;strcpy(s2, s1);strcat (s1, s2);puts

16、(s2);輸出的內(nèi)容為。A、IB、I like C IanguageC、I like C Ianguage I like C IanguageD I like C Ianguage I like C Ianguage I like C Ianguage/連接后的串存在s1里,對s2沒有影響二、 閱讀程序,寫出該程序的執(zhí)行結(jié)果。(4分)# include stdio.h void mai n () char a 3 10=Beijing ,Shanghai, Chengdu;char p1, (*p2)10;p1=a0;p2=a;prin tf(%cn,*(a1+1);/ a1代表是第一行字符串

17、Shanghai,加1后得值第一個字符h的地址,*取 出其地址里的值hprin tf(%cn,*(*(a+1)+2);/ *(a+i)=ai代表是第一行字符串Shanghai,加2后得值第2個字符a的地址,*取出其地址里的值prin tf(%cn,*(p1+1);/p1是一字符指針,加一指向第零行第1個字符e的位置,*取出其地址里的值 prin tf(%cn,*(*(p2+1)+2);p2為一指向數(shù)組的指針,p2是與數(shù)組名等價的指針,它指向2維數(shù)組的首行, p2+ 1指針指向了第一行字串Shanghai,加2后得值第2個字符a的地址,*取 出其地址里的值prin tf(%sn,*(p1+1);

18、/打印的從第一個字符開始的第零行余下的字符串eijingprin tf(%sn,*(p22);p22指的是第二行,打印第二行字符串Che ngduprin tf(%sn,*(p2+ 1);p2+1指向的是第一行字符串 sha nghai三、按要求編寫函數(shù)。(8分)在一程序中定義了如下結(jié)構(gòu)類型用于處理單向鏈表:struct li nkage int value;struct lin kage *pNext;;現(xiàn)已經(jīng)編寫出按節(jié)點的成員a值從小到大建立初始鏈表的函數(shù)create (),如下所示:struct lin kage * create (void )struct lin kage * pHe

19、ad;int a4=2,1,3,5 ;pHead=NULL;for (i=0;i v4;i+ )pHead=addltem(pHead,ai);return pHead; | 在該函數(shù)的for循環(huán)前,pHead為NULL在執(zhí)行整個for循環(huán)后,創(chuàng)建的鏈表如 下所示: 即在被調(diào)函數(shù)addltem()中,需要動態(tài)分配內(nèi)存,生成新節(jié)點,將傳入的第二 參數(shù)的值賦給該節(jié)點的成員value :并通過第一個參數(shù)鏈表首節(jié)點確定適當(dāng)位置 放置該新節(jié)點。請完成函數(shù):struct li nkage * addltem (struct lin kage *pHead, int value );返回值指向單向鏈表頭節(jié)點

20、。你可能用到下面的動態(tài)內(nèi)存分配函數(shù)。void* malloc (un sig ned int size);其作用是在內(nèi)存的動態(tài)存儲區(qū)中分配一個長度為size的連續(xù)空間。返回值為指向分配域起始地址的指針。1、在空鏈表中加第一個節(jié)點2分;2、加到當(dāng)前鏈表頭節(jié)點前2分;3、 加到當(dāng)前鏈表頭節(jié)之后適當(dāng)位置,可分為兩步。2分;4、其它部分2分,包括整體結(jié)構(gòu),變量定義,返回值。struct li nkage *addltem (struct lin kgae *pHead ,int value) struct lin kage *p ,*q,*r,*s;p=pHead;if (!p) I r=(struct linkage *) malloc (sizeof (struct li

溫馨提示

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

評論

0/150

提交評論