南京信息工程大學(xué)C++期中試卷_第1頁(yè)
南京信息工程大學(xué)C++期中試卷_第2頁(yè)
南京信息工程大學(xué)C++期中試卷_第3頁(yè)
南京信息工程大學(xué)C++期中試卷_第4頁(yè)
南京信息工程大學(xué)C++期中試卷_第5頁(yè)
已閱讀5頁(yè),還剩44頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

南京信息工程大學(xué)濱江學(xué)院

2011—2012學(xué)年第一學(xué)期

面向?qū)ο蟪绦蛟O(shè)計(jì)課程試卷(期中卷)

注意:1、本課程為—必修(表明必修或選修),學(xué)時(shí)為51,學(xué)分為3

2、本試卷共10頁(yè):考試時(shí)間120分鐘:出卷時(shí)間:2011年11月

3、姓名、學(xué)號(hào)等必須寫在指定地方;考試時(shí)間:2011年11月—日

4、本考卷適用專業(yè)年級(jí):網(wǎng)絡(luò)工程、實(shí)驗(yàn)班任課教師:李振宏

題號(hào)一二三四五七八九十十一十二總分

以上內(nèi)容

得分

為教師填

閱卷入寫)

業(yè)年級(jí)班級(jí)

學(xué)號(hào)姓名

請(qǐng)仔細(xì)閱讀以下內(nèi)容:

1、考生必須遵守考試紀(jì)律,本人已經(jīng)閱讀并清楚了解《南京信息工程大學(xué)濱江學(xué)

院考試紀(jì)律規(guī)定》。

2、所有考試材料不得帶離考場(chǎng)。

3、考生進(jìn)入考場(chǎng)后,須將學(xué)生證或身份證放在座位的左上角。

4、考場(chǎng)內(nèi)不許抽煙、吃食物、喝飲料。

5、考生不得將書籍、作業(yè)、筆記、草稿紙帶入考場(chǎng),主考教師允許帶入的除外。

6、考試過程中,不允許考生使用通訊工具。

7、開考15分鐘后不允許考生進(jìn)入考場(chǎng),考試進(jìn)行30分鐘后方可離場(chǎng)。

8、考生之間不得進(jìn)行任何形式的信息交流。

9、除非被允許,否則考生交卷后才能離開座位。

一、選擇題(每2.5分,共75分)

(1)卜列關(guān)于C++關(guān)鍵字的說法中正確的是D

A)關(guān)鍵字是用戶為程序中各種需要命名的“元素”所起的名字

B)關(guān)鍵字是對(duì)程序中的數(shù)據(jù)進(jìn)行操作的一類單詞

C)關(guān)鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞

D)關(guān)鍵字是C++中預(yù)先定義并實(shí)現(xiàn)一定功能的一類單詞

(2)下列關(guān)于C++函數(shù)的描述中正確的是B

A)主函數(shù)是程序的入口,它由用戶定義的函數(shù)調(diào)用

B)函數(shù)在調(diào)用之前必須先被聲明

C)每個(gè)用戶定義的函數(shù)只能被其他函數(shù)調(diào)用一次

D)函數(shù)是C++中面向?qū)ο蟪绦蛟O(shè)計(jì)框架的基本組成單元

(3)C++語(yǔ)言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是A

A)%=B)/C)=D)<=

(4)在C++語(yǔ)言中,退格符是D

A)\nB)\tC)\fD)\b

(5)有如下程序段D

#include<iostream.h>

voidmain()

{inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B');

cout?x;}

執(zhí)行該程序段后,x的值為

A)tureB)falseC)0D)1

(6)#include<iostream.h>

voidmain()

{intn=9;

while(n>6){n—;

cout?n;}}

該程序的輸出結(jié)果是B

A)987B)876C)8765D)9876

(7)如下程序的執(zhí)行結(jié)果是A

#include<iostream.h>

voidmain()

{staticinta[]={1,7,3,9,5,11);

int*p=a;

*(p+3)+=4;

cout?*p?,',M?*(p+3);}

A)1,13B)1,16C)3,13D)1,14

(8)下面說明不正確的是D

A)chara[10]二"china”;

B)chara[10],*p=a;p=Mchina";

C)char*a;a=Hchina";

D)chara[10],*p;p=a="chinan;

(9)F列程序的輸出結(jié)果是C

#include<iostream.h>

voidmain()

