武漢理工大學(xué)2012年c語言考試AB卷試題及答案_第1頁
武漢理工大學(xué)2012年c語言考試AB卷試題及答案_第2頁
武漢理工大學(xué)2012年c語言考試AB卷試題及答案_第3頁
武漢理工大學(xué)2012年c語言考試AB卷試題及答案_第4頁
武漢理工大學(xué)2012年c語言考試AB卷試題及答案_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 試卷裝訂線 裝訂線內(nèi)不要答題,不要填寫考生信息試卷裝訂線 姓 名學(xué) 號專業(yè)班級學(xué)院武漢理工大學(xué)考試試卷(A卷)2011 2012 學(xué)年 2 學(xué)期 計算機技術(shù)基礎(chǔ)(C語言) 課程 閉卷 時間120分鐘, 學(xué)時, 學(xué)分,總分100分,占總評成績 % 年 月 日題號一二三四五六七八九十合計滿分3010102525100得分得分一、 單選題(每小題1分,共30分)12345678910111213141516171819202122232425262728291. 若有說明語句:char ch1='065';則:ch1中A、包含1個字符B、包含2個字符C、包含3個字符D、字符個數(shù)不確

2、定,說明不正確2. 若有運算符:>、*=、?:、%、sizeof,按運算的優(yōu)先級排列為(由低至高)A、*= ?:%>sizeofB、?: *= >%sizeofC、*= >?: sizeof%D、*= ?: >%sizeof3. 下面四個選項中,均是合法整型常量的選項是A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668D、-0x48a 2e5 0x4. 若x為int類型,則逗號表達式(x=4*5,x*5),x+25執(zhí)行后,x的值是A、20B、100C、45D、表達式不正確5. 語句while (!y)中的表達式

3、!y 等價于A、y= =0 B、y!=1 C、y!=0 D、y= =16. 若有變量說明:int a=0,b=0,c=0;,以下符合C語言語法的賦值表達式是A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b+)D、a=9+b+=a+77. 設(shè)int類型的數(shù)據(jù)長度為2個字節(jié),則unsigned int類型數(shù)據(jù)的取值范圍是A、0255 B、065535C、-32768+32767D、-256+25578. sizeof(float)是A、雙精度型表達式B、一個函數(shù)調(diào)用C、一個整型表達式D、一個不合法的表達式9. 若有說明語句:int a24;,則對a數(shù)組元素的正確引用是A、

4、a0+23 B、a04 C、a12+1 D、a2210. 若有定義:int k=7;float a=2.5,b=4.7;則表達式a+k%3*(int)(a+b)%2/4的值是A、3.500000B、2.7500000C、2.500000 D、0.00000011. 若有說明:int a=1,b=2,c=3,d=4;則表達式a<b?a:c<d?c:d的值是A、4B、3C、2D、112. 下面程序段的輸出結(jié)果是int a=023;printf("%dn",-a);A、23B、17C、24D、1813. 以下能正確定義整型變量x、y和z并為其賦初值5的語句是A、int

5、 x=y=z=5;B、int x,y,z=5;C、x=5,y=5,z=5; D、int x=5,y=5,z=5;14. 邏輯運算符兩側(cè)運算對象的數(shù)據(jù)A、只能是0或1B、只能是0或非0正數(shù)C、只能是整型或字符型數(shù)據(jù)D、可以是任何類型的數(shù)據(jù)15. 在嵌套的條件語句if-else中,C語言規(guī)定:else子句總是與A、縮排位置相同的if配對B、其之前最近且不帶else的if配對C、其之前最近的if配對D、第一個if配對16. 設(shè)x、y均是int類型變量,且x值為100,則關(guān)于以下for循環(huán)的正確判斷是for (y=100; x!=y; +x,y+) printf("*n");A、循

6、環(huán)體只執(zhí)行一次B、是無限循環(huán)C、循環(huán)體一次都不執(zhí)行D、for語句中存在語法錯誤17. 設(shè)i、j、和k是int型變量,且i=3,j=4,k=5,則以下值為0的表達式是A、'i'&&'j' B、i<=j C、i|j+k&&j-k D、!(i<j)&&!k|1)18. 在一個源文件中定義的全局變量的作用域為A、本文件的全部范圍B、本程序的全部范圍C、本函數(shù)的全部范圍D、從定義的位置開始至本文件結(jié)束19. 若有以下類型說明語句:char a; int b;float c; double d; 則表達式a*b+d

