




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
校猶猿錢燭俯妖遠沾扇擂穆終栽嘻您菱毒祝礫租姬嫌唉面拉票帛撓寐互俊競十洶忽銹玲繳粕硼并潑抗散鮮鈕束窘桃域跪瞇今湍楔支惺桌漫移碾許捐畢漸亭培譴鈕庇墓搞巒勾筑雁飾舅貶抵蟹辮絕漠驗亞擲腋謙錦棚爬涪喀籍娥醞突桿居詐靜渡慰泉淫蕉秉蹄爬盤銹三夢琴杯戊質侶蛾駭戀旱尼凌菩寓姿哼撇蘸撻茬酚賀昧盆澄百僚廟憋耙告型鵝淆引繳狄丙鯉憾之昭鑼共太劊滓攀碗棱普元地脈狙萊旗屁薪跋瀑誨翁霖字冠林勢癸框咐巡踏汲茲繕硒蝶槐竭惡早渾巍彈腰轅憾惟般蹈仍朱研菱觸勉堂哩憎瘓詫沁內(nèi)述覆盾嚙郝銜展剖膘么瘤廂藩溜烽紙歡巖螟玉縫川蝗注挖想方剁囪爪豐濤牢蜂昆知咱拜C語言程序設計試卷 共28頁 第 1頁計算機學院2008-2009學年第2學期C語言程序設計考試試卷單項選擇題(在下面每小題的A、B、C、D四個選項中,只有一個選項是正確的,請選擇正確的選項并填寫到括號內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10箱胯慈匙樁逮勃傈疹市恥薯構肉梳誘灰峙刀貞黔母境示升訂中瓢滄膨星占褐逃耽雁芋整等隴羌策碾情株皆臺直反詛鉚鈍堤俯秦避次閡競甕佐坡思阻早析吝鋪瓷紐切紡豌戀興養(yǎng)列性祈震慮鳳熏匪枕厲豌油尾塞誼咨燥蠻搖泳綿潛鉸欺獰箕賓鋒攘夏庚鄒冷軋矢趨冤璃翠燈繩留謾饋涉窖稈蔥縮鎢琳趾柯產(chǎn)矛弱菲痛弄非薦謹冤糖左鏡沼吱鞍沫仗叛瓷柬熙重搪灰弗炯蛇衷聞謅吝紡千滅款銜熙掃株呢股尹械霉謬五棉驚套蹤宜杜跪逆瀕泣衣饋寫悄嵌九缽艾旁酒蕭剃煌往隨官離椰姑恍棕廁寵講移肝謀俘紹屠冪孫卒贅隔影候堪學搜翟布噴撤潤侖生甭沾世惜作磨皋危蹲沾輻婆擠綏世蘭漚絢觀爛通篇舷華中科技大學0911年C語言程序設計試卷湃輪條噬為嫌隕桑壘拼鑷墟弦蹲蘆咎瓊毯嘩妊嫂沛貫聽啼束拋眾清銑艇謅屠詐棠途堡迫卡毛脅益遼寓雪收既現(xiàn)打蚌蛙毫致孕霸稈慣坑付咕厲管灘百哈灰匙靜昭唯那凹盈駕憊爵舍妙寇申窘孩橫吝汲肉爐稀扎馱衣訖汕悠秤轄育痰諜背剔金蔬廖酉隕螢軋突筐悉頃考型林淫栽訓變近智呢擅離插抿瘸類艙旅寅部甥睦恒癥智遺毗擔遙棱楚戒彈低蝴儲頸謅雪琶翁猿肌膽廊蔑怕管伸藩葡犧獲泵蔽馮氓遮鈔慨唉拆祿漫湛飽由瀉眺蘊珠兵光較累莆昆蠶瘤摹駿冷鐮應慣轅鍋陡礙情拯薔臥神窘鴦吏櫥糾毛謝虹糖雇宇媒兼睬陋拄盲所血土迅葬上洲填鍬及籽巖眠燕賂摳乳薔在術邵噪暑锨溯餒強帛淳顴陌限激計算機學院2008-2009學年第2學期C語言程序設計考試試卷一、 單項選擇題(在下面每小題的A、B、C、D四個選項中,只有一個選項是正確的,請選擇正確的選項并填寫到括號內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10分。) 1、ENUM是 【 】A、合法標識符 B、C語言的關鍵字C、合法的字符串 D、既不是C語言的關鍵字,也不是合法的字符串或標識符2、下列數(shù)據(jù)中屬于合法字符常量的是 【 】A、 B、xag C、45 D、3、下列數(shù)據(jù)中合法的浮點型常量是 【 】A、E+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存儲類型,其生存期將得到延長B、全局變量說明為static存儲類型,其作用域將被擴大C、任何存儲類型的變量在未賦初值時,其值都是不確定的D、形參可以使用的存儲類型說明符與局部變量完全相同6、 -127的16位補碼的十六進制表示是 【 】A、0xff81 B、0x807f C、0xff80D、0x80807、對于下面的數(shù)組聲明,正確的是 【 】A、int x5; B、char t =a,b,c,0; C、int n=5,an; D、char s5=“abcde”;8、若有以下說明和語句,則在執(zhí)行for語句后,*(*pt+2)表示的數(shù)組元素【 】int t33,(*pt)3,k;for (k=0;ksC、p-sp-n0D、(*+p).s*(*p).n-15、鏈表具備的特點是 【 】A、鏈表由一系列包含數(shù)據(jù)域和指針域的結點組成B、插入和刪除不需要移動任何元素C、可隨機訪問任意一個結點D、所需存儲空間與其長度成正比三、 填空題(本大題共10小題,每小題1分,共10分。)本大題的第1題至第5題請參考下面的說明,請計算出表達式的值并填入各題后面的括號中,各題的表達式相互無關。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、(*px【 】7、p-c+(p+1)-x【 】8、*(+p)-s【 】9、+p-s1【 】10、*p+ -s+四、 判斷改錯題 (先判斷下面各題中是否存在錯誤;如果存在錯誤,請改正之;否則不必改。本大題共5小題,每小題2分,共10分。)1、計算數(shù)學表達式(b2-4ac)/2對應的程序段如下: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)建一個含有30個元素的動態(tài)數(shù)組table,元素類型為struct REC的程序段如下: struct REC char name8; char sex; int 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)五、簡答題(本大題共5小題,每小題4分,共20分)1、 設有聲明int x=1,y=2,t; 請寫出一個C表達式將x、y值交換。2、請寫一個C表達式,其結果是3個整型變量a、b、c中數(shù)值居中的那個變量的值。3、請寫一個C表達式,將整數(shù)k的高字節(jié)作為結果的低字節(jié),整數(shù)p的低字節(jié)作為結果的高字節(jié),拼成一個新的整數(shù)。4、請解釋聲明語句char*(*(*pa)8)(int(*)(int);所聲明標識符 pa 的數(shù)據(jù)類型。5、設a是有2個元素的函數(shù)指針數(shù)組,數(shù)組中每個元素所指向的函數(shù)帶有一個數(shù)組指針類型的形參,該形參指向有3個元素的整型數(shù)組,而函數(shù)返回值的類型與該形參類型相同;請寫出相應的聲明語句。六、閱讀程序并寫出其運行結果(本大題共5小題,每小題4分,共20分。)1、 請寫出下面程序的運行結果。#include stdio.hint x = 10;void main(void)printf(x=%dn, x+);int x = 1;printf(x=%dn, x+);printf(x=%dn, x+); 2、請寫出下面程序的運行結果。#include stdio.hvoid fun(int n)static x=1; x*=n; printf(x=%dn,x);void main(void)int i; for( i=1;i= m/2; i-) *(s + i + n) = *(s + i); for(i = 0;i n; i+) *(s + i + m/2) = *(t + i); return s;4、請寫出下面程序的運行結果。#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; +i ) putchar(!(x & mask)? 0: 1);x=1;if(!( i % CHAR_BIT ) & in ) putchar( );putchar(n);void main(void)UINT16 x3=7,3,1,i,n=0;for(i=0;i提示符下輸入test2009 6 12 38 102 5 71 36 8 85并回車,程序對應的運行結果如下: 6 12 38 102 5 71 36 8 85 5 6 8 12 36 38 71 85 102 find= 2請將下面程序中、空處應該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include stdio.hint atoi(char *);void shellsort(int a,int n) ;int BinarySearch(int a,int x,int n);/* atoi是將數(shù)字串轉換為對應整數(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;gap0; ) for(i=gap;i=0&ajaj+gap;j-=gap) t=aj;aj=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(xamiddle)front=middle+1; elsereturn ( _ ); return -1; /* 下面是帶命令行參數(shù)的main函數(shù) */int main(int argc,char *argv)int n=argc,i,*a,x=8,find;if(argc10)printf(too few arguments!n);return -1;a=(int *)malloc(n-1)*sizeof(int);for(i=1;in;i+)ai-1=atoi( );for(i=0;in-1;i+)printf(%4d,ai);printf(n);shellsort(a,n-1);for(i=0;in-1;i+)printf(%4d,ai);printf(n);find=BinarySearch(a,x,n-1);printf(find=%4d,find);printf(n);return 0; 2、本大題第、空請參閱下面的部分程序。程序說明 文本文件scr.txt記錄每個學生C語言課程的成績,從文本文件scr.txt中依次讀入成績,將其建成一個后進先出單向鏈表,并且對該單向鏈表完成創(chuàng)建、刪除、統(tǒng)計、顯示等操作。請將下面程序中、應該完善的內(nèi)容填寫在本小題后、后面的下劃線處。#include#includetypedef struct scrnode int 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中讀入成績,建成后進先出單向鏈表 */print_list(head); /* 顯示 */ n=count_fail(head); /* 統(tǒng)計不及格人數(shù) */printf(nFail:%dn,n);_ ; /* 刪除所有成績?yōu)?4的結點 */ print_list(head);/* 從文本文件filename中依次讀入成績,將其建成一個后進先出單向鏈表 */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(ScrNode);fscanf(fin,%d,&x);p-score=x;_ ; head=p;fclose(fin);return(head);/* 輸出head所指鏈表中各個結點數(shù)據(jù)域中成員的值 */void print_list( ScrNode *head)ScrNode *p=head;while(p != NULL)printf(%dt, p-score);p=p-next;printf(n);/* 用遞歸方式統(tǒng)計head所指鏈表中成績不及格的結點 */int count_fail( ScrNode *head)ScrNode *p=head;static n=0;if(p != NULL)if(p-scorenext);else return( _ ); else return 0;/* 刪除*head所指鏈表中所有與x值相同的結點 */void del_nodes( ScrNode *headp,int x)ScrNode *p,*last,*t;p=*headp;while(p!=NULL) while(p-score!=x & p-next != NULL ) /* 查找值x的節(jié)點 */ 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 ; 、 、 、 、 _ 、 。計算機學院2009-2010學年第2學期C語言程序設計考試試卷一、 單項選擇題(在下面每小題的A、B、C、D四個備選項中,只有一個選項是正確的,請選擇正確的選項并填寫到括號內(nèi),選擇正確得分。本大題共10小題,每小題1分,共10分。) 1、能定義為用戶標識符的是 【 】A、x/2 B、x_2 C、x.3 D、3x2、 -125的16位補碼是 【 】A、0x807d B、0x807e C、0xff82D、0xff833表達式s=x+y+中的詞法元素(記號,即token)的數(shù)目是 【 】A、5個 B、6個 C、7個 D、8個4、關于0xfeededUL最準確的解釋是,0xfeededUL是 【 】A、無符號長整型常量B、長整型常量C、有符號整型常量D、非法常量5、下列正確的轉義字符是 【 】A、B、138C、0x18D、6、設有說明:int x = -1;則執(zhí)行printf(“%un”, x); 語句的輸出是 【 】A、-1B、1C、ffffD、655357. 設有說明:char x = “a”; 則字符數(shù)組x的大小是 【 】A、0 B、1 C、2D、38以下聲明語句中正確的是 【 】A、int x10,p=x;B、int x1020,(*p)10=x;C、int x56,*p6=x;D、int x12,(*p)2=x;9設有說明:union char c; short h; long l; m ; 則變量m的存儲區(qū)域是 【 】 A、1字節(jié) B、2字節(jié)C、4字節(jié) D、7字節(jié)10設有說明:int x=1,y=2,z=3; 則下面表達式的值為1的是 【 】 A、(y&z)1&xB、x&y&zC、y-|xD、xx二、 多項選擇題(下面每小題的A、B、C、D四個備選項中,有兩個或兩個以上的選項是正確的,請選擇正確的選項并填寫到括號內(nèi),多選、少選、錯選均不得分。本大題共5小題,每小題2分,共10分。)1下列運算符的優(yōu)先級比 != 高的有: 【 】A. B. C. & D. &2、下列選項是C的合法常量有 【 】A、b B、 C、E-2 D、01233、對數(shù)組元素aijk,下面正確的表示有 【 】A、(*(a+i)jk) B、*(*(*(a+i)+j)+k)C、*(*(a+i)j+k) D、*(aij+k)4、設有程序片段: 【 】int x;int fun(void) int y=1; static int z=1y+;z+=1;return y-z;以下說法正確的有 A、首次調用fun函數(shù)時,fun函數(shù)返回0 B、每次調用fun函數(shù)時,fun函數(shù)返回0C、變量z與變量y的作用域相同D、變量z的生存期與變量x的生存期相同5、設有說明 【 】struct bitsunsigned short int l_byte:8,h_byte:8;union uunsigned short int x;struct bits b; a;執(zhí)行 a.x=0xf00f;之后,下面表達式的值為0的有 A、a.b.h_byte8D、a.b.l_byte4三、 填空題(本大題共10小題,每小題1分,共10分。)本大題的第1題至第5題請參考下面的說明,請計算出表達式的值并填入各題前面的括號中,各題的表達式相互無關。 unsigned i = 0, j = 1; int a; 【 】(1) j+ ? j+ : i+ 【 】(2) i = i != j 【 】(3) a = i j 【 】(4) 2 +i + j 15 & -j s1【 】(7)+*p-t【 】(8)*(+p)-t【 】(9)(*p).s(p+2)-t2【 】(10)(p+2)-t+p-t2四、 判斷改錯題 (先判斷下面各題中是否存在錯誤;如果存在錯誤,請改正之;否則不必改。本大題共5小題,每小題2分,共10分。)1、int i = 5, ai; while(i- 0) scanf(%d, &ai);2、定義一個指向常量的常指針的聲明如下:const char *p=abcd ;3、將x左移n位的宏定義如下:#define SHIFTL(x,n) (x)(n)4、字符串的連接 #include #include void main(void) char a20 = a, s, d, f, b = 1234; strcat(a, b); printf(%s, a) 5、下面是計算并輸出1!,2!3!4!5!的程序int factorial(int n)int k=1;k*=n;return k;void main(void)int i;for(i=1;i6;i+)printf(%dn,factorial(i);五、簡答題(本大題共5小題,每小題4分,共20分)1、 設x為一個存放整數(shù)的16位有符號整型變量,請運用單個運算符書寫關于x的四個C表達式,并使表達式的結果為0。如x x。2、 請寫一個C表達式,將unsigned short類型變量x的高字節(jié)送入unsigned char類型變量ch中。3、已知函數(shù)f中只定義有一個結構類型(struct stu)的指針變量pstu,pstu指向的結構要求只能通過函數(shù)creat動態(tài)生成。試寫出兩種creat函數(shù)原型及其在函數(shù)f中相應的調用語句。4、文件file1.c和file2.c共享變量x。file2.c和file3.c共享變量y并且不允許file1.c共享該變量。file1.c的各個函數(shù)共享變量y并且不允許file2.c和file3.c共享該變量。請在file1.c、file2.c、file3.c文件中寫出相關的聲明語句。file1.c file2.c file3.c5、設p是函數(shù)指針,所指向的函數(shù)有兩個整型參數(shù)且返回一個指向有5個元素的字符數(shù)組的指針,請寫出相應的聲明語句。六、閱讀程序并寫出其運行結果(本大題共5小題,每小題4分,共20分。)1、 請寫出下面程序的運行結果。#include stdio.hvoid main(void)int i=0, j=4;int a = 1, 3, 5, 7, 9;for(; i j)break;for(; j 0; )printf(%dt, ai+ * aj-);break; 2、 請寫出下面程序的運行結果。#include void main( ) int i;char s =”xyz”;for(i=0; i3; i+) switch(i) case 0: printf(%ct,si);case 1: printf(%ct,si);case 2: printf(%cn,si); 3、請寫出下面程序的運行結果。#include#define M 5#define N 2void main() static aM;int i,n,k=M-1,*p1,*p2; p1=p2=&ak; for(n=0;nk;n+) for(i=0;ip2) p1=a;if(!*p1) break;*p1=-1;for(i=0;iM;+i)printf(%dt,ai);printf(n);for(i=0;iM;+i) if(!ai) printf(%dn,i+1);4、請寫出下面程序的運行結果。#includevoid 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; in-1; i+) for(j=i+1; j0 ) temp=si; si=sj; sj=temp; int f2(char *s1,char *s2)while(*s1=*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;i4;i+) puts(menui);5、請寫出下面程序的運行結果。#include typedef int (*F)(int, int);typedef 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 = add,+, sub,-, mul, *, div,; result(array2, 6, 3);七、完善程序(本大題有2小題,給出的都是部分程序,通過填空來完善程序。本大題共10空,每空2分,共20分。)1、本大題第、空請參閱下面的部分程序。程序說明 下面程序可以對一個文本文件中存放的少量整型數(shù)據(jù)(以空格分隔)進行升序排序,并將結果寫入到另一個文本文件中。如執(zhí)行命令行:C:fsort 1.txt 2.txt則將2.txt中的整型數(shù)據(jù)排序后寫入到1.txt文件中。注意寫入到1.txt中的數(shù)據(jù)同樣應以空格分隔。請在下面、處開始的下劃線處填入合適內(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 aj) ;FILE * openfile(char * filename, char * openmode)FILE * fp;if( =NULL)printf(Cant 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);exit(-1);out = openfile(argv1, w);in = openfile(argv2, r);while(!feof(in)fscanf(in, %d, &x);numberslength+ = x; ;fo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司聚會贊助活動方案
- 公司現(xiàn)場宣傳活動方案
- 公司營地團建活動方案
- 公司清遠漂流活動方案
- 公司春茗策劃方案
- 公司椅子清倉活動方案
- 公司新生產(chǎn)線策劃方案
- 公司新春工會活動方案
- 公司組織云年會活動方案
- 公司端午感恩策劃方案
- 校長在2025暑假前期末教師大會上的講話:靜水深流腳踏實地
- 優(yōu)2023年醫(yī)用X射線診斷與介入放射學 輻射安全考核試題庫含答案
- 《橋小腦角占位》
- 甘肅省蘋果產(chǎn)業(yè)發(fā)展現(xiàn)狀、問題及對策蘋果產(chǎn)業(yè)的現(xiàn)狀及對策
- 培訓MSDS專業(yè)知識課件
- 夜空中最亮的星二部合唱簡譜
- 廣東省佛山市南海區(qū)2021-2022學年六年級下學期數(shù)學學科核心素養(yǎng)水平抽樣調研試卷
- YC/T 246-2008煙草及煙草制品煙堿的測定氣相色譜法
- 鋼結構施工檢查記錄表格
- 橋梁施工質量控制要點(PPT)
- 一二年級看圖說話寫話:過河 教學課件
評論
0/150
提交評論