(完整版)河海大學(xué)C語言期末試題A_第1頁
(完整版)河海大學(xué)C語言期末試題A_第2頁
(完整版)河海大學(xué)C語言期末試題A_第3頁
(完整版)河海大學(xué)C語言期末試題A_第4頁
(完整版)河海大學(xué)C語言期末試題A_第5頁
免費預(yù)覽已結(jié)束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

1、20082009 學(xué)年第二學(xué)期 C 語言期末考試( A 卷)(2008 級理科專業(yè))專業(yè)班級: 學(xué)號: 姓名:選擇題 (用鉛筆把選中的方格涂黑40 1=40 分 )51ABCD25ABCD69ABCD1013ABCD1417ABCD1821ABCD2225ABCD2629ABCD3033ABCD3437ABCD38ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD3ABCD47ABCD811ABCD1215ABCD1619ABCD2023ABCD2427ABCD2831ABCD3235ABCD3639ABCD40ABCDABCDABCDABCDABCDABCDAB

2、CDABCDABCDABCD、填空題 (252=50 分)(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14) (15) (16) (17)(18)(19)(21)(22)(23)(24)(25)三、編程題( 10 分)求 10 個數(shù)的最大公約數(shù)和最小公倍數(shù) ( 定義兩個函數(shù),求兩個數(shù)的最大公約數(shù) 和兩個數(shù)的最小公倍數(shù) )、 選擇題 ( 401 分=40 分)1. 以下敘述中正確的是(1) D 。A在編譯時可以發(fā)現(xiàn)注釋中的拼寫錯誤BC語言程序的每一行只能寫一條語句Cmain( ) 必須位于程序的開始 DC語言程序可以由一個或多個函數(shù)組成2. 以下選項中

3、不能用作變量名的是( 2)B。A _floatB switch CsumD _1233. 已知 sizeof(int) 的值為 2,為將 10! 的值存儲到變量 f 中(10!=3628800 ),變量 f 的類 型應(yīng)聲明為( 3)A。A long intBintC short int Dunsignedint4. 以下表示中 , 不能用作 C語言常量的是(4)B。A. 0UL B. (long)123 C. 1e0D. x2 a5. 數(shù)學(xué)式 在 C 程序中正確的表示形式為(5)B2bAsqrt(a)/2*bB sqrt(a)/2/bCsqrt(a)/2bD sqrt a/(2*b)6. 已知

4、有程序段“charstr10=Aoyun,Beijing,*p=&str00;printf(%sn ,p+10); ”,則執(zhí)行printf 語句后輸出為 (6)AA BeijingB Aoyun C ing D ng7. 以下聲明中錯誤的是(7) C。Aint a2; Bint a=0,1; Cint a3=0; Dint a34=0;8. 以下表示數(shù)學(xué)式“ abc”的邏輯表達式中,錯誤的是( 8) AA. abcB. ab&b=b)&!(b=c)9. 已有聲明“ int a=3,b=3,c=2; ”,以下選項中值為A. !a&!b&cB. !a|!b|c C. a=b&b=c10. 若有聲明

5、“ char ss8=Red;”,則 sizeof(ss)D. !(a=b|b=c)0 的表達式是( 9) AD. a=b&bc 的值是( 10) A。A 8B3 D11. 以下程序運行后的輸出結(jié)果是( 11)B。A. 2 2B. 7 2C. 7 5D. 6 2main() char a7=a00a00; int i,j; i=sizeof(a); j=strlen(a); printf(%d %d,i,j);12. 下面關(guān)于循環(huán)語句 for 、 while 、 do_while 的敘述中,正確的是(12) DA. 三種循環(huán)語句的循環(huán)體都必須放入一對花括號中B. 三種循環(huán)語句中都可以缺省循環(huán)終