7、-c的結(jié)果類型為A、floatB、charC、intD、double20. 執(zhí)行以下程序段后,y的值是,x的值是int x=1, y=10;do y-=x; x+;while(y-<0);A、9 B、8 C、-2 D、2 E、4 F、321. 以下對一維數(shù)組a的正確說明是A、char a(10);B、int a ;C、int k=5,ak; D、char a ='a' , 'b' , 'c'22. 若有說明語句:int a 3=1,2,3,4,5,6,7,8; ,則a數(shù)組的行數(shù)為A、無確定值 B、2C、1D、323. 有兩個字符數(shù)組a,b,

8、則以下能正確為a,b進行賦值的語句是A、gets(a); gets(b); B、gets(a, b);C、getchar(a); getchar(b); D、scanf("%s%s", &a, &b)24. 以下程序段的運行結(jié)果是char a7="abcdef"char b4="ABC"strcpy(a+1, b);printf("%s", a);A、B、aABCC、ABCD、025. 執(zhí)行以下程序段后的b的值是int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=c>x)&

9、;&(b=y>z);A、0B、1C、6D、526. 判斷字符串str1是否大于字符串str2,應(yīng)當使用A、if (str1>str2) B、if (strcmp(str1, str2)C、if (strcmp(str2, str1)>0) D、if (strcmp(str1, str2)>0)27. 以下有關(guān)宏替換的敘述不正確的是A、宏名必須用大寫字母表示B、宏名不具有類型C、宏替換只是字符替換D、宏替換不占用運行時間28. 以下正確的函數(shù)說明是A、float fun(int a; int b)B、double fun( )C、int fun(int a, b)

10、D、int fun(char a )29. 以下程序的運行結(jié)果是main( ) int a=1, k;for (k=0; k<3; k+)printf("%d", f1(a); f1(int x) static int z=3, y=0;y+;z+;return(x+y+z); A、678B、666C、6810D、468得分二、 填空題(每空1分,共10分)1. C語言源程序的基本單位是。2. 若采用十進制數(shù)的表示形式,則077為,0xab為。3. 假設(shè)變量x和y均為整型,以下語句可以不借助任何變量把x、y中的值進行交換,請?zhí)羁铡?x+=; y=x-; x-=;4.

11、C程序在執(zhí)行過程中,不檢查數(shù)組下標是否。5. 若有:char s110, s210="books",能將字符串books賦給數(shù)組s1的語句是。6. C語言規(guī)定:簡單變量做實參時,它和對應(yīng)形參之間的數(shù)據(jù)傳遞方式是。7. 設(shè)有變量定義和輸出函數(shù)語句:int a=20,*p=&a; printf(“%d”,*p);,則輸出結(jié)果是。得分三、 判斷題(每小題1分,共10分)1. for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況。 ( )2. 若函數(shù)中的復(fù)合語句中定義了一個變量,則該變量在該函數(shù)中有效。 ( )3. 在switch語句中必須使用break語句。( )4. 函數(shù)的定義不可

12、以嵌套,但函數(shù)的調(diào)用可以嵌套。( )5. C語言中,數(shù)組名是一個地址常量,不能對它進行賦值運算。( )6. #include 命令行可以出現(xiàn)在源程序中需要的任何地方。( )7. 二維數(shù)組y有m列,則在yij前的元素個數(shù)為i*m+j-1。( )8. 若有char x ="1234"char y ='1', '2', '3', '4',,則x數(shù)組與y數(shù)組的長度相同。 ( )9. 如果函數(shù)定義類型與返回值類型不一致,以返回值類型為準。( )10. 在不同函數(shù)中可以使用相同名字的變量。( )試卷裝訂線 裝訂線內(nèi)不要答題

13、,不要填寫考生信息試卷裝訂線 得分四、 程序閱讀,寫出各小題的運行結(jié)果(每小題5分,共25分)1. #include<stdio.h>main( ) int k = 0; char c ='A' do switch(c+) case 'A': k+; break; case 'B': k-; case 'C': k+=2; break; case 'D': k%2; continue; case 'E': k=k*2; break; default: k=(c?1:0); k+; pri

14、ntf("%c k=%dn",c-1, k); while (c<'F');3. int fun1(int num) int x;if (num= =1) x=10;else x=fun1(num-1)+2;return(x); main( ) int y;printf("%dn", fun1(10); 4. fun (int s10, int n1, int n2) int i=n1, j=n2, t ;while(i<j) t=si; si=sj; sj=t; i+; j-; main() int a10 = 1,2,3,

15、4,5,6,7,8,9,0, i;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(i=0; i<10; i+)printf(“%2d”,ai);2. #include <string.h>main( ) char c='a', t50;int n, k, j;gets(t);n=strlen(t);for (k=0; k<n; k+)if (tk=c) j=k; break; else j=-1;printf("%d", j);運行時輸入:Whataday!<回車>5. #include<

16、;stdio.h>main( ) int i, j;for (i=5; i>=1; i-)for (j=1; j<=i; j+)printf("#");for (j=1; j<5-i; j+)putchar('*');putchar('n'); 得分五、 編寫程序(7分+8分+10分=25分)1. 編寫程序,運行時從鍵盤根據(jù)輸入年份year和月份month,要求輸出此月份對應(yīng)的天數(shù)。2. 計算:s = 1! 2! 3! 4! 10!3. 在主函數(shù)中定義一個長度為20*2的二維數(shù)組來存放一個班級中20名學(xué)生的學(xué)號(120

17、)及C語言考試成績(假設(shè)學(xué)號和成績都是整型數(shù)據(jù)),要求通過鍵盤輸入學(xué)號和成績,并完成以下功能。(1)求出該班C語言考試的最高成績并輸出。(2)定義一個find()函數(shù),用于通過學(xué)號來查詢某學(xué)生的成績,并將該學(xué)生的學(xué)號及成績輸出。在主函數(shù)中查詢學(xué)號為9的學(xué)生的考試成績。 裝訂線 裝訂線內(nèi)不要答題,不要填寫信息裝訂線 武漢理工大學(xué)考試試題答案(A卷)2011 2012 學(xué)年 2 學(xué)期 計算機技術(shù)基礎(chǔ)(C語言) 課程六、 單選題(每小題1分,共30分)123456789101112131415ADAAACBCCCDDDDB1617181920212223242526272829CDDDBDDDABC

18、DABC七、 填空題(每空2分,共20分)1.函數(shù)。2.63,1713.y,y,y4.越界5.strcpy(s1,s2); 或 strcpy(s1, "books");6.單向值傳遞7.20八、 判斷題(每小題1分,共10分)12345678910××××××九、 程序閱讀,寫出各小題的運行結(jié)果(每小題5分,共25分)1. A k=2B k=4C k=7E k=152. 23. 285. #*#*#* * 4. 5678901234十、 編寫程序(7分+8分+10分=25分)1. main( ) int year,

19、 month, days; scanf("%d%d",&year,&month); (1分) switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; (2分) case 2: if (year%4= =0&&year%100!=0 | year%400= =0) days=29; else days=28;break; (2分) case 4: case 6: case 9: case 11: days=30; break;

20、 (1分) printf("The result is: %d.n",days); (1分)2. main()int i,k,flag;long s, t; s=0; flag=1; (2分)for(k=1;k<=10;k+) t=1; for(i=1;i<=k;i+) t=t*i; (2分) s=s+t*flag; flag = -flag; (2分)printf("ns=%ld",s); (2分) 3. main()int a202, i, j, max;for(i=0;i<20;i+)for(j=0;j<2;j+)scanf

21、(“%d”,&aij); (2分)max=a01;for(i=1;i<20;i+)if(ai1>max) max=ai1; (2分)printf("max=%dn",max); (1分)find(a, 9); (1分)find (int array202, int n) int i;for(i=0;i<20;i+)if(n= =arrayi0) break; (2分)if(i<20) printf(“Student %d: Score %dn”,arrayi0,arrayi1);else printf(“Not Found!n”); (2分)

22、 試卷裝訂線 裝訂線內(nèi)不要答題,不要填寫考生信息試卷裝訂線 姓 名學(xué) 號專業(yè)班級學(xué)院武漢理工大學(xué)考試試卷(B卷)2011 2012 學(xué)年 2 學(xué)期 計算機技術(shù)基礎(chǔ)(C語言) 課程 閉卷 時間120分鐘, 學(xué)時, 學(xué)分,總分100分,占總評成績 % 年 月 日題號一二三四五六七八九十合計滿分3624102010100得分得分十一、 單選題(每小題1分,共36分)12345678910111213141516171819202122232425262728291. 若有說明語句:char ch1='065';char ch2="2";char ch3='

23、2';則:ch1中,ch2中,ch3中A、包含1個字符B、包含2個字符C、包含3個字符D、字符個數(shù)不確定,說明不正確2. 若有運算符:>、*=、?:、%、sizeof,按運算的優(yōu)先級排列為(由低至高)A、*=?:%>sizeofB、?: *=>%sizeofC、*=>?: sizeof%D、*=?: >%sizeof3. 下面四個選項中,均是合法整型常量的選項是A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668D、-0x48a 2e5 0x4. 若x為int類型,則逗號表達式(x=4*5,x*5),x+2

24、5的結(jié)果是,x的值是A、20B、100C、45D、表達式不正確5. 若有以下類型說明語句:char a; int b;float c; double d; 則表達式a*b+d-c的結(jié)果類型為A、floatB、charC、intD、double6. 若有變量說明:int a=0,b=0,c=0;,以下符合C語言語法的賦值表達式是A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b+)D、a=9+b+=a+77. 若有定義:int k=7;float a=2.5,b=4.7;則表達式a+k%3*(int)(a+b)%2/4的值是A、2.500000B、2.7500000C、3

25、.500000 D、0.000000188. sizeof(float)是A、雙精度型表達式B、一個函數(shù)調(diào)用C、一個整型表達式D、一個不合法的表達式9. 若有代數(shù)式 ,則正確的C語言表達式是A、2*ln(x)*cos(x)/3*xB、2*ln(x)*cos(x)/(3*x)C、2*log(x)*cos(x)/(3*x)D、2*log(x)*cos(x)/3*x10. 設(shè)int類型的數(shù)據(jù)長度為2個字節(jié),則unsigned int類型數(shù)據(jù)的取值范圍是A、0255 B、065535C、-32768+32767D、-256+25511. 若有說明:int a=1,b=2,c=3,d=4;則表達式a&l

26、t;b?a:c<d?c:d的值是A、4B、3C、2D、112. 下面程序段的輸出結(jié)果是int a=023;printf("%dn",-a);A、23B、17C、18D、2413. 執(zhí)行以下程序段后的a值是,b的值是,c的值是int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=c>x)&&(b=y>z);A、0B、6C、1D、514. 以下能正確定義整型變量x、y和z并為其賦初值5的語句是A、int x=y=z=5;B、int x,y,z=5;C、int x=5,y=5,z=5; D、x=5,y=5,z=5;15. 邏輯運算符兩

