




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C 語言程序設計試卷,C+語言程序設計試題及答案一、單項選擇題( 每題 1 分,共 20 分 )1.C 語言規定:在一個源程序中,main 函數的位置 ( C )。A. 必須在最開始B. 必須在系統調用的庫函數的后面C. 可以任意D. 必須在最后2. 下面四個選項中,均是合法浮點數的選項是( B ) 。A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03.若 a=-14,b=3,則條件表達式ab? a:b+1的值為 (A ) 。A. -14 B. -13 C. 3 D. 44.已知 :int
2、 n,i=1,j=2;執行語句n=ij?i+:j+;則 i 和 j 的值是 ( c ).A. 1,2 B. 1,3 C. 2,2 D. 2,35. 為了判斷兩個字符串 s1 和 s2 是否相等 , 應當使用 ( D )A. if (s1=s2) B. if(s1=s2) C. if (strcmp(s1,s2)D. if (strcmp(s1,s2)=0)6. 以下正確的描述是 ( B ) 。A. 函數的定義可以嵌套,但函數的調用不可以嵌套。B. 函數的定義不可以嵌套,但函數的調用可以嵌套。C. 函數的定義和函數的調用均不可以嵌套。D. 函數的定義和函數的調用均可以嵌套。7.在 C 語言中,下
3、面對函數不正確的描述是( D) 。A. 當用數組名作形參時,形參數組值的改變可以使實參數組之值相應改變。B. 允許函數遞歸調用。C. 函數形參的作用范圍只是局限于所定義的函數內。D. 子函數必須位于主函數之前。8.如果在一個函數中的復合語句中定義了一個變量,則以下正確的說法是( A) 。A. 該變量只在該復合語句中有效B. 該變量在該函數中有效C. 該變量在本程序范圍內均有效D. 該變量為非法變量9. 以下正確的函數形式是 ( D ) 。A. double fun(int x,int y) z=x+y;return z;B. fun(int x,y) int z; return z;C. fu
4、n(x,y) int x,y; double z; z=x+y; return z;D. double fun( int x,int y) double z; z=x+y; return z; 10. 以下程序的輸出結果是 ( B ) 。 #include#define F(y) 8.19-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. 以下程序中編譯和運行結果均正確的一個是( C ) 。A. A. void main(void)unionint n
5、;float x; comm=1; printf(%d,comm.n);B. B. void main(void)unionint n; float x; comm=12.5; printf(%f,comm.x);C. C. void main(void)unionfloat x; int n; comm=12.5 printf(%f,comm.x);D. D. void main(void)unionint n;float x; comm=5; printf(%d, comm.n);12.設有定義: int a=1,*p=&a; float b=2.0; char c=A;以下不合法的運算是
6、( A) 。A. p+; B. a-; C. b+; D. c-;13.以下程序中調用scanf 函數給變量a 輸入數值的方法是錯誤的,其錯誤原因是main()( B )。int *p,*q,a,b;p=&a;printf(input a:);scanf(%d,*p);A.*p 表示的是指針變量p 的地址B. *p 表示的是變量 a 的值,而不是變量 a 的地址D. *p 只能用來說明 p 是一個指針變量14. 若 num、 a、 b 和 c 都是 int 型變量,則執行表達式 num=(a=4,b=16,c=32); 后 num的值為 (C) 。A.4B.16C.32D.5215.已有如下定
7、義和輸入語句, 若要求 a1,a2,c1,c2始輸入數據時 , 正確的數據輸入方式是( C ),(注: _int al,a2,char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);的值分別為表示空格 )10,20,A和 B, 當從第一列開A. 10A_20_B B. 10_A_20_B C. 10A20B D. 10A20_B16.若有說明: int a10;則對 a 數組元素的正確引用是(C ) 。A. a10 B. a3.5 C. a5-3 D. a-117.在 C 語言中 ,一維數組的定義方式為類型說明符數組名 ;( A)A. 整型常量表達式 B. 表達式
8、 C. 整型常量 D. 整型表達式 18. 以下能對一維數組 a 進行正確初始化的語句是 ( C ) 。A. in a10=(0,0.0,0,0);B.int a10=; C. int a 0;D. int a10=10*1;19. 以下程序段 (C) 。x=-1; dox=x*x;while(! x);A. 是死循環 B. 循環執行二次 C. 循環執行一次 D. 有語法錯誤20. 以下關于 do-while 循環的不正確描述是 ( B ) 。A. do-while 的循環體至少執行一次B.do-while循環由 do 開始,用whileC.在 do-while循環體中,一定要有能使結束,在w
9、hilewhile( 表達式 ) 后面不能寫分號后面表達式的值變為零( 假 ) 的操作D. do-while 的循環體可以是復合語句二、是非判斷題 ( 每題 1 分,共 15 分 )1.C 語言規定,標識符中的字母一般區分大、小寫。T2.控制臺標準輸入設備一般是指鍵盤。T3.使用 while和 do-while循環時,循環變量初始化的操作應在循環語句之前處理。T4. 循環體中 continue 語句的作用是結束整個循環的執行。F5. 關系表達式的值是 0 或 1。 T6.若有說明: int a34=0,則只有元素 a00可得到初值 0。 T7.字符串作為一維數組存放在內存中。T8.字符數組中的
10、一個元素存放一個字符T。9. 字符數組中的最后一個字符必須是0 。 F10. 形參為指針變量時,實參必須是數組名。F11. 用數組名作函數參數時傳遞的是數組的值。F12. 全局變量可以被任何一個函數中的任何一個表達式使用。T13. 一個函數可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數據。14. 表達式 i+ 與 +i 在任何場合功能完全相同。15. 在賦值表達式中,賦值號左邊的變量和右邊的表達式之值的數據類型可以不相同。三、多項選擇題 ( 每題 1 分,共 5 分)1.若要求在if后一對圓跨括號中表示a 不等于 0 的關系 , 則不能正確表示這一關系的表達式為 ( ABC ).A
11、 a0B !aC a=0D aE a!=02. 選出所有合法的常量 ( CEGIJ ) 。A 3e22.5B -e-3C -.1e-1D BASICE 045F 0fdG 0xfdaLH e8I J 3.以下關于函數原型說法錯誤的是:(ADFHI)(1) 對變量的定義”和“聲明”是一回事,對函數的“定義”和“聲明”也是一回事。(2) 在聲明函數原型時,允許只寫出參數的類型,而不必寫出參數的名稱。(3) 如果在定義函數時不指定函數類型,系統會隱含指定函數類型為int型。(4) 調用一個函數時,函數名、實參個數、實參類型必須與函數原型一致。(5) 如果被調函數的定義出現在主調函數之前,可以不必加以
12、聲明。(6) 所有的函數之間可以互相調用。(7) 在 C 語言中,所有函數都是平行的,一個函數不能從屬于另一個函數,即不能嵌套定義的。(8) 如果函數沒有返回值,在定義時可以省略函數類型。(9) 在 C 語言中,任何函數的定義都不允許為空。(10)C 語言規定,實參變量對形參變量的數據傳遞是“值傳遞”。4. 請從下面關于指針的敘述中 , 選出 5 個正確的敘述。 (ABDEH)(1) 指針即地址。(2) 指針須先賦值后使用。(3) 當指針 p 指向數組 a 的首址后,由于p 和a 都能引用數組元素,所以這里p 和a 是等價的。(4)int *p表示定義了一個指向int類型數據的指針變量p。(5
13、) 數組的指針是指數組的起始地址。(6) 若有定義 int a4,*p=a,則 p+后 p 指向數組 a 所占內存的第二個字節。(7) 使用指針變量作函數參數采取的是 值傳遞 的方式。(8) 相同類型的指針可以進行減法運算。(9) 指針變量和許多變量一樣可以進行四則運算。(10) 指針 p 指向數組元素a2 ,若要其指向a4 ,執行 p=p*2 即可。5. 以下關于數組的敘述中, 5 個最確切的說法是: (BEGHI )(1) 在聲明一個數組變量時必須指定大小。(2) 必須用常量表達式來說明一個數組變量的大小。(3) 在對數組進行初始化時大括號中的數據個數必須和數組的大小相同。(4) 有變量定
14、義 int a3=0,1,2,b3; ,可以用 b=a,使數組 b 的每個元素和 a 的每個元素相等。(5) 在 C 語言中,可以將字符串作為字符數組來處理。(6)定義了字符數組 char c11;為了給它賦值,可以用 c=china; 。(7)如果有 char s15=I am a0 student;,則 strlen(s)的值為 6。(8)C 語言中,二維數組中元素排列的順序是:按行存放。(9) 在 C 語言中,不能對局部的數組變量進行初始化。(10) 在聲明時對數組進行進行初始化必須指定數組大小。四、程序運行結果題 ( 每題 4 分,共 20 分 )1. (4 分)下面程序的運行結果是
15、( ) 。 #includevoid main(void)int i;char a=Time,b=Tom;for(i=0;a!=0&b!=0;i+)if (a=b)if (a=a & a= z) printf(%c,a-32);else printf(%c,a+32);else printf(*);2. (4 分)下面程序段的運行結果是 ( ) 。i=1;s=3dos+=i+;if (s%7=0) continue;else +i; whlie(s=0 & x=3000 & x=6000 & x=10000) y=54+0.3*x;printf(%6.1f,y);4. (4 分)以下程序的運行
16、結果是 ( ) 。void main(void)int a=1,k;for(k=0;k3;k+) printf(%4d,f1(a)int f1(int x)static int z=3,y=0;y+;z+;return(x+y+z);5. (4 分)以下程序的功能是計算函數F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,請選擇填空。#include#includefloat fun1(float,float);void main(void)float x,y,z,sum;scanf(%f%f%,&x,&y,&z);sum=fun1( )+ fun1 ( );printf(
17、sum=%fn,sum);float fun1(float a,float b)float num;num=a/b;return num;五、程序填空題( 每題 2 分,共 20 分 )1. 下面程序的功能是用公式 : /6=1/(1 1)+1/(2 2)+1/(3 3)+.求 的近似值 ,直到最后一項的值小于10e-6 為止。#include #include void main(void)long i=1; pi=0;while (i*i=10e+6) pi=; i+; pi=sqrt(6.0*pi);printf(pi=%10.6fn,pi);2.下面程序的功能是把以下給定的字符按其矩陣
18、格式讀入數組 str1 中,并輸出行列號之和是 3 的數組元素。void main(void)char str143=A,b,C,d,E,f,G,h,I,j,K,i;int x,y,z;for(x=0;x1)#includeint 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
19、 ,year);else printf(%d is not ,year);printf(a leap year.n);5. 以下程序實現 : 輸入三個整數 , 按從大到小的順序進行輸出。 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型數據在內存中所占的字節數為( ) 個字節 ; 一個 double
20、型數據在內存中所占的字節數為( ) 個字節。一、單項選擇題1下面正確的字符常量是:A)“ c”B)C) WD) 2下列字符串中不能作為C+標識符使用的是:A)WHILEB) userC) _1varD) 9stars3執行語句序列的輸出結果是_。int i=0;while(i25)i+=3;couti;A)24B) 25C) 27D) 284下列符號中可以用作C+標識符的是 _ 。A)radiusB) foobarC) elseD) 3room5若 a 是 int類型變量,則表達式a=25/3%3 的值是:A) 3B)2C) 1D) 06以下敘述中不正確的是:A) 在不同的函數中可以使用相同名
21、字的變量B) 函數中的形參是局部變量C) 在一個函數內部定義的變量只在本函數范圍內有效D) 在一個函數內部定義的變量在所有函數內部有效7變量的引用,其含義是指該變量的:A值B類型C別名D地址8已知定義: char s10;則下面不表示 s1的地址的是:A s+1B*(s+1)C &s0+1D &s19通??截悩嬙旌瘮档膮凳牵篈對象B對象的成員C對象的引用D對象的指針10派生類對象的構造順序是先調用:A派生類的構造函數B基類的構造函數C內嵌對象的構造函數D友元類的構造函數二、填空題1動態多態是指在_( 1)_時才確定使用哪個_(2) _函數的方式。2友員不是類的成員,但必須在 _(3) _予以
22、聲明,它具有存取類的 _(4) _成員的特權。3 C+中 class與 struct(6) _的成員為公有的。的主要區別是在缺省訪問權限時,_( 5) _的成員為私有的,而_4若有定義語句:int a=3,b=2;,則表達式ab?a :b的值是 _(7)_。5表達式:26%3=_(8)_ , 32/5=_(9)_。6類的成員包括_(10)_ 和_(11)_ 兩種,在面向對象的術語中,前者稱為屬性、后者稱為方法。其訪問權限有三種,由符號_(12)_ 、 _(13)_ 和 _(14)_ 指定,其中具有_(15)_限的成員只有類中的成員函數才能訪問、而具有_(16)_ 權限的成員在任何函數中都可訪問
23、。權7對基類成員的初始化,必須在派生類構造函數的(17)中進行。8 C+源程序文件的擴展名是(18),頭文件的擴展名是(19)。9若n 為整型,則表達式n=(float)2/3的值是(20)。三、寫出程序的運行結果1寫出程序運行結果include #include class CRectprivate:char color10;int left;int top;int length;int width;public:CRect();CRect(char *c, int t, int lef, int len, int wid);void SetColor(char *c);void SetSi
24、ze(int l=100, int w=100);void Move(int t,int l);void Draw();CRect:CRect()strcpy(color, Black);top = 0;left = 0;length = 0;width = 0;CRect:CRect(char *c, int t, int lef, int len, int wid)strcpy(color, c);top = t;left = lef;length = len;width = wid;void CRect:SetColor(char *c)strcpy(color, c);void CRe
25、ct:SetSize(int l, int w)length=l;width = w;void CRect:Move(int t,int l)top = t;left = l;void CRect:Draw()cout 矩形左上角坐標為( left , top ) endl;cout 矩形長和寬分別為 length , width endl;cout 矩形的顏色是 color endl;void main()CRect r;r.SetColor(Red);r.Move(10,20);r.SetSize(100,200);r.Draw();r.Move(50,50);r.SetColor(Blu
26、e);r.Draw();2寫出程序運行結果#include class Aint x,y;public:A()x=0;y=0;A(int a, int b)x=a;y=b;A()if(x=y)cout x=y endl;elsecout x!=y endl;void Display()cout x= x ,y= y endl;void main()A a1, a2(2,3);a1.Display();a2.Display();3寫出程序運行結果#include class Aprivate:int n;public:A(int i)n=i;operator +()n+;operator +(i
27、nt )n+=2;void Display()cout n= n endl;void main()A a(2), b(2);a+;+b;a. Display();b. Display();4寫出程序運行結果#include int func1(int n);int func2(int n);void main()int sum;sum = func2(5);cout sum endl;int func1(int n)if(n=1)return 1;elsereturn n*func1(n-1);int func2(int n)int s = 0;for(int i=1; i=n; i+)s +
28、= func1(i);return s;四、編程(根據要求填上程序缺少的部分)1完成如下的程序,使得輸出為:1234#include #include class Aprivate:_(1)_protected:_(2)_public:A(int a, int b, int c)X=a;Y=b;Z=c;int GetX()return X;int GetY()return Y;int GetZ()return Z;class B _(3)_private:int K;public:B(int a, int b, int c, int d)_(4)_K=d;void Show()cout Get
29、X() GetY() Z K endl;void main()B b(1,2,3,4);c.Show();2在主函數中定義有 30 個元素的數組 s,函數 func1 ()的功能是將 2、 4、 6、 、 56、58、 60 分別賦給數組元素 s0 、 s1 、 s2 、 、 s27 、 s28 、 s29 。函數 func2 ()的功能是按順序將數組的每 5 個元素求平均值并存入數組 w中(即將 s0 、s1 、 s2 、 s3 、 s4 的平均值存入 w0 中, s5 、 s6 、s7 、s8 、 s9 的平均值存入 w1中, )。請填空使程序正確運行。#include #include
30、void func1(double s)int i,k;for(k=2,i=0; i 30; i+)si=k;_(5)_void func2(double s, double w)double sum;int i,k;for(k=0,i=0,sum=0; i30; i+)_(6)_if( (i+1)%5=0)wk = sum/5;_(7)_k+;void main()double s30, w6;func1(s);func2(s,w);C+程序設計試題及答案(一)答案一、單項選擇題1 C2. D3. A4. A5. B6. D7. D 8.A9. c10. b二、填空題1 執行,成員2.類中,
31、私有3.class,struct4.25.2 ,66.數據成員,函數成員7.public, private, protect,私有,公共8.cpp.h9.0.5三、寫出程序的運行結果1矩形左上角坐標為50,50矩形長和寬分別為100,100矩形的顏色是Blue2 x= 0,y=0x=2,y=3x=yx!=y3, n=3n=44, 5四、編程(根據要求填上程序缺少的部分)1. int X,Y;2. int Z; 3 public A4 : A(a,b,c)5 k+=2;6 sum += si;7 sum = 0;C+程序設計試題及答案(二)一、填空題( 20 分,每空1 分)1當使用關鍵字_(
32、1) _ 作為函數返回類型時,該函數不返回任何值。2在類中必須聲明成員函數的_( 2)_,成員函數的_( 3) _部分可以寫在類外。3如果需要在被調函數運行期間,改變主調函數中實參變量的值,則函數的形參應該是4_5_4當一個變量被聲明為另一個變量的引用時,此變量就成為被引用變量的其中一個變量值的修改, _(7)_ (會 / 不會)影響到另一個變量的值。_(6)_。此時,對5友員不是類的成員,但必須在_(8)_ 予以聲明,它具有存取類的_(9)_ 成員的特權。6如果需要在被調函數運行期間,改變主調函數中實參變量的值,則函數的形參應該是_(10)_ 類型或 _(11)_ 類型。7友員不是類的成員,
33、但必須在_(12)_ 予以聲明,它具有存取類的_(13)_ 成員的特權。8如果需要在被調函數運行期間,改變主調函數中實參變量的值,則函數的形參應該是_(14)_ 類型或 _(15)_ 類型。9. 下面程序將字符數組 a 復制到字符數組 b 中。main()char a=I am a boy.,b20;int i;for(i=_(16)_;ai!=0;i+)_(17)_;_(18)_;10下面程序的功能是計算1-3+5- 7+-99+101 的值存在s 中,請填空。#include main()int i,t=1,s=0;for(i=1;i=101;_(19)_)s=s+i*t;t=_(20)_
34、;二、判斷以下說法的正確性,正確的劃,錯誤的劃(10 分,每個題目2 分)1如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個函數自動繼承基類中虛函數的特性。2在 C+中,關鍵字class與 struct具有完全相同的作用。3若有定義:double x35;則 x 數組行下標的上限是3,下限是1 。4說明函數原型時不需要指明每個參數的類型,只需要說明每個參數的名字就可以了。5如果在一個程序塊中有兩個變量具有相同的名字,并且都有效,只是它們的作用域不同,則優先訪問作用域較大的那個變量。三、單項選擇題(30 分,每題2 分)1程序段int a,b;a=5;b=a+;co
35、ut b;的輸出應為:A)4B)5C)6D)72程序段int i,a;for(i=0;i=10;i+)a=i;cout i;的輸出應為:A)0B)9C)10D)113下列有關函數重載的敘述中,錯誤的是_。A) 函數重載就是用相同的函數名定義多個函數B) 重載函數的參數列表必須不同C) 重載函數的返回值類型必須不同D) 重載函數的參數可以帶有默認值4 int *p1,*p2,a10;p1=a;p2=&a5;則 p2-p1 的值為:A)無法確定B) 10C) 5D) 125變量的指針,其含義是指該變量的:A)值B)地址C)名D)一個標志6. 派生類的成員函數不能訪問基類的_ 。A)公有成員和保護成員B)公有成員C) 私有成員D)保護成員7數字字符0 的 ASCII 值為 48,若有以下程序void main()char a=1, b=2;cout b+ ”, ”;cout b-a endl;程序運行后的輸出結果是:A) 3,2B)50,2C)2,2D) 2,508有以下程序void main()int a33,*p,i;p=&a00;for(i=0;i9;i+)pi=i;for(i=0;i3;i+)cout a1i;程序運行后的輸出結果是:A) 012B) 123C)234D) 3459以下敘述中錯誤的是:A)對于 double 類型數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育賽事行業深度解析與未來趨勢預測
- 食品安全與飲食健康指導
- 《綜合性學習:以和為貴》教學設計
- 維修業數字化轉型-洞察及研究
- 城鄉行為差異分析-洞察及研究
- 合肥職業技術學院《社會調查理論和方法》2023-2024學年第一學期期末試卷
- 金肯職業技術學院《生成設計》2023-2024學年第一學期期末試卷
- 重慶能源職業學院《藥學服務概論》2023-2024學年第一學期期末試卷
- 山西運城農業職業技術學院《基本體操(男)》2023-2024學年第一學期期末試卷
- 皖南醫學院《日語(3)》2023-2024學年第一學期期末試卷
- 高中復讀協議書
- 2025年四川省自貢市中考物理試卷及答案
- 2025年度衛生招聘考試(財務)新版真題卷(附詳細解析)
- 2025-2030中國戊烷發泡劑市場深度解析及前景運行動態研究報告
- 2025年6月14日萍鄉市事業單位面試真題及答案解析
- 2025年環境工程考試試卷及答案
- 畢業答辯-拆裝式自走式單軌道山地果園運輸機設計
- 移植物抗宿主病分期及護理
- 2025年高考真題-語文(全國二卷) 含解析
- 2025年廬山市國有投資控股集團有限公司招聘筆試沖刺題(帶答案解析)
- 2025年天津市西青區八年級會考模擬生物試卷(含答案)
評論
0/150
提交評論