{doubled=3.2;

intx,y;

x=1.2;

y=(x+3.8)/5.0;

cout?y*d?endl;}

A)3B)3.2C)0D)3.07

(10)有以下程序

#include<iostream.h>

intf(intn)

{if(n==l)return1;

elsereturnf(n-1)+1;}

voidmain()

{intij=0;

for(i=l;i<3;i++)j+=f(i);

cout?j;}

程序運(yùn)行后的輸出結(jié)果是B

A)4B)3C)2D)1

(IDC++語(yǔ)言中類的定義的結(jié)束聲明的符號(hào)是A

A)}B),C);D){

(12)關(guān)于類定義中的語(yǔ)句錯(cuò)誤的是B

classA

{inti;

Aa;

A*b;

char*ch;};

A)inti;B)Aa;C)A*b;D)char*ch;

(13)執(zhí)行下面的程序段后,變量k中的值為A

#include<iostream.h>

voidmain()

{intk=3,s[2];

s[0]=k;k=sL1]*10;

cout?k;}

A)不定值B)33C)30D)10

(14)關(guān)于語(yǔ)句

#include<iostream>

usingnamespacestd;

voidmain()

{cout?100.8989663?'';

cout?fixed?100.8989663?'';

cout?scientific?100.8989663?'r;}

的輸出結(jié)果為A

A)100.899100.8989661.008990e+002

B)100.8989663100.8989661.008990e+002

C)100.899100.8989661.008989e+002

D)100.899100.89896631.008989e+002

(15)以下程序的結(jié)果是D

#include<iostream.h>

voidmain()

{char*p="abcdefgh",*r;

long*q;

q=(long*)p;

q++;

r=(char*)q;

cout?r?endl;}

A)defgB)cdefC)ghabD)efgh

(16)以下程序的輸出結(jié)果是A

#include<iostream.h>

voidmain()

{charc=1z’;

cout?c-25;}

A)97B)ZC)z-25D)z

(17)有以下程序

#include<iostream.h>

structSTU

{charnum[10];

floatscore[3];};

voidmain()

{structSTUs[3]={{"2002「',90,95,85},

{"20022",95,80,75},

{"20023H,100,95,90}},*p=s;

inti;

floatsum=0;

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

sum=sum+p->score[i];

cout?sum;}

程序運(yùn)行后的輸出結(jié)果是B

A)260B)270C)280D)285

(18)下面程序段中,for循環(huán)的執(zhí)行次數(shù)是B

char*s=u\ta\018bcu;

for(;*s!='\0';s++)cout?

A)9B)5C)6D)7

(19)下列程序的運(yùn)行結(jié)果是A

#include<iostream.h>

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;}

voidmain()

{inta=2004,b=9,*x=&a,*y=&b;

fun(x,y);

cout?a?'fn?b?endl;}

A)20049B)92004C)00D)編譯時(shí)出錯(cuò)

(20)以下程序的輸出結(jié)果是D

#include<iostream.h>

intf()

{staticinti=0;

ints=l;

s+=i;i++;

returns;}

voidmain()

{inti,a=0;

for(i=0;i<5;i++)a+=f();

cout?a;}

A)20B)24C)25D)15

(21)以下C++語(yǔ)言中用于單行注釋的是A

A)//B)/*C)*/D)I

(22)在32位的計(jì)算機(jī)中,一個(gè)char型數(shù)據(jù)所占的內(nèi)存長(zhǎng)度的字節(jié)是B

A)4B)1C)2D)8

(23)若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是B

A)a:=b+lB)a=b=c+2C)int18.5%3D)a=a+7=c+b

(24)有如下程序:A

#include"iostream.h"

voidmain()

(

intx=1,a=0,b=0;

switch(x){

case0:b++;

case1:a++;

case2:a++;b++;

)

cout?na=n?a?vvnb=n?b;

)

該程序的輸出結(jié)果是

A)a=2,b=l

B)a=l,b=l

C)a=l,b=0

D)a=2,b=2

(25)有以下程序C

#include"iostream.hn

voidmain()

{

inti=l,j=l,k=2;

if((j++llk++)&&i++)

cout?i?V'?j??k;

cout?endl;

)

執(zhí)行后輸出結(jié)果是

A)1,1,2B)2,2,1C)2,2,2D)2,2,3

(26)若有說明inta[3][4]則a數(shù)組元素的非法引用是D

