C語言程序設(shè)計(jì)-C語言歷年試題_第1頁
C語言程序設(shè)計(jì)-C語言歷年試題_第2頁
C語言程序設(shè)計(jì)-C語言歷年試題_第3頁
C語言程序設(shè)計(jì)-C語言歷年試題_第4頁
C語言程序設(shè)計(jì)-C語言歷年試題_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

選擇題:(選擇最合適的答案填空,每小題2分,共20分)()1.下面的文字中是不正確的變量名。A.Case B._12C.elseD.eve()2.下面的四個(gè)選項(xiàng)中,正確的字符型常量是.BoA.'\68' B.'\t'C.“\n”D?'\xdh,()3.表達(dá)式sizeof(float)的結(jié)果為c類型。A.單稱度 B.雙精度C?整型D.不合法的()4.設(shè)有變量定義:intm=O,n=O;則執(zhí)行表達(dá)式(m—>=0)I(n++<0)后,TOC\o"1-5"\h\zm,n的值為 。-1和0 B.-1和1 C.0和0 D.0和1()5.C語言的編譯系統(tǒng)對(duì)宏命令是 。A.在程序執(zhí)行時(shí)處理的 B.在程序連接時(shí)處理的C.和源程序其他語句一起編 D.在對(duì)源程序中其它成分正譯 式編譯之前進(jìn)行處理的()6.以下正確的程序語句段為—D ochars叩="123456",s2[]="abcdef,;strcat(sl,s2);char*sl=”1234”,*s2=”abcde'';strcpy(sl,s2);char*sl,*s2=T234”;strcpy(sl,s2);charsl[10]=””,s2[5]="1234";strcat(sl,s2);()7.設(shè)inta[3][4],0<p)[4];p=a;則表達(dá)式*(p+l)等價(jià)于__C—。A.&a[0][l] B.a+1 C.&a[l][0] D.a[l][0]()8.如果執(zhí)行打開文件函數(shù)fopenO時(shí)發(fā)生錯(cuò)誤,該函數(shù)返回值為-B QA.EOF B.NULL C.-1 D.隨機(jī)值()9.若有以下說明和語句,則下面四個(gè)選項(xiàng)中對(duì)ttd中l(wèi)ab域的正確引用方式是—A °structexample{charlab;intnum;(ttd,*p;p=&ttd;