27、側(cè)運算對象的數(shù)據(jù)A、只能是0或1B、只能是0或非0正數(shù)C、只能是整型或字符型數(shù)據(jù)D、可以是任何類型的數(shù)據(jù)16. 語句while (!y)中的表達式 !y 等價于A、y=0 B、y!=1 C、y!=0 D、y=117. 在嵌套的條件語句if-else中,C語言規(guī)定:else子句總是與A、縮排位置相同的if配對B、其之前最近且不帶else的if配對C、其之前最近的if配對D、第一個if配對18. 設(shè)x、y均是int類型變量,且x值為100,則關(guān)于以下for循環(huán)的正確判斷是for (y=100; x!=y; +x,y+) printf("*n");A、循環(huán)體只執(zhí)行一次B、是無限循

28、環(huán)C、循環(huán)體一次都不執(zhí)行D、for語句中存在語法錯誤19. 執(zhí)行以下程序段后,y的值是,x的值是int x=1, y=10;do y-=x; x+;while(y-<0);A、9 B、8 C、-2 D、2 E、4 F、320. 執(zhí)行以下程序段后a的值是,b的值是int a, b;for (b=1,a=1; b<=50; b+) if (a>=10) break; if (a%2=1) a+=5; continue;a-=3; A、10 B、6C、7D、8E、421. 以下對一維數(shù)組a的正確說明是A、char a(10);B、int a ;C、int k=5,ak; D、cha

