C++程序設(shè)計學習通超星期末考試答案章節(jié)答案2024年_第1頁
C++程序設(shè)計學習通超星期末考試答案章節(jié)答案2024年_第2頁
C++程序設(shè)計學習通超星期末考試答案章節(jié)答案2024年_第3頁
C++程序設(shè)計學習通超星期末考試答案章節(jié)答案2024年_第4頁
C++程序設(shè)計學習通超星期末考試答案章節(jié)答案2024年_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++程序設(shè)計學習通超星期末考試章節(jié)答案2024年下列選項中,屬于變量是:

答案:銀行卡號下列選項中,屬于常量是:

答案:人的出生日期下列選項中,不合法的標識符是:

答案:int下列選項中,合法的標識符是:

答案:IntC語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符

答案:必須為字母或下劃線一個C程序是由______。

答案:函數(shù)組成C語言規(guī)定:在一個源程序中,main函數(shù)的位置______。

答案:可以任意以下敘述不正確的是______。

答案:在C程序中,注釋說明只能位于一條語句的后面以下敘述正確的是______

答案:C語言本身沒有輸入輸出語句一個C程序的執(zhí)行是從______。

答案:本程序的main函數(shù)開始,到main函數(shù)結(jié)束在下列選項中()是istream類的對象。

答案:cin下列程序運行結(jié)果為______。#includeusingnamespacestd;classS{public:

~S()

{

cout<<"S"<<"\t";

}};charfun0(){

Ss1;

throw('T');

return

'0';}intmain(){

try

{

cout<

}

catch(charc)

{

cout<

}

return0;}

答案:S

T

關(guān)于虛函數(shù)的描述中,()是正確的。

答案:基類中說明了虛函數(shù)后,派生類中與其對應(yīng)的函數(shù)可以不必說明為虛函數(shù)下列關(guān)于異常的敘述錯誤的是

答案:編譯錯屬于異常,可以拋出二進制文件流fdat讀指針移到文件頭的語句是()。

答案:fdat.seekg(0,ios::beg);如果一個類中至少有一個純虛函數(shù),那么就稱該類為().

答案:抽象類多態(tài)性是通過()實現(xiàn)的。

答案:虛函數(shù)下列流類中可以用于處理文件的是()。

答案:fstream關(guān)于虛函數(shù)的描述中,()是正確的。

答案:虛函數(shù)是一個成員函數(shù)對虛函數(shù)的調(diào)用(

)。

答案:不一定使用動態(tài)聯(lián)編能實現(xiàn)刪除文件數(shù)據(jù)的語句是()。

答案:ofstreamfs(“date.dat“,ios::trunc);抽象類指的是(

)。

答案:有純虛函數(shù)的類要求打開文件D:\file.dat,并能夠?qū)懭霐?shù)據(jù),正確的語句是()。

答案:fstreaminfile(“D:\\file.dat”,ios::in|ios::out);若有定義inta[3][4];則與元素a[0][0]不等價的表達式是。

答案:*a設(shè)有說明intb[4][4],以下不能等價表示元素b[3][3]的是。

答案:(*(*(b+3))+3)若有定義inta[2][3];則對a數(shù)組的第i行第j列元素值的正確引用是。

答案:*(*(a+i)+j)設(shè)有說明:inta[4][4]={1,2,3,4,5,6,7,8,9,10},*p=a[1],(*q)[4]=a;則以下不能訪問數(shù)值為7的數(shù)組元素的表達式是。

答案:*(a+1)+2在下列表達式中,與下標引用A[i][j]不等效的是。

答案:*(A+i+j)設(shè)s和t分別為指向兩個長度相同的字符數(shù)組的指針,則循環(huán)語句while();可以正確實現(xiàn)字符串t到s的完整復(fù)制功能。

答案:*s++=*t++若有定義chara[]="Itismine",*p="Itismine",以下敘述中錯誤的是。

答案:p不能再指向別的字符串常量若有說明char*s[]={"234","5678","9012","3456","7890"};則表達式*s[1]>*s[3]比較的是。

答案:'5'和'3'定義一維數(shù)組inta[5],*p;則下面描述錯誤的是

。

答案:表達式a=a+1是合法的一個C++程序的執(zhí)行是從_____。

答案:本程序的main函數(shù)開始,到main函數(shù)結(jié)束以下敘述不正確的是_____。

答案:在C++程序中,注釋說明只能位于一條語句的后面一個C++程序是由_____個源程序文件(.cpp)組成。

答案:1或多要把高級語言編寫的源程序轉(zhuǎn)換為目標程序,需要使用_____。

答案:編譯程序下列關(guān)于異常的敘述錯誤的是______。

答案:編譯錯屬于異常,可以拋出關(guān)于虛函數(shù)的描述中,

是正確的。

答案:虛函數(shù)是一個成員函數(shù)下列敘述錯誤的是(??)。

答案:throw語句拋出的異常可以不被捕獲抽象類指的是。

答案:有純虛函數(shù)的類關(guān)于純虛函數(shù)和抽象類的描述中,___是錯誤的。

答案:一個基類中說明有純虛函數(shù),該基類的派生類一定不再是抽象類下列程序運行結(jié)果為______。#includeusingnamespacestd;classS{public:

~S()

{

cout<<"S"<<"\t";

}};charfun0(){

Ss1;

throw('T');

return

'0';}intmain(){

try

{

cout<

}

catch(charc)

{

cout<

}

return0;}

答案:S

T是一個在基類中說明的虛函數(shù),它在該基類中沒有定義,但要求任何派生類都必須定義自己的版本。

