期未復(fù)習(xí)模擬習(xí)題及答案_第1頁(yè)
期未復(fù)習(xí)模擬習(xí)題及答案_第2頁(yè)
期未復(fù)習(xí)模擬習(xí)題及答案_第3頁(yè)
期未復(fù)習(xí)模擬習(xí)題及答案_第4頁(yè)
期未復(fù)習(xí)模擬習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、期未復(fù)習(xí)模擬習(xí)題及答案一、選擇題1、當(dāng)執(zhí)行以下程序段時(shí) ( B ) A)循環(huán)體將執(zhí)行一次 B)循環(huán)體將執(zhí)行兩次 C)循環(huán)體將執(zhí)行無(wú)限次 D)系統(tǒng)將提示有語(yǔ)法錯(cuò)誤 x=-1; do x=x+1; while(!x); 2、設(shè)有int a =10,11,12,*p=&a0;則執(zhí)行完*p+;*p+=1;后a0,a1,a2的值依次是 ( C ) A.10,11,12 B.11,12,12 C.10,12,12 D.11,11,123、在C+語(yǔ)言程序中( B ) (A) 函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套 (B) 函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套 (C) 函數(shù)的定義和函數(shù)的調(diào)用

2、均不可以嵌套 (D) 函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套 4、以下敘述中不正確的是( 都正確 ) (A)在函數(shù)中,通過(guò)return語(yǔ)句傳回函數(shù)值 (B)在函數(shù)中,可以有多條return語(yǔ)句(C)在C+中,main后的一對(duì)圓括號(hào)中也可以帶有形參 5、執(zhí)行語(yǔ)句:cout<<strlen(”abctdefg”); 后,顯示的值為( C ) A、11 B、10 C、9 C、86、下列各個(gè)錯(cuò)誤中,屬于編譯錯(cuò)誤的是( D )。 A、數(shù)組下標(biāo)超界 B、"= ="誤寫(xiě)為"=" C、死循環(huán) D、括號(hào)不配對(duì)7、要為字符型變量a賦初值,下列語(yǔ)句中哪一個(gè)是正確的( A

3、 )。 A、char a='3' B、char a="3" C、char a=%; D、char a=*;8、對(duì)C程序在作邏輯運(yùn)算時(shí)判斷操作數(shù)真、假的表述,下列哪一個(gè)是正確的( A )。 A、0為假,非0為真 B、只有1為真 C、-1為假,1為真 C、0為真,非0為假9、將整型變量a、b中的最大值為變量c賦值,下列語(yǔ)句中正確的是( B )。 A、c= =(a>b)? a:b; B、c=(a>b)? a:b; C、c=if(a>b)a else b; D、(a>b)? c=a:c=b;10、下列語(yǔ)句中,哪一個(gè)可以按照從z到a的順序輸出2

4、6個(gè)小寫(xiě)英文字母( D )。 A、for(i='z' i>='a' i+) cout<<i; B、for(i='z' i>='a' cout<<i-); C、for(i='z' i>='a' i+) cout<<i ; D、for(i='z' i>='a' -i ) cout<<i ;11、下列各語(yǔ)句定義了數(shù)組,其中哪一個(gè)是正確的( D )。 A、int a5,b2,3; B、char no(30

5、); C、int x; D、int x5=1,2,3;12、假如指針P已經(jīng)指向某個(gè)整型變量x,則&*P相當(dāng)于( C )。 A、x B、 * P C、 &x D、 * * p13、數(shù)組定義為"int a55;", 引用"*(a+1)+3"表示( B )。 A、a10+3 B、 a數(shù)組第1行第3列元素的地址 C、a01+3 D、 a數(shù)組第1行第3列元素的值14、與定義int *p4等價(jià)的是( C ) (A)int p4; (B)int * p; (C)int * (p4) ; (D)int (*p)4;15、C+語(yǔ)言可執(zhí)行程序的開(kāi)始執(zhí)行點(diǎn)是(

6、 C ) (A) 程序中第一條可執(zhí)行語(yǔ)言 (B) 程序中第一個(gè)函數(shù) (C) 程序中的main函數(shù) (D) 包含文件中的第一個(gè)函數(shù) 16、以下字符中,不正確的C語(yǔ)言轉(zhuǎn)義字符是: (D) (A) ' t' (B) ' 011' (C) ' n' (D) ' 018'17、假設(shè)所有變量均為整型,表達(dá)式 (a=10,b=5,ab? a+:b+,a+b)的值是(C) (A)7 (B)8 (C)16 (D)2 18、程序運(yùn)行輸出了錯(cuò)誤的結(jié)果,可以排除下列哪一個(gè)因素( C )。 A算法錯(cuò)誤 B、運(yùn)行時(shí)輸入數(shù)據(jù)錯(cuò)誤 C、未通過(guò)編譯 D、系統(tǒng)資源配