6、止條件表達式C. 三種循環(huán)語句的循環(huán)體都至少被無條件地執(zhí)行一次D. 三種循環(huán)語句都可能出現(xiàn)無窮循環(huán)13. 若有聲明“ int a=1,2,3,4,*p,i; ” , 則以下程序段中不能輸出 13 的是( 13)B。A. for(i=0;i4;i+=2) printf(%d,ai);B. for(p=0;p4;p+=2) printf(%d,ap);C. for(p=a;pa+4;p+=2) printf(%d,*p);D. for(p=a,i=0;ia B.(+ptr)-a C.x1.a D.x0.b-a struct ss int a; struct ss *b; x3=5,&x1,7,&x

7、2,9,0, *ptr=&x0;22. 若需要對一個數(shù)據(jù)文件 abc.txt 作,則在“ fp=fopen(abc.txt, B 。中的數(shù)據(jù)做加密處理并且限定只能做一次打開文件操模式字符串 ); ”中,模式字符串應(yīng)當(dāng)是( 22)A. w+ B. r+ 23若有如下聲明和語句: int t33,*pt3,k; for(k=0;k0;j-=2) k+; .for(j=0;j15;j+=2) k+; .for(i=0;i0;i-=2) k+;30已知 A 盤根目錄下有文本文件“ data.txt ”且程序中已有聲明“ FILE *fp; ”,若程序 需要先從“ data.txt ”文件中讀出數(shù)據(jù),修

8、改后再寫入“ data.txt ”文件中,則調(diào)用 fopen 函數(shù)的正確形式是 (30) C 。A fp=fopen(a:data.txt,rw);B B. fp=fopen(a:data.txt,w+);C. fp=fopen(a:data.txt,r+);D. fp=fopen(a:data.txt,r);31以下選項均為 fun 函數(shù)定義的頭部,其中錯誤的是 (31) B 。A. int fun(int x,int y)B. int fun(int x,int yx)C. int fun(int x,int y3) D. int fun(int x,int *y)32以下結(jié)構(gòu)變量 stu

9、1 的聲明形式中,錯誤的是 (32) D 。 typedef struct stuchar name10;float score;STU ; STU stu1; #define STU struct stuSTU char name10;float score; stu1; struct stuchar name10;float score;stu1; struct stuchar name10;float score;STU; STU stu1;33. 若有聲明“ double x=3,c,*a=&x,*b=&c; ”, 則下列語句中錯誤的是( 33)C 。A a=b=0;B a=&c,b=

10、a; C &a=&b;D *b=*a;34若已有聲明“ int x=4,y=3; ”,則表達式 xy ? x+:y+ 的值是(34) B。20082009 學(xué)年第二學(xué)期 C 語言期末考試( A 卷)(2008 級理科專業(yè))A2B 3 C35程序段“ intx=3; do printf(“%d ”,xC。A3 2 1B 死循環(huán)4D 5- ); while( !x ); ”的執(zhí)行結(jié)果是(35)C 3D 236以下關(guān)于 C語言語句的敘述中,正確的是( 36)D。A所有語句都包含關(guān)鍵字B所有語句都包含表達式C所有語句都可以出現(xiàn)在源程序中的任何位置D所有語句都以分號結(jié)束37設(shè)有變量聲明“ char c;

11、 ”,執(zhí)行“ for( ;c=(getchar() != n );) printf(c” ,c); ”時,從鍵盤上輸入“ ABCDEF”G回車后,輸出結(jié)果是( 37) C 。AABCDEFGC非字母數(shù)字字符D 語句不能執(zhí)行AABBCCDDEEFFGG1338假定已有聲明 “ char a30,*p=a; ”,則下列語句中能將字符串 “ This is a C program. ” 正確地保存到數(shù)組 a 中的語句是 ( 38) D a = “ This is a C program.A a30= “ This is a C program.” BC. p =“This is a C progra

12、m.D strcpy(p,This is a C program. ” );39. 以下關(guān)于函數(shù)定義的敘述中,正確的是(39) AA構(gòu)成 C 語言源程序的基本單位之一是函數(shù)定義B所有被調(diào)用的函數(shù)必須在調(diào)用之前定義C main 函數(shù)定義必須放在其他函數(shù)定義之前D main 函數(shù)定義的函數(shù)體中必須至少有一條語句或聲明40已知函數(shù) fun 的定義如下:Void fun(int x,int y) int k;For (k=0;ky;k+) xk+=y;若 main 函數(shù)中有聲明 int a10=10; 及調(diào)用 fun 函數(shù)的語句, 則正確的 fun 函數(shù)調(diào) 用形式是 ( 40) C 。Afun(a,a

13、0);B fun(a0,a0);C. fun(&a0,a0);D. fun(a0,&a0);二、填空題(每空 2 分,共 50 分)1 已知有函數(shù)定義“ int fun()return (3,4) ; ”,則調(diào)用 fun 后的函數(shù)返回值是( 1)4 。2.設(shè) 有 聲 明 “int a=3,b=4;floatx=4.5, y=3.5; ” , 則 表 達 式“(float)(a+b)/2+(int)x%(int)y”的值是(2) 4.5。3執(zhí)行“后的輸出結(jié)果是(3)若有聲明“ char s10=remindputs(s+2); ”4mind 。,則計算y(4) pow(x,y)若有聲明“ dou

14、ble x=10,y=5; ”x 的庫函數(shù)調(diào)用形式是。5.以下程序運行時輸出結(jié)果的最后一行是(5)3/5,5/8。#include void main() int a=1,b=1,i;for(i=1;i=2;i+) a=a+b;printf(%d / %d , ,b,a); b=a+b;printf(%d / %d n,a,b);printf(n);ia1b11231/2,2/32583/5,5/83#include void main() int i,sum=0;for (i=0;i5;i+) switch(i) case 0:case 1: sum+;case 3: sum+;case 4

15、: sum-; break;printf(%dn,sum);7. 以下程序運行后輸出結(jié)果為#include stdio.hint mystery(int a,int b) if(b=1)return a;else return a+mystery(a,b-1);void main() int x=5,y=3; printf(%dn,mystery(x,y);8. 以下程序運行時輸出結(jié)果的第一行是#includeisum0012112322332415mystery(5,3)ab535+ mystery(5,2)525+ mystery(5,1)515(8)3 ,第二行是(9) 2。7) 156

16、. 以下程序運行時輸出結(jié)果為 (6) 1int f1( ) static int i=0,f=1;return f*=+i;int f2( ) int i=0,f=1;return f*=+i;void main( ) printf(%dn,f1( )+f1( );printf(%dn,f2( )+f2( );9. 以下程序運行時輸出結(jié)果是 (10) ABCxyz #include #include void sf(char *s1,char *s2) if(*s1=*s2)sf(s1+1,s2+1);void main( ) char a20= ABC,b20=xyz; sf(a+strle

17、n(a),b); puts(a);,第三行是 (12) 3 2 110. 以下程序運行時輸出結(jié)果的第一行是 (11) 1 1 1 #include void main( ) int i,j,a33;for(i=0;i3;i+)for(j=0;j3;j+)if(ij)aij=1;elseaij=i-j+1;for(i=0;i3;i+) for(j=0;j3;j+)printf(%4d,aij);printf(n);11. 以下程序運行時輸出結(jié)果是(13)8 3 4 1#include void sort(int a,int n) int i,j,p; int t;for(i=1;in-1;i+=

18、2) p=i;for(j=i+2;jap) p=j;if(p!=i) t=ai; ai=ap; ap=t; void main( ) int s =8,1,4,3,n=4,k; sort(s,n); for(k=0;kn;k+) printf(%4d,sk); printf(n);12. 以下程序運行時輸出結(jié)果的第一行是(14) 100,第二行是 (15) 101#include struct s int x,*y;*p;int d5=10,20,30,40,50;struct s a5=100,&d0,200,&d1,300,&d2,400,&d3,500,&d4; void main( )

19、 p=a; printf(%5d,p-x+); printf(%5dn,p-x); printf(%5d,*p-y); printf(%5dn,*+p-y);( 16) 32659 ,第二行為 ( 17)2356913. 以下程序運行后輸出結(jié)果中第一行為 第三行為( 18) 256 。#include stdio.h#include stdlib.hstruct node char data; struct node *next; struct node *insert(struct node *h,char c) struct node *p,*p1,*p2;p=(struct node*)

20、malloc(sizeof(struct node); p-data=c;p-next=NULL;if(h=NULL) h=p;else p1=p2=h; while(cp1-data&p1-next!=NULL) p2=p1;p1=p1-next; if(cdata) if(p1=h) p-next=h;h=p; else p2-next=p;p-next=p1;else p1-next=p;return h;struct node *del(struct node *h) struct node *p=h;while(p!=NULL) if(p-data%2=0) p-next=p-nex

21、t-next;p=p-next;return h;void print(struct node *h) struct node *p=h;while(p!=NULL) printf(%c,p-data); p=p-next; printf(n);void main() struct node *head=NULL;char *item=32659,*p=item;puts(item);while(*p) head=insert(head,*p+);print(head); del(head); print(head);14. 以下程序的功能是:求 a 數(shù)組中前 4 個元素之和及后 6 個元素之

22、和。試完善程序以達 到要求的功能。int fsum(int *array,int n) int i,s;s=0;for(i=0;( 19) in ; i+)s+=arrayi;return(s);void main(void) int a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;int sumh,sumt;sumh=fsum(a,4);sumt=( 20) fsum(&a9,6);printf( “ %d %d n” ,sumh,sumt);15以下程序?qū)ΧS數(shù)組 a 中存儲的 N N矩陣做如下操作:先將每一行中值最大的元素與 該行位于主對角線處的元素交換值, 然后對主對角線上的所有元素排序使其自左上角 到右下角升序排列,最后輸出排序后主對角線上各元素的值。試完善程序以達到要求 的功能。#include #define N 5vo

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論