c語言題目及答案_第1頁
c語言題目及答案_第2頁
c語言題目及答案_第3頁
c語言題目及答案_第4頁
c語言題目及答案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、考試題型一、單項選擇題(30分)二、填空題 (20分)三、閱讀程序寫結果(20分)四、編程序題(30)復習題一一、 選擇題 1下列說法中正確的是 。AC語言程序由主函數和0個或多個函數組成BC語言程序由主程序和子程序組成CC語言程序由子程序組成DC語言程序由過程組成2執(zhí)行語句“x=(a=3,b=a-)”后,x,a,b的值依次為 。A3,3,2 B3,2,2 C3,2,3 D2,3,23設有int i=010,j=10;則printf("%d,%dn",+i,j-); 的輸出的是 。A11,10 B9,10 C010,9 D10,9 4設a、b為字符型變量,執(zhí)行scanf(&

2、quot;a=%c,b=%c",&a,&b); 后使a為'A', b為'B',從鍵盤上的正確輸入是 。A'A' 'B' B'A','B' CA=A,B=B Da=A,b=B5已知int x=12, y=3;執(zhí)行下述程序后,變量x的值是_。do x/=y-;while(x>y);A1 B2 C3 D程序運行有錯誤6C語言中while和do-while循環(huán)的主要區(qū)別是 。Ado-while的循環(huán)體至少無條件執(zhí)行一次Bwhile的循環(huán)控制條件比do-while的循環(huán)控制條件

3、嚴格Cdo-while允許從外部轉到循環(huán)體內Ddo-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;A2 B4 C6 D88以下正確的說法是_。A用戶若需調用標準函數,調用前必須重新定義B用戶可以重新定義標準庫函數,若如此,該函數將失去原有含義C系統根本不允許用戶重新定義標準函數D用戶若需要調用標準庫函數,調用前不必使用預編譯命令將該函數所在文件包括到用戶源文件中,系統自動去調9若調用一個函

4、數,且此函數中沒有return語句,則關于該函數正確的說法是_ _。A 沒有返回值B 能返回若干個系統默認值C 能返回一個用戶所希望的函數值D 返回一個不確定的值10已知函數定義如下:float fun1(int x,int y) float z;z=(float)x/y;return(z);主調函數中有int a=1,b=0;可以正確調用此函數的語句是_。Aprintf("%f",fun1(a,b); Bprintf("%f",fun1(&a,&b);Cprintf("%f",fun1(*a,*b); Dprintf

5、("%f",fun1(b,a);11宏定義:#define PI 31.14159中,宏名PI代替_。A單精度 B雙精度 C常量 D字符串12若有以下數組說明,則數值最小和最大的元素下標分別是 。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; A1,12 B0,11C1,11 D0,1213以下合法的數組定義是 。Aint a3 =0,1,2,3,4,5; Bint a 3 =0,1,2,3,4;Cint a23=0,1,2,3,4,5,6; Dint a23=0,1,2,3,4,5,;14函數調用:strcat(strcpy (str1,str

6、2),str3); 的功能是 。A將字符串str1復制到字符串str2中后再連接到字符串str3 之后。B將字符串str1連接到字符串str2之后再復制到字符串str3 之后。C將字符串str2復制到字符串str1中后再將字符串str3 連接到字符串str1之后。D將字符串str2連接到字符串str1之后再將字符串str1 復制到字符串str3中。15設有二維數組定義如下,則不正確的數組元素引用是 。 int a34 =1,2,3,4,5,6,7,8,9,10,11,12;Aa23 Baa001 Ca7 Da2c-a16若用數組名作為函數調用時的實參,則實際上傳遞給形參的是 。A數組首地址 B

7、數組的第一個元素值C數組中全部元素的值 D數組元素的個數17以下對指針變量進行操作的語句,正確的選項是 。Aint *p,*q; q=p; Bint a,*p,*q; q=&a; p=*q;Cint a=b=0,*p; p=&a; b=*p; Dint a=20,*p,*q=&a; p=q;18若有以下定義和語句:int s45,(*ps)5;ps=s;則對s數組元素的正確引用形式是 。Aps+1 B*(ps+3) Cps02 D*(ps+1)+319當說明一個共用體變量時系統分配給它的存儲容量是 。A共用體中最后一個成員所需的存儲容量B共用體中第一個成員所需的存儲容量

8、C成員中占存儲量最大者所需的存儲容量D各成員所需存儲容量的總和20有定義如下: struct student int age; char num8; stu3=20,"200401",21,"200402",10,"200403"struct student *p=stu;以下選項中引用結構體變量成員的表達式錯誤的是 。A(p+)->num Bp->num C(*p).num Dstu3.age二、填空題1設a=3,b=2,c=1,則a>b的值為 ,a>b>c的值為 。2若w, x, y, z, m均為i

9、nt型變量,則執(zhí)行下面程序段后的m值是 。 w= 1; x = 2; y= 3; z=4; m=(w<y)?w:x; m= (m<y)? m:y; m=(m<z)?m:Z;3下面程序的輸出結果是_。#include <stdio.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>

10、;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下面程序的輸出結果是_。#include <stdio.h>int func(int a,int b) int c;c=a+b;return(c);void main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf("%dn",r);6下面程序的輸出結果是_。#include <stdio.h>void m

11、ain() int x=1; void f1(),f2();f1( );f2(x); printf("%dn",x);void f1(void) int x=3; printf("%d ",x); void f2(x)int x; printf("%d ",+x); 7程序中有定義:#define S(r) r/r int a=4,b=3,area; 則表達式area=S(a+b)的值為_。三、程序完善題1以下程序的功能是計算分段函數y的值。請完善程序。#include <stdio.h>void main() int x

12、,c,m; float y; scanf(“%d”,&x); if( (1) ) c=-1; else c= (2) ; 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(“errorn”); 2有以下程序段:s=1.0;for(k=1;k<=n;k+)s=s+1.0/(k*(k+1);printf("

13、;%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0;(1) ;k=0; do s=s+d;(2) ;d=1.0/(k*(k+1);while( (3) );printf("%fn",s);3根據以下嵌套的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&

14、lt;=100) k=5; switch語句: switch( (1) ) (2) : k=1; break;case 6:k=2; break;case 7:k=3; break;case 8:k=4; break; (3) :k=5; 4輸入2個整數,輸出它們的最小公倍數和最大公約數。請完善程序。 #include <stdio.h> void main( ) int m,n,gbs,gys; scanf((1)); for(gbs=m; (2) ; gbs=gbs+m); gys= (3) ; printf(“gbs=%dtgys=%dn”, gbs,gys); 5下面函數的

15、功能是判斷一個數是否為素數。請完善程序。void f(int m) int m,i,k;k=_(1)_;for(i=2;i<=_(2)_;i+)if(_(3)_)break;if(_(4)_)printf(“是素數”);else printf(“非素數”);6一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。請完善程序。void fun(long x) long ge,shi,qian,wan; wan= (1) ;qian=_(2)_;shi=_(3)_;ge=x%10;if (_(4)_) printf("this number is a

16、 huiwenn");else printf("this number is not a huiwenn");四、程序設計題1編寫程序計算分段函數y值。2編寫程序,輸入一個字符串,求該字符串的有效長度。要求不能使用系統函數。3編寫程序實現,將鍵盤輸入的一個十進制整數轉換為2進制數并輸出。參考答案: 一、選擇題12345678910ACBDDACBAD11121314151617181920DBBCCACCCD二、填空題 1、 1 0 2、 1 3、 a=1,b=2 4、 25 67 5、 21 6、 3 2 1 7、 7 三、程序完善題1、 x<0 x/10

17、 x<40 2、 d=1 k+ k<=n 3、 score/10 case 0,1,2,3,4,5: default 4、 “%d %d”,&m,&n gbs%n!=0 m*n/gbs 5、 m/2 k m%i=0 i<=k 6、 x/10000 (x%10000)/1000 (x%100)/10 wan=ge && qian=shi 四、程序設計題1、 #include <stdio.h>void main() float x,y; scanf(“%f”,&x); if(x>0) y=exp(-x); else if

18、(x=0) y=1; else y=-exp(x); printf(“%f”,y);2、 #define max 20; void main()char strmax;int len;scanf(“%s”,str);for(len=0;strlen!=0;len+) ;printf(“%d”,len);3、#include<stdio.h>void main() unsigned n;char str10,t;int k,i,j;printf(“please input:”);scanf(“%u”,&n);for(i=0;n!0;i+) stri=n%2+0; n/=2;s

19、tri=0;printf(“the result is :”);for(k=0,j=i-1;k<j;k+,j-) t=strk;strk=strj;strj=t;puts(str);復習題二一、選擇題1字符串"ABC"在內存占用的字節(jié)數是 。A3 B4 C6 D82設整型變量m,n,a,b,c,d均為0,執(zhí)行(m=a= =b)|(n=c= =d)后,m和n的值是 。A0,0 B0,1 C1,0 D1,13a是int類型變量,c是字符變量。下列輸入語句中哪一個是錯誤的 。Ascanf("%d,%c",&a,&c); Bscanf(&q

20、uot;%d%c",a,c);Cscanf("%d%c",&a,&c); Dscanf("d=%d,c=%c",&a,&c);4字符變量ch='A',int類型變量k=25,執(zhí)行printf("%3d,%d3n",ch,k); 的輸出為: 。A65,253 B65 253 C65,25 DA 255已知int i=1, j=0;執(zhí)行下面語句后j的值是_。while(i)switch(i) case 1: i+=1;j+;break;case 2: i+=2;j+;break;c

21、ase 3: i+=3;j+;break;default: i-;j+;break;A1 B2 C3 D死循環(huán)6C語言中while和do-while循環(huán)的主要區(qū)別是 。Ado-while的循環(huán)體至少無條件執(zhí)行一次Bwhile的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格Cdo-while允許從外部轉到循環(huán)體內Ddo-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;A2 B4 C6 D88

22、在C語言中,函數的數據類型是指_。A函數返回值的數據類型 B函數形參的數據類型C調用該函數時的實參的數據類型 D任意指定的數據類型9在C語言中以下不正確的說法是_ _。A 實參可以是常量、變量或表達式B 形參可以是常量、變量或表達式C 實參可以為任意類型D. 形參應與其對應的實參類型一致10已知函數定義如下:float fun1(int x,int y) float z;z=(float)x/y;return(z);主調函數中有int a=1,b=0;可以正確調用此函數的語句是_。Aprintf("%f",fun1(a,b); Bprintf("%f",

23、fun1(&a,&b);Cprintf("%f",fun1(*a,*b); Dprintf("%f",fun1(b,a);11宏定義的宏展開是在_階段完成的。A第一遍編譯 B第二遍編譯C程序執(zhí)行 D預編譯12若有以下數組說明,則數值最小和最大的元素下標分別是 。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; A1,12 B0,11C1,11 D0,1213以下合法的數組定義是 。Aint a3 =0,1,2,3,4,5; Bint a 3 =0,1,2,3,4;Cint a23=0,1,2,3,4,5,6; D

24、int a23=0,1,2,3,4,5,;14函數調用:strcat(strcpy (str1,str2),str3); 的功能是 。A將字符串str1復制到字符串str2中后再連接到字符串str3 之后。B將字符串str1連接到字符串str2之后再復制到字符串str3 之后。C將字符串str2復制到字符串str1中后再將字符串str3 連接到字符串str1之后。D將字符串str2連接到字符串str1之后再將字符串str1 復制到字符串str3中。15設有二維數組定義如下,則不正確的數組元素引用是 。 int a34 =1,2,3,4,5,6,7,8,9,10,11,12;Aa23 Baa00

25、1 Ca7 Da2c-a16若用數組名作為函數調用時的實參,則實際上傳遞給形參的是 。A數組首地址 B數組的第一個元素值C數組中全部元素的值 D數組元素的個數17以下對指針變量進行操作的語句,正確的選項是 。Aint *p,*q; q=p; Bint a,*p,*q; q=&a; p=*q;Cint a=b=0,*p; p=&a; b=*p; Dint a=20,*p,*q=&a; p=q;18若有以下定義和語句:int s45,(*ps)5;ps=s;則對s數組元素的正確引用形式是 。Aps+1 B*(ps+3) Cps02 D*(ps+1)+319當說明一個結構體變

26、量時,系統分配給它的存儲容量是 。A結構體中最后一個成員所需的存儲容量B結構體中第一個成員所需的存儲容量C成員中占存儲量最大者所需的存儲容量D各成員所需存儲容量的總和20有定義如下:struct sk int a;float b;data ,*p;如果有: p=&data; 則對于結構體變量data的成員a的正確引用是_ _。A(*p).data.a B(*p).a Cp->data.a D二、填空題1設a=3,b=2,c=1,則a>b的值為 ,a>b>c的值為 。2設x和y均為int型變量,且x=1,y=2,則表達式1.0+x/y的值為 。3以下程序段的輸出結

27、果是 。 int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%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下面程序的輸出結果是_。#include <stdio.h>int func(int a,int b) int c;c=a+b;return(c)

28、;void main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf("%dn",r);6下面程序的輸出結果是_。#include <stdio.h>void main() int x=1; void f1(),f2();f1( );f2(x); printf("%dn",x);void f1(void) int x=3; printf("%d ",x); void f2(x)int x; printf("%d ",+x); 7以程序的輸出結果是_。#d

29、efine MA(x) x*(x-1)#include<stdio.h>void main()int a=1,b=2; pirntf(“%dn”,MA(1+a+b);三、程序完善題1下列程序計算并輸出方程 X2+Y2+Z2=1989 的所有整數解。請完善程序。 #include <stdio.h> void main() (1) ; for(i=-45;i<=45;i+) for((2) ) for(k=-45;k<=45;k+) if( (3) ) printf( “%4d%4d%4dn”, i,j,k); 2有以下程序段:s=1.0;for(k=1;k&

30、lt;=n;k+)s=s+1.0/(k*(k+1);printf("%fn",s);填空完成下述程序,使之與上述程序的功能完全相同。s=0.0;(1) ;k=0; do s=s+d;(2) ;d=1.0/(k*(k+1);while( (3) );printf("%fn",s);3根據以下嵌套的if語句說給條件,填寫switch語句,使它完成相同的功能。(假設score的取值在1100之間。) if語句: if(score<60) k=1; else if(score<70) k=2; else if(score<80) k=3; el

31、se if(score<90) k=4; else if(score<=100) k=5; switch語句: switch( (1) ) case 0 ,1,2,3,4,5: k=1; break; (2) :k=2; break;case 7:k=3; break; (1) :k=4; break;default:k=5; 4輸入2個整數,輸出它們的最小公倍數和最大公約數。請完善程序。 #include <stdio.h> void main( ) int m,n,gbs,gys; scanf((1)); for(gbs=m; (2) ; gbs=gbs+m); g

32、ys= (3) ; printf(“gbs=%dtgys=%dn”, gbs,gys); 5下面函數的功能是判斷一個數是否為素數。請完善程序。void f(int m) int m,i,k;k=_(1)_;for(i=2;i<=_(2)_;i+)if(_(3)_)break;if(_(4)_)printf(“是素數”);else printf(“非素數”);6用遞歸實現將輸入小于32768的整數按逆序輸出。如輸入12345,則輸出54321。請完善程序。#include"stdio.h"void main() int n; printf("Input n :

33、 ");scanf("%d", (1) );r(n);printf("n"); void r(int m) printf("%d", (2) );m = (3) ;if( (4) ) r(m);四、程序設計題1 100匹馬馱100擔貨,大馬一匹馱擔,中馬一匹馱擔,小馬兩匹馱擔。試編寫程序計算大、中、小馬的數目。2.編寫程序,輸入10個整數存入一個一維數組中,再按逆序重新存放后輸出。3.從鍵盤輸入4個學生數據信息(包括姓名 學號 年齡 住址),把他們轉存到磁盤文件中。.參考答案:一、選擇題12345678910BCBADACA

34、BD11121314151617181920DBBCCACCDB二、填空題1、 1 0 2、 1.0 3、 a=10 b=30 c=10 4、 2 5、 21 6、 3 2 1 7、 8 三、程序完善題1、 int i ,j,k j=-45;j<=45;j+ x*x+y*y+z*z=1989 2、 d=1 k+ k<=n 3、 score/10 case 6 case 8 4、 “%d %d”,&m,&n gbs%n!=0 m*n/gbs 5、 m/2 k m%i=0 i<=k 6、 &n m%10 m/10 m>0 四、程序設計題1、#include<stdio.h>Void main() int big,mid; for(big=0;big&

溫馨提示

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

評論

0/150

提交評論