7、置不當(dāng)19、邏輯運(yùn)算符中,運(yùn)算優(yōu)先級(jí)按從高到低依次為( D )。 A、&&, !, | B、|,&&, ! C、&&, |, ! D、!,&&, |20、下列各語(yǔ)句序列判別變量x, y的大小,若x<y則交換它們的值,其中正確的是( B)。 A、if (x<y) x=y;y=x; B、if (x<y) t=x;x=y; y=t; C、if ( x<y) x=y;y=x; D if (x<y) t=x;x=y; y=t;21、假如指針p1已經(jīng)指向某個(gè)整型變量,要使指針p2也指向同一個(gè)變量,哪一個(gè)語(yǔ)句是正確

8、的( C )。 A、p2=&p1; B、p2=*p1; C、p2=&*p1; D、p2=*p1;22、數(shù)組定義為"ingt a45;", 引用"a1+3"表示( A )。 A、a數(shù)組第1行第3列元素的地址 B、a數(shù)組第1行第3列元素的值 C、a數(shù)組第4行的首地址 D、a數(shù)組第4列的首地址 23、以下敘述中正確的是( A )A、 a是實(shí)型變量,C允許進(jìn)行以下賦值a=10,因此可以這樣說(shuō):實(shí)型變量中允許存放整型值。B、 在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式。C、 執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將改變

9、,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?。D、 已有a=3,b=5。當(dāng)執(zhí)行了表達(dá)式a=b,b=a后,已使a中的值為5,b中的值為3。24、以下敘述中正確的是( C )A、 在C程序中無(wú)論是整數(shù)還是實(shí)數(shù),只要在允許的范圍內(nèi)都能準(zhǔn)確無(wú)誤的表示。B、 C程序有主函數(shù)組成。C、 C程序由函數(shù)組成。D、 C程序由函數(shù)和過(guò)程組成。25、若變量已正確定義,要將a和b中的數(shù)進(jìn)行交換,下面不正確的語(yǔ)句組是( C )A、a=a+b,b=a-b,a=a-b; B、t=a,a=b,b=t;C、a=t,t=b,b=a; C、t=b;b=a;a=t;26、為表示關(guān)系x>=y>=z,應(yīng)使用的C語(yǔ)言表達(dá)式

10、是( A )A、(x>=y)&&(y>=z) B、(x>=y)AND(y>=x)C、(x>=y>=z) C、(x>=y)&(y>=z)27、以下函數(shù)的類(lèi)型F是( C )A、與參數(shù)x的類(lèi)型相同 B、無(wú)法確定 C、void類(lèi)型 D、int 類(lèi)型F ff(float x) cout<<x*x;28、下列各語(yǔ)句定義了數(shù)組,其中哪一個(gè)是不正確的( D )。A、int s_15,s_243; B、float x, a45;C、char string ="hello!" D、int x (10),y(10

11、);29、假設(shè)所有變量均為整型,表達(dá)式 (a=2,b=5,ab? a+:b+,a+b)的值是( A ) (A)7 (B)8 (C)9 (D)2 30、將整型變量a、b中的最大值為變量c賦值,下列語(yǔ)句中正確的是( B )。A、c= =(a>b)? a:b; B、c=(a>b)? a:b;C、c=if(a>b)a else b; D、(a>b)? c=a:c=b;二、填空題1、設(shè)int x=17,y=5; 執(zhí)行語(yǔ)句x* =x+ +/ - -y后x的值為 69 。2、已知直角三角形的直角邊長(zhǎng)a,b,計(jì)算其面積的算術(shù)表達(dá)式為 double(a*b)/2 。3、計(jì)算a- b的絕對(duì)

