江蘇省二級(jí)VC2024年復(fù)習(xí)資料_第1頁(yè)
江蘇省二級(jí)VC2024年復(fù)習(xí)資料_第2頁(yè)
江蘇省二級(jí)VC2024年復(fù)習(xí)資料_第3頁(yè)
江蘇省二級(jí)VC2024年復(fù)習(xí)資料_第4頁(yè)
江蘇省二級(jí)VC2024年復(fù)習(xí)資料_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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)介

2024年春江蘇省二級(jí)VC++考試試題與答案

絕密★啟用前

2024年春

江蘇省高等學(xué)校非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生

計(jì)算機(jī)基礎(chǔ)學(xué)問(wèn)和應(yīng)用實(shí)力等級(jí)考試

二級(jí)試卷

試卷語(yǔ)種:VisualC++

說(shuō)明:

1.本試卷包括計(jì)算機(jī)基礎(chǔ)學(xué)問(wèn)部分和程序設(shè)計(jì)部分,考試時(shí)間共120分鐘

2.本試卷滿(mǎn)分為60分,分選擇題和填空題,試卷不分A、B類(lèi)型;

3.計(jì)算機(jī)基礎(chǔ)學(xué)問(wèn)部分全部是選擇題(20分),程序設(shè)計(jì)部分分為選擇題(10分)和填空題(30

分)兩種;

4.選擇題用答題卡答題。每一項(xiàng)有A、B、C、D四個(gè)可供選擇的答案,請(qǐng)選擇其中一個(gè)你認(rèn)

為正確的答案,用HB鉛筆涂寫(xiě)在答題卡的相應(yīng)答題號(hào)內(nèi)。每選對(duì)一項(xiàng)得1分,不選或選錯(cuò)

不得分;

5.填空題用答題紙答題。請(qǐng)將答案用藍(lán)、黑色鋼筆或圓珠筆填寫(xiě)在答題紙的相應(yīng)答題號(hào)內(nèi),

每個(gè)答案只占一行,不得換行。句填對(duì)一個(gè)答案得I分,不填或填錯(cuò)不得分;

6.請(qǐng)細(xì)致填寫(xiě)并細(xì)致核對(duì)答題卡和答題紙.上的學(xué)校名稱(chēng)、準(zhǔn)考證號(hào)和姓名是否填寫(xiě)正確。

7.考試結(jié)束時(shí)將試卷、答題卡和答題紙放在桌上,不得帶走。待監(jiān)考人員收點(diǎn)

第一部分計(jì)算機(jī)基礎(chǔ)學(xué)問(wèn)

I.下面關(guān)于比特的敘述中,錯(cuò)誤的是(I)

A.比特是組成數(shù)字信息的最小單位

B.比特只有“O”和“1”兩個(gè)符號(hào)

C.比特既可以表示數(shù)值和文字,也可以表示圖像和聲音

D.比特“1”總是大于比特“0”

2.在下列有關(guān)集成電路的敘述中,錯(cuò)誤的是(2)

A.現(xiàn)代集成電路運(yùn)用的半導(dǎo)體材料主要是硅

B.大覷模集成電路一般以功能部件、子系統(tǒng)為集成對(duì)象

C.我國(guó)第2代居民身份證中包含有IC芯片

D-目前超大規(guī)模集成電路中晶體管的基本線(xiàn)條已小到1納米左右

3.在下列有關(guān)通信技術(shù)的敘述中,錯(cuò)誤的是(3)

A.通信的基本任務(wù)是傳遞信息,因而至少需由信源、信宿和信道組成

B.通信可分為模擬通信和數(shù)字通信,計(jì)算機(jī)網(wǎng)絡(luò)屬于模擬通信

c.在通信系統(tǒng)中,采納多路復(fù)用技術(shù)的目的主要是提高傳輸線(xiàn)路龜利用率

'D?學(xué)校的計(jì)算機(jī)機(jī)房一般采甩5類(lèi)無(wú)屏蔽雙絞線(xiàn)作為局域網(wǎng)的傳輸介質(zhì)

4.下面是關(guān)于PC機(jī)主存儲(chǔ)器的一些敘述,其中正確的是(4)

A.主存儲(chǔ)器是一種動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(RAM)

B.主存儲(chǔ)器的基本編址單位是字(即32個(gè)二進(jìn)位)

C.目前市場(chǎng)上銷(xiāo)售的PC機(jī),其內(nèi)存容量可達(dá)數(shù)十GB

D.全部PC機(jī)的內(nèi)存條都是通用的:可以互換

5.現(xiàn)行PC機(jī)中,IDE(或SATA)接口標(biāo)準(zhǔn)主要用于(5)

A.打卬機(jī)與主機(jī)的連接c.聲卡與主機(jī)的連接

B.顯示器與主機(jī)的連接D.硬盤(pán)與主機(jī)的連接

6.下列有關(guān)PC機(jī)的CPU、內(nèi)存和主板的敘述中,正確的是(6)o

A.大多數(shù)Pc機(jī)只存一塊CPu芯片,即使是“雙核”CPU也是一塊芯片

B.全部Pentium系列微機(jī)的內(nèi)存條相同,僅有速度和容量大小之分

C.主板上芯片組的作用是供應(yīng)存儲(chǔ)器限制功能,I/O限制與芯片組無(wú)關(guān)

D.主板上CMOS芯片用于存儲(chǔ)CMOS設(shè)置程序和一些軟硬件設(shè)置信息

7.下列有關(guān)目前Pc機(jī)協(xié)助存儲(chǔ)器的敘述中,錯(cuò)誤的是(7)

A.硬盤(pán)的容量越來(lái)越大,這是因?yàn)橛脖P(pán)中磁盤(pán)碟片的數(shù)目越來(lái)越多

B.硬盤(pán)的內(nèi)部傳輸速率一般小于外部傳輸速率

