已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)學(xué)院2012-2013學(xué)年第2學(xué)期C語言程序設(shè)計(jì)考試試卷A卷(或B卷): A卷 閉卷(或開卷):閉卷 考試時(shí)間:2013年 7 月 5 日專業(yè) 班級(jí) 學(xué)號(hào) 學(xué)生姓名 題號(hào)一二三四五六七總分核對(duì)人題分10101010202020100得分注意:試卷后面附有運(yùn)算符的優(yōu)先級(jí)和結(jié)合性表。得分評(píng)卷人一、 單項(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、 forB、u.3 C、3c D、DO2、以下為合法的整型常量是 【 】A、-1U B、01111001B C、ffff D、01383、下列數(shù)據(jù)中屬于字符串常量的是 【 】A、a B、abc C、123 D、abc4、表達(dá)式-a+b中記號(hào)(token)的個(gè)數(shù)是 【 】A、3個(gè) B、4個(gè) C、5個(gè) D、6個(gè)5、 -3的16位補(bǔ)碼是 【 】A、0xfffd B、0x1011 C、0x7ffdD、0x00036、 以下為正確的轉(zhuǎn)義字符是 【 】A、 B、 C、0x12 D、0f17、設(shè)有聲明: enum U,V,W=0,X,Y=0,Z a; 則值為1的枚舉常量的個(gè)數(shù)是 【 】A、1個(gè)B、2個(gè)C、3個(gè)D、4個(gè)8、設(shè)有聲明: 【 】union U long a; short b; char c; char s20; v=0x01020304,*p=&v;則下列選項(xiàng)正確的是A、printf(%dn,sizeof(v)輸出4B、printf(%dn,p-s0)輸出4C、printf(%dn,v.c)輸出1D、printf(%xn,v.b)輸出1029、設(shè)有聲明和語句:FILE *fp; fp=fopen(c:abc.dat,r+); 【 】則下列選項(xiàng)正確的是A、打開文件的文件名為abc.datB、打開的是二進(jìn)制文件C、打開的是文本文件D、打開的文件只能進(jìn)行讀操作10、設(shè)有如下代碼片段: 【 】int a=1,2,3,4,5,i;char *p=(char *)a;for(i=0;ib = 3 C、*p.c = 4 D、x.d = 5得分評(píng)卷人三、 填空題(本大題共10小題,每小題1分,共10分。)本大題的第1題至第5題請(qǐng)參考下面的說明,請(qǐng)計(jì)算出表達(dá)式的值和類型并填入各題前面的括號(hào)中,各題的表達(dá)式相互無關(guān)。以下程序假設(shè)在32位機(jī)上運(yùn)行。char c1=A, c2;unsigned short i=65535,j=2;short int m=4, n=1;float x=7.34, y=7.0;【 】 1、c2=c1+j 【 】 2、m=i 【 】 3、m=nj 【 】 4、nc0【 】8、t1.next-i【 】9、*+p-pc【 】10、p-next-next=p,t2.next-i得分評(píng)卷人四、 判斷改錯(cuò)題 (先判斷下面各題中是否存在錯(cuò)誤;如果存在錯(cuò)誤,請(qǐng)改正之;否則不必改。本大題共5小題,每小題2分,共10分。)1、本小題的程序段如下:char s120=abcde,s220;s2=s1;2、以下代碼段接受從鍵盤輸入的字符串,并輸出:char *p;gets(p);printf(%s,p);3、定義一個(gè)帶參的宏THR (x),它求x的三次方,#define THR(x) (x)*(x)*(x) 4、輸出2維數(shù)組元素m12的代碼片段如下:int m34, (*p)4=m;p=p+1;printf(%d, *p2);5、下面程序希望計(jì)算并輸出2n。例如輸入2,程序輸出4;輸入3,程序輸出8。#include stdio.hint f(void);int main(void)int i,n;scanf(%d,&n);for(i=1;in;i+)f();printf(2的%d次方是: %dn,n,f();return 0;int f()int f=1;return f*=2;得分評(píng)卷人五、簡(jiǎn)答題(本大題共5小題,每小題4分,共20分)1. 寫一個(gè)表達(dá)式,判斷字符變量ch的值是否是字母。2. 寫一個(gè)表達(dá)式,將unsigned short int型數(shù)x的高低字節(jié)對(duì)調(diào)。3. 定義一個(gè)帶參的宏ABS(e),用來求表達(dá)式e的絕對(duì)值。表達(dá)式e的類型可以是char、short、int或long,宏調(diào)用表達(dá)式的值為e的絕對(duì)值。4. 用完全等效的新代碼段替代以下代碼,要求新代碼段中不得使用轉(zhuǎn)移語句。for (i=2; i*i=n; i+) if (!(m = n % i) break;5.設(shè)p是長(zhǎng)度為3的函數(shù)指針數(shù)組,該數(shù)組中元素的類型為指向無參字符指針函數(shù)的指針。請(qǐng)寫出相應(yīng)的聲明語句。得分評(píng)卷人六、閱讀程序并寫出其運(yùn)行結(jié)果(本大題共5小題,每小題4分,共20分。)1、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#includeint f(int m) switch(m) case 0:break; case 1:m+; case 2:m-; return m;int main(void) int i=0,a=2,1,0,m; while(m=f(ai)i+;printf(%d ,m); return 0;2、 請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include stdio.hint s(int *p,int n);int main(void)int a3=1,2,7;printf(the result is %dn,s(a,3);return 0;int s(int *p,int n)if(n=0)return 0;elsereturn (*p + s(p+1,n-1);3、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#include stdio.h#include math.hint f(int n);int main(void) int i,a3=3,10,7,*p=a;for(i=0;i3;i+)if(f(pi)printf(%dt,*(p+i);printf(n); return 0;int f(int n)int i,m,flag=0;for (i=2; i=sqrt(n); +i) if(!(m = n % i) break; if (m) flag=1; return flag;4、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#includevoid f(char * s,int c)char ch; while(ch=*(s+)if(a=ch & ch=z) cch-a+=1;else if (A=ch & ch=Z) cch-A+=1; int main(void)char a=Keep on going never give up;static int count26,i;f(a,count);for(i=0;i2)printf(%ct,A+i); return 0; 5、請(qǐng)寫出下面程序的運(yùn)行結(jié)果。#includetypedef structint m;int n; pair_t;int f(int x,int n,int s,pair_t * r) int i,j; i=0,j=n-1; while(im=i,r-n=j;return 1; if(xi+xjs) i+;else j-; return 0;int main(void) int a=2,3,4,7,9,11,12,16,s=16; pair_t r; if(f(a,8,s,&r)printf(%d %d %d,ar.m,ar.n,s);else printf(No solution!); return 0;得分評(píng)卷人七、完善程序(本大題有,3小題,給出的都是部分程序,通過填空來完善程序。本大題共10空,每空2分,共20分。)1、 本大題第、空請(qǐng)參閱下面的部分程序。程序說明 下面的程序輸出:BooksBooks are our friends.請(qǐng)將下面程序中、處應(yīng)該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include char* copy(char to, char from); char *mystrcat(char *t,char *s);int main(void)char a80,b40=Books ,c40=are our friends.;printf(%sn,copy(a,b);printf(%sn, (a,c);return 0; char * copy (char to, char from ) /* 拷貝串from到串to */int i=0;while(toi=fromi)!=0) ;return to; char *mystrcat(char *t,char *s) /* 連接串s到串t的尾部*/int i=0,j=0;while(ti!=0) i+;while(sj!=0)ti=sj,i+,j+;ti= ;return t; 2、 本大題第、空請(qǐng)參閱下面的部分程序。程序說明 下面的程序首先用直接插入法對(duì)數(shù)組a排序,然后用二分查找法在a中找輸入值y。請(qǐng)將下面程序中、應(yīng)該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#includeint BinSearch(int a, int n,int x);void InsertSort(int x, int n);int main(void) int a10=9,1,52,-12,2,26,48,32,15,16; int y,index; InsertSort(a,10); scanf(%d,&y); if(index=BinSearch(a,10,y)!=-1) printf(%dn,index); else printf(a中不存在%dn,y); return 0;/* 直接插入排序算法, 對(duì)n個(gè)整數(shù)遞增排序 */ void InsertSort(int x, int n) int i,j,t; for (i=1; i=0 & t xj; j-) /* 在有序區(qū)中查找應(yīng)插入的位置 */ _ _ _ = xj; /* 后移一個(gè)位置 */ xj+1 = t; /* 插入 */ /* 采用二分法在n個(gè)數(shù)組成的有序序列a中查找x, 找到,返回x在a中的下標(biāo)值,否則,返回-1。 */ int BinSearch(int a, int n,int x) int low,high,mid,i,j,temp;low=0;high = _ _ _ ;while(low = high) mid= (low+ high)/ 2;if (x = amid) _ _ _;else if(xamid) high= mid- 1;else low= mid + 1; return -1; 3、本大題第、空請(qǐng)參閱下面的部分程序。程序說明 約瑟夫環(huán)問題。約瑟夫環(huán)問題的一種描述是:編號(hào)為1,2,3,n 的n個(gè)人按順時(shí)針方向圍坐一圈 ,每人手持一個(gè)密碼(正整數(shù)),開始任意選一個(gè)整數(shù)m,從第一個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密碼作為新的m值,從下一個(gè)人開始重新從1開始報(bào)數(shù),如此下去直到所有的人全部都出列為止。 下面的程序利用循環(huán)單鏈表(即將單向鏈表尾結(jié)點(diǎn)指針域的指針指向該鏈表的頭結(jié)點(diǎn))結(jié)構(gòu)模擬此過程,循環(huán)單鏈表的特點(diǎn)是鏈表中最后一個(gè)節(jié)點(diǎn)的指針域指向第一個(gè)節(jié)點(diǎn),從而使鏈表形成一個(gè)環(huán),如圖1示。圖1 循環(huán)單鏈表結(jié)構(gòu)程序運(yùn)行后首先要求用戶輸入總?cè)藬?shù)以及每人的密碼,建立鏈表。然后輸入初始報(bào)數(shù)值,開始報(bào)數(shù),按照出列的順序輸出各人的編號(hào)。例如,當(dāng)人數(shù)為7,密碼分別為3 ,1,7,2,4,8,4時(shí),輸入初始報(bào)數(shù)值20,正確的結(jié)果:6 1 4 7 2 3 5 請(qǐng)將下面程序中、應(yīng)該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include#includetypedef struct node int num; /* 編號(hào) */ int code; /* 密碼 */struct node *next; lnode; int n; /* n為人的總個(gè)數(shù) */void creatlist(lnode *phead)int i,key; /* key為輸入的密碼 */ lnode *p,*s,*head; head=(lnode *)malloc(sizeof(lnode); /*為頭結(jié)點(diǎn)分配空間*/ p=head; printf(Please enter the num of the person: ); /*輸入人的總個(gè)數(shù)*/ scanf(%d,&n); for(i=1;inext=p; p-num=i; _ _ _=key;_ _ _; p=head; head=head-next; free(p); *phead=head;int main(void) int i,j,key;lnode *p,*s,*head; creatlist(&head); printf(nPlease enter your first key: ); /* 輸入第一個(gè)報(bào)數(shù)值 */ scanf(%d,&key); do /* 開始報(bào)數(shù) */ j=1; /* j為記數(shù)器 */ p=head; while(jnum; key=p-code; printf(%d ,i); /* 輸出出列人的編號(hào) */ _ _ _ ; hea
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45065-2024皮革和毛皮化學(xué)試驗(yàn)揮發(fā)性甲基環(huán)硅氧烷殘留量的測(cè)定
- 二零二五年度房地產(chǎn)投資居間服務(wù)盡職調(diào)查合同3篇
- 二零二五年度二手車過戶業(yè)務(wù)資金監(jiān)管及擔(dān)保服務(wù)合同
- 二零二五年度出租車車輛租賃與乘客服務(wù)滿意度調(diào)查合同3篇
- 二零二五年度SEO關(guān)鍵詞研究及分析服務(wù)合同2篇
- 二零二五年度海上貨物共同海損處理合同3篇
- 二零二五年度新媒體短視頻節(jié)目制作服務(wù)協(xié)議2篇
- 豌豆的種植課程設(shè)計(jì)
- 2025年度數(shù)據(jù)中心冷卻系統(tǒng)安裝工程合同9篇
- 二零二五年度房屋買賣合同范本:維修基金結(jié)算3篇
- (正式版)HG∕T 21633-2024 玻璃鋼管和管件選用規(guī)定
- 07FD02防空地下室電氣設(shè)備安裝圖集
- 基礎(chǔ)會(huì)計(jì)(第7版)ppt課件完整版
- Q∕SY 1206.1-2009 油氣管道通信系統(tǒng)通用技術(shù)規(guī)范 第1部分:光傳輸系統(tǒng)
- 汽車4S店八大運(yùn)營業(yè)績(jī)指標(biāo)管控培訓(xùn)_89頁
- 設(shè)備安裝、調(diào)試及驗(yàn)收質(zhì)量保證措施
- 火力發(fā)電廠生產(chǎn)技術(shù)管理導(dǎo)則
- 汽輪機(jī)葉片振動(dòng)與分析
- 地質(zhì)工作個(gè)人述職報(bào)告三篇
- 產(chǎn)品可追溯流程圖圖
- 形意拳九歌八法釋意
評(píng)論
0/150
提交評(píng)論