答案:純虛函數(shù)關(guān)于純虛函數(shù)和抽象類的描述中,_____是錯誤的。

答案:一個基類中說明有純虛函數(shù),該基類的派生類一定不再是抽象類在C++的集成環(huán)境中,系統(tǒng)約定C++源程序文件缺省的擴展名是()

答案:cpp8位二進制補碼表示的帶符號數(shù)10000000B和11111111B的十進制數(shù)分別是()

答案:-128和-1若[A]原=10111101,[B]反=10111101,[C]補=10111101,以下結(jié)論正確的是()

答案:A最大十六進制數(shù)88H,可表示成下面幾種形式,錯誤的表示為()

答案:8位二進制數(shù)-8的補碼表示BCD數(shù)64H代表的真值為()

答案:64十進制數(shù)9874轉(zhuǎn)換成BCD數(shù)為()

答案:9874H若一個數(shù)的BCD編碼為00101001,則該數(shù)與()相等。

答案:29D下列數(shù)中最小的是()

答案:(101001)2十進制數(shù)27.25轉(zhuǎn)換成十六進制數(shù)為()

答案:1B.4H十進制數(shù)66轉(zhuǎn)換成二進制數(shù)為()

答案:01000010/star3/origin/ca6342ebb3cb127032c9530af4b4414d.png