c.優(yōu)盤(pán)采納Flash存儲(chǔ)器技術(shù),屬于半導(dǎo)體存儲(chǔ)器

D.目前常見(jiàn)COMBO光驅(qū)是一種將CD-RW和DVD-ROM組合在一起的光驅(qū)

8.下面有關(guān)Windows操作系統(tǒng),(95以后版本)的敘述中,錯(cuò)誤的是(8)。

A.Windows操作系統(tǒng)支持系統(tǒng)中多個(gè)任務(wù)的并發(fā)執(zhí)行

B.利用Whldows附件“系統(tǒng)工具”中的“系統(tǒng)信息”可以查看內(nèi)存的工作狀況

C.系統(tǒng)規(guī)定文件名最多由128個(gè)字符組成

D.Vista是Microsoft公司推出的WindowsXP操作系統(tǒng)的后繼版本

9.算法設(shè)計(jì)是編寫(xiě)程序的基礎(chǔ)。下列關(guān)于算法的敘述中,正確的是(9)。

A.算法必需產(chǎn)生正確的結(jié)果C.算法可以沒(méi)有輸出

B.算法必需具有確定性D.算法的表示必需使計(jì)算機(jī)能理解

10.因特網(wǎng)運(yùn)用TCP/IP協(xié)議實(shí)現(xiàn)全球范圍的計(jì)算機(jī)網(wǎng)絡(luò)互連,連接在因特網(wǎng)上的每?臺(tái)

主機(jī)

都有一個(gè)IP地址。下面不能作為IP地址的是(10)

A.120.34.0.18C.21.18.33.48

B.201.256.39.68D,37.250.68.0

11.常用局域網(wǎng)有以太網(wǎng)、FDDI網(wǎng)等,下面的敘述中錯(cuò)誤的是(11)

A-總線(xiàn)式以太網(wǎng)采納帶沖突檢測(cè)載波偵聽(tīng)多路訪問(wèn)(CSMA/CD)方法進(jìn)行通信

B.FDDI網(wǎng)和以太網(wǎng)可以干脆進(jìn)行互連

C-交換式集線(xiàn)器比總線(xiàn)式集線(xiàn)器具有更高的性能,它能提高整個(gè)網(wǎng)絡(luò)的帶寬.

D-FDDI網(wǎng)采納光纖雙環(huán)結(jié)構(gòu),具有高牢靠性和數(shù)據(jù)傳輸?shù)谋C苄?/p>

12.某用戶(hù)在WWW閱讀器地址欄內(nèi)鍵入一個(gè)URL"://zdxy/index.htm",其中

的“/ndex.htm”代表(12)

A.協(xié)議類(lèi)型C.路徑及文件名

B.主機(jī)域名D.用戶(hù)名

13.交換式以太網(wǎng)與總線(xiàn)式以太網(wǎng)在技術(shù)上有很多相同之處,下面敘述中錯(cuò)誤的是

(13)

A.運(yùn)用的傳輸介質(zhì)相同C.傳輸?shù)男畔袷较嗤?/p>

B.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)相同D.運(yùn)用的網(wǎng)卡相同

14.下面是關(guān)于我國(guó)漢字編碼標(biāo)準(zhǔn)的敘述,其中正確的是(14)

A.Unicode是我國(guó)最新發(fā)布的也是收字最多的漢字編碼國(guó)家標(biāo)準(zhǔn)

B.不同字型(如宋體、精體等)的同一個(gè)漢字在計(jì)算機(jī)中的內(nèi)碼不同

C.在GB18030漢字編碼標(biāo)準(zhǔn)中,共有2萬(wàn)多個(gè)漢字

D.GB18030與GB2312、GBK漢字編碼標(biāo)準(zhǔn)不能兼容

15.數(shù)字圖像的文件格式有多種,下列哪?種圖像文件能夠在網(wǎng)頁(yè)上發(fā)布且可具有動(dòng)畫(huà)效

果(15)

A.BMPB.GIFC.JPEGD.TIF

16.聲卡是獲得數(shù)字聲音的重要設(shè)備,.在下列有關(guān)聲卡的敘述中,錯(cuò)誤的是

A.聲卡既負(fù)責(zé)聲音的數(shù)字化(輸入),也負(fù)責(zé)聲音的重建(輸出)

B.聲卡既處理波形聲音,也負(fù)責(zé)MIDI音樂(lè)的合成。

C.聲卡中的數(shù)字信號(hào)處理器(DSP)在完成數(shù)字聲音編碼、解碼及編輯操作中起著里

要的作用

D.因?yàn)槁暱ㄌ貏e困難,所以它們都被做成獨(dú)立的PCI插卡形式

17.彩色圖像所運(yùn)用的顏色描述方法稱(chēng)為顏色模型。顯示器運(yùn)用的顏色模型為RGB三基色

型,PAL制式的電視系統(tǒng)在傳輸圖像時(shí)所運(yùn)用的顏色模型為

A.YUVB.HSBC.CMYK

18.在信息系統(tǒng)的結(jié)構(gòu)化生命周期開(kāi)發(fā)方法中,繪制E-R圖屬于(18)階段的工作

A.系統(tǒng)規(guī)劃B.系統(tǒng)分析

C.系統(tǒng)設(shè)計(jì)D.系統(tǒng)實(shí)施

19.在下列有關(guān)MicrosoftWord2000/2024(中文版)功能的敘述中,(19)

A.起始頁(yè)的頁(yè)碼可以不為I

B.利用菜單吩咐,可更改所選英文文本的大小寫(xiě)

C.利用菜單吩咐“字?jǐn)?shù)統(tǒng)計(jì)”,可以統(tǒng)計(jì)出當(dāng)前文檔的行數(shù)和段落數(shù)