12、值與a+b的絕對(duì)值之乘積的算術(shù)表達(dá)式為 abs(a-b)*abs(a+b) 。4、判斷變量a是變量a、b、c中最大值的邏輯表達(dá)式為 a>=b&&b>=c 。5、判斷整型變量m是否能被n整除的邏輯表達(dá)式為 m%n=0 。6、求解賦值表達(dá)式x= (a = 3, a* a), 表達(dá)式值、x、a的值依次為 9 , 3 。7、若a=13, b=25, c= -17, 條件表達(dá)式(y= (a<b) ? a:b)< c)? y: c的值為: -17 。8、整型變量m的值為31,語(yǔ)句printf("m =%x",m);的輸出結(jié)果為 m=1F 。9、定

13、義a為共有5個(gè)元素的一維整型數(shù)組、同時(shí)定義p為指向a數(shù)組地址的指針變量的語(yǔ)句為: int a5,(*P)5=&a; 。10、當(dāng)a=5,b=4,c=2時(shí),表達(dá)式a>b!=c的值是 1 。11、語(yǔ)句"printf("%x,%o",16,12);"的輸出結(jié)果是 10,14 。12、設(shè) a=12 則表達(dá)式a+=a和a*=2運(yùn)行后a 的值分別為 48 。13、有定義: static int a3=1,2,3,4,0,4,8,9,10,則cout<<*(*(a+1)+2);語(yǔ)句的輸出結(jié)果為 4 。14、若已知a=10,b=15,c=1,d=

14、2,表達(dá)式a*b&&c的運(yùn)算結(jié)果 1 。15、設(shè)x和y均為int型變量,則以下語(yǔ)句:x+=y;y=x-y;x-=y;的功能是交換x與y的值。16、定義int a=12,b=12;則語(yǔ)句 cout<<(-a,+b);的輸出結(jié)果是: 13 。 17、執(zhí)行語(yǔ)句:for(i=1;i+<4;)后;變量i的值是 5 。18、在C+語(yǔ)言中,指針變量的值增1,表示指針變量指向下一個(gè)_內(nèi)存單元_,指針變量中具體增加的字節(jié)數(shù)由系統(tǒng)自動(dòng)根據(jù)指針變量的_所指向的數(shù)據(jù)類(lèi)型_決定。19、語(yǔ)句cout<<strlen(t0x85xffn);的輸出結(jié)果是_5_ 。20、假設(shè)所有變

15、量均為整型,表達(dá)式 (a=2,b=5,ab? a+:b+,a-b)的值是 -4 。 21、在C+語(yǔ)言中,能代表邏輯值"真"的是 非0 。22、為表示關(guān)系x>=y>=z,應(yīng)使用C語(yǔ)言表達(dá)式 x>=y&&y>=z 。23、算術(shù)表達(dá)式,對(duì)應(yīng)的C+表達(dá)式是(-b+sqrt(b*b-4*a*c)/(2*a)。24、typedef char nameTable10NN,把nameTable 定義為具有10行的字符串?dāng)?shù)組類(lèi)型。25、P為一指針變量,將P所指向單元的數(shù)據(jù)增1并作為表達(dá)式的值的表達(dá)式為+*P。26、已知數(shù)組a定義為:int a46;,p

16、是一個(gè)一維數(shù)組;要使下標(biāo)訪問(wèn)pij與aij等效,p應(yīng)定義為 int * p4=a0,a1,a2,a3; 27、假定AB為一個(gè)類(lèi),則執(zhí)行“AB a10”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為10次。28、當(dāng)一個(gè)類(lèi)對(duì)象被撤消時(shí)將自動(dòng)調(diào)用該類(lèi)的析構(gòu)系數(shù)。29、假定AB為一個(gè)類(lèi),則執(zhí)行“AB *p”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為0次。30、假定一個(gè)構(gòu)造類(lèi)型定義為“struct Dint a; unionint b;doouble c;D*d3;”,該類(lèi)型的大小為24字節(jié)。三、給出下列程序運(yùn)行后的結(jié)果(每小題5分,共20分)1、 以下程序的輸出結(jié)果為 -1 。main() int x=2;

17、while (x-); cout<<x<<endl;2、以下程序的運(yùn)行結(jié)果是 6 。 main() int m=5; if (m+ > 5) cout<<m<<endl; else cout<< m<<endl;3、當(dāng)執(zhí)行以下程序段后,i的值為 5 、j的值為 4 、k的值為 6 。int a,b,c,d,i,j,k;a=10; b=c=d=5; i=j=k=0;for( ; a>b; +b) i+;while (a>+c) j+;do k+; while (a>d+);4、以下程序的輸出結(jié)果是 8