A)a[0][2*1]B)a[1][3]C)a[4-2]E0]D)a[0][4]

(27)若有語(yǔ)句int*point,a=4;和point=&a;下面均代表地址的?組選項(xiàng)是D

A)a,point,*&aB)&*a,&a,*point

C)*&point,*point,&aD)&a,&*point,point

(28)若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是B

A)函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在B)函數(shù)調(diào)用可以無(wú)返回值

C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參

(29)若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是A

#include<iostream.h>

voidmain()

(

intx,y;

cin?x;

y=x>12?x+10:x-12;

cout?y;

cout?endl;

)

A)0B)22C)12D)10

(30)以下類定義中可能會(huì)引起錯(cuò)誤的語(yǔ)句是D

classA

(

public:

?A(){}//l

inti;//2

private:

intj;//3

A(inti){i++;}//4

);

A)1B)2C)3D)4

二、填空題(共25分)

(1)C++語(yǔ)言標(biāo)識(shí)符是以字母或【1】下劃線開頭的,由字母,數(shù)字和下劃線組成的字符串。

(2)在內(nèi)存中,存儲(chǔ)字符'X'要占用1個(gè)字節(jié),存儲(chǔ)字符串〃X"要占用【2】2個(gè)字節(jié)。

(3)mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回,請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;[3]strfil!='\0';i++);

return(i);}

(4)以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

#include<iostream.h>

voidfun(int*s,intt,int*k)

{inti;

*k=0[4];

[5]for(i=l;ivi:i++)

if(s[*k]<s[i])*k=i;}

voidmain()

{inta[10]={876,675,896,101,301,401,980,431,451,777),k;

fun(a,10,&k);

cout?k?a[k];}

(5)如果一個(gè)類中定義了成員對(duì)象,則該類的對(duì)象和成員對(duì)象先被初始化的是【6】成員對(duì)象。

(6)請(qǐng)?jiān)趍ian函數(shù)中填空使下面程序的輸出結(jié)果為11。

#include<iostream.h>

classA