D.表格中的數(shù)據(jù)不行排序,也不能利用公式進(jìn)行統(tǒng)計(jì)計(jì)算

20.在下列有關(guān)MicrosoftPowerPoint200012024(中文版)功能的敘述中,錯(cuò)誤的是

()

A.可通過(guò)“另存為”操作,將每張幻燈片保存為一個(gè)圖片文件

B.幻燈片的大小是固定的,用戶(hù)不行以對(duì)其進(jìn)行設(shè)置

C.在排練計(jì)時(shí)的基礎(chǔ)上,可以將幻燈片設(shè)置為循環(huán)放映

D.可以對(duì)?字體進(jìn)行替換,例如將幻燈片中的“宋體”替換為“楷體”

其次部分VisualC++語(yǔ)言程序設(shè)計(jì)

一、選擇題(用答題卡答題,答案依次填在21?30答題號(hào)內(nèi))

21.設(shè)有說(shuō)明語(yǔ)句:inld,e;

以下選項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是21。

A.d=9+e==d+2;B.d=e+=2;C.f=g+f=j*k++;D.(++d)++;

22.設(shè)有函數(shù)調(diào)用語(yǔ)句:fun((xl,x2),x3,(x4,x5,x6));

該函數(shù)調(diào)用中實(shí)參的個(gè)數(shù)是22

A.2B.3C.5D.6

23.以下對(duì)二維數(shù)組的說(shuō)明中,存在語(yǔ)法錯(cuò)誤的是23

A.inta[][3]={3,2,1,I,2,3);B.inia[][3]={{3,2,1},(1,2,3)};

C.ima[2][3]={l}D.inta[2][]={{3,2,1},{1,2,3}};

24.以下選項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是24。

A.floatx,&j=x;B.intc,&d=c?&e=d;

C.charb,&k=b:D.intf,&g;g=f;

25.下述關(guān)于抽象類(lèi)的描述中,錯(cuò)誤的是25。

A.可以通過(guò)在類(lèi)中定義純虛函數(shù)的方式定義抽象類(lèi)

B不行以創(chuàng)建抽象類(lèi)的對(duì)象

C不行以創(chuàng)建抽象類(lèi)的引用

D.可以創(chuàng)建抽象類(lèi)的指針

26.下列有關(guān)函數(shù)缺省參數(shù)的描述中,正確的是26。

A:設(shè)置了缺省值的參數(shù)左邊不允許出現(xiàn)沒(méi)有指定缺省值的參數(shù)

B.同一個(gè)函數(shù)在同一個(gè)文件中可以供應(yīng)不同缺省參數(shù)值

C.參數(shù)缺省值要設(shè)置在函數(shù)定義語(yǔ)句中,不能設(shè)置在函數(shù)說(shuō)明語(yǔ)句中

D.一個(gè)函數(shù)具有缺省值的參數(shù)只能有一個(gè)。|

27.在以下選項(xiàng)中,C++語(yǔ)言不能重載的運(yùn)算符是27

A.?:B.+C.[]D.<=

28.假設(shè)a是類(lèi)E的對(duì)象,執(zhí)行語(yǔ)句:

Eb=a;

則要調(diào)用類(lèi)E中的2g°

A.缺省構(gòu)造函數(shù)B.operator=0函數(shù)

c.拷貝構(gòu)造函數(shù)D.對(duì)象之間的賦值

29.已知在函數(shù)set中,語(yǔ)句this—>任=5;與語(yǔ)句隹=5;的效果完全相同。依據(jù)這一結(jié)

論,以下敘述中不正確的是29。

A.ff是某個(gè)類(lèi)的數(shù)據(jù)成員,Set是該類(lèi)的友元函數(shù)

B.1T是某個(gè)類(lèi)的數(shù)據(jù)成員,Set是該類(lèi)的成員函數(shù)

C.Set不是該類(lèi)的靜態(tài)成員函數(shù)

D.ff不是該類(lèi)的常成員數(shù)據(jù)

30.以下對(duì)派生類(lèi)的描述中,不正確的是30。

A.一個(gè)派生類(lèi)可以作為另一個(gè)派生類(lèi)的基類(lèi)

B.派生類(lèi)至少有一個(gè)基類(lèi)

C.派生類(lèi)的成員除了它自己的成員以外,還包含它的基類(lèi)的成員

D.派生類(lèi)中,從基類(lèi)繼承來(lái)的成員的訪問(wèn)權(quán)限在派生類(lèi)中保持不變

二、填空題(請(qǐng)將答案填寫(xiě)在答題紙的相應(yīng)答題號(hào)內(nèi),每個(gè)答案只占一行)

?基本概念題(共5分)

1.重載函數(shù)必需有不同的參數(shù)個(gè)數(shù)或(1)。

2.在派生類(lèi)中假如沒(méi)有重載基類(lèi)中的純虛函數(shù),則該派生類(lèi)是(2)類(lèi)

3.設(shè)有以下程序:、

#include<iostream.h>

#defineS(X)X*X

voidmain(void)

{

intk=2;

cout?++S(k+k)?'\n';

)

執(zhí)行該程序后,輸出的結(jié)果為(3n),k的值為(4)o

4.在多重派生中,若要使公共基類(lèi)在派生類(lèi)中只有一個(gè)拷貝,則必需將該基類(lèi)說(shuō)明

為(5)。

?閱讀程序題(共13分)

5.[程序](2分)

#include<iostream.h>

voidmain(void)

