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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

選擇題:(選擇最合適的答案填空,每小題2分,共20分)()1.下面的文字中是不正確的變量名。A.Case B._12C.elseD.eve()2.下面的四個選項中,正確的字符型常量是.BoA.'\68' B.'\t'C.“\n”D?'\xdh,()3.表達式sizeof(float)的結果為c類型。A.單稱度 B.雙精度C?整型D.不合法的()4.設有變量定義:intm=O,n=O;則執(zhí)行表達式(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)對宏命令是 。A.在程序執(zhí)行時處理的 B.在程序連接時處理的C.和源程序其他語句一起編 D.在對源程序中其它成分正譯 式編譯之前進行處理的()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.設inta[3][4],0<p)[4];p=a;則表達式*(p+l)等價于__C—。A.&a[0][l] B.a+1 C.&a[l][0] D.a[l][0]()8.如果執(zhí)行打開文件函數(shù)fopenO時發(fā)生錯誤,該函數(shù)返回值為-B QA.EOF B.NULL C.-1 D.隨機值()9.若有以下說明和語句,則下面四個選項中對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.表達式(int)(6.8+7/2)的結果是 。A.10 B.9 C.11 D.8文字填空(共15分)1.break語句出現(xiàn)在循環(huán)語句中的作用是—終止整個彳1.break語句出現(xiàn)在循環(huán)語句中的作用是—終止整個彳i環(huán)的執(zhí)行如果int類型數(shù)據(jù)在內存中占據(jù)2個字節(jié),則int類型數(shù)據(jù)取值范圍為從-32768「— 至I」—32767 。在C語言中,全局變量定義時在數(shù)據(jù)類型前面增加前綴static,則表示該變量僅在—本文件內或者定義它的文件中或者整個程序—一內有效。設x、y為ch孔類型變量,請寫出以下命題:X和y都為大寫字母 (x>=‘A'&&x<—Z')&&(y>=‘A'&&y<9Z‘評分要點:少寫“二”給1分x和y中至少_個是數(shù)字 &&xU9’)||(y>=P9L1 評分要點:少寫“二”給1分TOC\o"1-5"\h\z假設d二3,b二7,c二5,則表達式a<b<c的結果等于 1 。設有如下定義inta[10];long*p,*q;p=(long*)a;q=(long*)(a+8),則表達式q-p的結果等于 4—答16個字節(jié)也算正確 o庫函數(shù)malloc(sizeof(long))曲作用是_動態(tài)申請存放一個long類型數(shù)據(jù)內存 o評分要點:寫明動態(tài)申請內存即算正確&表達式10&12的結果等于— _8 ■三? 程序填空(請在空白處填寫合適內容以正確完成整個程序,共10分)以下程序的功能是:統(tǒng)計100到1000之間各位數(shù)字之和為8的數(shù)據(jù)個數(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下面程序的功能是:從一個字符串中刪除指定字符,例如,從字符$"Prolog"中刪除字符則結果為”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í)行流程,并寫出下列程序的運行結果。#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評分要點:給岀上述6個正確結果,給滿分5分結果完全不對,但是給岀程序執(zhí)行流程分析基本正確,最多給3分閱讀以下遞歸函數(shù),假設有如下定義:inta[6]={6,l,4,7,4,0};分析進行printn(a)調用時程序運行過程;并寫出該調用產生的運行結果。#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評分要點:給出答案6,2,4”14,4,0給4分,如果結果完全不對,但是給出程序執(zhí)行流程分析基本正確,最多給3分五.子程序設計(每小題15分,共30分)本題說明:完成函數(shù)設計時,請自行說明所有的形式參數(shù)的類型設計?一個函數(shù)getnum(s,&n),字符串s是十六進制字符串,函數(shù)getnum統(tǒng)計s的字符個數(shù)并作為函數(shù)值返回,另外n返回s對應的十進制整數(shù)數(shù)據(jù)值。例如,有如下定義,chars[]=”12a”;intn,m:則有函數(shù)調用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;}評分要點:1計算s的長度并正確返回2將字符串s的內容轉換為十進制整數(shù)的求解算法正確注意語法錯誤最多扣2分,重點在于程序的思路正確設計?一個函數(shù)rightarr(a,m,n),a為一維整數(shù)數(shù)組(數(shù)組元素的個數(shù)為m),該函數(shù)實現(xiàn)數(shù)組a的循環(huán)左移n位。例如:有如下定義,inta[5]={l,2,3,4,5};則,rightarr(a,5,2)調用完成后,數(shù)組a的內容為{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++;評分要點:1移位方向為左移2循環(huán)移位算法正確,重點注意a[0]移動正確注意語法錯誤最多扣2分,重點在于程序的思路正確六.算法設計(選做一題15分)說明:?儀需任意選做一題.多選者,以卷而先列出的為判分依據(jù):分析思路、重要數(shù)據(jù)類型的左義、模塊的功能、形式參數(shù)、函數(shù)返回值說明;用偽代碼或其它方法描述子程序:不必完整寫出函數(shù)程序的代碼,完整代碼將不作為判分依據(jù)。函數(shù)link(h,n),其中h是一個曲整數(shù)組成的從小到大排列的有序單鏈表,n為整數(shù)。函數(shù)link實現(xiàn)把n按照順序插入到鏈表h中,函數(shù)返回值為完成插入n之后的有序鏈表中結點個數(shù)。具體要求如下:A) 說明鏈表結點類型的C語言定義形式;B) 給出函數(shù)1ink(h,n)的原型。C) 描述函數(shù)的算法。參考答案:評分要點:以算法可行,基本正確為主要評分指標(1) 鏈表結點類型為結構類型(2) 函數(shù)link(h,n)中參數(shù)h為二級指針,n為整型(3) 插入算法:首先査找插入位置,然后完成插入操作(注意插入在鏈表頭部和非頭部的區(qū)別。任意輸入一個年、月、日,編程實現(xiàn)判斷該日期是星期兒。具體要求如下:D) 說明如何表示一個日期數(shù)據(jù),以及星期一到星期天;E) 說明程序中劃分多少模塊?并給出每個模塊的原型;F) 描述每個模塊的算法。

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

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

溫馨提示

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

評論

0/150

提交評論