《11-12程序設(shè)計(jì)及算法語(yǔ)言Ⅱ上級(jí)考試試卷A(電類(lèi))答》由會(huì)員分享,可在線閱讀,更多相關(guān)《11-12程序設(shè)計(jì)及算法語(yǔ)言Ⅱ上級(jí)考試試卷A(電類(lèi))答(10頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、程序設(shè)計(jì)與算法語(yǔ)言Ⅱ(電類(lèi)) 2010 級(jí)機(jī)試(A 卷)
(考試時(shí)間 80 分鐘)
說(shuō)明:首先在網(wǎng)絡(luò) Z 盤(pán)建立一個(gè)以自己的學(xué)號(hào)+姓名命名的文件夾,在考試結(jié)束前
根據(jù)機(jī)房要求,將要上交的源文件“學(xué)號(hào)-fa1.CPP”和“學(xué)號(hào)-fa2.CPP”復(fù)制到該
文件夾中。
注意:請(qǐng)?jiān)诒緳C(jī)的 D 盤(pán)根目錄上建立一個(gè)以自己學(xué)號(hào)命名的文件夾,將本次機(jī)試的
兩題所用的工程目錄及文件均建立在此文件夾中。
一、改錯(cuò)題 (50 分)
【要求】調(diào)試程序,修改其中的語(yǔ)法錯(cuò)誤及少量邏輯錯(cuò)誤。只能修改、不能增加或
刪除整條語(yǔ)句,但可增加少量說(shuō)明語(yǔ)句和編譯預(yù)處理指令。
★ 請(qǐng)?jiān)谛薷牡恼Z(yǔ)句后依次加上://錯(cuò)誤
2、 1、//錯(cuò)誤 2、……。
【注意】源程序以“學(xué)號(hào)-fa1.cpp”命名,存入自己學(xué)號(hào)文件夾,然后在“學(xué)號(hào)-fa1.cpp”
源文件中改錯(cuò)。請(qǐng)不要直接在此 WORD 文檔上修改。
【題目】以下程序?qū)崿F(xiàn)了對(duì)字符串的選擇排序,初始字符串為“Hello World!”,排
序后輸出字符串為“roollledWH!”。
【含錯(cuò)誤的源程序】
#include
using namespace std;
void SelectSort( char [] )
int main()
{
int n=12;
char list[n]="Hello
3、World!";
cout>>"未排序字符串:"<
4、<=n;j++)
if(slist[j]>temp)
{
k=j;
temp=slist[j];
}
if(k!=i)
{
temp=slist[i];
slist[i]=slist[k];
slist[k]=temp;
}
}
}
我編的:
#include
using namespace std;
void SelectSort( char [],int );
int main()
{
int n=12;
char list[
5、]="Hello World!";
cout<<"未排序字符串:"<
6、for(j=i;j<=n;j++)
if(slist[j]>temp)
{
k=j;
temp=slist[j];
}
if(k!=i)
{
temp=slist[i];
slist[i]=slist[k];
slist[k]=temp
7、;
}
}
}
二、編程題(50 分)
【注意】源程序以“學(xué)號(hào)-fa2.cpp”命名,存入自己學(xué)號(hào)文件夾。
【題目】以下程序定義了一個(gè)鏈表類(lèi) List,其元素為整型數(shù)據(jù)結(jié)點(diǎn)。鏈表可以通過(guò)
流運(yùn)算符從當(dāng)前目錄中的文件“ListA.txt”中讀取數(shù)據(jù),再向控制臺(tái)輸出。
【說(shuō)明】本程序的執(zhí)行流程是,創(chuàng)建鏈表對(duì)象并通過(guò)文件設(shè)置鏈表初值,然后向鏈
表中添加一些數(shù)據(jù)。請(qǐng)按以上說(shuō)明和要求將下面程序補(bǔ)充完整,并調(diào)試運(yùn)行。
//此處添加代碼
class List;
ostream& operator<<(ostream &os,List &a);
8、istream& operator>>(istream &, List &);
class Node
{
public:
int info;//數(shù)據(jù)域
Node *link;//指針域
Node( const int data=0 ) { info=data; link=NULL; }
};
class List
{
Node *head, *tail;
public:
List();
~List();
void Empty(); //清空整個(gè)鏈表
List &operator+=(c
9、onst Node &a);
//在當(dāng)前表的最后添加一個(gè)元素
//用于直接輸出鏈表對(duì)象
//用于從文件輸入鏈表對(duì)象
friend ostream& operator<<(ostream &, List &);
friend istream& operator>>(istream &, List &);
};
List::List()
{
//此處添加代碼
}
List::~List()
{
Empty();
delete head;
}
void List::Empty()
{
//此處添加代碼
}
List& List::o
10、perator+=(const Node &a)
{
//此處添加代碼
}
ostream& operator<<(ostream &os, List &a)
{
//此處添加代碼
}
istream& operator>>(istream &fs,List &a)
{
//此處添加代碼
}
int main()
{
List list;
fstream file;
//創(chuàng)建鏈表
file.open("ListA.txt", ios::in);
if( !file )
{
cout << "Can not open input f
11、ile!\n" << endl;
return 0;
}
file>>list;
file.close();
file.clear();
cout<
#include
using namespace std;
class Li
12、st;
ostream& operator<<(ostream &os,List &a);
istream& operator>>(istream &, List &);
class Node
{
public:
int info;
//數(shù)據(jù)域
Node *link;//指針域
Node( const int data=0 ) { info=data; link=NULL; }
};
class List
{
Node *head, *tail;
public:
List();
~List();
void Emp
13、ty(); //清空整個(gè)鏈表
List &operator+=(const Node &a); //在當(dāng)前表的最后添加一個(gè)元素
friend ostream& operator<<(ostream &, List &);//用于直接輸出鏈表對(duì)象
friend istream& operator>>(istream &, List &);//用于從文件輸入鏈表對(duì)象
};
List::List()
{
//此處添加代碼
head=tail=new Node();
}
List::~List()
{
Empty();
14、 delete head;
}
void List::Empty()
{
//此處添加代碼
Node* temp;
while(head->link!=NULL){
temp = head->link;
head->link = temp->link;
delete temp;
}
tail=head;
}
List& List::operator+=(const Node &a)
{
Node* b = new Node(a.info);
tail->link = b;
tail = b;//此處添加代碼
15、return *this;
}
ostream& operator<<(ostream &os, List &a)
{
//此處添加代碼
Node* temp=(a.head)->link;
while(temp){
os<info<<'\t'<link;
}
return os;
}
istream& operator>>(istream &fs,List &a)
{
//此處添加代碼
int aa;
fs>>aa;
//cout<
16、 Node* temp;
temp = new Node(aa);
a+=*temp;
//cout<>aa;
}
return fs;
}
int main()
{
List list;
fstream file;
//int y;
//創(chuàng)建鏈表
file.open("ListA.txt", ios::in);
if( !file )
{
cout << "Can not open input file!\n" << endl;
return 0;
}
//cout<<"############"<>y;cout<>list;
file.close();
file.clear();
cout<