c語言題目及答案_第1頁
c語言題目及答案_第2頁
c語言題目及答案_第3頁
c語言題目及答案_第4頁
c語言題目及答案_第5頁
免費預覽已結束,剩余20頁可下載查看

下載本文檔

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

文檔簡介

1、考試題型一、單項選擇題(30分)二、填空題(20分)三、閱讀程序寫結果(20分)四、編程序題(30)復習題一一、選擇題1. 下列說法中正確的是。A. C語言程序由主函數(shù)和0個或多個函數(shù)組成B. C語言程序由主程序和子程序組成C. C語言程序由子程序組成D. C語言程序由過程組成2. 執(zhí)行語句“ x=(a=3,b=a-) ”后,x, a,b的值依次為。A. 3,3,2B . 3,2,2 C . 3,2,3 D . 2,3,23. 設有 int i=010,j=10 ;貝從 printf("%d,%dn",+i,j-);的輸出的是。A. 11,10 B . 9,10 C . 0

2、10,9 D . 10,94. 設a、b為字符型變量,執(zhí)行seanf("a=%c,b=%c",&a,&b);后使a為'A', b為'B',從鍵盤上的正確輸入是。A. 'A' BB.'A','B' C.A=A,B=B D . a=A,b=B5?已知 int x=12, y=3;執(zhí)行下述程序后,變量x的值是。do x/=y-;while(x>y);A. 1 B ? 2 C ? 3 D.程序運行有錯誤6.C語言中while和do-while循環(huán)的主要區(qū)別是A. do-while的

3、循環(huán)體至少無條件執(zhí)行一次B. while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格C. do-while允許從外部轉到循環(huán)體內D. do-while的循環(huán)體不能是復合語句7.設x和y均為int型變量,則執(zhí)行下面的循環(huán)后,y的值為。for (y=1, x=1; y<=50 ; y+) if (x>=10 ) break;if (x%2=1) x+=5; continue ;x - =3;A. 2 B . 4 C . 6 D . 8&以下正確的說法是。A. 用戶若需調用標準函數(shù),調用前必須重新定義B. 用戶可以重新定義標準庫函數(shù),若如此,該函數(shù)將失去原有含義C. 系統(tǒng)根