{private:

inta;

intb;

public:

A():a(0),b(1){)

voidshow(){cout?a?"M?b;});

classB

{private:

inta;

intc;

public:

B():a(1),c(1){}

voidshow(){cout?a?""?c;}};

classC:publicA,publicB

{};

voidmain()

{Ccc;

[7]cc.B::show。;}

(7)C++在重載運(yùn)算符中,如用成員函數(shù)重載?元運(yùn)算符參數(shù)表中需要【8】Q個(gè)參數(shù),如用友元函數(shù)重載?

元運(yùn)算符參數(shù)表中需要【9】L個(gè)參數(shù)。

(8)以下程序的輸出結(jié)果是【10】以。

#include<iostream.h>

voidmain()

(

inta=0;

a+=(a=8);

cout?a;

)

(9)以下程序的執(zhí)行結(jié)果為acdb【11】o

#include<iostream.h>

classA

(

public:A(){cout?nan;}

?A(){cout?nbn;}

classB:publicA

public:

B(){cout?ucn;}

?B(){cout?"d";}

);

voidmain()

(

Bb;

)

(10)我們通常用到的cin>>,是屬于途【12】輸入。

二、程序理解

1、寫出運(yùn)行結(jié)果

voidreFunction(charb[],intcurrent,intsize)

(

if(current<size)

{reFunction(b,current+1,size);

cout?blcurrent]?”

intmain()

{constintarraySize=8;

chararr[arraySize]={才Jb丁c:dje7f,g,h};

reFunction(arr,0,arraySize);

cout?endl;

return0;

)

Arr中的字符串反序輸出

2、寫出下面函數(shù)的功能

boolWhatIsThis(constchar*s1,constchar*s2)

(

for(;*sl!='\0'&&s2!='\0';sl++,s2++)

if(*sl!=*s2)returnfalse;

if(si=='\0'&&s2=='\0')returntrue;elsereturnfalse;

)

比較兩個(gè)字符串是否相等,是返回true,否則返回false

3、請(qǐng)寫出下列程序的功能,以及當(dāng)輸入為“efghik”時(shí)的輸出結(jié)果。

intmain()

(

inti;

charstrl[10],str2[10];

cin?strl;

for(i=0;strl[iJ!=W;++i)

str2[i]=strl[i]-+4A*;

str2[i]='\0';

cout?str2?endl;

return0;

)

將字符串中小寫字母轉(zhuǎn)換為大寫字母,EFGHIK

4。寫出運(yùn)行結(jié)果

intfun(int*a,intsize)

{intmax=0,i;

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

if(a[i]>a[max])max=i;

returnmax;

)

doublefun(double*a,intsize)

{doublemax=0;

for(inti=0;i<size;++i)

if(a[il>max)max=a[i];

returnmax;

)

intmain()

{inta[]={3,7,2,9,1,5,0,8,7,4);

doubleb[]={3.3,7.7,9.9,5.5,4.4,8.8,1.1,2.2,0,6.6};

cout?max(a,10)?endl;

cout?max(d,10)?endl;

)

3

9.9

三、程序填空

1,完成下面程序,使得程序輸出結(jié)果為:a=45b=56

voidswap(int*x,int*y)

inttmp;

Tmp="x:

*y=tmp:;

)

intmain()

(

inta=56,b=45;

swap(&a,&b);

cout?Ha="?a?"b="?b?endl;

return0;

2、求1+1/1!+1/2!+1/3!+…+1/20!

#include<iostream>

usingnamespacestd;

intmain()

{doublee=1;

doublet=1;

intn;

for(n=l;nv=20;n++)

{t=t*n;;

e=e+l/t:;}

cout?"1+1/1!+1/2!+1/3!+-+1/20!n?e?endl;

return0;

3。完成二分查找程序:對(duì)一個(gè)有序數(shù)組,首先匹配中間位置的元素,如匹配成功,則返回該中間位置的下標(biāo)值;

否則,如待查關(guān)鍵字大于中間元素,拋開前面的元素,從中間元素的下-元素到數(shù)組尾部范圍重復(fù)以上匹配;

如待查關(guān)鍵字小于中間元素,拋開后面的元素,從數(shù)組首部到中間元素的前一元素范圍重復(fù)以上匹配;如果

查找失敗,則返回-1。

intBinarySearch(intA[],intkey,intn){

intlow=0;//下界結(jié)點(diǎn)的下標(biāo)

inthigh=n-l;//上界結(jié)點(diǎn)的下標(biāo)

intmid;//中間結(jié)點(diǎn)的下標(biāo)

while(lowvhigh){

Mid=(low+high)/2;

if(A[mid]==key)returnmid:;

elseif(key<A[mid])high=mid-l;;

elselow=mid+1;;

)

return;

四、編程題(共20分)

1.編程用如下的格式輸出乘法九九表。(5分)

*123456789

1123456789

24681012141618

39121518212427

4162024283236

52530354045

636424854

7495663

86472

981

#include<iostrcam>

#include<iomanip>

usingnamespacestd;

voidmain()

inti,j,k;

for(i=l;i<=9;i++)

cout?setw(3)?i;

cout?endl;

for(i=l;i<=9;i++)

f

cout?setw(3)?i;

for(j=l;j<=9;j++)

(

ifg)

cout?setw(3)?^^

else

cout?setw(3)?i*j;

)

cout?endl;

1

2。已知一四位數(shù)a2b3能被23整除,編一程序求此四位數(shù)。(5分)

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,j;

for(i=l;i<=9;i++)

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

if((a*1000+2*100+b*10+3)%23==0)

cout?a?2?b<<3

C++程序設(shè)計(jì)試卷2

一、判斷題(1x10)

1.C++表達(dá)式4/8.0+4/7的值為double型,值為1.07。

2.定義c為一個(gè)整型變量,則表達(dá)式c&&'\0’的值恒為0。

3.若一個(gè)C++程序中說明一個(gè)全局變量I;則該程序所有的函數(shù)都可以引用此全局變量。

4.一個(gè)完整的C++程序從編譯預(yù)處理指令處開始執(zhí)行。

5.在C++中,當(dāng)定義變量時(shí)不區(qū)分大小寫。

6.C++規(guī)定:在每一個(gè)字符串的結(jié)尾加上一個(gè)空字符以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。

7.C++語(yǔ)言中break語(yǔ)句和continue語(yǔ)句的區(qū)別在于:break語(yǔ)句是終止本次循環(huán),continue

語(yǔ)句是結(jié)束所有循環(huán)。

8.p為一指針變量,則表達(dá)式(*p)++和*(p++)兩個(gè)表達(dá)式的值是一樣的,都是指向下一個(gè)單元的

值。

9.數(shù)組是若干相同類型的數(shù)據(jù)的集合,每個(gè)元素可以由數(shù)組名和下標(biāo)構(gòu)成。

10.C++中,如果在定義函數(shù)時(shí)加上關(guān)鍵字extern,則表示此函數(shù)是外部函數(shù),可以被其他文件調(diào)

二、選擇題(2x15)

1、若x是一變量,則x||!x的值是()

A.為trueB.為false

C.與x的值有關(guān)、D.與x的值相反

2.C++源程序文件的后綴名為:

A.cppB.exe

C.objD.lik

3、對(duì)于有返回值的函數(shù),要結(jié)束函數(shù)運(yùn)行必須使用語(yǔ)句

A.breakB..return

CcontinueD.main

4.所謂的靜態(tài)存儲(chǔ)即在程序運(yùn)行期間分配固定的

A.作用范圍B.存儲(chǔ)單元

C.變量類型D.變量名稱

5、語(yǔ)句while(!x);中的x等價(jià)于

A.x==0B.x!=1

C.x==5D.x==1

6、語(yǔ)句for(l=0J=0;l〈=100;l++)j=j+l;的結(jié)果為

A.500B.100

C.5000D.5050

7.給出以下定義:inta,*p;則下面正確的賦值語(yǔ)句為

A.p=a;B.&p=a;

C.p=&a;D.p=*a;

8.表達(dá)式'c'&&'d'、'c'&&''0'和!‘c'『c'v='d'的值為

A.000B.101

C.110D.111

9.在下列對(duì)字符串的定義中,錯(cuò)誤的是

A.charstr[10]=),china,';B.char*str="china”;

C.char*str[10]={'c','h','i','n','a',''0'};D.charstr[]=,,china";

10.若有inta=4;floatb=14.70,能正確表示a+b對(duì)a取余的表達(dá)式是()

A.(a+b)/cB.(a+b)%c

C.(int)((a+b)%c)D.(a+(int(b)))%c

11.下面對(duì)函數(shù)的正確的定義語(yǔ)句是

A.floatfunction(inta,b);B.floatfunction(inta;b);

C.floatfunction(inta,intb);D.floatfunction(inta;intb);

12.設(shè)已定義數(shù)組chararray[20]=,,lamstudent,,,

則函數(shù)strlen(array)的返回值()

A.11B.12C.13D.14

13.在函數(shù)內(nèi)部定義的變量稱為

A.全局變量B.局部變量

C.整型變量D.字符型變量

14、已定義一個(gè)數(shù)組intarray[10];則對(duì)此數(shù)組正確的引用是()

A.cout?array[10];B.cout?array(0);

C.intb;b=array[O]+array;D.cout?array[5+4];

15、如果一外部變量只允許被本文件引用,

則應(yīng)在該外部變量定義前加上修飾()

A.staticB.externC.registerD.auto

三、填空(1x14).

1.一個(gè)可以執(zhí)行的C++語(yǔ)言的源程序文件經(jīng)過編譯后生成的文件的擴(kuò)展名為

2.函數(shù)類型定義時(shí),如果在函數(shù)前加void,則表示該函數(shù)。

3、一個(gè)整型變量和一個(gè)長(zhǎng)整型變量在內(nèi)存中所占的字節(jié)數(shù)分別為字節(jié)和

字節(jié)。

4.過程化程序設(shè)計(jì)方法中,每個(gè)程序單位由三部分構(gòu)成,即:、、

5.一個(gè)整型數(shù)組的元素個(gè)數(shù)為10個(gè),則在內(nèi)存中必須至少有字節(jié)的空間才可以存

放.

6inta=3,則表達(dá)式(int)(a+6.5)%2+(a=b=5)的值為。

7在指針的概念中表示的含義為;而"&”表示的含義為.

8設(shè)x、y和z都是整型變量,則表達(dá)式(x=1,y=33,z=34)的值為

9標(biāo)識(shí)符只可以由三種字符組成,他們是一、和數(shù)字.

四、簡(jiǎn)答題(20)1、請(qǐng)用C++語(yǔ)言的表達(dá)式表示下列代數(shù)式。

(1)y]s(s-a)(s-b)(s-c)

⑵土就3

3

2定義結(jié)構(gòu)體類型student,該結(jié)構(gòu)體包含的成員為name(字符型)、age(整型)、sex(字符型)、

number(整型),定義一個(gè)student類型指針變量std。

五、閱讀程序(26)

(一).寫出下列程序的輸出結(jié)果是(5x2)

1.#include<iostream>usingnamespacestd;

intmain(){inti=1,sum=O;

do{sum+=i;i++;}while(i<=100)

cout?,,sum=,,?sum?endl;return0;}

2.#include<iostream>usingnamespacestd;

intmain(){charstr1[]="llovechina!",str2[20],*p1,*p2;

p1=str1;p2=str2;

for(;*p1!=>\0,;p1++,p2++)

{*p2=*p1;

*p2=>\0,;

p1=str1;p2=str2;}

cout?,,str1is:"?p1?endl;

cout?"str2is:M?p2?endl;

return0;}

(二)程序填空(2x8)

1.使用子函數(shù)求兩個(gè)實(shí)數(shù)的和

#include<iostream>

usingnamespacestd;

intmain()

{;〃子函數(shù)聲明

floata,b,c;coutv<”輸入兩個(gè)實(shí)數(shù)”;cin?a?b;

c=;〃子函數(shù)調(diào)用

cout?"兩個(gè)實(shí)數(shù)a和b的和為:"<<c<vendl;

return0;}

floatadd(floatx,floaty)

{floatz;z=x+y;;}

2.用冒泡排序法對(duì)輸入的20個(gè)整數(shù)從大到小進(jìn)行排序

#include<iostream>

usingnamespacestd;

intmain()

{inta[20],i,j,k,max;

cout?"\nPleaseinput20data:\n";

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

cin?;

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

for(;;j++)

if()

{k=a[j];

a[j+1]=k;}

cout?,\n,;

for(i=0;i<20;i++)cout?a[i]?n

return0;}

參考答案

一、判斷題

x,N,q,x,x,q,x,q,q,?

二、選擇題

A,A,B,B,A,D,C>B,C,D,C,A,B,D,A

三、填空題

[、.obi_____

2、無(wú)返回值

3、4個(gè),4個(gè)

4、預(yù)處理指令、聲明部分、函數(shù)。

5、40

6、6

7、指針運(yùn)算符,取地址符

8、34

9、字母、下劃線

四、簡(jiǎn)答題

1、請(qǐng)用C++語(yǔ)言的表達(dá)式表示下列代數(shù)式。

(1)sqrt(s*(s-a)*(s-b)*(s-c))

(2)(4*TT*R*R*R)/3

2、structstudent

{charname;

intage;

charsex;

intnumber;

}std;

五、閱讀程序

(?).寫出下列程序的輸出結(jié)果是

1>__________sum=5050________________________

2、str1="llovechina!"

str2="llovechina!"

(-)程序填空

floatadd(floatx,floatv)

add(a,b)_______

return⑵

2、_afi]

i=o:i=20-i

a「l>a「+1l

a「l=aR+1l;

C++程序設(shè)計(jì)試卷

一、判斷題(1X10)

1.C++表達(dá)式4/7和4.0/7的值是相等的,且都為double型。()

2.若有int1=10,j=0;則執(zhí)行完語(yǔ)句if(j=0)I++;else1-;1的值為11。()

3.若有intI=10,j=2;則執(zhí)行完I*=j+8;后I的值為28。

4.字符串“china”在內(nèi)存中占據(jù)的存儲(chǔ)空間是5個(gè)字節(jié)。

5.一個(gè)可執(zhí)行的C++語(yǔ)言程序可以包含若干個(gè)函數(shù),但至少必須包含一個(gè)main。函數(shù)。

()

6.一個(gè)C++語(yǔ)言程序可由若干個(gè)源程序文件構(gòu)成,每個(gè)源程序文件也必須包含一個(gè)main。

函數(shù)。

7.在變量定義intsum,SUM;中sum和SUM是兩個(gè)相同的變量名。()

8.一個(gè)變量的地址就稱為該變量的“指針”。()

9.在C++語(yǔ)言中,所有函數(shù)都是平行的,即在定義函數(shù)時(shí)是相互獨(dú)立的,一個(gè)函數(shù)并不

從屬于另一個(gè)函數(shù)。()

10.C++中,在定義函數(shù)時(shí)的參數(shù)是“形式參數(shù)”,在調(diào)用函數(shù)時(shí)的參數(shù)是“實(shí)際參數(shù)”。

二、選擇題(2X10)

1.源程序文件的擴(kuò)展名是:()

A).CPPB).CC).DLLD).EXE

2.循環(huán)至少被執(zhí)行了一次的語(yǔ)句為()

A).for循環(huán)B).while循環(huán)