29、r a ='a' , 'b' , 'c'22. 若有說明語句:int a 3=1,2,3,4,5,6,7,8; ,則a數(shù)組的行數(shù)為A、3B、2C、1D、無確定值23. 有兩個字符數(shù)組a,b,則以下能正確為a,b進行賦值的語句是A、gets(a, b);B、scanf("%s%s", &a, &b);C、getchar(a); getchar(b); D、gets(a); gets(b);24. 以下程序段的運行結(jié)果是char a7="abcdef"char b4="ABC"

30、;strcpy(a, b);printf("%c", a5);A、B、0C、eD、f25. 若使用一維數(shù)組名作函數(shù)實參,則以下正確的說法是A、必須在主調(diào)函數(shù)中說明此數(shù)組的大小B、實參數(shù)組類型與形參數(shù)組類型可以不匹配C、在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小D、實參數(shù)組名與形參數(shù)組名必須一致26. 若有以下宏定義:#define N 2#define Y(n) (N+1)*n則執(zhí)行語句int z; z=2*(N+Y(5);后z的值是A、50B、34C、19D、無定值27. 在一個源文件中定義的全局變量的作用域為A、本文件的全部范圍B、本程序的全部范圍C、本函數(shù)的全部范圍D、從

31、定義的位置開始至本文件結(jié)束28. 以下有關(guān)宏替換的敘述不正確的是A、宏名不具有類型B、宏名必須用大寫字母表示C、宏替換只是字符替換D、宏替換不占用運行時間29. 以下正確的函數(shù)說明是A、double fun( )B、float fun(int a; int b)C、int fun(int a, b)D、int fun(char a )得分十二、 填空題(每空2分,共24分)1. C語言源程序的基本單位是。2. 若采用十進制數(shù)的表示形式,則077為,0xab為。3. 假設(shè)變量x和y均為整型,以下語句可以不借助任何變量把x、y中的值進行交換,請?zhí)羁铡?x+=; y=x-; x-=;4. 在語言中,