(

staticinta[7]={1}>i,j:

for(i=l:i<=6;i++)

for(j=i:j>():j--)

a[jl+=a[j-l];

for(j=O;j<7;j++)。

coul?a[j]?endl;

)

程序輸出第三行是_6第四行是7

6.[程序](3分)

#include<iostream.h>

voidmain(void)

(

chars[]="Iamastudent.Youareastudentloo.”;

inta[26]={0};

char*P=s:

while(*P4-+!='A'&&*P<='Z')a[*p-,A']++;

elseif(*P>=a,&&*P<=,z,)a[*p-'a']++;

I

for(inti=0:i<26:i++)

if(a[i]!=O)cout?(char)(i+'a')?":n?a[i]?cndl;

)、

程序的第一行輸出為(8),第三行輸出為(9)

7.[程序](2分)

#include<iostream.h>

intf(intn)

(

ints=l;

if(n==l)

s=l;

else{

if(n==3)cou(?s?'\n,;

s=n*f(n-l);

)

returns;

)

voidmain(void)

{

ints;

s=f(5);

cout?"s=,'?s?endl;

}

程序的第一行輸出為(10),其次行輸出為(11)

8.[程序](2分)

/include<iostream.h>

char*f(char*s)

for(char*p=s,*q=s;*q=*p;p++)

if(*q>='0,&&*q(=9)q++;

returns;

I

voidmain(void)

{

charsl[]="It's4p.mJ,s2[]="3米=3000亳米”;

cout?f(sl)?cndl;

cout?f(s2)?endl;

I

程序輸出的第一行是(12),其次行是(13)

9.[程序](3分)

#include<iostream.h>

voidmain(void)

(

inta[10]={73,86,89,28,87,69,88,84,64,90);

intb[4]={60,70,90,101};

intc[4]={0};

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

intj=0:

while(a[il>=b[j])

j++;

c[jl++;

I

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

cout?c[i]?"\n":

cout?endl:

)

程序輸出的第一行是__________,第三行是,最終一行是

10.[程序](2分)

#include<iostream.h>

classA{

inta;.

public:

voidseta(intaa){a=aa;}

virtualvoidprinl()〃第六行

{cout?a?'\t,;}

};

classB:publicA{

intb:

public:

voidsetb(intbb){b=bb;}

voidprint()

{cout?b?'\t,;}

voidmain(void)

(

Aa,*P:

Bb;

a.scta(5);

b.seta(lO);

b.setb(2O);

P=&a:

P->print();

P=&b:

P->print();

)

程序輸出的足(17)。假如在第六行中去掉Virtual,則程序輸出的是(18)。

11.?個(gè)數(shù)的各位數(shù)字倒過(guò)來(lái)所得到的新數(shù)叫原數(shù)的反序數(shù).假如?個(gè)數(shù)等于它的反序數(shù),則

稱(chēng)它為對(duì)稱(chēng)數(shù)或回文數(shù)。求10000—11000之間的二進(jìn)制對(duì)稱(chēng)數(shù)

算法說(shuō)明:先將正整數(shù)n的二進(jìn)制字符形式放在字符數(shù)組S2中,二進(jìn)制字符形式的反序

放在字符數(shù)組si中,然后,比較這兩個(gè)字符串,若相等,則是二進(jìn)制對(duì)稱(chēng)數(shù)

#include<iostream.h>

#includc<string.h>

intfunc(intn,char*sl)

(

charch,s2[33],*p,*q;

p=sl;q=s2+32;

*q--=(19)

while(n){

ch=(20)〃求n的最低二進(jìn)制位的字符表示形式

n/=2;

*p++=ch;

*q--=ch;

I

*P=0;

q++;

if(21)returntrue:

elsereturnfalse;

voidniain(void)

chars[33]={0};

intcount=0;

coutvv”二進(jìn)制對(duì)稱(chēng)數(shù)如下:\n”;

for(intn=l()000;n<1100();n++)

if(22){

coutvv"n="<vn<v"\t二進(jìn)制形式為:“vvs?endl;

count++;}

}

coutw”對(duì)稱(chēng)數(shù)的個(gè)數(shù)為:“vvcountw'n’;

)

12.以下程序中的函數(shù)fun(int*a,intn)的功能是:把形參a所指向的數(shù)組中的最小值放在a|0]

中,接著把形參a所指數(shù)組中的最大值放在a[l]中;把a(bǔ)所指數(shù)組中的次小值放在a[2]中,

把a(bǔ)所指數(shù)組中的次大值放在a[3]中,其余依次類(lèi)推,直至將數(shù)組中數(shù)據(jù)依次處理完為止

例如:把a(bǔ)所指向數(shù)組中的數(shù)據(jù)最初排列為:51,329,7,6,84按以上規(guī)則移動(dòng)數(shù)組中的數(shù)據(jù)

后,數(shù)據(jù)的排列為:1,9,283,7,4,6,5

#include<iostream.h>

#dcfincN9

voidfun(int*a,intn)

{

intmax,min,px,pn,t;

for(inti=0;i<n-l;___23){

niax=min=a[ij;

px=pn=i;

for(intj=i+1;j<n;j++){

if(max<a[j]){

max=a[j];

px=j;

}

if(min>a[j]){

min=a[j];

pn=j;

I

)

if(pn!=i){

t=a[i];

a[ij=min;

_____24______

if(px==i)px=pn;

)

if(25){

t=a[i+l];

a[i+l]=max;

(26)

}

}

voidmain(void)

{

intb[N]={5,1,3,2,97,6,8.4};

coutvv”數(shù)組中的數(shù)據(jù)依次為:“vvendl;

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

cout?cndl;

fun(b,N);

cout<<”處理后數(shù)組中的數(shù)據(jù)依次為:"<<endl;

fdr(i=O;i<N;i++)

coutvvb[i]vv''t';

cout?endl;

1

13.下列程序中的函數(shù)changc(nodc*pa,intx)的功能是:調(diào)整pa指向的鏈表中結(jié)點(diǎn)的

位置。依據(jù)參數(shù)X的值,使鏈表中各結(jié)點(diǎn)數(shù)據(jù)域小于X的結(jié)點(diǎn)放在鏈表的前半部,大

于等于x

的結(jié)點(diǎn)放在鏈表的后半部,并將X插入這兩部分結(jié)點(diǎn)之間。

例如,原鏈表上各結(jié)點(diǎn)的數(shù)據(jù)依次為:3,4,2,1,9,6,5,0,10,6

輸入:X=7

經(jīng)插入新結(jié)點(diǎn)后,新捱表的各結(jié)點(diǎn)數(shù)據(jù)依次為:3,4,2,1,6,5,0,6,7,9,10

[程序](4分)

#include<iostream.h>

structnode{

intdata;

node*next:

};

node*change(node*pa,intx)

{

node*pl,*p2>*P,*q;

pl=p2=pa;

p=newnode;〃生成新結(jié)點(diǎn)

p->data=x:

while(p2一〉data<x&&p2—>next!=0){//找到x應(yīng)插入的位置

PM;

(27);

)

if(p2-->ncxt!=0)

p—>next=p2://插入以X為數(shù)據(jù)域的結(jié)點(diǎn)

pli>next=p:

q=pl;

while(28){//通過(guò)循環(huán),將插入結(jié)點(diǎn)之后全部數(shù)據(jù)域小于x的結(jié)點(diǎn)前移

if(p2->data<x){//數(shù)據(jù)域小于x的結(jié)點(diǎn)插入以x為數(shù)據(jù)域的新結(jié)點(diǎn)之前

pl—>next=(29);

p2—*>ncxt=p;

q->next=p2;

q二p2;

p2=pl一>nexl;

I

else

(

pl=p2;

p2=p2->nex(:

else{〃假如鏈表中全部結(jié)點(diǎn)數(shù)據(jù)域均小于x,則在鏈尾插入以x為數(shù)據(jù)域的新結(jié)點(diǎn)

p2—>next=p;

(30);

)

returnpa;

)

voidmain(void)

{

nodea[10]={{3(44),{2h{l},{9},{6},{5},{0},{10},{6}},*hcad=a,*p;

inti,x;

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

a[i].next=&a[i+l];

a[9].next=NULL:

coutvv”輸入x的值:”;

cin?x;

head=change(head,x):

p=head;.

while(p){

cout?p->data?\C;

p=p一>next;

)

cout?endl;

參考答案23.D

一、選擇題24.D

2I.C25.C

22.B26.B

27.A(15)6

28.C(16)1

29.A(17)520

30.D(18)510

二、填空題(19八0域0

(1)不同的參數(shù)類(lèi)型或者參數(shù)類(lèi)型(20)n%2+'0':或n%2+48

(2)抽象(21)strcmp(sl,q)==0或者!strcmp(sLq)

(3)15,3(22)func(n?s)

(4)3(23)i+=2或i=i+2

(5)虛基類(lèi)(24)a[pn]=t

(6)15(25)px!=i+l或者px—i—1

⑺20(26)a[px]=t

(8)a:4(27)p2=p2一>next或p2=pl—*>next

(9)e:3(28)p2或p2!=0

(10)1(29)p2一〉next

(ll)s=120(30)p->next=NULL或P—>next=0或P

(12)4->ncxt='\0'

(13)33000

(14)1

[2024春]

一、選擇題(用答題卡答題,答案依次填在21~30答題號(hào)內(nèi))

21.下述關(guān)于switch語(yǔ)句的描述中,正確的是

A.switch語(yǔ)句中的default子句可以沒(méi)有,也可以有多個(gè)

B.switch語(yǔ)句中的每個(gè)子句中必需有break語(yǔ)句

C.switch語(yǔ)句中的default子句只能放在最終

D.switch語(yǔ)句中的子句后面的表達(dá)式只能是整型表達(dá)式

22.下列函數(shù)原型說(shuō)明中,錯(cuò)誤的是

A.ini&fl()B.intf2(double=5);

C.voidf3(void(*p)())D.intf4(inta=OJntb)

23.設(shè)有說(shuō)明語(yǔ)句:floaty=5.16347;intx;則以下表達(dá)式中,可以實(shí)現(xiàn)將中的數(shù)值保留小數(shù)

點(diǎn)后2位,第三位四舍五人的表達(dá)式是。

A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/l(X).O

C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.0

24.設(shè)有說(shuō)明語(yǔ)句:chars[80]="HeHo”;inta[20]={I,2}下列選項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是

A.cin?s;B.cout?s;C.cin?a;D.cout?a;

25.下列關(guān)于運(yùn)算符的敘述中,不正確的是0

A.運(yùn)用運(yùn)算符new創(chuàng)建對(duì)象時(shí)必需定義初始值

B.運(yùn)用運(yùn)算符new創(chuàng)建對(duì)象時(shí)會(huì)調(diào)用類(lèi)的構(gòu)造函數(shù)

C.運(yùn)算符new可以用來(lái)動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組

D.運(yùn)用new運(yùn)算符創(chuàng)建的對(duì)象可以運(yùn)用運(yùn)算符delete撤銷(xiāo)

26.若有說(shuō)明語(yǔ)句:intSI4J16J,t[6J[4J,(*p)[6J;則以下選項(xiàng)中,正確的是

A.p=tB.p=sC.p=s[O]D.p=t[O]

27.以下敘述中不正確的是

A.在函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在木函數(shù)范圍由有效

B.形式參數(shù)是局部變量

C在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在不同函數(shù)中可以運(yùn)用相同名字的變量

28.以下有關(guān)抽象類(lèi)的敘述中,不正確的是_____

A.抽象類(lèi)至少含有一個(gè)純虛函數(shù)

B.抽象類(lèi)至少含有一個(gè)沒(méi)有函數(shù)體的虛函數(shù)

C.在抽象類(lèi)的派生.中可以供應(yīng)純虛函數(shù)的實(shí)現(xiàn)代碼

D.可以說(shuō)明抽象類(lèi)的對(duì)象

29.下列美于構(gòu)造函數(shù)的描述中,不正確的是

A.構(gòu)造函數(shù)可以設(shè)置缺省函數(shù)

B.構(gòu)造函數(shù)在定義類(lèi)的對(duì)象是自動(dòng)執(zhí)行,但不能顯式調(diào)用

C.構(gòu)造函數(shù)可以對(duì)靜態(tài)成員進(jìn)行初始化

D.構(gòu)造函數(shù)可以重載

30.設(shè)有類(lèi)定義

classB{

public:

voidG(floatx=0){cout?x?endl;}

voidG(doublex){cout?x?endl;}

}r;

則在以下選項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是

A.r.G();B.r.G(lO)C.r.G(3.14)D.r.G(-l.Of);

二、填空題(請(qǐng)將答案填寫(xiě)在答題紙的相應(yīng)答題號(hào)內(nèi),每個(gè)答案只占一行)

?基本概念題(共5分)

1.在構(gòu)造函數(shù)和析構(gòu)函數(shù)中,可以定義為虛函數(shù)的是一(I)

2.若有語(yǔ)句說(shuō)明:floata[]={l,2,3A5J;intb=&a[3]-&a[0];則執(zhí)行以上語(yǔ)句后,b的值為

(2)

3.在C++中,重載運(yùn)算符』”只能用在(3)函數(shù)中實(shí)現(xiàn),而重載插入運(yùn)算符“《”和提

取運(yùn)算符“》”只能用在(4)函數(shù)中實(shí)現(xiàn)。

4.設(shè)e是表達(dá)式,其類(lèi)型可以是:float,double,int,char、enum。C++中規(guī)定,在開(kāi)關(guān)語(yǔ)句

中switche中,e的值類(lèi)型不能是(5)。

?閱讀程序題

5.[程序]

#include<iostream.h>

intfun(int);

voidmain(void)

inta=2;

for(inti=0;i<3;i++)cout?fun(a++)?cndl;

)

intfun(inta)

(

intb=0;

staticintc=3;

return(b++,c++,a+b+c);

)

程序輸出的其次行是(6),第三行是⑺.

6」程序](2分)

#include<ioslream.h>

voidff(int&&n)

(

intt=m+n:

m=n;n=t;

}

voidniain(void)

(

inta,b,i;

fbr(a=b=i=1;i<=5;i++){

ff(a.b);

cout?a?,\t,?b?cndl;

)

I

程序輸出的其次行是(8),第四行是⑼

7」程序](2分)

#include<iostream.h>

voidfl(intnjnt&i,chars口)

(

S[i]=,0,+n%10;

n=n/IO;i++;

if(n==O)s[i]=0;elsefl(n,i,s);

}

voidf2(in【n,inti,chars[])

|

if(n){

intk;

k=n%10;

f2(n/10,i+l,s);

s[i尸O'+k;

1

voidmain(void)

chars[2OJ;

inti=0;

fl(24675,i,s);

s[i]=0;

cout?,,s=,,?s?endl;

staticcharsi[20];

□(1357,0,si);

cout?^s1=,,?s1?cndl;

}

程序輸出的第一行是(10),其次行是(11)。

8」程序](2分)

#include<iostream.h>

char*f(char*sl,char*s2)

(

char*p,*pl;

intn=0;

while(*(sl+n))n++;

char*buf=newchar[n+l];

p=buf;p1=s1;

while(*p++=*pl++);

p=sl;pl=s2;

while(*p++=*p1++);

cout?buf?endl;

p-:pl=buf;

while(*p++=*pI++);

delete[]=buf;

returns1;

)

voidmain(void)

(

charsi[30]="about",s2[]=''timc”;

cout?f(sl,s2)?endl;

}

程序輸出的第一行是(12),其次行是(13)

9」程序](3分)

#include<iostream.h>

intfun(inty)

(

cout?x?,\f?y?endl;

return(x>y?x:y);

voidmain(void)

inta=3,b=6,k=4,m;

ni=fun(fun(a,b),fun(b,k));

cout?,,m=,,?m?endl;

}

程序輸出的第一行是(14),第三行是(⑸,第四行是(16)。

io.rwi(2分)

#include<iostream.h>

classBase

(

public:

voidvirtualR){cout<v”Base::fO”《endl;}

voidvirtualg(){cout<v"Base::g()“v〈end1;}

};

classA:publicBase

(

public:

voidninta=0)

};

classB:publicA

(

voidf(){cout?"B::f()”《endl;}

voidg(){coutvv''B::g()“<Vendl;}

);

voidmain(void)

(

Bb;

Base*p=&b;

A*q=&b;

p->f();p->g();

q->f();q->g();

}

程序輸出的第一行是(⑺,第三行是(18)。

?完善程序題,共12分

11.下面的程序功能是:將一個(gè)字符串中的單詞分行輸出。例如,對(duì)字符串;"Whatisyour

name?”執(zhí)行程序后,輸出結(jié)果為:

What

is

your

name?

[程序](4分)

#include<iostream.h>

char*nextWord(char**pp)

staticcharword[81];

while(**pp=,,)(19):

char*pw=word;

while(**pp&&**pp!=,0

*pw++=*(*pp)++;

(20):

return(21):

)

voidmain(void)

{

chars[]=,,Whatisyourname?,,,*ps=s;

do{

cout?nextWord((22))?endl:

}while(*ps);

I

12、以下程序的功能是:二維數(shù)組a中每列元素都是從小到大有序排列的,將一維數(shù)組b中

的元素依次插入到數(shù)組a的每列中,并保持a中每列數(shù)據(jù)的有序性。最終將執(zhí)行插入操作

后的數(shù)組a以矩陣形式輸出。例如,

原數(shù)組a為:132數(shù)組b為:27I操作后的數(shù)組a為:131

468262

8910478

[程序](4分)8910

#includc<iostrcam.h>

#include<iomanip.h>

#dcfineROW4

#defineCOL3

voidf(inta[][COL],intb[])

{

inti,j;

for((23))(

for(j=ROW-l;j>0;j-)

if(a|j-l][i]>b[i])

(24):

elsebreak;

(25):

)

I

voidmain(void)

{

inta[ROW][COL]={1,3,2,4,6,8,8,9,10);

intb[COL]={2,7,l};

coutvv”插入前數(shù)組中的數(shù)據(jù)依次為:“cv'S;

for(inti=0;i<ROW-1;i++){

fbr(intj=Oy<COL;j++)cout?scw(5)?a[i][j];

cout?endl;

I

cout?endl;

—(26)一;

cout?”插入后數(shù)組中的數(shù)據(jù)依次為:

for(i=0;i<ROW;i++){

for(intj=0;j<COL;j++)cout?sew(5)?a[ij[jJ;

cout<<endl;

)

1

13.在以下程序中,函數(shù)CreateLink。依據(jù)鍵盤(pán)輸入的整數(shù)建立一條單向無(wú)序鏈表,鏈表上

的每一個(gè)結(jié)點(diǎn)包含一個(gè)整數(shù);函數(shù)SortLink。通過(guò)變更結(jié)點(diǎn)在鏈表中的位置將鏈表調(diào)整為一

條有序鏈表,函數(shù)PrintLink。將鏈表上的整數(shù)依次輸出;函數(shù)DeleteLink。將鏈表刪除。

[程序](4分)

#include<iostream.h>

struct.nodc{

intdata;

node*next;

);

node*CreateLink(void)//創(chuàng)建無(wú)序鏈表

{

node*pl,*p2,*head=0;

inta;

cout<<“產(chǎn)生一條無(wú)序鏈,請(qǐng)輸入數(shù)據(jù),以-1結(jié)束:”;

cin?a;

while(a!=-l){

p1=newnode;p1->data=a;

if(head==0)(

head=p1;p2=pl;

}

else{

(27):

p2=pl;

}

COUKV”請(qǐng)輸入數(shù)據(jù),以-1結(jié)束:”;

cin?a;

}

p2->next=0;

return(head);

1

voidSorLink(node*&headi〃通過(guò)移動(dòng)每個(gè)節(jié)點(diǎn)的指針來(lái)完成鏈表排序

(

node*q,*tq,*p,*tp;

intflag=O;

if(!head)return;

for(q=hcad,tq=0;q;q=q->ncxt){

fbr(tp=q,p=q->next;p;(p=p,p=p->nex()

if(q->data>=p->data){

〃將p和q指向的兩個(gè)節(jié)點(diǎn)所處位置互換

(28):

p->next=q;

q=P;P=tp;

}

if(!tq)head=q;elsetq->next=q;

tqnq;

I

1

voidPrintLink(node*head)〃打印鏈表

{

node*p=hcad;

cout<<”鏈上各結(jié)點(diǎn)的數(shù)據(jù)為;\n”;

while(p!=NULL){

cout?p->data?T\f;

(29):

)

cout?',\n,,;

)

voidDeleteLind(node*head)〃刪除鏈表

{

node*pl;

while(head){

pI=head;

head=head->next;

(30):

1

)

voidmain(void)

{node*head=0;

head=CreateLink();PrintLink(head);

SortLink(head);PrintLink(head);

DeleteLink(head);}

[2024秋]

一、選擇題(用答題卡答題,答案依次填在21~30答題號(hào)內(nèi)

21.以下關(guān)于邏輯運(yùn)算的描述中,正確的是________。

A.全部的邏輯運(yùn)算都是雙目運(yùn)算,其優(yōu)先級(jí)相同

B.邏輯運(yùn)算中存在雙巨運(yùn)算和單目運(yùn)算,其優(yōu)先級(jí)相同

C.全部的邏輯運(yùn)算都是雙目運(yùn)算,其優(yōu)先級(jí)各不相同

D.邏輯運(yùn)算中存在雙目運(yùn)算和單目運(yùn)算,其優(yōu)先級(jí)各不相同

22.對(duì)于while和do...while循環(huán)語(yǔ)句,以下描述正確的是。

A.do…while語(yǔ)句中的循環(huán)體至少執(zhí)行一次B.兩個(gè)語(yǔ)句中循環(huán)體可能都不執(zhí)行

C.while語(yǔ)句中的循環(huán)體至少執(zhí)行一次D.兩個(gè)語(yǔ)句中的循環(huán)體至少執(zhí)行一次

23.以下說(shuō)明語(yǔ)句中,不存在語(yǔ)法錯(cuò)誤的是。

A.charsl[4]={"a"Jb","c''};B.chars2[4]={4a\,b,};

C.chars3[]={*Iamastudent5);D.chars4[14]={**Iamastudent"};

24.設(shè)變量ahc為整型變量,以下選項(xiàng)中存在語(yǔ)法錯(cuò)誤的是o

A.c=a+++b;B.c=a+b++;C.c=b++=c++;D.c=++a=b++;

25.設(shè)有程序段:

x=-l;

if(a!=0){if(a>0)x=l;)elsex=0;

該程序段表示的數(shù)學(xué)函數(shù)關(guān)系是。

-1(a<0)1(a<0)

A.x=0(a=0)Bx=-l(a=0)

1(a>0)0(a>0)

0(a<0)-1(a<0)

C.x=-l(a=0)Dx=1(a=0)

1(a>0)0(a>0)

26.以下關(guān)于兩個(gè)同類(lèi)型指針變量的敘述中,在肯定條件下,運(yùn)算結(jié)果沒(méi)有實(shí)際意義的是

A.兩個(gè)指針變量可以相互賦值B.兩個(gè)指針變量進(jìn)行比較運(yùn)算

C.兩個(gè)指針變量進(jìn)行減法運(yùn)算D,兩個(gè)指針變量進(jìn)行加法運(yùn)算

27.下列有關(guān)構(gòu)造函數(shù)的敘述中,正確的是。

A.類(lèi)的構(gòu)造函數(shù)不能重載B.任何一個(gè)類(lèi)必定有構(gòu)造函數(shù)

C.可以定義沒(méi)有構(gòu)造函數(shù)的類(lèi)D.任何一個(gè)類(lèi)必定有一個(gè)缺省的構(gòu)造函數(shù)

28.C++中運(yùn)算符重載可以變更o

A.運(yùn)算符的優(yōu)先級(jí)B.運(yùn)算符的結(jié)合性

C.運(yùn)算符實(shí)現(xiàn)的功能D.運(yùn)算符的操作數(shù)的個(gè)數(shù)

29.以下關(guān)于基類(lèi)指針和派生類(lèi)指針的敘述中,不正確的是o

A.基類(lèi)指針可以指向它的公有派生類(lèi)的對(duì)象

B.基類(lèi)指針可以指向它的多次派生后的派生類(lèi)的對(duì)象

C.派生類(lèi)的指針不能指向基類(lèi)的對(duì)象

D若基類(lèi)指針指向派生類(lèi)的對(duì)象,通過(guò)該基類(lèi)指針可以訪問(wèn)派生類(lèi)對(duì)象的全部成員

30.以下關(guān)于友元函數(shù)的敘述中,正確的是0

A,友元函數(shù)不能訪問(wèn)類(lèi)的私有成員

B.友元函數(shù)破壞了類(lèi)的封裝性和隱藏性

C.友元函數(shù)的運(yùn)用與類(lèi)的成員函數(shù)相同

D.友元函數(shù)的實(shí)現(xiàn)必需在類(lèi)的說(shuō)明中定義

二、填空題(請(qǐng)將答案填寫(xiě)在答題紙的相應(yīng)答題號(hào)內(nèi),每個(gè)答案只占一行)

?基本概念題,共5分

1.設(shè)有語(yǔ)句:inta=5,b=6,c;c=!a&&b++;執(zhí)行以上語(yǔ)句后,變量b的值為(1)”

2.在定義派生類(lèi)時(shí),假如沒(méi)有指定基類(lèi)的派生(繼承)方式,則缺省(默認(rèn))的繼承方式

是(2)

3.C++中編譯預(yù)處理包括:文件包含、宏和⑶。

4.要將一個(gè)函數(shù)定義為內(nèi)聯(lián)函數(shù)時(shí),通常在定義函數(shù)時(shí)運(yùn)用關(guān)鍵字(4)。

5.C++中表達(dá)式:“1amastudent”的值為該字符串的⑸

?閱讀程序題,共13分

6.[程序](2分)

#includevioslream.h、

voidf(inta[J)

(

intt=a[O];

a[0]=a[ll;a[l]=l;

cout?a[0]?,\t,?a[1]?,\n,;

)

voidmain(void)

(

intb[2]={300,500);

f(b);

cout?b[OJ?,\t,?b[lJ?,\n\

)

程序輸出的第一行為」6),第三行為⑺

7.[程序](2分)

#includc<iostrcam.h>

intfa(inta)

(

staticintm=l;

m=a*ni;

returnm;

)

voidmain(void)

(

for(inti=2:i<=4;i++)

cout?fa(i)?,\n,;

}

程序輸出的第一行為i8),第三行為⑼。

8」程序](2分)

#include<iostream.h>

intH(inla[3][3])

(

intsum=0;

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

for(intj=0;j<3;j++){

if(a[i][j]>0)continue;

sum+=a[i]|jj;

)

returnsum;

1

intf2(inta[3][3])

{

intsum=O;

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

for(intj=0;j<3J++){

if(a[iJ[jJ<0)break;

sum+=a[il[j];

)

returnsum;

1

voidmain(void)

{

intb[3][3]={{l23-20,9,-5}};

intsl,s2;

sl=fl(b);s2=f2(b);

cout?sl?endl;

cout?s2?endl;

)

程序輸出的第一行為UO,其次行為(11)。

9」程序](3分)

#include<iostream.h>

intf(intx[],intn)

|

if(n==l)x[n]=3;

elsex[n]=n+f(x,n-l);

cout?x[n]?,\n,;

returnx[nj;

1

voidmain(void)

{

intb[5]={3,4,5,6,0);

f(b,3);

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

cout?b[i]?,\f;

cou(?endl;

)

程序輸出的第一行是一H2),其次行是一(13),第三行是(14)

10」程序](2分)

#include<ioslream.h>

classA{

intx;

public:

A(inta){x=++a;}

^A(){cout?x?,\n,;}

intget(){returnx;}

);

classB:publicA{

inty;

public:

B(intb):A(b){y=gct()+b;)

B():A(5){y=6;}

~B(){cout?y?'\n';}

1;

voidmain(void)

{

Bb(5);

)

程序輸出的第一行是(5),輸出的其次行是(16)

11」程序](2分)

#include<ioslream.h>

classA{

intx;

public:

A(intx=0)

{this->x=x;}

virtualvoidf(){cout?x?endl;}

);

classB:publicA{

inty;

public:

B(intx,inty=l):A(x)

(

this->y=y;

}

voidf(inta){cout?y?cndl;}

);

voidmain(void)

{

Aal(10),*pa;

Bbl(20,30);

al.f();

pa=&al;

pa->f();

pa=&bl;

pa->f();

1

程序輸出的其次行是(7),輸出的第三行是一(18)。

?完善程序題,共12分

12.以下程序的功能是:將兩個(gè)字符串分別輸入到si和s2中,并使s2中的字符按升序排

列(用函

溫馨提示

  • 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)論