0.do循環(huán)D).任一種循環(huán)

3.整型變量i定義后賦初值的結(jié)果是:()

inti=2.8*6;

A)12B)16C)17D)18

4、下列表達(dá)式的值為false的是:()

A)1<3&&5<7B)!(2>4)C)3&&0&&1D)!(5<8)||(2<8)

5、設(shè)inta=10,b=ll,c=12;表達(dá)式(a+b)<c&&b==c的值是:()

A)2B)0C)-2D)1

6、下列程序執(zhí)行完后,x的值是:()

intx=0;

for(intk=0;k<90;k++)if(k)x++;

A)0B)30C)89D)90

7、下列程序段循環(huán)次數(shù)是:()

intx=-10;while(++x)cout<<x<<endl;

A)9B)10C)11D)無(wú)限

8、表示“大于10而小于20的數(shù)“,正確的是:()

A)10<x<20B)x>10||x<20

C)x>10&x<20D)x>10&&x<20

9、在下面的一維數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤()

A),inta[]={1,2,3};B).inta[10]={0};

C).inta[n]D).inta[5]

10、設(shè)a=l,b=2,貝U(a++)+b與a+(++b)這兩個(gè)表達(dá)式的值分別為:()

A)3,3B)3,4C)4,3D)4,4

三、填空(2X15).

