中南大學c語言程序設計試卷_第1頁
中南大學c語言程序設計試卷_第2頁
中南大學c語言程序設計試卷_第3頁
中南大學c語言程序設計試卷_第4頁
中南大學c語言程序設計試卷_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C 語言程序設計試卷一、單項選擇題( 每題 1 分,共 20 分 )1. C 語言規(guī)定:在一個源程序中,main 函數(shù)的位置( ) 。A. 必須在最開始B. 必須在系統(tǒng)調用的庫函數(shù)的后面C. 可以任意D. 必須在最后2. 下面四個選項中,均是合法浮點數(shù)的選項是( )。A. +1e+103e2B. 12e-4 -8e5C. 123e+2e-1D. -e3.8e-43. 若 a=-14,b=3, 則條件表達式a<b a:b+1 的值為()。A. -14B. -13C. 3D. 44. 已知 :int n,i=1,j=2; 執(zhí)行語句n=i<ji+:j+; 則 i 和 j 的值是 ( ).

2、A. 1,2B. 1,3C. 2,2D. 2,35. 為了判斷兩個字符串s1 和 s2 是否相等, 應當使用( )A. if (s1=s2) B. if(s1=s2)C. if (strcmp(s1,s2)D. if (strcmp(s1,s2)=0)6. 以下正確的描述是( )。A. 函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套。B. 函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套。C. 函數(shù)的定義和函數(shù)的調用均不可以嵌套。D. 函數(shù)的定義和函數(shù)的調用均可以嵌套。7. 在C語言中,下面對函數(shù)不正確的描述是()。A. 當用數(shù)組名作形參時,形參數(shù)組值的改變可以使實參數(shù)組之值相應改變。B. 允許函數(shù)遞歸

3、調用。C. 函數(shù)形參的作用范圍只是局限于所定義的函數(shù)內。D. 子函數(shù)必須位于主函數(shù)之前。8. 如果在一個函數(shù)中的復合語句中定義了一個變量,則以下正確的說法是( )A. 該變量只在該復合語句中有效B. 該變量在該函數(shù)中有效C. 該變量在本程序范圍內均有效D. 該變量為非法變量9. 以下正確的函數(shù)形式是( )。A. double fun(int x,int y) z=x+y;return z;B. fun(int x,y) int z; return z;C. fun(x,y) int x,y; double z; z=x+y; return z;D. double fun( int x,int

4、y) double z; z=x+y; return z; 10. 以下程序的輸出結果是( )。#include<>#define F(y)#define PRINT(a) printf("%d",(int)(a) void main(void)int x=2;PRINT(x*F(3);A. 10 B. 13 C. 11 D.報錯11. 以下程序中編譯和運行結果均正確的一個是( ) 。A. A. void main(void) union int n;float x; comm=1; printf("%d",;B. B. void main(

5、void) union int n;float x; comm=; printf("%f",;C. C. void main(void) union float x;int n; comm= printf("%f",;D. D. void main(void) union int n;float x; comm=5; printf("%d", ;12. 設有定義:int a=1,*p=&a; float b=; char c='A'以下不合法的運算是( )A. p+; B. a-;C. b+; D. c-;13

6、. 以下程序中調用scanf 函數(shù)給變量a 輸入數(shù)值的方法是錯誤的,其錯誤原因是( )main()int *p,*q,a,b;p=&a;printf("input a:"); scanf("%d",*p); A. *p 表示的是指針變量p 的地址B. *p 表示的是變量a 的值,而不是變量a 的地址C. *p 表示的是指針變量p 的值D. *p 只能用來說明p 是一個指針變量14. 若nunr a、b和c都是int型變量,則執(zhí)行表達式num=(a=4,b=16,c=32);后num的值為( )。A. 4 B. 16 C. 32 D. 5215.

7、已有如下定義和輸入語句, 若要求 a1,a2,c1,c2 的值分別為10,20,A 和 B, 當從第一列開始輸入數(shù)據(jù)時, 正確的數(shù)據(jù)輸入方式是( ),( 注 : _ 表示空格)int al,a2,char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A. 10A_20_B B. 10_A_20_B C. 10A20B D. 10A20_B16. 若有說明:int a10; 則對 a 數(shù)組元素的正確引用是( )。A. a10 B. a C. a5-3 D. a-117. 在C語言中,一維數(shù)組的定義方式為:類型

8、說明符數(shù)組名() ;A. 整型常量表達式 B. 表達式 C. 整型常量 D. 整型表達式18. 以下能對一維數(shù)組a 進行正確初始化的語句是( )A. in a10=(0,0,0);B. int a10=; C. int a口=0;D. int a10=10*1;19. 以下程序段( )。x=-1;dox=x*x;while(! x);A. 是死循環(huán)B.循環(huán)執(zhí)行二次C. 循環(huán)執(zhí)行一次D. 有語法錯誤20. 以下關于do-while 循環(huán)的不正確描述是( )。A. do-while 的循環(huán)體至少執(zhí)行一次B. do-while 循環(huán)由 do 開始,用while 結束,在while( 表達式 )后面不

9、能寫分號C. 在 do-while 循環(huán)體中,一定要有能使while 后面表達式的值變?yōu)榱?" 假 ") 的操作D. do-while 的循環(huán)體可以是復合語句二、是非判斷題( 每題 1 分,共 15 分 )1. C 語言規(guī)定,標識符中的字母一般區(qū)分大、小寫。2. 控制臺標準輸入設備一般是指鍵盤。3. 使用 while 和 do-while 循環(huán)時,循環(huán)變量初始化的操作應在循環(huán)語句之前處理。4. 循環(huán)體中continue 語句的作用是結束整個循環(huán)的執(zhí)行。5. 關系表達式的值是0 或 1。6. 若有說明:int a34=0 ,則只有元素a00 可得到初值0。7. 字符串作為一維

10、數(shù)組存放在內存中。8. 字符數(shù)組中的一個元素存放一個字符。9. 字符數(shù)組中的最后一個字符必須是'0' 。10. 形參為指針變量時,實參必須是數(shù)組名。11. 用數(shù)組名作函數(shù)參數(shù)時傳遞的是數(shù)組的值。12. 全局變量可以被任何一個函數(shù)中的任何一個表達式使用。13. 一個函數(shù)可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數(shù)據(jù)。14. 表達式 i+ 與 +i 在任何場合功能完全相同。15. 在賦值表達式中,賦值號左邊的變量和右邊的表達式之值的數(shù)據(jù)類型可以不相同。三、多項選擇題( 每題 1 分,共 5 分 )1. 若要求在if 后一對圓跨括號中表示a 不等于 0 的關系 , 則不

11、能正確表示這一關系的表達式為( ).A a<>0B !aC a=0D aE a!=02. 選出所有合法的常量( )A8 -e-3CD 'BASIC'E '045'F 0fdG 0xfdaLH e8I ''J """3. 以下關于函數(shù)原型說法錯誤的是:()(1) 對變量的定義”和“聲明”是一回事,對函數(shù)的“定義”和“聲明”也是一回事。(2) 在聲明函數(shù)原型時,允許只寫出參數(shù)的類型,而不必寫出參數(shù)的名稱。(3) 如果在定義函數(shù)時不指定函數(shù)類型,系統(tǒng)會隱含指定函數(shù)類型為int 型。(4) 調用一個函數(shù)時,函數(shù)名

12、、實參個數(shù)、實參類型必須與函數(shù)原型一致。(5) 如果被調函數(shù)的定義出現(xiàn)在主調函數(shù)之前,可以不必加以聲明。(6) 所有的函數(shù)之間可以互相調用。(7) 在 C 語言中,所有函數(shù)都是平行的,一個函數(shù)不能從屬于另一個函數(shù),即不能嵌套定義的。(8) 如果函數(shù)沒有返回值,在定義時可以省略函數(shù)類型。(9)在C語言中,任何函數(shù)的定義都不允許為空。(10)C 語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”。4. 請從下面關于指針的敘述中, 選出 5 個正確的敘述。(1) 指針即地址。(2) 指針須先賦值后使用。(3) 當指針 p 指向數(shù)組a 的首址后,由于pi 和 ai 都能引用數(shù)組元素,所以這里p是等價的

13、。(4)int *p 表示定義了一個指向int 類型數(shù)據(jù)的指針變量p。(5) 數(shù)組的指針是指數(shù)組的起始地址。(6)若有定義int a4,*p=a, 則p+后p指向數(shù)組a所占內存的第二個字節(jié)。(7) 使用指針變量作函數(shù)參數(shù)采取的是" 值傳遞 " 的方式。(8) 相同類型的指針可以進行減法運算。(9) 指針變量和許多變量一樣可以進行四則運算。(10) 指針 p 指向數(shù)組元素a2 ,若要其指向a4 ,執(zhí)行 p=p*2 即可。5. 以下關于數(shù)組的敘述中,5 個最確切的說法是:(1) 在聲明一個數(shù)組變量時必須指定大小。(2) 必須用常量表達式來說明一個數(shù)組變量的大小。(3) 在對數(shù)組

14、進行初始化時大括號中的數(shù)據(jù)個數(shù)必須和數(shù)組的大小相同。(4)有變量定義int a3=0,1,2,b3;,可以用b=a,使數(shù)組b的每個元素和a的每個元素相等。(5)在C語言中,可以將字符串作為字符數(shù)組來處理。(6) 定義了字符數(shù)組char c11; 為了給它賦值,可以用c="china" 。(7) 如果有 char s15="I am a0 student",則 strlen(s) 的值為6。(8)C 語言中,二維數(shù)組中元素排列的順序是:按行存放。(9)在C語言中,不能對局部的數(shù)組變量進行初始化。(10) 在聲明時對數(shù)組進行進行初始化必須指定數(shù)組大小。四、程

15、序運行結果題( 每題 4 分,共 20 分 )1. (4 分 )下面程序的運行結果是( )。#include<>void main(void)int i;char a="Time",b="Tom"for(i=0;ai!='0'&&bi!='0'i+)if (ai=bi)if (ai>='a' && ai<= 'z') printf("%c",ai-32);else printf("%c",ai+3

16、2);else printf("*");2. (4 分 )下面程序段的運行結果是( )。i=1;s=3dos+=i+;if (s%7=0) continue;else +i; whlie(s<15);printf("%d",i);3. (4 分 )若運行時輸入:5999, 則以下程序的運行結果( 保留小數(shù)點后一位)是 ( ) 。void main(void)int x;float y;scanf("%d",&x);if (x>=0 && x<=2999) y=18+ * x;if (x>

17、=3000 && x<=5999) y=36+*x;if (x>=6000 && x<=10000) y=54+*x;printf("%",y);4. (4 分 )以下程序的運行結果是( )。void main(void)int a=1,k;for(k=0;k<3;k+) printf("%4d",f1(a)int f1(int x)static int z=3,y=0;y+;z+;return(x+y+z);5. (4 分 )以下程序的功能是計算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+

18、y)/(z-y)的值,請選擇填空。#include<stdio,h>#include<>float fun1(float,float);void main(void)float x,y,z,sum;scanf("%f%f%",&x,&y,&z);sum=fun1( )+ fun1 ( );printf("sum=%fn",sum);float fun1(float a,float b)float num;num=a/b;return num;五、程序填空題( 每題 2 分,共 20 分 )1. 下面程序的功

19、能是用公式:兀X兀/6=1/(1 x1)+1/(2 X2)+1/(3 X 3)+求兀的近似值,直到最后一項的值小于10e-6為止。#include <>#include <>void main(void)long i=1; pi=0;while (i*i<=10e+6) pi= ; i+; pi=sqrt*pi);printf("pi=%n",pi);2. 下面程序的功能是把以下給定的字符按其矩陣格式讀入數(shù)組str1 中, 并輸出行列號之和3 的數(shù)組元素。void main(void) char str143='A','

20、b','C','d','E','f','G','h','I','j','K','i' ;int x,y,z;for(x=0;x<4;x+)for(y=0; ;y+)z=x+y;if () printf("%cn",str1xy);為 10 歲, 其3. 以下程序的功能是用遞歸方法計算學生的年齡,余學生一個比一個大2 歲,求第5 位學生的年齡。遞歸公式如下:age(1)=10age(n)=age(n-1)

21、+2 (n>1)#include<>int age(int n)int c;if (n=1) c=10;else c= ;return c;4. 以下程序的功能是判斷輸入的年份是否是閏年。void main(void)int year,yes;scanf("%d",&year);if (year%400=0) yes=1;else if ( ) yes=1;else ;if(yes) printf("%d is ",year);else printf("%d is not ",year);printf(&qu

22、ot;a leap year.n");5. 以下程序實現(xiàn): 輸入三個整數(shù), 按從大到小的順序進行輸出。void main(void)int x,y,z,c;scanf("%d %d %d",&x,&y,&z);if () c=y;y=z;z=c;if () c=x;x=z;z=c;if () c=x;x=y;y=c;printf("%d,%d,%d",x,y,z);六、填空題( 每題 1 分,共 20 分 )1. 在C 語言中,一個float 型數(shù)據(jù)在內存中所占的字節(jié)數(shù)為( ) 個字節(jié) ; 一個 double 型數(shù)據(jù)在內

23、存中所占的字節(jié)數(shù)為( ) 個字節(jié)。2. 若有定義:char c='010' 則變量C中包含的字符個數(shù)為()。3. C 源程序的基本單位是( )。4. 在C語言中(以16位PC機為例),一個char型數(shù)據(jù)在內存中所占的字節(jié)數(shù)為();一個 int 型數(shù)據(jù)在內存中所占的字節(jié)數(shù)為( )。5. 已有定義:int m;float n,k;char chl,ch2;為使 m=3, n=, k=, ch1='a', ch2='A',輸入數(shù)據(jù)的格式為:3則對應的scanf 語句是 ( );。6. 執(zhí)行下面的程序片段后,x 的值是 ( )。i=10; i+; x=+

24、i;7. 設a、 b、 c 均是 int 型變量,則執(zhí)行以下for 循環(huán)后,c 的值為 ( )。for(a=1,b=5;a<=b;a+) c=a+b;8. 以下 do-while 語句中循環(huán)體的執(zhí)行次數(shù)是( ) 。a=10;b=0;do b+=2; a-=2+b; while (a>=0);9. 設 x 和 y 均為 int 型變量 , 則以下 for 循環(huán)中的scanf 語句最多可執(zhí)行的次數(shù)是( )。for (x=0,y=0;y!=123&&x<3;x+)scanf ("%d",&y);10. 若有以下定義和語句:int *p3,a9,i;for(i=0;i<3;i+) pi=&a3*i;則 *p0 引用的是數(shù)組元素( ); *(p1+1) 引用的是數(shù)組元素( ) 。11. 設 a=3,b=4,c=5, 則表達式a|b+c&&b

溫馨提示

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

評論

0/150

提交評論