答案:(1已知n是一個四位正整數(shù)。a、b、c、d均是int型變量,分別表示n的個位、十位、百位和千位數(shù)字。請寫出a、b、c、d的表達式。

答案:n%10

n/10%10

n/100%10

n/1000%10以下程序運行時輸出結(jié)果是_______。#includeusingnamespacestd;intmain(){

chara=256;

intd=a+1;

cout<答案:1若有定義“inta=0,b=0,c=0;”,則執(zhí)行表達式“a++&&(b+=a)||++c”后,變量a、b、c的值各是多少?

答案:101C++關(guān)系表達式中的關(guān)系成立時,則該關(guān)系表達式的值為

答案:trueor1若有聲明“inti=7;floatx=3.1416;doubley=3;”,則表達式“i+'a'*x+i/y”值的類型是_____型。

答案:double若有聲明“chara=0;intb=1;floatc=2;doubled=3;”,則表達式“c=a+b+c+d”值的類型為_____。

答案:float已知有聲明“intx=1,y=2;”,則執(zhí)行表達式“(x>y)&&(--x>0)”后x的值為__________。

答案:1若有聲明“inta=30,b=7;”,則表達式“!a+a%b”的值是__________。

答案:2表達式“(a=4*5,b=a*2),b-a,a+=2”的值是______。

答案:22若變量x、y已正確定義并賦值,以下符合C++語法的表達式是_______。

答案:++x,y=x--設(shè)有定義:intx=2;以下表達式中,值不為6的是_______。

答案:2*x,x+=2若a是數(shù)值類型,則邏輯表達式“(a==1)||(a!=1)”的值是_______。

答案:1整型變量a的值為10,b的值為3,則執(zhí)行表達式b%=b++||a++后兩變量的值為_______。

答案:a=10,b=0設(shè)有定義inta=5,b=4;則邏輯表達式a<=6&&a+b>8的值為

答案:true表達式x==0&&y!=0||x!=0&&y==0等效于

。

答案:x*y==0&&x+y!=0;以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是_______。

答案:x%2==0設(shè)有定義:intk=0;以下選項的四個表達式中與其他三個表達式不相同的表達式是_______。

答案:k+1若有定義語句:intx=10;則表達式“x-=x+x”的值為_______。

答案:-10設(shè)變量已正確定義并賦值,以下正確的表達式是_______。

答案:a=1+(b=c=4);表達式“(int)((double)9/2)-9%2”的值是_______。

答案:3若有定義語句“inti=2,j=3;”,表達式i/j的結(jié)果是_______。

答案:0已知floatx=3.6,y=5.0;則表達式(int)x+y的值為

。

答案:8.0要為字符型變量賦初值,下列語句中正確的是:

。

答案:char

a='3';下列不是C++中合法的常量的是

答案:0786下面的常數(shù)表示中,不正確的是:

。

答案:'103'下列字符串中不能作為C++標識符使用的是_______。

答案:9stars下列選項中,正確的C++標識符是________。

答案:_group_6下列符號中不可作為用戶標識符是

答案:char下面有四個用戶定義的C++語言標識符,正確的是:

。

答案:_53設(shè)計一個求兩正整數(shù)m和n的最大公約數(shù)的程序。m和n的值由鍵盤輸入。

答案:#includeusingnamespacestd;intmain(){

intm,n;

cout<<"請輸入兩個整數(shù):

";

cin>>m>>n;

for(inti=m;i>=1;i--)

if(m%i==0&&n%i==0)

break;

cout<編程求滿足以下條件的三位整數(shù)n,它除以11所得到的商等于n的各位數(shù)字的平方和,且其中至少有兩位數(shù)字相同。例如,131除以11的商為11,各位數(shù)字的平方和為11,所以它是滿足條件的三位數(shù)。

答案:#includeusingnamespacestd;intmain(){

inta,b,c;

for(inti=100;i<1000;i++)

{

a=i/100;

b=i/10%10;

c=i%10;

if(i/11==a*a+b*b+c*c&&(a==b||b==c||a==c))

cout</star3/origin/3f1ad89bc4a71f0e833b8e1ec604c26b.png

答案:#includeusingnamespacestd;intmain(){

inta,b,c;

for(inti=100;i<1000;i++)

{

a=i/100;

b=i/10%10;

c=i%10;

if(i==a*a*a+b*b*b+c*c*c)

cout</star3/origin/7edc07b232211d64cf05757444ccdb57.png

答案:2+22+222+2222+22222(此時n=5)。#includeusingnamespacestd;intmain(){

intn,a;

doubles=0,t=0;

cout<<"請輸入a和n:

";

cin>>a>>n;

for(inti=1;i<=n;i++)

{

t=t*10+a;

s=s+t;

}

cout<<"s="<編程計算s=1!+2!+3!+...+n!,n的值從鍵盤輸入,要求輸出n和s的值。

答案:#includeusingnamespacestd;intmain(){

intn;

doublet=1,s=0;

cout<<"請輸入n:

";

cin>>n;

for(inti=1;i<=n;i++)

{

t=t*i;

s=s+t;

}

cout<<"n="<設(shè)計一個程序,要求:對從鍵盤輸入的一個不多于5位的正整數(shù),能輸出它的位數(shù)并輸出它的各位數(shù)字之和。

答案:#includeusingnamespacestd;intmain(){

intx,count=0,sum=0;

cout<<"請輸入x:

";

cin>>x;

cout</star3/origin/2c6172db81272ba1ecf2a95d8748600b.png

答案:#includeusingnamespacestd;intmain(){

doublex,y;

cout<<"請輸入x:

";

cin>>x;

if(x<0)

y=x*x;

elseif(x>=0&&x<1)

y=2.5*x-1;

else

y=3*x+1;

cout<<"x="<以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;

intmain(){

inti=5;

do

{

switch(i%2)

{

case0:

i--;break;

case1:

i--;continue;

}

i--;

cout<0);

cout<<'\n';

return0;}

答案:20從鍵盤輸入abcz↙時,則下列程序的輸出是___________。

#include

usingnamespacestd;intmain(){

char

ch;

cin>>ch;

while(ch!='z')

{

switch(ch)

{

case'a':

case'b':

cout<<'1'<>ch;

}

return0;}

答案:1//

1//

3//default以下程序的執(zhí)行結(jié)果是________。#includeusingnamespacestd;intmain(){

intk=5,n=0;

do

{

switch(k)

{

case1:

case3:n+=1;k--;break;

default:n=0;k--;

case2:

case4:n+=2;

k--;break;

}

cout<0&&n<5);

return0;}

答案:235以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;intmain(){

inta=1,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!=2||c--!=3)

cout<答案:1

3

3以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;

intmain(){

intx=1,y=2,z=3;

x+=y+=z;

cout<<(x答案:5有如下程序段:inti=1;while(1){

i++;if(i==10)

break;if(i%2==0)

cout<<'*';}運行這個程序段輸出字段*的個數(shù)是_______。

答案:4在循環(huán)語句體中使用break和continue語句的作用是

答案:結(jié)束循環(huán)和結(jié)束本次循環(huán)以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=1;k<3;k++);cout<<'*';運行后輸出結(jié)果是_______。

答案:*有如下程序段:charb='a',c='A';for(inti=0;i<6;i++)if(i%2)

cout<<(char)(i+b);elsecout<<(char)(i+c);運行后輸出結(jié)果是_______。

答案:AbCdEf有如下程序段:inty=9;for(;y>0;y--)if(y%3==0)

cout<<--y;運行后輸出結(jié)果是_______。

答案:852下列循環(huán)語句中有語法錯誤的是_________。

答案:for(1)cout<<'*';程序段“intx=3;do{cout<答案:1有如下程序段:inti=5;while(i=0){cout<<'*';i--;}運行時輸出“*”的個數(shù)是_______。

答案:0執(zhí)行下列語句序列:inti=0;while(i<25)i+=3;cout<答案:27以下選項中與“if(a==1)a=b;elsea++;”語句功能不同的switch語句是_______。

答案:switch(a==1){case0:a=b;break;case1:a++;}若有定義語句“intx=4,y=5;”,則表達式“y>x++?x--:y++”的值是_______。

答案:5若有定義“inta=1,b=2,c=3,d=4;”,則表達式a>b?a:c>d?c:d的值為_______。

答案:4對下面三條語句(其中s1和s2為內(nèi)嵌語句),正確的論斷是_______。if(a)s1;elses2;

//①if(a==0)s2;elses1;

//②if(a!=0)s1;elses2;

//③

答案:三者相互等價以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;

inta=0;voidfun(){

inta=10;

cout<<(::a-=--a)<<'\n';}intmain(){

inta=10;

for(inti=-10;i答案:-9//-18以下程序運行后的輸出結(jié)果是__________。#includeusingnamespacestd;inta;intm(inta){

staticints;

return(++s)+(--a);}intmain(){

inta=2;

cout<答案:3以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;

inta=2;intmain(){

intb=3;

if(++a||b--)cout<<"first:"<答案:first:3

3//second:5

15//third:18

15以下程序驗證一個猜想:任意一個十進制正整數(shù)與其反序數(shù)相加后得到一個新的正整數(shù),重復(fù)該步驟最終可得到一個回文數(shù)。所謂反序數(shù),是指按原數(shù)從右向左讀所得到的數(shù)。例如,123的反序數(shù)是321。所謂回文數(shù),是指一個數(shù)從左向右讀的值與從右向左讀的值相等。例如,12321、234432都是回文數(shù)。#includeusingnamespacestd;intinvert(int

x){

int

s;

for(s=0;x>0;_________)

s=s*10+x%10;

returns;}intmain(){

int

n,c=0;

cout<<"inputanumber:";

cin>>n;

while(___________)

{

cout<<"inputanumber:";

cin>>n;

}

n=n+invert(n);

c++;

while(______________)

{

n=n+invert(n);

c++;

}

cout<答案:x=x/10

n<=0

n!=invert(n/star3/origin/95dce8ebb89126b3644910fe9684cc0e.png

答案:cmath

fabs(term以下程序的執(zhí)行結(jié)果是________。#includeusingnamespacestd;intfunc(intx){

if(x<100)returnx%10;

else

returnfunc(x/100)*10+x%10;}intmain(){

cout<<"Theresultis:"<<(func(132645))<答案:theresultis:365以下程序的執(zhí)行結(jié)果是________。

#include

usingnamespacestd;

intfun(intm){

inti;

if(m==2||m==3)return1;

if(m<2||m%2==0)return0;

for(i=3;i答案:2357在程序中,每種變量都有各自的有效作用范圍和生存期,其中________在整個程序運行過程中都存在,但只在函數(shù)調(diào)用時有效。

答案:靜態(tài)局部變量下列函數(shù)原型聲明中,錯誤的是________。

答案:intfunction(intm=3,intn);有如下程序:#includeusingnamespacestd;intf(intx){

inty;if(x==0||x==1)return3;y=x*x-f(x-2);returny;}intmain(){

cout<答案:6有如下的函數(shù)定義:voidfunc(inta,int&b){a++;b++;}若執(zhí)行代碼段:intx=0,y=1;func(x,y);則func函數(shù)執(zhí)行后,變量x和y的值分別為________。

答案:0和2有如下程序:#includeusingnamespacestd;intf(intx){

returnx*x+1;

}intmain(){

inta,b;for(a=0,b=0;a<3;a++){

b=b+f(a);cout<<(char)(b+'A');}return0;}運行后輸出結(jié)果是_______。

答案:BDI已知有函數(shù)f的定義如下:intf(inta,intb){

if(a答案:3已知函數(shù)f的定義如下:voidf(){

cout<<"That'sgreat!";

}則調(diào)用f函數(shù)的正確形式是_________。

答案:f();對于一個完整可運行的VC++源程序,下列說法中正確的是________。

答案:必須有且只能有一個main()主函數(shù)分別設(shè)計兩個函數(shù),一個實現(xiàn)整數(shù)的正序輸出,另一個則實現(xiàn)反序輸出。如輸人一個整數(shù)3456,則輸出3456和6543。算法提示:重復(fù)除以10求余,直到商為0為止。如3456/10的余數(shù)為6,商為345;345/10的余數(shù)為5,商為34;34/10的余數(shù)為4,商為3;3/10的余數(shù)為3,商為0,至此結(jié)束。先輸出余數(shù),后遞歸,則為反序輸出;先遞歸,后輸出余數(shù),則為正序輸出。

答案:#includeusingnamespacestd;voidfun1(intn){

if(n==0)

return;

else

fun1(n/10);

cout<>n;

fun1(n);

cout</star3/origin/9b6cf05f21fd74c5c8319d546857f8ba.png

答案:#includeusingnamespacestd;double

hermite(doublex,intn){

doubley;

if(n==0)

y=1;

elseif(n==1)

y=2*x;

else

y=2*x*hermite(x,n-1)-2*(n-1)*hermite(x,n-2);

returny;}intmain(){

doublex,y;

intn;

cout<<"請輸入n和x:";

cin>>n>>x;

y=hermite(x,n);

cout<<"y="<用函數(shù)實現(xiàn)求兩正整數(shù)的最大公約數(shù)的功能,并在主函數(shù)中調(diào)用該函數(shù)求出兩正整數(shù)的最小公倍數(shù)。

答案:#includeusingnamespacestd;intgys(inta,intb){

for(inti=a;i>=1;i--)

if(a%i==0&&b%i==0)

returni;

returni;}intmain(){

inta,b,t;

cout<<"請輸入兩個正整數(shù):";

cin>>a>>b;

t=gys(a,b);

cout<回文數(shù)是指其各位數(shù)字左右對稱的整數(shù),例如12321是回文數(shù)。定義一個判斷回文數(shù)的函數(shù),并打印1000~2000之間的所有回文數(shù)。

答案:#includeusingnamespacestd;intfun(intx){

ints=0;

inti=x;

while(i)

{

s=s*10+i%10;

i=i/10;

}

if(s==x)

return1;

elsereturn0;}intmain(){

intk=0;

for(inti=1000;i<=2000;i++)

if(fun(i))

{

cout<設(shè)計一個程序,求出100~200之間的所有素數(shù),要求每行輸出5個素數(shù)。判斷一個整數(shù)是否為素數(shù)用一個函數(shù)來實現(xiàn)。

答案:#includeusingnamespacestd;intprime(intx){

for(inti=2;i<=x/2;i++)

if(x%i==0)

return0;

return1;}intmain(){

intk=0;

for(inti=100;i<=200;i++)

if(prime(i))

{

cout<設(shè)計一個程序,要求輸入三個整數(shù),能求出其中的最大數(shù)并輸出。程序中必須用函數(shù)實現(xiàn)求兩數(shù)中大數(shù)的功能。

答案:#includeusingnamespacestd;intmax(inta,intb){

returna>b?a:b;}intmain(){

inta,b,c,maxnumber;

cout<<"請輸入三個整數(shù):";

cin>>a>>b>>c;

maxnumber=max(a,b);

maxnumber=max(maxnumber,c);

cout<以下程序的運行結(jié)果是_______。#includeusingnamespacestd;intx=1;intf(int);intmain(){

cout<答案:3以下程序的運行結(jié)果是________。#include#define

MAX(a,b)(a>b?a:b)+1usingnamespacestd;intmain(){

inti=6,j=8,k;

k=MAX(i,j);

cout<答案:9若有宏定義“#define

max(a,b)

(a>b?a:b)”,則表達式“max(2,max(3,1))”的值是_____。

答案:3設(shè)有如下的宏定義:#define

MYSWAP(z,x,y){

z=x;

x=y;

y=z;}以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁?。floata=5,b=16,c;MYSWAP(_________,________,

a

);

答案:c

b以下敘述中正確的是_______。

答案:在一個程序中,允許使用任意數(shù)量的#include命令行以下程序的運行結(jié)果是_______。#include#defineN

5#defineM

N+1#definef(x)

(x*M)usingnamespacestd;intmain(){

inti1,i2;i1=f(2);i2=f(1+1);cout<答案:11

7以下程序的執(zhí)行結(jié)果是_______。#include#definePLUS(X,Y)

X+Yusingnamespacestd;intmain(){

intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);cout<<"SUM="<答案:SUM=12以下程序的運行結(jié)果是_____。#include#define

MIN(x,y)

(x)<(y)?(x):(y)usingnamespacestd;intmain(){

inti=10,j=15,k;k=10*MIN(i,j);cout<答案:15設(shè)有宏定義:#definef(x)(-x*2)執(zhí)行語句:

cout<答案:5已知某程序如下:#includefloatp=1.5;#define

p

2.5usingnamespacestd;intmain(){cout<答案:double型常量編寫一個宏MAX(a,b,c),求a,b,c中的最大值。a,b,c從鍵盤輸入。

答案:#includeusingnamespacestd;#definemax(a,b,c)

(a>b?a:b)>c?(a>b?a:b):cintmain(){

inta,b,c;

intmaxnumber;

cout<<"請輸入三個數(shù):

";

cin>>a>>b>>c;

maxnumber=max(a,b,c);

cout<<"最大數(shù)為:"<22.[其它]如果一個數(shù)及該數(shù)的反序數(shù)都是素數(shù),則稱該數(shù)為可逆素數(shù)。例如17是素數(shù),71也是素數(shù),因此17便是一個可逆素數(shù)。以下程序中,函數(shù)f在[m,n]區(qū)間內(nèi)查找所有可逆素數(shù)并將這些素數(shù)依次保存到a指向的數(shù)組中,函數(shù)返回a數(shù)組中可逆素數(shù)的數(shù)目。#include#includeusingnamespacestd;intp(intn){

inti,j=sqrt((double)n);

for(i=2;i<=j;i++)

if(________)return0;

return1;}intconvert(intn){

intm=0;

while(n>0)

{

m=__________;n=n/10;

}

returnm;}intf(intm,intn,inta[]){

inti,j=0;

for(i=m;i<=n;i++)

if(p(i)&&__________)

a[j++]=i;

returnj;}intmain(){

inti,n,a[50];

n=f(50,150,a);

for(i=0;i答案:!(n%i)或n%i==0

m*10+n%10

p(convert(i))/star3/origin/7efaaf7f07d14ddf6a7a3fe9553423e8.png

答案:n/10

i以下程序的輸出是______。#include#includeusingnamespacestd;intconvert(chars1[],chars2[]){

inti=0,j,s;

chartab[8][4]={"000","001","010","011","100","101","110","111"};

for(i=0,j=0;s1[i]!='\0';i++,j=j+3)

strcpy(&s2[j],tab[s1[i]-'0']);

for(i=0,s=0;i答案:13

001101以下程序的輸出是______。#includeusingnamespacestd;intmain(){

charch[]={"652ab31"};

inti,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=s*10+ch[i]-'0';

cout<答案:62以下程序的輸出是______。#include#includeusingnamespacestd;intmain(){

charb[30];

strcpy(b,"GH");

strcpy(&b[1],"DEF");

strcpy(&b[2],"ABC");

cout<答案:GDABC以下程序的輸出是______。#includeusingnamespacestd;constintN=3;voidfun(inta[][N],intb[]){

inti,j;

for(i=0;i答案:3,6,9,以下程序的輸出是______。#includeusingnamespacestd;voidfun(inta[],intn){

inti,t;

for(i=0;i答案:321678以下程序的輸出是______。#includeusingnamespacestd;intmain(){

inta[]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{

case0:switch(a[i]%2)

{

case0:a[i]++;break;

case1:a[i]--;

}break;

case1:a[i]=0;

}

for(i=0;i<4;i++)

cout<答案:3040以下程序的輸出是______。#includeusingnamespacestd;intmain(){

inti,k,x[10]={1,2,3,4,5,6,7,8,9,10},y[3]={0};

for(i=0;i<10;i++)

{

k=x[i]%3;y[k]+=x[i];

}

cout<答案:182215有如下語句序列:“charstr[10];cin>>str;”,當從鍵盤輸入"Ilovethisgame"時,str中的字符串是______。

答案:"I"以下能正確定義字符串的語句是_____。

答案:charstr[]="\0";若有聲明語句"inta[10],b[3][3];",則以下對數(shù)組元素的賦值操作中,不會出現(xiàn)越界訪問的是____。

答案:b[0][3]=0若有定義ints[][3]={1,2,3,4,5,6,7};則s數(shù)組第一維的大小是_____。

答案:3下列程序的功能是_______。#includeusingnamespacestd;intmain(){

intj,k,e,t,a[]={4,0,6,2,64,1};for(j=0;j<5;j++){

t=j;for(k=j;k<6;k++)

if(a[k]>a[t])

t=k;e=a[t];a[t]=a[j];a[j]=e;}for(k=0;k<6;k++)cout<答案:對數(shù)組進行選擇法排序(降序)以下程序的執(zhí)行結(jié)果是_______。#includeusingnamespacestd;intmain(){

ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)

c[s[i]]++;for(i=1;i<5;i++)

cout<答案:4332下列一維數(shù)組的聲明中正確的是_______。

答案:inta[10+1]={0};若有定義inta[10];則對a數(shù)組元素的正確引用是_____。

答案:a[10-10]編寫一個程序:從鍵盤輸入一個整型數(shù),把這個整型數(shù)的各位數(shù)按降序輸出。例輸入整型數(shù)34125,輸出:54321。

答案:#includeusingnamespacestd;voidsort(inta[],intn){

inti,j,k;

intt;

for(i=0;i>x;

while(x)

{

a[i]=x%10;

x=x/10;

i++;

}

n=i;

sort(a,n);

for(i=0;i用篩選取法求出2~200之間的所有素數(shù)。

答案:#includeusingnamespacestd;intmain(){

inti,j,k;

inta[1000];

for(i=2;i<=200;i++)

a[i]=i;

for(i=2;i<=200;i++)

for(j=2;i*j<=200;j++)

a[i*j]=0;

for(i=2,k=0;i<=200;i++)

if(a[i]!=0)

{

cout<編寫一個函數(shù):void

strcat(char

a[],char

b[]);將b中的字符串拼接到數(shù)組a中的字符串的后面,構(gòu)成一個字符串。(要求不使用C++的庫函數(shù)strcat())。

答案:#includeusingnamespacestd;strcat(chara[],charb[]){

inti=0,j=0;

while(a[i])

i++;

while(a[i++]=b[j++]);}intmain(){

chara[80],b[80];

cout<<"請輸入兩個字符串:";

cin.getline(a,80);

cin.getline(b,80);

cout<<"字符串a(chǎn)為:"<編寫一個函數(shù):void

strcpy(char

a[],char

b[]);將b中的字符串拷貝到數(shù)組a中。(要求不使用C++的庫函數(shù)strcpy())。

答案:#includeusingnamespacestd;voidstrcpy(chara[],charb[]){

inti=0,j=0;

while(a[i++]=b[j++]);}intmain(){

chara[80],b[80];

cout<<"請輸入一個字符串:";

cin.getline(b,80);

strcpy(a,b);

cout<<"字符串b為:"<編寫一個函數(shù)把一個10進制數(shù)轉(zhuǎn)換成16進制數(shù)。

答案:#include#includeusingnamespacestd;voidchange(intn,charstr[]){

inti=0,j;

intx;

charch;

while(n)

{

x=n%16;

if(x<10)

str[i]=x+'0';

else

str[i]=x-10+'A';

n=n/16;

i++;

}

str[i]='\0';

for(i=0,j=strlen(str)-1;i>n;

change(n,str);

cout<從鍵盤將一個字符串輸入到字符數(shù)組中,按反序存放。如,輸入"Abcd

e",則輸出"e

dcbA"。

答案:#include#includeusingnamespacestd;intmain(){

charstr[80],ch;

inti,j;

cout<<"請輸入一行字符串:";

cin.getline(str,80);

intn=strlen(str)-1;

for(i=0,j=n;i從鍵盤輸入一個字符串,刪除字符串中的所有空格后輸出這個字符串。

答案:#include#includeusingnamespacestd;intmain(){

charstr[80];

inti,j;

cout<<"請輸入一行帶空格的字符串:";

cin.getline(str,80);

i=0;

while(str[i])

{

if(str[i]=='')

{

j=i;

while(str[j])

{

str[j]=str[j+1];

j++;

}

i--;

}

i++;

}

cout<<"刪除空格的字符串為:";

cout<找出二維數(shù)組中的鞍點,即該位置上的元素在該行上最大、在該列上最小。也可能沒有鞍點。

答案:#includeusingnamespacestd;intmain(){

inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

inti,j,k,mini,maxj,flag=0,max;

for(i=0;i<4;i++)

{

max=a[i][0];

maxj=0;

for(j=1;j<4;j++)

{

if(maxa[k][maxj])

{

max=a[k][maxj];

mini=k;

}

}

if(mini==i)

{

flag=1;

cout<<"鞍點是:"<<"a["<輸出以下的楊輝三角形(要求輸出8行)1

1

1

1

2

1

1

3

3

1

1

4

6

4

1

1

5

10

10

5

1

……

答案:#includeusingnamespacestd;intmain(){

inta[10][10];

inti,j;

for(i=0;i<8;i++)

{

a[i][0]=1;

a[i][i]=1;

}

for(i=2;i<8;i++)

for(j=1;j求一個4×4矩陣兩對角線元素之和。

答案:#includeusingnamespacestd;intmain(){

inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

inti,j,s=0;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

cout<答案:4以下程序運行時輸出結(jié)果是________。#includeusingnamespacestd;voidfun(int*p1,int

*p2){

intt;

if(p1答案:624351以下程序輸出結(jié)果為_________。#includeusingnamespacestd;voidf(inta,int*b){

a++;b++;(*b)++;

}intmain(){

int

x[2]={4,4};

f(x[0],&x[0]);

cout<答案:45已知:“inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];”,則以下能夠正確表示數(shù)組元素a[1][2]的表達式是________。

答案:*(*(a+1)+2)有以下程序:intadd(inta,intb){

returna+b;

}intmain(){

intk,(*f)(int,int),a=5,b=10;f=add;……}則以下函數(shù)調(diào)用語句錯誤的是______。

答案:k=*f(a,b);下列程序的輸出是

。#include#includeusingnamespacestd;intmain(){

char

p1[20]="abcd",*p2="ABCD";char

str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));cout<答案:xycdBCD已知:charb[5],*p=b;則正確的賦值語句是_____________。

答案:p="abcd";假定已有聲明"chara[30],*p=a;",則下列語句中能將字符串"ThisisaCprogram."正確地保存到數(shù)組a中的語句是_____________。

答案:strcpy(p,"ThisisaCprogram.");設(shè)已有聲明"intx[]={1,2,3,4,5,6},*p=&x[2];

",則值為3的表達式是_____。

答案:*(p++)以下程序的運行結(jié)果是_______。#includeusingnamespacestd;voidfun(intn,int*s){

intf;if(n==1)*s=n+1;else

{

fun(n-1,&f);*s=f;

}}intmain(){

intx=0;fun(4,&x);cout<答案:2以下程序的運行結(jié)果是_______。#includeusingnamespacestd;voidf(int*p,int*q){

p=p+1;*q=*q+1;}intmain(){

intm=1,n=2,*r=&n;f(r,&n);cout<答案:1,3以下程序的執(zhí)行結(jié)果是_______。#includeusingnamespacestd;voidww(int*x){

cout<<++*x<答案:25若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是________。

答案:*p++;下列程序用于對輸入的一批整數(shù)建立先進后出的鏈表,即先輸入的放在表尾,后輸入的放在表頭,由表頭至表尾輸出的次序正好與輸入的次序相反。輸入的一批整數(shù)以9999作為結(jié)束,但鏈表中不包含此數(shù)。請完善程序。#include#defineNULL0usingnamespacestd;structnode{

intdata;

structnode*link;};intmain(){

structnode*p,*q;

intm,n=1;

q=NULL;

cout<<"輸入第"<>m;

while(____)

{

p=____;

p->data=m;

p->link=____;

q=p;

cout<<"輸入第"<>m;

}

n-=2;

while(n>0)

{

cout<<"第"<data<<'\n';

____;

}

return0;}

答案:【1】m!=9999;【2】newnode;【3】q;【4】q=q->link以下程序運行后輸出結(jié)果是_________。#includeusingnamespacestd;structnode{

charni;

structnode*next;};intmain(){

node*head,*p;

intn=48;

head=NULL;

do

{

p=newnode;

p->ni=n%8+48;

p->next=head;

head=p;

n=n/8;

}while(n!=0);

p=head;

while(p!=NULL)

{

cout<ni;

p=p->next;

}

return0;}

答案:60已知:struct{

intx;

char*y;}tab[2]={{1,"ab"},{2,"cd"}},*p=tab;則表達式*p->y的結(jié)果為_______,表達式*(++p)->y的結(jié)果為______。

答案:'a'

'c'下面給出的是使用typedef定義一個新數(shù)據(jù)類型的4項工作,如果要正確定義一個新的數(shù)據(jù)類型,進行這四項工作的順序應(yīng)當是______。1.把變量名換成新類型名

2.按定義變量的方法寫出定義體3.用新類型名定義變量

4.在最前面加上關(guān)鍵字typedef

答案:2,1,4,3若定義enumcolor{red=2,yellow,blue,white};那么blue的值為___________。

答案:4設(shè)有以下的結(jié)構(gòu)體說明和變量定義,且如圖8.29所示,指針p指向變量one,指針q指向變量two,則不能將結(jié)點two連接到結(jié)點one之后的語句是_____。structnode{

intn;structnode*next;}one,two,*p=&one,*q=&two;

答案:p.next=&two;設(shè)有以下程序段,則表達式的值不為100的是_______。structst{

inta;

int*b;};voidmain(){

intm1[]={10,100},m2[]={100,200};st

*p,x[]={99,m1,100,m2};p=x;……}

答案:(++p)->b若有以下定義和語句:structstudent{

intnum,age;};studentstu[3]={{1001,20},{1002,19},{1003,21;student*p=stu;則以下結(jié)果不是1002的是_______。

答案:(++stu)->num設(shè)有以下說明語句structstu{

inta;floatb;}stutype;則下面敘述中錯誤的是_______。

答案:stutype是用戶定義的結(jié)構(gòu)體類型名以下程序的輸出結(jié)果是______。#includeusingnamespacestd;classSample{

intx,y;public:

voidSetxy(inti=0,intj=0)

{

x=i;y=j;

}

voidcopy(Sample&A)

{

if(this==&A)

{

cout<<"不能將一個對象復(fù)制到自己本身"<答案:x=0

y=0x=10

y=20不能將一個對象復(fù)制到自己本身x=10

y=20以下程序的輸出結(jié)果是______。#includeusingnamespacestd;classArr{

inta[10],len;public:

voidSetArr(int*p,intn=10)

{

len=n;

for(inti=0;i答案:17//10//7閱讀程序,指出以下選項正確的是______。#include#includeusingnamespacestd;classCPoint{doublex,y;public:voidSetxy(doubledx,doubledy)

//設(shè)置坐標{

x=dx;

y=dy;}doubleRadius()

//取極坐標半徑{

returnsqrt(x*x+y*y);

}};intmain(){

CPointp;doublex,y;cin>>x>>y;p.Setxy(x,y);cout<答案:在main函數(shù)中不能直接用“p.x+=5;p.y+=6;”對對象中的成員x,y賦值有如下類定義classMyClass{intx;public:intGetX(){returnx;}voidSetX(intxx){x=xx;}inty;};已知obj是類MyClass的對象,下列語句中違反類成員訪問控制權(quán)限的是____。

答案:obj.x若MyClass是一個類名,且有如下語句序列:MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面語句序列所定義的對象個數(shù)是______。

答案:2有如下類聲明:classFoo{intbar;};則Foo類的成員bar是______。

答案:私有數(shù)據(jù)成員下列有關(guān)類和對象的說法中,正確的是

。

答案:類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似輸入一行字符,建立字符鏈表,輸入一個字符,查找該字符在鏈表中的位置(用序號表示)。程序應(yīng)考慮查找失敗的情況,而查找成功時,要輸出該字符的所有出現(xiàn)的位置。

答案:#include#includeusingnamespacestd;structnode{

charch;

structnode*next;};node*create(char*str){

node*head,*p1,*p2;

head=NULL;

p1=p2=head;

while(*str)

{

p1=newnode;

p1->ch=*str;

if(head==NULL)

head=p1;

else

p2->next=p1;

p2=p1;

str++;

}

p2->next=NULL;

returnhead;}intsearch(node*head,charch,inta[]){

inti=0,k=0;

node*p=head;

while(p)

{

k++;

if(p->ch==ch)

a[++i]=k;

p=p->next;

}

returni;}intmain(){

node*head=NULL;

charstr[100],ch;

inta[100];

cout<<"請輸入一行字符串:";

cin.getline(str,100);

head=create(str);

//建立鏈表

cout<<"請輸入一個字符:";

cin>>ch;

intn=search(head,ch,a);//查找字符,返回出現(xiàn)次數(shù),a中為出現(xiàn)位置

if(n==0)

cout<<"字符串"<定義一個結(jié)構(gòu)體表示平面上的一個坐標點。編程輸入兩個坐標點,然后輸出兩點之間的距離。

答案:#include#includeusingnamespacestd;structpoint{

doublex;

doubley;};intmain(){

pointp1,p2;

doubledis;

cout<<"請輸入平面上第一個點的坐標x和y:

";

cin>>p1.x>>p1.y;

cout<<"請輸入平面上第二個點的坐標x和y:

";

cin>>p2.x>>p2.y;

dis=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));

cout<<"點("<下列程序的輸出結(jié)果是_______。#include#includeusingnamespacestd;classSTR{

char*p;public:

STR(char*s){

p=newchar[strlen(s)+1];strcpy(p,s);}

voidmove(char&t1,char&t2){chart;t=t1;t1=t2;t2=t;}

voidfun();

voidprint(){cout<='0'&&*(p+i)<='9'))

{

j=i;

while(j>0&&(*(p+j-1)>='0'&&*(p+j-1)<='9'))

{

move(*(p+j-1),*(p+j));

j--;

}

}

i++;

}}intmain(){

STRstr("3AB45C");

str.fun();

str.print();

return0;}

答案:ABC345下列程序的輸出結(jié)果是_______。#includeusingnamespacestd;classCon{

charID;public:

chargetID()

{

returnID;}

Con(){

ID='A';

cout<<1;}

Con(charid){ID=id;

cout<<2;}

Con(Con&c){ID=c.getID();cout<<3;}};voidshow(Conc){

cout<答案:13A23B下列程序的輸出結(jié)果是_______。#include#includeusingnamespacestd;classX{

char*a;public:

X(char*aa="abc")

{

a=newchar[strlen(aa)+1];

strcpy(a,aa);

}

~X(){cout<答案:abc1234//1234被釋放

//abc被釋放以下程序的運行結(jié)果是_______。#includeusingnamespacestd;classONE{

intc;public:

ONE():c(0){cout<<1;}

ONE(intn):c(n){cout<<2;}};classTWO{

ONEone1;

ONEone2;public:

TWO(intm):one2(m){cout<<3;}};intmain(){

TWOt(4);

return0;}

答案:123以下程序的運行結(jié)果是_______。#includeusingnamespacestd;classXCF{

inta;public:

XCF(intaa=0):a(aa){cout<<"1";}

XCF(XCF&x){a=x.a;cout<<"2";}

~XCF(){cout<Geta();

deletepd;

return0;}

答案:1218855以下程序的運行結(jié)果是_______。#include#includeusingnamespacestd;classXCD{

char*a;

intb;public:

XCD(char*aa,intbb)

{

a=newchar[strlen(aa)+1];

strcpy(a,aa);

b=bb;

}

char*Geta(){returna;}

intGetb(){returnb;}};intmain(){

char*p1="abcd",*p2="weirong";

intd1=6,d2=8;

XCDx(p1,d1),y(p2,d2);

cout<答案:12以下程序的運行結(jié)果是_______。#includeusingnamespacestd;classSample{

intn;public:

Sample(){}

Sample(intm){n=m;}

Samplesquare()

{

n=2*n;

return*this;

}

voiddisp()

{

cout<<"n="<答案:n=20以下程序的運行結(jié)果是_______。#includeusingnamespacestd;classTest{public:

Test(){}

Test(Test&t){cout<<1;}};Testfun(Test&u){Testt=u;returnt;}intmain(){

Testx,y;

x=fun(y

溫馨提示

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

評論

0/150

提交評論