1、描述命題“A小于B或小于C”的表達(dá)式為—[1]o

2、假定x和y整型,其值分別為16和5,則X%Y和X/Y的分別為【分和【3】。

3、一個(gè)C++語(yǔ)言程序總是從[4]開始執(zhí)行。

4、C++語(yǔ)言程序中出現(xiàn)的/*……*/部分或〃……部分所起的作用是—【5】_。

5、C++規(guī)定:在每一個(gè)字符串的結(jié)尾加上??個(gè),以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。

6、若有intx=4,y=7;則表達(dá)式x*=x+y的值為[7]。

7、過程化程序設(shè)計(jì)方法中,程序有三種基本結(jié)構(gòu),即:-[8]、、

8、C++語(yǔ)言中所提供的循環(huán)控制語(yǔ)句有三種,即:____[11]、【12]、

[13]□

9、C++語(yǔ)言中用來存放變量地址的變量稱作—[14]o

10、作為語(yǔ)句標(biāo)號(hào)使用的C++保留字case和default只能用于—【15]一語(yǔ)句的定義體中。

四、簡(jiǎn)答題(5X3)

1.請(qǐng)用C++語(yǔ)言的表達(dá)式表示下列代數(shù)式。

*3+s_________________

1)----2)y/s(s-a)(s-b)(s-c)

