東北大學C語言練習題_第1頁
東北大學C語言練習題_第2頁
東北大學C語言練習題_第3頁
東北大學C語言練習題_第4頁
東北大學C語言練習題_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、東北大學C語言期末考試題及答案(1) 1、構成C語言的基本單位是_B_。過程 函數 語句 命令 2、設x為整型變量,能正確表達數學關系:5x10的c語言表達式是_B_。5x5&x10 x=6|x=7|x=8|x=9 !(x=5)&(xy) if(yz)x=y; else z=y;7 6 5 4 9、如果一個函數被說明為static,那么_B_。該函數只能被main函數調用 該函數能被當前文件的函數調用,但不能被其他文件的函數調用 該函數不能被當前文件的函數調用,可以被其他文件的函數調用 任何文件的函數都可以調用該函數 10、下面關于局部變量的描述中,錯誤的是_D_。函數的局部變量的有效范圍只能

2、在本函數 函數的形式參數也是局部變量 局部變量的名稱不能和函數同名稱 不同的函數中不能定義相同名稱的局部變量 11、下列初始化字符數組的語句中,錯誤的是_A_。char str5=hello; char str=h,e,l,l,o,0; char str5=hi; char str100=; 12、引用數組元素時,數組下標可以是_D_。整型常量 整型變量 整型表達式 以上均可 13、 已知:char str10,*p=str; 下面的語句中正確的是_B_。str=ABC; p=ABC; *str=ABC; *p=ABC; 14、下面語句中,錯誤的是_D_。int i;int *p;p=&i;

3、int i,*p;p=&a; int i,*p=&a; int i,*p;*p=i; 15、下面對于結構體類型的描述正確的是_A_。結構體類型的大小為各成員變量所占內存的總和 結構體類型變量與簡單數據類型變量的引用規(guī)則一致。 結構體類型的大小為其成員中所占內存空間最大的變量的大小 結構體類型的大小為其最后一個成員中所占內存空間的大小 16、C語言規(guī)定:在一個源程序中,main函數的位置_C_。必須在最開始 必須在系統調用的庫函數的后面 可以任意 必須在最后 17、表達式18/4*sqrt(4.0)/8值的數據類型是 _C_。int float double 不確定 18、在c語言中,char型

4、數據在內存中的存儲形式是 _D_。補碼 反碼 原碼 ASCII碼 19、閱讀以下程序,當輸入的數據形式為:25,13,10時,正確的輸出結果為_D_。 main() int x,y,z; scanf(%d%d%d,&x,&y,&z); printf(x+y+z=%dn,x+y+z); x+y+z=48 x+y+z=35 x+z=35 不能確定 20、有如下程序 void main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y); 該程序的輸出結果是( C )。0.00000