4、本不允許用戶重新定義標準函數(shù)D. 用戶若需要調用標準庫函數(shù),調用前不必使用預編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng) 自動去調9.若調用一個函數(shù),且此函數(shù)中沒有 return 語句,則關于該函數(shù)正歡迎下載19確的說法是A. 沒有返回值B . 能返回若干個系統(tǒng)默認值C. 能返回一個用戶所希望的函數(shù)值D. 返回一個不確定的值10.已知函數(shù)定義如下:float fun 1(i nt x,i nt y) float z ;z=(float)x/y ;return(z)主調函數(shù)中有int a=1,b=0 A. prin tf("%f",fu n1(a,b);C. prin t

5、f("%f",fu n1(*a,*b)11.宏定義:#define PI 31.14159A.單精度B?雙精度C .常量D;可以正確調用此函數(shù)的語句是B. printf("%f",fun1(&a,&b)D. printf("%f",fun1(b,a)中,宏名PI代替。.字符串12?若有以下數(shù)組說明,則數(shù)值最小和最大的元素下標分別是int a12二1,2,3,4,5,6,7,8,9,10,11,12;A. 1,12 B . 0,11C. 1,11 D . 0,12A.將字符串str1復制到字符串str2B.將字符串str

6、1連接到字符串str2C.將字符串str2復制到字符串str1D.將字符串str2連接到字符串str1再將字符串str1復制到字符串str3中C.數(shù)組中全部元素的值D.數(shù)組元素的個數(shù)13?以下合法的數(shù)組定義是。A. int a3 =0,1,2,3,4,5;B . int a 3 =0,1,2,3,4;C. i nt a23=0,1,2,3,4,5,6;D . int a23=0,1,2,3,4,5,;14 .函數(shù)調用:strcat(strcpy (str1,str2),str3);的功能是 中后再連接到字符串str3之后。之后再復制到字符串str3之后。中后再將字符串str3連接到字符串str

7、1之后 之后15 .設有二維數(shù)組定義如下,則不正確的數(shù)組元素引用是int a34 =1,2,3,4,5,6,7,8,9,10,11,12;A. a23 B . aa001 C . a7 D . a2' c' - ' a'16 .若用數(shù)組名作為函數(shù)調用時的實參,則實際上傳遞給形參的是_A.數(shù)組首地址B.數(shù)組的第一個元素值int a,*p,*q; q=&a; p=*q;int a=20,*p,*q 二&a; p=q;*(ps+3)*(ps+1)+317 .以下對指針變量進行操作的語句,正確的選項是 A . int *p,*q; q=p;BC. int

8、 a=b=0,*p; p二&a; b=*p; D18 .若有以下定義和語句:int s45 ,(*ps)5;ps=s;則對s數(shù)組元素的正確引用形式是A . ps+1BC. ps02D19 .當說明一個共用體變量時系統(tǒng)分配給它的存儲容量是A. 共用體中最后一個成員所需的存儲容量B. 共用體中第一個成員所需的存儲容量C. 成員中占存儲量最大者所需的存儲容量D. 各成員所需存儲容量的總和20 .有定義如下:struct student int age;char num8; stu3=20,"200401",21,"200402",10,"20

9、0403" struct student *p=stu; 以下選項中引用結構體變量成員的表達式錯誤的是 A. (p+)->numB. p->numC. (*p).numD. stu3.age二、填空題1. 設 a=3,b=2,c=1, 貝 U a>b 的值為 , a>b>c 的值為2.若w, x, y,乙m均為int型變量,則執(zhí)行下面程序段后的w= 1; x = m值是2; y= 3; z=4;m=(w<y)?w:x; m= (m<y)? m:y;m=(m<z)?m:Z;3?下面程序的輸岀結果是 。#include <stdio.

10、h>main() int a=1,b=0;do switch(a) case 1: b=1; break ;case 2: b=2 ; break ; default : b=0;b=a+b ; while(!b) ; printf("a=%d,b=%d",a,b) ; 4?下面程序的輸岀結果是 。#include <stdio.h>main() int x,i ;for(i=1 ; i<=100 ; i+) x=i ; if(+x%2=0)if(+x%3=0) if(+x%7=0) printf("%d ",x);5?下面程序的

11、輸岀結果是 。#i nclude <stdio.h>int fun c(i nt a,i nt b) int c ;c=a+b ;return(c);void mai n()int x=6,y=7,z=8,r;r二fun c(x-,y+,x+y),z-);prin tf("%dn",r);6?下面程序的輸岀結果是 。#i nclude <stdio.h>void mai n()int x=1;void f1(),f2();f1();f2(x);prin tf("%dn",x);void f1(void)int x=3;prin t

12、f("%d ",x);void f2(x)int x ; prin tf("%d ",+x);7 ?程序中有定義:#defi ne S(r) r/rint a=4,b=3,area;則表達式area=S(a+b)的值為 三、程序完善題1 ?以下程序的功能是計算分段函數(shù)y的值。請完善程序。0x0x0x10y1010x200.5x2020 x 40#i nclude <stdio.h>void mai n() int x,c,m;float y;scanf( “ d', &x);if( (1) ) c=-1;else c= (2)

13、;switch( c) case - 1: y=0; break;case 0: y=x; break;case 1: y=10; break;case 2:case 3: y=-0.5*x+20; break;default : y=-2;if( (3) ) printf(“ y=%f ”, y);else printf( “error'n ” );2 ?有以下程序段:s=1.0 ;for(k=1 ; k<二n ;k+)s=s+1.0/(k*(k+1);prin tf("%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0 ;(H.;k

14、=0 ;dos=s+d ;(2);d=1.0/(k*(k+1);while( 仙;prin tf("%fn",s);3?根據(jù)以下嵌套的if語句說給條件,填寫switch語句,使它完成相同的功能(假設score的取值在1100之間。)if語句:if(score<60) k=1;else if(score<70) k=2;else if(score<80) k=3;else if(score<90) k=4;else if(score<=100) k=5;switch 語句:switch( (1) (2) : k=1; break;case 6:k

15、=2; break;case 7:k=3; break;case 8:k=4; break;:k=5;4?輸入2個整數(shù),輸岀它們的最小公倍數(shù)和最大公約數(shù)。請完善程序。#i nclude <stdio.h>void mai n() in t m, n, gbs,gys;scanf(1);for(gbs=m;(2) ; gbs=gbs+m);gys=血printf(“ gbs=%dtgys=%dn ” , gbs,gys);5?下面函數(shù)的功能是判斷一個數(shù)是否為素數(shù)。請完善程序。void f(i nt m) int m,i,k;k=_(1)_;for(i=2;i<=_ _J+)if

16、(_(3)_)break;if( _)pr intf(“是素數(shù)”);else printf( "非素數(shù)”);6.個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。請完善程序。void fun (I ong x)long ge,shi,qia n,wan;wan二;qian二;shi=(3);ge=x%10;if (_(4)_)prin tf("this nu mber is a huiwe n'n ”);else prin tf("this nu mber is not a huiwe n'n ”);四、程序設計題

17、1?編寫程序計算分段函數(shù)y值。e x x 0y 1 x0ex x02. 編寫程序,輸入一個字符串,求該字符串的有效長度。要求不能使用系統(tǒng)函數(shù)。3 ?編寫程序實現(xiàn),將鍵盤輸入的一個十進制整數(shù)轉換為2進制數(shù)并輸岀參考答案:一、選擇題123456789101、 102、 13、a=1,b=24、25675、216、3217、7三、程序完善題1、x<0x/10x<402、d=1k+k<=n3、score/10case 0,1,2,3,4,5:default4、%d %dI!5& m,&ngbs% n!=0m*n/gbs5、m/2km%i=0i<=kACBDDAC

18、BAD11121314151617181920DBBCCACCCD、填空題6、x/10000(x%10000)/1000(x%100)/10 wan=ge && aia n二shi四、程序設計題1、#i nclude <stdio.h>void mai n() float x,y;sca nf( %f" , &x);if(x>0) y=exp(_x);else if(x=0) y=1;else y=-exp(x);printf( %f ” y,2、#defi ne max 20;void mai n()char strmax;int len;

19、 sca nf( %s",str);for(le n=0;strle n !=0;le n+)printf( %d ” en);3、#include<stdio.h>void main() unsigned n;char str1O,t;int k,i,j;printf( please input ”; scanf( %u ”&n); for(i=O;n!O;i+) stri=n%2+ '' n/=2;stri= '0'printf( the result is : ” ;for(k=0,j=i-1;k<j;k+,j-) t=

20、strk;strk=strj;strj=t; puts(str);復習題二、選擇題1 ?字符串 "ABC" 在內存占用的字節(jié)數(shù)是 A. 3 B ? 4 C ? 6 D ? 82. 設整型變量 m,n,a,b,c,d 均為 0, 執(zhí)行 (m=a= =b)|(n=c= =d) 后 ,m 和 n 的值是 。A. 0, 0 B . 0, 1 C . 1 , 0 D . 1 , 13. a 是 int 類型變量, c 是字符變量。下列輸入語句中哪一個是錯誤的 。A. scanf("%d,%c",&a,&c);B. scanf("%d%c&

21、quot;,a,c);C. scanf("%d%c",&a,&c);D. scanf("d=%d,c=%c",&a,&c);4. 字符變量 ch='A' , int 類型變量 k=25 ,執(zhí)行 printf("%3d,%d3n",ch,k); 的輸出為: A. 65,253 B . 65 253 C . 65,25 D . A 255. 已知 int i=1, j=0 ; 執(zhí)行下面語句后 j 的值是 。while(i)switch(i) case 1: i+=1; j+ ;break ;

22、case 2: i+=2; j+ ;break ;case 3: i+=3; j+ ;break ;default: i-; j+; break ;A. 1 B . 2 C . 3 D . 死循環(huán)6. C 語言中 while 和 do-while 循環(huán)的主要區(qū)別是A. do-while 的循環(huán)體至少無條件執(zhí)行一次B. while 的循環(huán)控制條件比 do-while 的循環(huán)控制條件嚴格C. do-while 允許從外部轉到循環(huán)體內D. do-while 的循環(huán)體不能是復合語句y 的值為 _7?設 x 和 y 均為 int 型變量,則執(zhí)行下面的循環(huán)后,for (y=1, x=1 ; yv=50 ;

23、 y+) if (x>=10 ) breakif (x%2=1) x+=5x - =3;continue ;A. 2 B . 4 C . 6 D . 8&在C語言中,函數(shù)的數(shù)據(jù)類型是指 A.函數(shù)返回值的數(shù)據(jù)類型BC.9.A. 實參可以是常量、變量或表達式B. 形參可以是常量、變量或表達式C. 實參可以為任意類型D. 形參應與其對應的實參類型一致?函數(shù)形參的數(shù)據(jù)類型調用該函數(shù)時的實參的數(shù)據(jù)類型D ?任意指定的數(shù)據(jù)類型在C語言中以下不正確的說法是 。10.已知函數(shù)定義如下:float fun 1(i nt x,i nt y) float z ;z=(float)x/y ;return

24、(z);主調函數(shù)中有int a=1,b=0A. prin tf("%f",fu n1(a,b);C. prin tf("%f",fu n1(*a,*b)11 ?宏定義的宏展幵是在;可以正確調用此函數(shù)的語句是 B. printf("%f",fun1(&a,&b)D . printf("%f",fun1(b,a)階段完成的。A.第一遍編譯B.第二遍編譯C.程序執(zhí)行D?預編譯12?若有以下數(shù)組說明,則數(shù)值最小和最大的元素下標分別是_。int a12二1,2,3,4,5,6,7,8,9,10,11,12;A

25、 . 1,12 B . 0,11C. 1,11 D . 0,1213?以下合法的數(shù)組定義是A. i nt a3 =0,1,2,3,4,5;? int a 3 =0,1,2,3,4;C. i nt a23=0,1,2,3,4,5,6;D ? int a23=0,1,2,3,4,5,;14 .函數(shù)調用A.將字符串str1strcat(strcpy (str1,st r2),st ;的功能是。之后。復制到字符串str2中后再連接到字符串str3B .將字符串str1連接到字符串str2之后再復制到字符串str3之后。C.將字符串str2復制到字符串str1中后再將字符串 str3連接到字符串str1

26、之后D.將字符串str2連接到字符串str1之后再將字付串str1復制到字符串str3中。15 .設有二維數(shù)組定義如下,則不正確的數(shù)組元素引用是int a34 =1,2,3,4,5,6,7,8,9,10,11,12;A. a23 B . aa001 C . a7 D . a2 ' c' - ' a' 16?若用數(shù)組名作為函數(shù)調用時的實參,則實際上傳遞給形參的是_A.數(shù)組首地址B. 數(shù)組的第一個兀素值C.數(shù)組中全部兀素的值D. 數(shù)組兀素的個數(shù)17?以下對指針變量進行操作的語句,正確的選項是 。A. int *p,*q; q=p;B. int a,*p,*q; q=

27、&a; p=*C. int a=b=0,*p; p=&a; b=*p; D. int a=20,*p,*q=&a; p=18?若有以下定義和語句:int s45,(*ps)5;ps=s;則對 s 數(shù)組元素的正確引用形式是 。A. ps+1B. *(ps+3)C. ps02D. *(ps+1)+3 19 . 當說明一個結構體變量時,系統(tǒng)分配給它的存儲容量是A. 結構體中最后一個成員所需的存儲容量B. 結構體中第一個成員所需的存儲容量C. 成員中占存儲量最大者所需的存儲容量D. 各成員所需存儲容量的總和20 . 有定義如下:struct sk int a;float b;d

28、ata ,*p;data 的成員 a 的正確引用是. p->data.a D . p.data.a_,a>b>c 的值為 。y=2 ,則表達式 1.0+x/y 的值為以下程序段的輸岀結果是如果有: p=&data; 則對于結構體變量A. ( *p) .data.a B . (*p).a C二、填空題1 . 設 a=3,b=2,c=1, 貝 U a>b 的值為 _2. 設 x 和 y 均為 int 型變量,且 x=1,3. int a=10,b=50,c=30 ;if(a>b)a=b ;b=c ;c=a ;printf("a=%d b=%d c=%

29、dn",a,b,c)4. 以下程序的輸岀結果是 。#include <stdio.h> void main() int x= 2,y=-1,z=2; if(x<y) if(y<0) z= 0; else z+ =1;printf("%dn",z); 5?下面程序的輸岀結果是 o#i nclude <stdio.h>int fun c(i nt a,i nt b) int c ;c=a+b ;return(c);void mai n()int x=6,y=7,z=8,r;r二fun c(x-,y+,x+y),z-);prin tf

30、("%dn",r);6?下面程序的輸岀結果是 o#i nclude <stdio.h>void mai n() int x=1;void f1(),f2();f1();f2(x);prin tf("%dn",x);void f1(void) int x=3;prin tf("%d ",x);void f2(x)int x ; pri ntf("%d ",+x);7?以程序的輸岀結果是 o#defi ne MA(x) x*(x-1)#in clude<stdio.h>void mai n()i

31、nt a=1,b=2;pirntf(“ dn” , MA(1+a+b);X2+ Y+N=1989 的三、程序完善題1. 下列程序計算并輸岀方程所有整數(shù)解。請完善程序。#i nclude <stdio.h>void mai n() d;for(i=-45;i<=45;i+)for(afor(k=-45;kv=45;k+)if(3)printf(% 4d%4d%4d ” ,i,j,k);2 ?有以下程序段:s=1.0 ;for(k=1 ; k<=n ;k+)s=s+1.0/(k*(k+1);prin tf("%fn",s);填空完成下述程序,使之與上述程

32、序的功能完全相同。s=0.0 ;(1);k=0 ;dos=s+d ;(2);d=1.0/(k*(k+1);while( ©n ;prin tf("%fn",s);3?根據(jù)以下嵌套的if語句說給條件,填寫switch語句,使它完成相同的功能(假設score的取值在1100之間。)if語句:if(score<60) k=1;else if(score<70) k=2;else if(score<80) k=3;else if(score<90) k=4;else if(score<=100) k=5;switch 語句:switch( (

33、1) case 0,1,2,3,4,5: k=1; break;(2) :k=2; break;case 7:k=3; break;:k=4; break;default:k=5;4?輸入2個整數(shù),輸岀它們的最小公倍數(shù)和最大公約數(shù)。請完善程序。#i nclude <stdio.h>void mai n() int m, n,gbs,gys;sca nf(H);for(gbs=m;(2) ; gbs=gbs+m);gys=業(yè)printf(“ gbs=%dtgys=%dn ” , gbs,gys);5?下面函數(shù)的功能是判斷一個數(shù)是否為素數(shù)。請完善程序。void f(i nt m)歡迎下

34、載for(i=2;iv=_ _J+)if(_(3)_)break;if(pri ntf(“是素數(shù)”);else printf("非素數(shù)”);6?用遞歸實現(xiàn)將輸入小于32768的整數(shù)按逆序輸岀。如輸入 12345,則輸岀54321。請完善程序。#in clude"stdio.h"void mai n() int n ;pri ntf("l nput n :");sca nf("%d", (1);r(n);printf("n");void r(i nt m) pri ntf("%d", (

35、2) ) ;m = (3)_ ;if( (4) ) r(m);四、程序設計題1. 100匹馬馱100擔貨,大馬一匹馱 3擔,中馬一匹馱2擔,小馬兩匹馱1擔。試編寫程序計算大、中、小馬的數(shù)目。2. 編寫程序,輸入10個整數(shù)存入一個一維數(shù)組中,再按逆序重新存放后輸岀。3. 從鍵盤輸入4個學生數(shù)據(jù)信息(包括姓名學號年齡住址),把他們轉存到磁盤文件中。.參考答案:、選擇題12345678910BCBADACABD11121314151617181920DBBCCACCDB、填空題1、 1 0251.03、a=10 b=30 c=1021x*x+y*y+z*z=1989三、程序完善題3、score/10case 6case 84、%d %d ",& m,&ngbs% n!=0m*n/gbs5、m/2km%i=0i<=k6、&nm%10m/10m>01、int i ,j,k2、d=1j=-45;jv=45;j+k+k<=n四、程序設計題1、#include<stdio.h>Void m

溫馨提示

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

評論

0/150

提交評論