18、 。main() int k=2,m=4,n=6; int *pk=&k, *pm=&m, *p; *(p=&n)=*pk*(*pm); cout<<n<<endl;5、以下程序的輸出結(jié)果是 4 。fun1(int a, int b) int c;a+=a; b+=b;c=fun2 ( a, b );return c*c;fun2( int a, int b) int c; c=a*b%3; return c;main() int x=11,y=19; cout<<fun1(x,y) <<endl;6、以下程序的輸出結(jié)果是

19、 z=7 , r=21 。 func(int a, int b) int c; c=a+b; return c;main() int x=6,y=7,z=8,r; r=func(x-,y+,x+y),z-); cout<<z<<” , “<<r<<endl;7、以下程序的輸出結(jié)果為 2 3 main() int aa33=2,4,6,i,*p=&aa00;for(i=0;i<2;i+) if(i=0) aaii+1=*p+1; else +p;cout<<*p;cout<<endl;8、下列程序運(yùn)行的輸出結(jié)果

20、: 7 , 5 。 #define X 5 #define Y X+1 #define Z Y*X/2 main() int a; a=Y; cout<<Z<<” “<<-a<<endl; 9、下列程序運(yùn)行的輸出結(jié)果:constructor! 7constructor! 5#include <iostream.h>class Aint a,b;public:A(int aa=0,int bb=0):a(aa),b(bb)cout<<"constructor! "<<a+b<<en

21、dl;void main()A x(2,5),y5,*p=&x;10、下列程序運(yùn)行的輸出結(jié)果: abc in #include <iostream.h>#include <string.h>void main( ) char s110=“abc” char s220=“inter”; int k=0,j=0; while (s2k) k+; while(s1j) s2-k=s1+j; cout<<s1<<endl; cout<<s2<<endl;四、寫(xiě)出下列每個(gè)函數(shù)的功能(每小題5分,共20分)1、findmax

22、(int s , int t) int k,p; for(p=0, k=p; p<t; p+) if (sp>sk) k=p; return k;答: 找出具有長(zhǎng)度p的整型數(shù)組s 中最大數(shù)的下標(biāo)并返回2、#include <iostream.h>#include <stdio.h>#include <ctype.h>void main()int num26=0, i;char c;cin>>c;while(c!='')if (isupper(c) numc-'A'+=1;cin>>c;for

23、( i=0; i<26; i+)if (numi) cout<< char(i+'A')<<numi<<endl;答 : 程序的功能是輸入若干個(gè)字符,統(tǒng)計(jì)每個(gè)大寫(xiě)字母的出現(xiàn)頻度,若大寫(xiě)字母在文中不出現(xiàn),則不統(tǒng)計(jì),程序以輸入”結(jié)束。3、#include "string.h"void fun(char str) int i,j,k; for(i=0,j=strlen(str)-1; i<j; i+,j-) k=stri; stri=strj; strj=k; 答:把一個(gè)字符串中的字符排列順序倒過(guò)來(lái)。4、#inclu

24、de<iostream.h>void main() for (int i=0;i<6;i+) int j; for (j=0;j<5-i;j+) cout<<' ' for (j=0;j<10;j+) cout<<'*' cout<<endl; 答:打印以星號(hào)組成的平行四邊形,共打印6行,每行10個(gè)星號(hào);結(jié)果如下: 5、#include<iomanip.h>long fact(long n) if(n<=1L) return n; return fact(n-1)+fact(n-

25、2); void main() cout<<fact(4)<<endl;答:輸出斐波那契數(shù)列的第四項(xiàng)的值 結(jié)果是3 ; 注斐波那契數(shù)列為 0,1,1,2,3,5,8,13,21, ;開(kāi)始為第0項(xiàng),每一項(xiàng)是前二項(xiàng)之和。6、#include <iostream.h>class compint a; int b;public:comp(int x=0,int y=0):a(x),b(y) double operator*(comp &x)double c;c=a*x.a+b*x.b;return c;void input(int x,int y)a=x;b

26、=y;void output()cout<<'('<<a<<','<<b<<")"<<endl;void main()comp x(10,20),y;double z;y.input(2,3);z=x*y; x.output();y.output();cout<<z<<endl;答:程序的輸出為:(10,20)(2,3)80.0000007、#include <iostream.h>#define SIZE 10void main()i