32、一個函數(shù)通常由兩部分組成,它們是和。5. 凡是函數(shù)中未指定存儲類別的局部變量,其隱含的存儲類別為。6. 若有:char s110, s210="books",能將字符串books賦給數(shù)組s1的語句是。7. C語言規(guī)定:簡單變量做實參時,它和對應(yīng)形參之間的數(shù)據(jù)傳遞方式是。8. 設(shè)有變量定義和輸出函數(shù)語句:int a=20,*p=&a; printf(“%d”,*p);,則輸出結(jié)果是。得分十三、 判斷題(每小題1分,共10分)1. 一個語言程序總是從主程序開始執(zhí)行。( )2. 在switch語句中必須使用break語句。( )3. for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情

33、況。( )4. 字符數(shù)組中的字符串可以整體輸入、輸出。( )5. 若函數(shù)中的復(fù)合語句中定義了一個變量,則該變量在該函數(shù)中有效。 ( )6. #include 命令行可以出現(xiàn)在源程序中需要的任何地方。( )7. 二維數(shù)組y有m列,則在yij前的元素個數(shù)為i*m+j-1。( )試卷裝訂線 裝訂線內(nèi)不要答題,不要填寫考生信息試卷裝訂線 8. 有如下語句,char x ="1234"char y ='1', '2', '3', '4',,則x數(shù)組與y數(shù)組的長度相同。( )9. 如果函數(shù)定義類型與返回值類型不一致,以返回

34、值類型為準。( )10. 在不同函數(shù)中可以使用相同名字的變量。( )得分十四、 程序閱讀,寫出各小題的運行結(jié)果(每小題4分,共20分)3. int fun1(int num) int x;if (num= =1) x=10;else x=fun(num-1)+2;return(x); main( ) int y;printf("%dn", fun1(5); 1. #include <stdio.h>main( ) int ch;while (ch=getchar( )!='n') switch(ch-'1') case 0: case 1: putchar(ch+3);case 2: putchar(ch+3); break; case 3: putchar(ch+3); default: putchar(ch+1); break; printf("n");運行時輸入:1234<回車>4. main( ) int a=1, k;for (k=0; k<3; k+)printf

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論