5、0 0.250000 0.500000 1.000000 21、判斷char型變量s是否為小寫字母的正確表達式是_C_。a=s=a)&(s=a)&(s=z) (a=s) 22、執(zhí)行以下語句后,y 的值為_A_。 int x,y,z; x=y=z=0; +x | +y & +z;0 1 2 不確定值 23、有如下程序段: int number=0; while(number+6) n-; printf(“%d”,n); 該程序段的輸出結果是_B_。987 876 8765 9876 25、要使以下程序段輸出10個整數,請在空格中填入一個整數。 for(i=0;i=_B_;printf(%dn,i

6、+=2);15 18 20 10 26、設函數fun的定義形式為: fun(char ch,float x) 則以下對函數fun的調用語句中正確的是_B_。fun(“abc”,3) t=fun(D,5) fun(ab,3) fun(78,1) 27、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+n。 Main() printf(The sum=%dn,sum (10); int sum(int n) int s=0,i; for(i=0;i=n;i+) _B_ 請從備選答案中選擇一答案,補全程序。s=s+n;return s; s=s+i;return s; return

7、s; return s+=I; 28、設函數fun的定義形式為 int fun(int a,int n) int s=0,i=0; for(i=0;in;i+)s+=ai; return s; main() int a10=1,2,3,4,5; printf(sum=%d, fun(&a2,2); 則程序的運行結果為_C_。3 5 7 9 29、若有說明:int a10;則對數組元素的正確引用是_D_。a10 a3,5 a(5) a10-10 30、以下不正確的定義語句是_B_。double x5=2.0,4,0,6,0,8,0,10.0; int y5=0,1,3,5,7,9; char c

8、1=1,2,3,4,5; char c2=x10,xa,x8; 31、下面程序的運行結果是_B_。 #include stdio.h main() char str=SWLIA,c; int k; for(k=0;(c=strk)!=0;k+) switch(c) case I:+k;break; cSWA SW* SW*A SW 32、以下能正確進行字符串賦值操作的是_D_。char s5=12345; char s5=1,2,3,4,5,6; char *s;*s=12345; char *s=12345; 33、以下程序段的運行結果是_C_。 Char a =program, *p; p

9、=a; while (*p!=g) printf(%c, *p-32); p+; PROgram PROGRAM PRO proGRAM 34、若有說明:char *pc =aaa, bbb, ccc, ddd;,則以下敘述正確的是_C_。*pc0代表的是字符串aaa的首地址 *pc0代表的是字符a的首地址 pc0代表的是字符串aaa的首地址 pc0代表的是字符a的首地址 35、下列程序的運行結果是_B_。 #include #include void f (char *s, int n) char a,*q1,*q2; q1=s;q2=s+n-1; while(q110) printf(“%

10、dn”,+a); else printf(%dn,a-); 12 11 10 9 2、執(zhí)行下面程序段的結果是_D_ int x=0; do printf(“%2d”,x-); while(x);打印出321 打印出23 不打印任何結果 陷入死循環(huán) 3、執(zhí)行與句:for(n=0;n+4; ); 后,變量n的值是_C_。3 4 5 不定 4、以下關于循環(huán)的描述中,錯誤的是_D_??梢杂胒or語句實現的循環(huán)一定可以用while語句實現 可以用while語句實現的循環(huán)一定可以用for語句實現 可以用dowhile語句實現的循環(huán)一定可以用while語句實現 dowhile語句與while語句的區(qū)別僅僅是

11、關鍵字while的位置不同 5、下面的描述錯誤的是_C_。函數可以有多個形式參數 函數可以沒有返回值 函數內可以嵌套定義函數 函數可以被其他函數調用 6、函數返回值的類型是由_A_決定的。定義函數時指定的返回類型 函數中return語句的表達式類型 主調函數的實際參數類型 主調函數的返回值類型 7、定義了一維int型數組a10后,下面錯誤的引用是_B_。a0=1; a10=2; a0=5*2; a1=a2*a0; 8、定義了int型二維數組a67后,數組元素a34前的數組元素個數為_B_。24 25 18 17 9、下面語句中,錯誤的是_D_。int i; int *p; p=&i; int

12、i,*p; p=&a; int i,*p=&a; int i,*p; *p=i; 10、 已知int型二維數組a34,數組元素a12的地址不能表達為_C_。&a12 a1+2 *a1+2 *(a+1)+2 11、C語言中,5種基本數據類型的存儲空間長度的排列順序為_A_。charchar=intcharchar=int=long int=float12、假設所有變量均為整型,則表達式(a=2,b=5,b+,a+b)的值是 _B_。7 8 6 2 13、若有說明語句:char c=72;則變量c _A_。包含1個字符 包含2個字符 包含3個字符 說明不合法,c的值不確定 14、若x,y均定義為整

13、型,z定義為double型,以下不合法的scanf函數調用語句是_C_。scanf(%d%lx,%le,&x,&y,&z); scanf(%2d * %d%lf,&x,&y,&z); scanf(%x%*d%o,&x,&y,&z); scanf(%x%o%6.2f,&x,&y,&z); 15、若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行_A_次。 while(ch=getchar()=e) printf(*);1次 死循環(huán) 0次 5次 16、執(zhí)行下面的程序段后,k的值是_C_。 k=1;n=263; dok*=n%10;n/=10;while(n);3 63 36 2 17、下面程序

14、段中循環(huán)的執(zhí)行次數是_B_。 a=10;b=0; dob+=2;a-=2+b;while(a=0);10 3 5 4 18、下面程序段的運行結果是_D_。 x=2; doprintf(*);x-;while(!x=0);* * 沒有輸出 * 19、下面程序段的運行結果是_B_。 i=1;s=1;a=0; doa=a+s*i;s=-s;i+;while(i=10); printf(%d,a);2 -2 3 0 20、有如下程序 void main() int a=2,b=-1,c=2; if(a) if(b0) c=0; else c+; printf(%dn,c); 該程序的輸出結果是_A_。

15、0 1 2 3 21、程序中對fun函數有如下說明 void fun(); 下面說明是錯誤的是_B_。fun函數無返回值 fun函數的返回值可以是任意的數據類型 fun函數沒有形式參數 void 可以省略 22、函數求sum(int n)的功能是計算自然數1到n的和,即1+2+n。 main() printf(The sum=%dn,sum (10); int sum(int n) int s=0,i; for(i=0;iy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b)

16、,f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf()_A_4,3,7 3,4,7 5,2,7 2,5,7 24、若有說明:int a3=1,2,3,4,5,6,7;則數組a第一維的大小是_B_。2 3 4 無確定值 25、判斷字符串s1是否大于字符串s2,應當使用_D_。if(s1s2) if(strcmp(s1,s2) if(strcmp(s2,s1)0) if(strcmp(s1,s2)0) 26、當運行以下程序時,從鍵盤輸入:AhaMA Aha 表示回車,則下面程序的運行結果是_A_。 #include stdio.h main(

17、) char s80,c=a; int i=0; scanf(%s,s); while(si!=0) if(si=c)ahAMa AhAMa AhAMa ahA ahAMa ahA 27、以下程序執(zhí)行后a的值為_C_。main( ) int a,m=2, k=1, *p=&k; a=p!=&m; printf(%dn,a); -1 0 1 2 28、以下能正確讀入字符串的程序段是_C_。char *p;scanf(%s, p); char str10;scanf(%s, &str); char str10, *p;p=str; scanf(%s, p); char str10, *p=str;

18、scanf(%s, p1); 29、若有定義:int i, x34;,則不能將x11的值賦給變量i的語句是_B_。i=x11 i=*(*(x+1) i=*(*(x+1)+1) i=*(x1+1) 30、下面程序的運行結果是_A_。 # include # include fun(char *s) char t,*a,*z; a=s; z=s+strlen(s)-1; while(a+y) if(yz)x=y; else z=y;7 6 5 4 36、執(zhí)行下面程序段的結果是_D_ int x=0; do printf(“%2d”,x-); while(x);打印出321 打印出23 不打印任何結

19、果 陷入死循環(huán) 37、以下關于switch語句和break語句的描述正確的是_D_在switch語句中必須使用break語句 break語句只能用于switch語句體中 break語句只能用于循環(huán)語句中 在switch語句中可以使用break語句 38、與語句while(!x)等價的語句是_A_while(x=0) while(x!=0) while(x!=1) while(x) 39、下面的描述錯誤的是_C_函數可以有多個形式參數 函數可以沒有返回值 函數內可以嵌套定義函數 函數可以被其他函數調用 40、 下面關于局部變量的描述中,錯誤的是_D_函數的局部變量的有效范圍只能在本函數 函數的形

20、式參數也是局部變量 局部變量的名稱不能和函數同名稱 不同的函數中不能定義相同名稱的局部變量東北大學C語言期末考試題及答案(3) 1、 定義了一維int型數組a10后,下面錯誤的引用是_正確答案是:Ba0=1; a10=2; a0=5*2; a1=a2*a0; 2、 設有定義:int a=1, *p=&a; float b=2.0; char c=A; ,以下不合法的運算是( )正確答案是:C*p+; a-; b+; c-; 3、 若有定義:int x10, *p=x;,則*(p+5)表示( )正確答案是:B數組元素x5的地址 數組元素x5的值 數組元素x6的地址 數組元素x6的值 4、執(zhí)行以下

21、程序段后,y的值是( )。 int a =1, 3, 5, 7, 9 int x=0, y=1, *ptr; ptr=&a1; while (!x) y+=*(ptr+x); x+; 正確答案是:C1 2 4 24 5、下面程序的運行結果是( )。 # include void select(char *s) int i,j; char *t; t=s; for(i=0,j=0;*(t+i)!=0;i+) if(*(t+i)=0&*(t+i)5)printf(“%dn”,m); else printf(“%dn”,m-); 正確答案是:B7 6 5 4 23、當執(zhí)行以下程序段時( )。 x=-

22、1; do x=x*x; while(!x);正確答案是:A循環(huán)體將執(zhí)行一次 循環(huán)體將執(zhí)行兩次 循環(huán)體將執(zhí)行無限次 系統將提示有語法錯誤 24、執(zhí)行以下程序后,輸出的結果是( )。 void main() int y=10; do y-; while(-y); printf(“%dn”,y-); 正確答案是:D-1 1 8 0 25、有如下程序 void main() int x=23; do printf(“%d”,x-); while(!x); 該程序的執(zhí)行結果是( )正確答案是:B321 23 不輸出任何內容 陷入死循環(huán) 26、有如下程序 void main() int y=3,x=3,

23、z=1; printf(“%d %dn”,(+x,y+),z+2); 運行該程序的輸出結果是( )正確答案是:D3 4 4 2 4 3 3 3 27、有如下程序 void main( ) int x=1,a=0,b=0; switch(x) case 0: a+; case 1: b+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b); 該程序的輸出結果是( )正確答案是:Aa=1,b=2 a=1,b=1 a=1,b=0 a=2,b=2 28、若程序中定義了以下函數 double myadd(double a,double b) return (a+b) ; 并

24、將其放在調用語句之后,則在調用之前應該對該函數進行說明,以下選項中錯誤的說明是正確答案是:Adouble myadd(double a,b) ; double myadd(double,double); double myadd(double b,double a) ; double myadd(double x,double y); 29、有以下程序 int fun(int x , int y) if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(“%d,%d,%dn”,x,y,z); 執(zhí)行后輸出結果是正確答案是:A1,2,3 3,1

25、,2 1,33,1 2,3,1 31、以下列一維整型數組a的正確說明是_正確答案是:Dint a(10); int n=10,an; int n; scanf(%d,&n); int an; #define SIZE 10 int aSIZE; 32、若二維數組a有m列,則計算任一元素aij在數組中位置的公式為_。(假設a00位于數組的第1個位置上)正確答案是:Di*m+j j*m+i i*m+j-1 i*m+j+1 33、下面程序的運行結果是_。 #include stdio.h main() char a=morning,t; int i,j=0; for(i=1;i7;i+) if(aj

26、ai) j=i; t=aj; aj=a7; a7=aj; puts(a); 正確答案是:Bmogninr mo morning mornin 34、執(zhí)行下面程序段的結果是_ main() int x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; case 2:a+;b+ printf(a=%d,b=%d,a,b); 正確答案是:Ba=1,b=1 a=2,b=1 a=1,b=0 a=2,b=2 35、若有以下程序段: for(m=1;m=100;m+) scanf(“%d”,&y); if(y0) continue; printf(“%3d”,m); 正確

27、的描述是_正確答案是:D當y=0時什么也不輸出 printf 函數永遠也不執(zhí)行 最多允許輸出100個非負整數 36、.以下關于switch語句和break語句的描述正確的是_正確答案是:D在switch語句中必須使用break語句 break語句只能用于switch語句體中 break語句只能用于循環(huán)語句中 在switch語句中可以使用break語句 37、下列描述中,正確的是_正確答案是:A所有的輸入/輸出都是通過調用庫函數處理的 所有的輸入/輸出都是通過輸入/輸出語句實現的 getchar和putchar可以省略#include 在輸入/輸出格式中的*表示跳過數據的含義 38、若給定表達式

28、(x)?(a+):(a-),則表達式x_正確答案是:C和(x=0)等價 和(x!=1)等價 和(x!=0)等價 和(x=1)等價 39、對于xyn102字符串的長度是_正確答案是:B7 6 12 13 40、下面說法不正確的是_正確答案是:DC語言能編寫操作系統 C語言是函數式的語言 數據類型多樣化 書寫格式自由、不規(guī)范東北大學C語言期末考試題及答案(4) 1、 定義了一維int型數組a10后,下面錯誤的引用是_正確答案是:Ba0=1; a10=2; a0=5*2; a1=a2*a0; 2、 設有定義:int a=1, *p=&a; float b=2.0; char c=A; ,以下不合法的

29、運算是( )正確答案是:C*p+; a-; b+; c-; 3、 若有定義:int x10, *p=x;,則*(p+5)表示( ) 正確答案是:B數組元素x5的地址 數組元素x5的值 數組元素x6的地址 數組元素x6的值 4、執(zhí)行以下程序段后,y的值是( )。 int a =1, 3, 5, 7, 9 int x=0, y=1, *ptr; ptr=&a1; while (!x) y+=*(ptr+x); x+; 正確答案是:C1 2 4 24 5、下面程序的運行結果是( )。 # include void select(char *s) int i,j; char *t; t=s; for(

30、i=0,j=0;*(t+i)!=0;i+) if(*(t+i)=0&*(t+i)5)printf(“%dn”,m); else printf(“%dn”,m-); 正確答案是:B7 6 5 4 23、當執(zhí)行以下程序段時( )。 x=-1; do x=x*x; while(!x);正確答案是:A循環(huán)體將執(zhí)行一次 循環(huán)體將執(zhí)行兩次 循環(huán)體將執(zhí)行無限次 系統將提示有語法錯誤 24、執(zhí)行以下程序后,輸出的結果是( )。 void main() int y=10; do y-; while(-y); printf(“%dn”,y-); 正確答案是:D-1 1 8 0 25、有如下程序 void main

31、() int x=23; do printf(“%d”,x-); while(!x); 該程序的執(zhí)行結果是( ) 正確答案是:B321 23 不輸出任何內容 陷入死循環(huán) 26、有如下程序 void main() int y=3,x=3,z=1; printf(“%d %dn”,(+x,y+),z+2); 運行該程序的輸出結果是( ) 正確答案是:D3 4 4 2 4 3 3 3 27、有如下程序 void main( ) int x=1,a=0,b=0; switch(x) case 0: a+; case 1: b+; case 2: a+;b+; printf(“a=%d,b=%dn”,a,b); 該程序的輸出結果是( ) 正確答案是:Aa=1,b=2 a=1,b=1 a=1,b=0 a=2,b=2 28、若程序中定義了以下函數 double myadd(double a,double b) return (a+b) ; 并將其放在調用語句之后,則在調用之

溫馨提示

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

評論

0/150

提交評論