工一〉

2.根據(jù)要求定義數(shù)據(jù)類型或變量

定義結(jié)構(gòu)體類型date,該結(jié)構(gòu)體包含的成員為year(整型)、month(整型)、day(整型),再定

義date型變量birthday□

五、分析程序運(yùn)行結(jié)果(15)

1.寫出下列程序的輸出結(jié)果。

#include<iostream>m=++i+j++;

usingnamespacestd;n=(++i)+(++j)+m;

intmainOcout?i?,\t'?j?,\t,?

{charm?,\t'<<n?endl;

cl=,a',c2='d',c3='f'return0;

cl+=2;)

c2+=2;運(yùn)行結(jié)果:

c3+=2;

cout?cl?c2<<c3?endl;3.寫出下列程序的輸出結(jié)果。

return0;#include<iostream>

)usingnamespacestd;

運(yùn)行結(jié)果:intmainO

{constintn=5;

2.寫出下列程序的輸出結(jié)果。inta[n]={9,6,3,4,5},i,t;

#include<iostream>for(i=0;i<n/2;i++)

usingnamespacestd;{t=a[i];a[i]=a[n-i-l];a[n-i

inti,j,m,n;

intmain()for(i=0;i<n;i++)

{i=5;

j=6;cout<<endl;

return0;

)

運(yùn)行結(jié)果:

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

for(_[1];【2】

六、程序填空題(10)

;j++)

if(a[j]<a[i])

{t=a[j];

1、用選擇法對(duì)十個(gè)整數(shù)排序?!?】;

#include<iostream>[4];}

usingnamespacestd;for(i=l;i<=10;i++)

intmain()cout<<a[i]<<w";

{intcout?endl;

a[10]={5,4,6,9,8,3,7,2,1,0},ireturn0;

,j,t;)

參考答案

-、判斷題(10分,每題1分)

12345678

XXXXVXXV

9101112131415

VV

二、選擇題(20分,每題2分)

12345678

ACBCBCAD

9101112131415

CB

三、語(yǔ)法填空題(30分,每空2分)

【1】A<BIIA<C【2】1【3】3【4】主函數(shù)

【5】注釋【6】’\0,【7】44【8】順序

【9】選擇【10】循環(huán)【11】while語(yǔ)句

【12】dowhile語(yǔ)句【13]for語(yǔ)句【14】指針變量【15】Switch

四、簡(jiǎn)答題。(15)

1請(qǐng)用C++語(yǔ)言的表達(dá)式表示下列代數(shù)式

(1)(x*x*x+5)/(x-y)(2)sqrt(s*(s-a)*(s-b)*(s-c))

2根據(jù)要求定義數(shù)據(jù)類型或變量

structdate

{intyear;

intmonth;

intday;

}birthday;

五、分析程序運(yùn)行的結(jié)果(15)

1、cfh2、7812273、54369

六、程序填空題(20分,每空2分)

[1]i=i+l[2]i<=9[3]a[i]=a[il[4]a[i|=t

第_27—頁(yè)共6頁(yè)

2009?2010學(xué)年第1學(xué)期考試科目:《面向?qū)ο蟪绦蛟O(shè)計(jì)》

考試類型:(閉卷)考試考試時(shí)間:120分鐘

學(xué)號(hào)姓名年級(jí)專業(yè)07電氣

題號(hào)一二三四五總分

得分

評(píng)閱人

一、填空題(本題共20小題,每小題1分,共20分)

1.面向?qū)ο蟪绦蛟O(shè)計(jì)將數(shù)據(jù)及對(duì)數(shù)據(jù)的量但放在一起,作為一個(gè)相互依存,不可分

割的整體來處理,即對(duì)象。

2.對(duì)象的四大基本特性是多態(tài)性、繼承性、抽象性和封裝性。為了使類中的成員

不能被類外的函數(shù)通過成員操作符訪問,則應(yīng)把該成員的訪問權(quán)限定義為私有

(private)屬性。

3.C++語(yǔ)言的標(biāo)準(zhǔn)輸入對(duì)象是cin,源文件擴(kuò)展名為CPP.

4.C++中定義常量的關(guān)鍵字是const,定義虛函數(shù)所用的關(guān)鍵字是virtual。

5.C++中進(jìn)行輸入、輸出操作時(shí),將數(shù)據(jù)對(duì)象從輸入流提取出來的運(yùn)算符是>>,插入

到輸出流的運(yùn)算符是《。

6.在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是用戶自己一

定義的頭文件。

7.類的繼承是指子類繼承基類的一數(shù)據(jù)邈—和成員函數(shù)。

8.不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為多態(tài)性

__O

9.C++的流庫(kù)預(yù)定義了4個(gè)流,它們是cin、cout^cerr>Fnclogo

10.設(shè)類A有成員函數(shù)voidFun(void);若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來

指向Fun,該指針變量的聲明語(yǔ)句是:void(A::*pafn)()0

11.設(shè)在程序中使用如下語(yǔ)句申請(qǐng)了一個(gè)對(duì)象數(shù)組:Point*ptr=newPoint[2];則在需

要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語(yǔ)句是delete口供「。

12.在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中一不可訪問_。

13.類A有如下成員函數(shù):intA::fun(doublex){return(int)x/2;};intA::fun(intx){return

第_28—頁(yè)共6頁(yè)

x*2;}。設(shè)a為類A的對(duì)象,在主函數(shù)中有ints=a.fun(6.0)+a.fun(2),則執(zhí)行該語(yǔ)

句后,s的值為工。

14.C++中多態(tài)性包括兩種多態(tài)性:靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性。前者是通過函數(shù)重

載實(shí)現(xiàn)的,而后者是通過虛函數(shù)和動(dòng)態(tài)聯(lián)編來實(shí)現(xiàn)的。

15.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的—地址

16.在繼承機(jī)制下

溫馨提示

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

評(píng)論

0/150

提交評(píng)論