C(I)練習(xí)題題庫及答案 (一)_第1頁
C(I)練習(xí)題題庫及答案 (一)_第2頁
C(I)練習(xí)題題庫及答案 (一)_第3頁
C(I)練習(xí)題題庫及答案 (一)_第4頁
C(I)練習(xí)題題庫及答案 (一)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《高級語言程序設(shè)計(jì)(C++I)》題庫一?單

項(xiàng)選擇題(每題2分,共20分)

1.以下字符列中,合法的浮點(diǎn)型常量是:

(A)457(B)6e5.3(0e7(D)123e62.字符串常量”叭x42\\\nx\103y”的長

度是:

(A)7(B)11(015(D)16.以下運(yùn)算符中,自右向左結(jié)合的運(yùn)算符是:

(A)口(B)<=(0X=(D)?.表達(dá)式4/8*100/2.0的值是:

(A)25(B)25.0(C)0(D)0.0.設(shè)變量inta=5;以下哪個(gè)表達(dá)式計(jì)算

后,使得變量b的值不為2?

(A)b=a/2(B)b=6-(—a)(C)b=a%2(D)b=水3?3:2.設(shè)a是整型變量,不能表達(dá)

數(shù)學(xué)關(guān)系式n<a(15的C++表達(dá)式是:

(A)a>ll&&a<15(B)a=12||a=13||a=14(C)!(a<=ll)&&!(a>=15)(D)

ll<a<=14

3.以下C++代碼中,不能正確對字符串si置串值的代碼是:

(A)char*sl;cin>>sl;(B)char*sl,*s2="name";sl=s2;(C)charsi

⑸二〃name“;(D)charsi[5]=『name"};

4.一個(gè)具有6個(gè)整型指針元素的一維數(shù)組的正確定義是:

(A)int**p[6](B)int*(p)[6](C)int*p[6](D)*(*(p)[6])

5.執(zhí)行語句x=l;while(x++<7)cout〈〈'*';后輸出結(jié)果是:

(A)**(B)****(C)******(D)*******.假設(shè)用一維數(shù)組名作為調(diào)用函數(shù)時(shí)的實(shí)

參,那么傳遞給形參的是:

(A)數(shù)組首元素的地址(B)數(shù)組首元素的值(0數(shù)組元素的個(gè)數(shù)(D)

數(shù)組中全部元素的值

二.簡答題(每題2分,共20分).設(shè)整型變量X為任何一個(gè)整數(shù),表達(dá)式-

2〈X<2的值是?

1.調(diào)用函數(shù)時(shí),希望從提供的實(shí)參變量中得到函數(shù)的結(jié)果,那么對應(yīng)的形

參應(yīng)該是?

2.設(shè)有變量定義char*sD={"Beijing","Shanghai","Guangzhou”};執(zhí)行語

句cout?*(s+1)+1;輸出是?

3.表述“變量x的值等于3”和“變量y的值等于5”其中有且只有一種情

況成立的表達(dá)式是?

4.設(shè)有變量定義inta[4][3],*p=a[2];表達(dá)式p+2指向的元素是?

5.將字符串str2拷貝到字符數(shù)組strl口中,應(yīng)調(diào)用函數(shù)?

6.說明語句char*w();的含義是?

ttinclude<iostream.h>

voidprintN(intn)(if(n)

{printN(n-l);cout<<n?ends;

})

voidprint(intw){if(w)

{print(w-1);printN(w);cout<<endl;

))

voidmain(){print(5);)

1

12

123

1234

12345四.根據(jù)程序功能填空。(每空2分,共20分)

1.本程序按以下公式計(jì)算e的值,t

精度為le-6o

111

6=1H1F???HF...1!2!〃/

#include<iostrearn.h>void

main()

{doublee,t,n;e=0;

t=n=(l);while((2))

{e+=t;(3);

1.0

n=n+l.0;)

t>=lc-6

t=t./n

2.本程序由主函數(shù)輸入一字符串,

cout?e=?e?endl;

2.本程序由主函數(shù)輸入一字符串,調(diào)用函數(shù),把該字符串中的數(shù)字。?9

轉(zhuǎn)換成小寫字行a?j;所有小寫字母轉(zhuǎn)換成大寫字符.然后在主函數(shù)輸出轉(zhuǎn)換埼的字符申。

#include<iostrearn.h>#include<ctype.h>char*)

(4)voidchange(char*,voidmain()char*)

{charstrl[20],str2[20];cin>>strl;

change(strl,str2);cout?str2<<endl;

)*s2)

voidchange(char*sl,*磁1

char{while((5))

*sl

{if(*sl>=O'&&*sl〈二+,a'」0'

'9')*s2=⑹;,,,,

*sl+a-0

else*s2-toupper(*sl);(7),一

gI4-4-?oV4-4--

3.函數(shù)create從鍵盤輸入整數(shù)序.

列,以輸入0為結(jié)束。按輸入逆序建立一個(gè)以head為表頭的單向鏈表。例

如,輸入序列為123450,建立的鏈表是5432lostructnode{int

data;node*next;};

voidcreate(node*&head){node*p;

(8);p=newncdecin?p->data;

while(p->data!=0){if(head二二NULL)

(head=p;head->next=NULL;}else((9)p->next=head;

(10)head=p;)

p=newnode;cin>>p->data;

五,程序設(shè)計(jì)(第1小題6分,第2、3小題各7分,共20分)4.編寫函數(shù)輸

出以下形狀的圖形,其中構(gòu)成圖形的符號和輸出的行數(shù)通過參數(shù)傳送。

甘##

##

#期########

答案:

^include<iostream.h>#include<iomanip.h>voidprint_figure(introw,char

tag)〃行參數(shù)和符號參數(shù)

{inti;

cout<<setw(row1)<<"i<〈tag〈<endl;〃輸出第1彳丁

for(i=2;i<row;i++)〃輸出第2行到rowT行

cout?setw(row-i)?7'<<tag<<setw(2*(i-l)-l)<<'z?tag?endl;

for(i=l;i<=2*row-l;i++)cout?tag;〃輸出最后1行

cout?endl;)

voidmain(){print_figure(5,*');}.編寫一個(gè)程序,實(shí)現(xiàn)如下功能:

⑴輸入k(〈100)個(gè)整數(shù)至I」數(shù)組x[100]中;

⑵計(jì)算k個(gè)數(shù)的平均值及大于平均值的元素個(gè)數(shù)。

8.表達(dá)式newint[10]的含義是?

9.設(shè)有函數(shù)調(diào)用語句Count(a,num,max,min,average);功能是由參irax,

min,average返回整型數(shù)組a前num個(gè)元素中的最大值,最小值和平均值。

對應(yīng)的函數(shù)原型是?

10.有說明structlink{intcode;link*nexr;};link*head,*p;head為

單鏈表的頭結(jié)點(diǎn),在/head之后插入*p結(jié)點(diǎn)操作的語句是?

三.分析程序,寫輸出結(jié)果(每題5分,共20分)#include<iostreani.h>

voidmain()

{inta[10]={2,4,0,-5,10,G,-8,9,G,7);inti,s=0,count=0;

for(i=0;i<10;i++)if(a[i]>0)s+=a[i],count++;

elsecontinue;

cout?ffs=11?s<〈〃count--<<count<<endl;)#include<iostream.h>

voidfun():voidmain(){inti;for(i=l;i<5;i++)

fun();cout<<endl;

}voidfun()

{staticinta;intb=2;

cout?(a-=3,a+b)<〈'\t';)#include<iostream.h>intlcm(int

m,intn)(intr,a,b;

a=m;b=n;r=n;do{m=n;n=r;r=m%n;

}while(r);returna*b/n;

voidmain(){cout?lcm(3,7)<<?W<<lcm(4,6)?endl;}

1."include<iostream.h>voidprintNlintn){if(n){printN(n-1):

cout<<n?ends;

})

voidprint(intw){if(w)

{print(w-l);printN(w);cout?endl;}

}voidmain()

{print(5);}四.根據(jù)程序功能填空。(每空2分,共20分)

1.本程序按以下公式計(jì)算e的值,精度為le-6。

111IC-1F--?HF...

1!2!??/#include<iostream.h>

voidmainO{doublee,t,n;

e=0;t=n二(1);

while((2)){e+=t;

(3);n=n+l.0;

)cout?z,e-'<<e?endl;

2.本程序由主函數(shù)輸入一字符串,調(diào)用函數(shù),把該字符串中的數(shù)字9轉(zhuǎn)

換成小寫字母a?j;所有小寫字母轉(zhuǎn)換成大寫字符。然后在主函數(shù)輸出轉(zhuǎn)換

后的字符串。

#inc1ude<iostream.h>#include<ctype.h>

(4)voidniciinO

(charstrl[20],str2[20];cin?strl;

change(strl,str2);cout<<str2<<endl;

}voidchange(char*sl,char*s2)

{while((5)){if(*sl>=O'&&*sl<T9')

*s2=(6);else*s2=toupper(*sl);

(7)*s2八O';

)3.函數(shù)create從鍵盤輸入整數(shù)序列,以輸入0為結(jié)束。按輸入逆序建

立一個(gè)以head為表頭的單向鏈表。例如,輸入序列為123450,建

立的鏈表是5432lo

structnode{intdata;node*next;};voidcreate(node*&head)

{node*p;(8);

cin?p->data;while(p->data!=0)

{if(head二二NULL)

{head=p;head->next=NULL;}else{(9)

(10)

p=newnode;cin〉〉p-〉data;五.程序設(shè)計(jì)(第1小題6分,第2、3小題各7

分,共20分)

1.編寫函數(shù)輸出以下形狀的圖形,其中構(gòu)成圖形的符號和輸出的行數(shù)通過

參數(shù)傳送。

##

##

###########

2.編寫一個(gè)程序,實(shí)現(xiàn)如下功能:

⑴輸入k(G00)個(gè)整數(shù)到數(shù)組x[100]中;

⑵計(jì)算k個(gè)數(shù)的平均值及大于平均值的元素個(gè)數(shù)。

3.編寫一個(gè)程序,實(shí)現(xiàn)如下功能:

⑴從鍵盤輸入aopbo其中a,b為數(shù)值;op為字符,限制為+、-、

*、/o

(2)調(diào)用函數(shù)count(op,a,b),計(jì)算表達(dá)式aopb的值。由主函數(shù)輸出

結(jié)果。

《高級語言程序設(shè)計(jì)(C++I)》練習(xí)題參考答案一.單項(xiàng)

選擇題(每題2分,共2。分)

I.以下字符列中,合法的浮點(diǎn)型常量是:

(A)457(B)6e5.3(C)e7(D)123e62.字符串常量”w\x42\\\nx\103y”的長度

是:

(A)7(B)11(C)15(D)16.以下運(yùn)算符中,自右向左結(jié)合的運(yùn)算符是:

(A)□(B)<=(C)*=(D)?.表達(dá)式4/8*100/2.0的值是:

(A)25(B)25.0(00(D)0.0.設(shè)變量inta=5;以下哪個(gè)表達(dá)式計(jì)算后,

使得變量b的值不為2?

(A)b=a/2(B)b=6-(—a)(C)b=a%2(D)b=a<3?3:2

6.設(shè)a是整型變量,不能表達(dá)數(shù)學(xué)關(guān)系式的C++表達(dá)式是:

(A)a>ll&&a<15(B)a==12||a==13||a==14

(C)!(a<=ll)&&!(a>=15)(D)ll<a<=14

對C++表達(dá)式n《水15的計(jì)算:

①11(a?0或1②(K15?1或K15”1

原因:C++的邏輯判斷結(jié)果為整型值.以下C++代碼中,不能正確對字符

串si置串值的代碼是:

(A)char*sl=newchar[20];cin?sl;

(B)charsl="nanie”;〃si是字符變量,不能賦給串值

(C)charsi[5]='name";(D)charsi[]={"name"};.一個(gè)具有6個(gè)整型指

針元素的一維數(shù)組的正確定義是:

(A)int**p[6](B)int(*p)[6]

(C)int*p[6](D)*(*(p)[6])

試比擬以下幾種說明形式:

int*p;〃p是指向整型變量的指針(p是關(guān)聯(lián)類型為

整型的指針)int*pa[10]://pa是數(shù)組,元素類型是整型指針

int(*pb)[刈;〃pb是指針,指向(關(guān)聯(lián)類型)長度為10的整型數(shù)

組int*f();//f是返回整型指針的函數(shù)名

int(*f)();〃f是指針,指向(關(guān)聯(lián)類型)是返回整型

值的無參函數(shù)例:有聲明

int(*f)(intint);intmax(int,int);intmin(int,int);貝

(J:f=max;f(a,b);//等價(jià)于(*。(@,b);

max(a,b);f=min;f(a,2;"等價(jià)于(*力(a,b);

min(a,b);.執(zhí)行語句x=l;while(x++<7)cout<<';后輸出結(jié)果是:

(A)**(B)****(。******(D)*******

(x++<7)①x<7②x=x+l.假設(shè)用一維數(shù)組名作為調(diào)用函數(shù)時(shí)的實(shí)參,那么傳遞給

形參的是:

(A)數(shù)組首元素的地址⑻數(shù)組首元素的值

(0數(shù)組元素的個(gè)數(shù)(D)數(shù)組中全部元素的值二.簡答題(每題2分,共20

分)

1.設(shè)整型變量x為任何一個(gè)整數(shù),表達(dá)式-26<2的值是?1.調(diào)用函數(shù)時(shí),

希望從提供的實(shí)參變量中得到函數(shù)的結(jié)果,那么對應(yīng)的形參應(yīng)該是?

指針或引用類型參數(shù)

注意使用方法:

函數(shù)定義voidfunl(int調(diào)用

xl);intifunl(al);f〃傳數(shù)

據(jù)值參數(shù)voidfun2(int*ntun2(&a2):

x2);a2;〃指針

.設(shè)冠典也址僦v^sijing",3Shanghai","Guangzhou”};執(zhí)行

語句(q雜〈E*短)1)+1;輸出是?hanghaijnt

fun3(a3);*〃引用

迷封銅鞠聰繆數(shù)用于操a4;fun3

(a4);

Beijing\0s+1==&s[l]〃指針是二級指針

*(s+l)=&s[l][0]

Shanghai\0*(s+D+l==&s[l][1]//一級指針輸出字符

~f*(s+l)+l

指針是輸出所指串值.表述“變量X的值等于3”

Guangzhou\0

和“變量y的值等于5”其中有且只有一種

情況成立的表達(dá)式是?x=3&&y!=5||x!=3&&y=5

(x==3)!=(y==5)

5.設(shè)有變量定義inta[4][3],*p=a⑵;表達(dá)式p+2指向的元素是?

a⑵⑵

將字符串7str2拷貝到字符數(shù)組strl口中,應(yīng)調(diào)用函數(shù)?

strcpy(strl,str2)說明語句char

*w();的含義是?

函數(shù)原型。w是函數(shù)名,返回字

8.表達(dá)式new符型指針

返回首地址int[10]的含義是?分配長度為10啜跚內(nèi)%o][i]

a[0][2]

a[l][0]a[l][2]

P—a[2][0]a⑵⑴a⑵⑵<

a[3][0]a[3][l]a[3][2]

分配堆要用指針記錄地址

int*p=newint[10],*q;

木P=10;p[l]=20;〃對動(dòng)態(tài)數(shù)組的兩種訪問方式

*q=10;q[0]<2;”錯(cuò)誤,指針沒有關(guān)聯(lián)對象設(shè)有函數(shù)調(diào)用語句Count(a,

num,max,min,average);功能是由參數(shù)max,ITin,average返回整型數(shù)組a前

num個(gè)元素中的最大值,最小值和平均值。對應(yīng)的函數(shù)原型是?

voidCount(int[],int,int&,int&,doable&);假設(shè)調(diào)用語句為Count

(a,num,&max,&min,&average);

⑴結(jié)點(diǎn)插在表頭如何操作?p->next=head:head二p;

⑵結(jié)點(diǎn)插在表尾如何操作?

q-head;while(q->next)q=q->next;q->next=p;p-)next-NULL;

⑶遍歷鏈表,輸出結(jié)點(diǎn)值:

q二head;while(q->next){cout<<q->code;q=q->next;}

(4)刪除一個(gè)結(jié)點(diǎn)*(q->next)如何操作?

t=q->next;q->next=t->next;deletet;

三.分析程序,寫輸出結(jié)果(每造5分,塊20分)

1.求>0的元素和;>0的元素個(gè)數(shù)。

#include<iostream.h>voidmain()

{inta[10]={2,4,0,-5,10,6,-8,9,6,7);

inti,s=0,count=0;

for(i=0;i<10;i++)if(a[i]>0)s+=a[i],count++;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論