A.(*p).labB.p->ttd.lab C?(水p)?ttd?lab D.p.ttd.Iab()10.表達(dá)式(int)(6.8+7/2)的結(jié)果是 。A.10 B.9 C.11 D.8文字填空(共15分)1.break語句出現(xiàn)在循環(huán)語句中的作用是—終止整個(gè)彳1.break語句出現(xiàn)在循環(huán)語句中的作用是—終止整個(gè)彳i環(huán)的執(zhí)行如果int類型數(shù)據(jù)在內(nèi)存中占據(jù)2個(gè)字節(jié),則int類型數(shù)據(jù)取值范圍為從-32768「— 至I」—32767 。在C語言中,全局變量定義時(shí)在數(shù)據(jù)類型前面增加前綴static,則表示該變量僅在—本文件內(nèi)或者定義它的文件中或者整個(gè)程序—一內(nèi)有效。設(shè)x、y為ch孔類型變量,請(qǐng)寫出以下命題:X和y都為大寫字母 (x>=‘A'&&x<—Z')&&(y>=‘A'&&y<9Z‘評(píng)分要點(diǎn):少寫“二”給1分x和y中至少_個(gè)是數(shù)字 &&xU9’)||(y>=P9L1 評(píng)分要點(diǎn):少寫“二”給1分TOC\o"1-5"\h\z假設(shè)d二3,b二7,c二5,則表達(dá)式a<b<c的結(jié)果等于 1 。設(shè)有如下定義inta[10];long*p,*q;p=(long*)a;q=(long*)(a+8),則表達(dá)式q-p的結(jié)果等于 4—答16個(gè)字節(jié)也算正確 o庫函數(shù)malloc(sizeof(long))曲作用是_動(dòng)態(tài)申請(qǐng)存放一個(gè)long類型數(shù)據(jù)內(nèi)存 o評(píng)分要點(diǎn):寫明動(dòng)態(tài)申請(qǐng)內(nèi)存即算正確&表達(dá)式10&12的結(jié)果等于— _8 ■三? 程序填空(請(qǐng)?jiān)诳瞻滋幪顚懞线m內(nèi)容以正確完成整個(gè)程序,共10分)以下程序的功能是:統(tǒng)計(jì)100到1000之間各位數(shù)字之和為8的數(shù)據(jù)個(gè)數(shù)。#include<stdio.h>voidmain(){inti,s,k,count=0;for(i=100;i<=1000;i++){TOC\o"1-5"\h\zs=CDo ;k二 ②1 ;while( ③k!=0或者k或者k>0或者k>=l){s=s+k%10;k二④k/10 ;1if(s!=8) :3break;count++;

printf(H%dM,count);1下面程序的功能是:從一個(gè)字符串中刪除指定字符,例如,從字符$"Prolog"中刪除字符則結(jié)果為”Prig”。#include<stdio.h>voiddeletechar( ,charc){inti=0,j;while( ⑦s[i]!='\0‘或者s[i]!=0或者s[i]或者s[i]〉0 )if(s[i]==c){j二⑧i;while(⑨ s[j]!=‘\0‘或者s[j]!=0或者s[j]或者s[j]>0 ){ s[j]=s[j+l];j++;}}else⑩i++或者++i或者i二i+1或者i+=l;}voidmain(void){chars[20],c;gets(s);getchar(c);deletechar(s,c);puts(s);}⑦填s[i卄]!='\0‘或者s[i++]!二0或者s[i++]或者s[i++]>0⑩填continue算正確U!程序閱讀與分析(共U!程序閱讀與分析(共10分)分析以下程序執(zhí)行流程,并寫出下列程序的運(yùn)行結(jié)果。#include<stdio.h>intx=0;intfat(intn){ staticintf=0;x+=2;f=f+n;return(f);)voidmain(void){inti,j;for(i=3;i<=5;++i){printf(u%d\f\fat(i));}printf(u%d\if\x);)答案:3274126評(píng)分要點(diǎn):給岀上述6個(gè)正確結(jié)果,給滿分5分結(jié)果完全不對(duì),但是給岀程序執(zhí)行流程分析基本正確,最多給3分閱讀以下遞歸函數(shù),假設(shè)有如下定義:inta[6]={6,l,4,7,4,0};分析進(jìn)行printn(a)調(diào)用時(shí)程序運(yùn)行過程;并寫出該調(diào)用產(chǎn)生的運(yùn)行結(jié)果。#include<stdio.h>voidprintn(int*x){ if(*x!=O)printn(x+l);if(*x%2)priiitf(u%d/\*x*2);elseprintf(u%d/\*x);1答案:0,4,14,4,2,6評(píng)分要點(diǎn):給出答案6,2,4”14,4,0給4分,如果結(jié)果完全不對(duì),但是給出程序執(zhí)行流程分析基本正確,最多給3分五.子程序設(shè)計(jì)(每小題15分,共30分)本題說明:完成函數(shù)設(shè)計(jì)時(shí),請(qǐng)自行說明所有的形式參數(shù)的類型設(shè)計(jì)?一個(gè)函數(shù)getnum(s,&n),字符串s是十六進(jìn)制字符串,函數(shù)getnum統(tǒng)計(jì)s的字符個(gè)數(shù)并作為函數(shù)值返回,另外n返回s對(duì)應(yīng)的十進(jìn)制整數(shù)數(shù)據(jù)值。例如,有如下定義,chars[]=”12a”;intn,m:則有函數(shù)調(diào)用m=getnum(s,&n)后,m的值為3,n的值為298即等于IX16'+2X16+10二298。參考答案#include<stdio.h>intgetnum(chars[],int*m){intn^sum=0;n=0;while(s[n]!=W){switch(s[n]){case^09:caseUncase929:case635:case949:case'5icase965:case'7icase'8"case9:sum=s*16+s[n],0';bi?eak;case6a5:case9b9:case5c5:case6d5:case心se,化sum=sum*16+s[i]-<a,+10;break;case^A5:case,BYcase9D?:case'CYcase5E5:casesum=sum*16+s[l]-^A5+10;break;}n++;}*m=sum;returnn;}評(píng)分要點(diǎn):1計(jì)算s的長度并正確返回2將字符串s的內(nèi)容轉(zhuǎn)換為十進(jìn)制整數(shù)的求解算法正確注意語法錯(cuò)誤最多扣2分,重點(diǎn)在于程序的思路正確設(shè)計(jì)?一個(gè)函數(shù)rightarr(a,m,n),a為一維整數(shù)數(shù)組(數(shù)組元素的個(gè)數(shù)為m),該函數(shù)實(shí)現(xiàn)數(shù)組a的循環(huán)左移n位。例如:有如下定義,inta[5]={l,2,3,4,5};則,rightarr(a,5,2)調(diào)用完成后,數(shù)組a的內(nèi)容為{3,4,5,1,2}。參考答案:voidrightarr(inta[],intm,intn){intx=0yt;while(x<n){t=a[O];for(y=0;y<m-l;y++)a[y]=a[y+i];a[m-l]=t;x++;評(píng)分要點(diǎn):1移位方向?yàn)樽笠?循環(huán)移位算法正確,重點(diǎn)注意a[0]移動(dòng)正確注意語法錯(cuò)誤最多扣2分,重點(diǎn)在于程序的思路正確六.算法設(shè)計(jì)(選做一題15分)說明:?儀需任意選做一題.多選者,以卷而先列出的為判分依據(jù):分析思路、重要數(shù)據(jù)類型的左義、模塊的功能、形式參數(shù)、函數(shù)返回值說明;用偽代碼或其它方法描述子程序:不必完整寫出函數(shù)程序的代碼,完整代碼將不作為判分依據(jù)。函數(shù)link(h,n),其中h是一個(gè)曲整數(shù)組成的從小到大排列的有序單鏈表,n為整數(shù)。函數(shù)link實(shí)現(xiàn)把n按照順序插入到鏈表h中,函數(shù)返回值為完成插入n之后的有序鏈表中結(jié)點(diǎn)個(gè)數(shù)。具體要求如下:A) 說明鏈表結(jié)點(diǎn)類型的C語言定義形式;B) 給出函數(shù)1ink(h,n)的原型。C) 描述函數(shù)的算法。參考答案:評(píng)分要點(diǎn):以算法可行,基本正確為主要評(píng)分指標(biāo)(1) 鏈表結(jié)點(diǎn)類型為結(jié)構(gòu)類型(2) 函數(shù)link(h,n)中參數(shù)h為二級(jí)指針,n為整型(3) 插入算法:首先査找插入位置,然后完成插入操作(注意插入在鏈表頭部和非頭部的區(qū)別。任意輸入一個(gè)年、月、日,編程實(shí)現(xiàn)判斷該日期是星期兒。具體要求如下:D) 說明如何表示一個(gè)日期數(shù)據(jù),以及星期一到星期天;E) 說明程序中劃分多少模塊?并給出每個(gè)模塊的原型;F) 描述每個(gè)模塊的算法。

參考答案:評(píng)分要點(diǎn):以算法可行,基本正確為主要評(píng)分指標(biāo)日期可為結(jié)構(gòu)類型或者整型,星期一到星期天可為枚舉.字符串或者整數(shù)等算法中主要功能:判斷某年是否為閏年;給出一個(gè)基準(zhǔn)日期的星期數(shù)據(jù)為計(jì)算的初始數(shù)據(jù);計(jì)算該天為多年第幾天;計(jì)算星期幾。武漢大學(xué)計(jì)算機(jī)學(xué)院

2005-2006學(xué)年度第2學(xué)期2005級(jí)《高級(jí)語言程序設(shè)計(jì)》期末考試試卷B卷姓名: 學(xué)號(hào): 專業(yè): 說明:未經(jīng)主考教師同意,考試試卷、答題紙、草稿紙均不得帶離,否 —答案請(qǐng)全部寫在答題紙上,寫在試卷上無效。一、單項(xiàng)選擇題:(選擇最合適的答案填空,每小題2分,共20分)()1.下面四個(gè)選項(xiàng)中 是合法的標(biāo)識(shí)符。E. 壯‘ F. A#12 G.sum.5 H? eveTOC\o"1-5"\h\z()2. 下面四個(gè)選項(xiàng)中,不正確的浮點(diǎn)型常量為—B_ oE. -234. F. .23E1.2 G..84e+2 H. .174()3. 若有以下類型說明語句:chara;intb;floatc;doubled;則表達(dá)式a*b+d-c的運(yùn)算結(jié)果的類型為 C_ oE.char F.float G.double H.int()4. 設(shè)有變量定義:intm二0,n二0;則執(zhí)行表達(dá)式(m--<0)&&(n++〈0)后,m,n的值為一A— oE.-1和0 F.-1和1 G.0和0 H.0和1()5. 以下關(guān)于C語言中預(yù)處理的敘述中不正確的是預(yù)處理命令行必須位于源程序的開始部位。H.預(yù)處理命令是在正式編譯之前先行被處理的B預(yù)處理命令行必須位于源程序的開始部位。H.預(yù)處理命令是在正式編譯之前先行被處理的E.C源程序中凡是以”#“號(hào)開F.始的控制行都是預(yù)處理命令行。G.一條有效的預(yù)處理命令行必須單獨(dú)占據(jù)一行。()6. 若有說明語句:int&[][3]二{1,2,3,4,5,6,7,8};,則數(shù)組的行數(shù)為—C。E.1 E.1 F.2 G.3H.缺少數(shù)據(jù),不能確定()7. 設(shè)inta[3][4],(*p)[4];p=a;則表達(dá)式(*(p+l))[0]等價(jià)于—D—oG.&G.&a[l][0]H.a[l][01()8.—()8.—B.正常執(zhí)行關(guān)閉文件函數(shù)fclose()后,該函數(shù)返回值為E.EOFF.0G.-1H.E.EOFF.0G.-1H.隨機(jī)值()9?選項(xiàng)中()9?選項(xiàng)中設(shè)有如下定義,若要使px指向rec中的x域,則下面四個(gè)D 是正確的賦值語句。structaaintX;floaty;}rec,*px;E.px=rec.x;F.px=&rcc.x;G.px=(structaa*)rec.x;E.px=rec.x;F.px=&rcc.x;G.px=(structaa*)rec.x;H.px=(stmctaa*)&rec.x;()10.表達(dá)式(int)(6.8+(-7)%2)的結(jié)果是.A()10.表達(dá)式(int)(6.8+(-7)%2)的結(jié)果是.AB.B.6C.7D.8二、文字填空(共15分)1.2.3.continue1.2.3.坯 o如果unsignedint類型數(shù)據(jù)在內(nèi)存中占據(jù)2個(gè)字節(jié),則int類型數(shù)據(jù)取值范圉為從=0_一 至II_65535__在C語言中,局部變量定義時(shí)在數(shù)據(jù)類型前面增加前綴static,則表示該變量在—整個(gè)程序執(zhí)行 過程中占據(jù)固定的內(nèi)存單元。設(shè)x、y為ch吐類型變量,請(qǐng)寫出以下命題:x為數(shù)字并且y不是數(shù)字—(x>~0’&&x〈99’0fI|y>^9^1 或者 isdigit(x)&&!isdigit(y)_ x和y中至少一個(gè)不是數(shù)字_O'IQy」ll(y<‘0,||y>9或者 !isdigit(x)||!isdigit(y) TOC\o"1-5"\h\z假設(shè)滬8,則表達(dá)式3<=a<=6的結(jié)果等于 1 。設(shè)有如下定義longa[10];int*p,*q;p=(int*)a;q=(int?)(a+8),則表達(dá)式q-p的結(jié)果等于 或者32個(gè)字節(jié) o庫函數(shù)free(p)的作用是? 釋放p指向的內(nèi)存 。&表達(dá)式10|9的結(jié)果等于_11__三、 程序填空(請(qǐng)?jiān)诳瞻滋幪顚懞线m內(nèi)容以完成整個(gè)程序,共10分)1.以下程序的功能是:列岀100到1000之間各位數(shù)字之和可以被3整除的數(shù)。#include<stdio.h>voidmain(){TOC\o"1-5"\h\zinti,s,k;for(i=100:iv二 ①1000 ;i++){s二②0 ;k= ;while( ④ k!=0或者k或者k>0或者k>=l){s=s+k%10;k二⑤k/10 ;}if(s%3==0)printf(“%6<T:i);)}2.下面程序的功能是:把一個(gè)字符串中的所有大寫字母改變?yōu)樾懽帜?,而小寫字母改成大寫字母,其他字符不變。例如?duì)字符串”ProloglO"操作后結(jié)果為”pROLOG10”。#include<stdio.h>TOC\o"1-5"\h\zvoidconvert( ⑥chars口或者char*s ){inti二0;while( ⑦ s[i]!9\(f或者*(s+i)!~\(T或者s[i]!二0或者*(s+i)!二0或者s[i]或者*(s+i) ){if( ⑧s[i]〉=‘A' 1? )s[i]二s[i]+32;elseif( ⑨ s[i]>=‘a(chǎn)'z‘ )s[i]=s[i]-32; ⑩i++或者++i或者i=i+l或者i+=l ;}voidmain(){chars[20];inti;gets(s);convert(s);puts(s);}評(píng)分要點(diǎn):注意s[i]和*(s+i)是完全等價(jià)的形式。四、 程序閱讀與分析(共10分)分析以下程序執(zhí)行流程,并寫出下列程序的運(yùn)行結(jié)果。#include<stdio.h>intx=2;intfat(intn){ staticintf=0;intx=0;x+=2;f=f-n;return(f);}voidmain(void){intiJ;for(i=3;i<=5;++i){ printf(“%d\t”,fat(i));printf(44%d\if\x);))答案:?3 2-7 2-122評(píng)分要點(diǎn):給出上述6個(gè)正確結(jié)果,給滿分5分結(jié)果主全不對(duì),但是給出程序執(zhí)行流程分析基本正確,最多給3分閱讀以下遞歸函數(shù),假設(shè)有如下定義:inta[6]={6,l,4,7,4,0},分析進(jìn)行printn(a)調(diào)用時(shí)程序運(yùn)行過程;并寫出該調(diào)用結(jié)束后數(shù)組d的內(nèi)容是多少?#include<stdio.h>voidprintn(int*x){ if(*x!=O)printn(x+l);*x+=2;1答案:該調(diào)用結(jié)束后數(shù)組a的內(nèi)容是{&3,6,9,6,0}評(píng)分要點(diǎn):如果結(jié)果完全不對(duì),但是給出程序執(zhí)行流程分析基本正確,最多給3分五、子程序設(shè)計(jì)(每小題15分,共30分)本題說明:完成函數(shù)設(shè)計(jì)時(shí),請(qǐng)自行說明所有的形式參數(shù)的類型設(shè)計(jì)?一個(gè)函數(shù)tnum(s,n),函數(shù)tnum把十進(jìn)制整數(shù)n轉(zhuǎn)換為十六進(jìn)制字符串,函數(shù)值為該十六進(jìn)制字符串的長度,而轉(zhuǎn)換后的十六進(jìn)制字符串由S返回。例如,有如下定義chars[10]=,n=29&m;則有函數(shù)調(diào)用m=tnum(s,n)后,m的值為3,s的為T2a”。參考答案:inttnum(char*s,intn){intk,m」;charc;k=0;while(n)

m=n%16;n=n/16;switch(m)case15:case15:s[k]=case14:s[k]=e'case13:s[k]=(Tcase12:s[k]=c'case11:s[kHb'case10:s[k]=a';break;;break;;break;;break;;break;;break;default:s[k]=m+^O';k++;}s[k]=O;for(i=0,m=k-l;i<m;i++,m—){c=s[i];s[i]=s[m];s[m]=c;}returnk;}評(píng)分要點(diǎn):1計(jì)算S禹長度并正確返回2將十進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制字符串s的內(nèi)容的求解算法正確注意語法錯(cuò)誤最多扣2分,重點(diǎn)在于程序的思路正確4.設(shè)計(jì)?一個(gè)函數(shù)rightarr(a,m,n),a為一維整數(shù)數(shù)組(數(shù)組元素的個(gè)數(shù)為m),該函數(shù)實(shí)現(xiàn)數(shù)組a的循環(huán)右移n位。4.例如:int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論