27、nt dataSIZE;int m;cout<<"請(qǐng)輸入"<<SIZE<<"個(gè)整數(shù):"for(m=0;m<SIZE;m+)cin>>datam;int j=0,k=0;for(int i=1;i<SIZE;i+)if(datai>dataj)j=i;else if(datai<datak)k=i;if(k>0)int d=data0;data0=datak;datak=d;if(j!=1)int d=data1;data1=dataj;dataj=d;for (m=0;m<

28、;SIZE;m+)cout<<datam<<" "答:程序輸入10個(gè)整數(shù),若最小的數(shù)不在第0個(gè)位置,則與第0個(gè)位置的數(shù)交換位置,使得最小的數(shù)在第0個(gè)位置;若最大的數(shù)不在第1個(gè)位置,則與第1個(gè)位置的數(shù)交換位置,使得最大的數(shù)在第1個(gè)位置;最后輸出排列后的10個(gè)數(shù)。8、#include<iostream.h>void main() int n=1,d=2; double s=0.0,s0; while (s0=double(n)/d)>=0.000001) s+=s0; n+=2; d+=d; cout<<“合計(jì):”<&

29、lt;s<<endl; 答:計(jì)算 1/2+3/4+5/8+7/16+9/32+(2n-1)/2n 的值,精度準(zhǔn)確到當(dāng)項(xiàng)值小于0.000001時(shí),裁去余項(xiàng)99、#include<iomanip.h>#define SIZE 25 void main() int a45=2,3,-5,0,2,12,-1,27,8,10,91,22,-32,1,9,1,2,3,4,5; int b45=25,13,65,0,5,-2,0,18,10,45,53,33,3,9,0,7,61,26,-37,-1; int c45; int i, j; for(i=0;i<4;i+) for

30、(j=0;j<5;j+) cij=aij+bij; for(i=0;i<4;i+) cout<<endl; for(j=0;j<5;j+) cout<<setw(5)<<cij; 答:計(jì)算矩陣CAB,即二維數(shù)組c的每個(gè)元素為二維數(shù)組a和二維數(shù)組b的對(duì)應(yīng)位置的元素之和。最后輸出矩陣C(每個(gè)元素顯示5個(gè)字符的寬度,共4行5列)五、 編程題1、 輸入一行數(shù)字字符(以回車(chē)符結(jié)束輸入),請(qǐng)用數(shù)組元素作為計(jì)數(shù)器來(lái)統(tǒng)計(jì)每個(gè)數(shù)字字符的個(gè)數(shù),并輸出統(tǒng)計(jì)結(jié)果。用下標(biāo)為0的元素統(tǒng)計(jì)字符0的個(gè)數(shù),下標(biāo)為1的元素統(tǒng)計(jì)字符1的個(gè)數(shù),。#include<iostr

31、eam.h>main()int num10=0, i;char c;cin>>c;while(c!='n') numc-'0'+=1;cin>>c;for( i=0; i<10; i+)if (numi) cout<< char(i+'0')<<numi<<endl;2、下面findmax函數(shù)將計(jì)算數(shù)組中的最大元素及其下標(biāo)值和地址值,請(qǐng)編寫(xiě)*findmax()函數(shù)。 #include<iostream.h> *findmax(int *s, int t, int

32、*k)int p; for(p=0, *k=p; p<t; p+) if (sp>s*k) *k=p; return s+*k;main() int a10=12,23,34,45,56,67,78,89,11,22,k,*add; add=findmax(a,10,&k); cout<<ak<<k<<add<<endl;注意與第四大題第1小題的區(qū)別3、編寫(xiě)程序,求135799101的值。 #include<iostream.h>main()int I,s=0;for (I=0;I<=50;I+)if (I/2=0) s+=2*I+1;else s-=2*I+1;cout <<”計(jì)算結(jié)果為:”<<s<<endl;4、以下程序?qū)⒆址械牡趍個(gè)字符開(kāi)始的全部字符復(fù)制成另一個(gè)字符串,在主函數(shù)中輸入字符串及m的值并輸出復(fù)制結(jié)果,在被調(diào)用函數(shù)copystr中完成復(fù)制。請(qǐng)編寫(xiě)copystr函數(shù)。#include<iostream.h> #include<string.h> main() int m;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論