C编程基础答案.docx

上传人:b****7 文档编号:15687261 上传时间:2023-07-06 格式:DOCX 页数:12 大小:15.81KB
下载 相关 举报
C编程基础答案.docx_第1页
第1页 / 共12页
C编程基础答案.docx_第2页
第2页 / 共12页
C编程基础答案.docx_第3页
第3页 / 共12页
C编程基础答案.docx_第4页
第4页 / 共12页
C编程基础答案.docx_第5页
第5页 / 共12页
C编程基础答案.docx_第6页
第6页 / 共12页
C编程基础答案.docx_第7页
第7页 / 共12页
C编程基础答案.docx_第8页
第8页 / 共12页
C编程基础答案.docx_第9页
第9页 / 共12页
C编程基础答案.docx_第10页
第10页 / 共12页
C编程基础答案.docx_第11页
第11页 / 共12页
C编程基础答案.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C编程基础答案.docx

《C编程基础答案.docx》由会员分享,可在线阅读,更多相关《C编程基础答案.docx(12页珍藏版)》请在冰点文库上搜索。

C编程基础答案.docx

C编程基础答案

《C/C++编程基础》机试试卷答案

一.编程题:

(共4题100分)

1、选择排序:

#include

#defineSWAP(a,index,i){inttmp=a[index];a[index]=a[i];a[i]=tmp;}

usingnamespacestd;

voidsort(int*a,intsize){

for(inti=0;i

intindex=i;

for(intj=i+1;j

if(a[index]

index=j;

}

if(index!

=i)

SWAP(a,index,i);

}

}

voidprint(int*a){

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

cout<

cout<

}

intmain(void)

{

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

print(a);

sort(a,10);

print(a);

return0;

}

2、#include

usingnamespacestd;

classCar;

classState{

public:

virtualvoidforward(Car&car)=0;

virtualvoidback(Car&car)=0;

virtualvoidturnleft(Car&car)=0;

virtualvoidturnright(Car&car)=0;

virtualvoiddisplay()=0;

};

classCar{

private:

intx;

inty;

State*curstate;

classNorth:

publicState{

voidforward(Car&car){

car.y+=1;

}

voidback(Car&car){

car.y-=1;

}

voidturnleft(Car&car){

car.curstate=newWest;

}

voidturnright(Car&car){

car.curstate=newEast;

}

voiddisplay(){

cout<<"curstate:

North"<

}

};

classSouth:

publicState{

voidforward(Car&car){

car.y-=1;

}

voidback(Car&car){

car.y+=1;

}

voidturnleft(Car&car){

car.curstate=newEast;

}

voidturnright(Car&car){

car.curstate=newWest;

}

voiddisplay(){

cout<<"curstate:

South"<

}

};

classWest:

publicState{

voidforward(Car&car){

car.x-=1;

}

voidback(Car&car){

car.x+=1;

}

voidturnleft(Car&car){

car.curstate=newSouth;

}

voidturnright(Car&car){

car.curstate=newNorth;

}

voiddisplay(){

cout<<"curstate:

West"<

}

};

classEast:

publicState{

voidforward(Car&car){

car.x+=1;

}

voidback(Car&car){

car.x-=1;

}

voidturnleft(Car&car){

car.curstate=newNorth;

}

voidturnright(Car&car){

car.curstate=newSouth;

}

voiddisplay(){

cout<<"curstate:

East"<

public:

Car():

curstate(newNorth),x

(2),y

(2){}

voidforward(){

curstate->forward(*this);

}

voidback(){

curstate->back(*this);

}

voidturnleft(){

curstate->turnleft(*this);

}

voidturnright(){

curstate->turnright(*this);

}

voiddisplay(){

curstate->display();

}

voidgetPos()const{

cout<<"position:

<"<"<

}

};

intmain(void)

{

Carcar;

car.getPos();

car.display();

car.forward();

car.turnleft();

car.forward();

car.turnright();

car.forward();

car.turnright();

car.forward();

car.forward();

car.forward();

car.display();

car.getPos();

return0;

}

3、

#include

usingnamespacestd;

template

classCompare{

private:

Tmax;

Tmin;

public:

Compare(Ta,Tb){

if(a>b){

max=a;

min=b;

}

elseif(a

max=b;

min=a;

}else{

max=a;

min=a;

}

}

~Compare(){

cout<<"max:

"<

cout<<"min:

"<

}

};

intmain(void)

{

Compare(2,3);

Compare(4.2,3.5);

return0;

}

4、

Student.h

----------------------------------------------------------------------------------------------------------------

#ifndef__STUDENT_H__

#define__STUDENT_H__

#include

#include

#include"file.h"

usingnamespacestd;

classStudent{

private:

string_id;

string_name;

double_score;

Student*next;

public:

Student():

next(NULL){}

Student(stringid,stringname,doublescore);

voidsetInfo(stringid,stringname,doublescore);

friendostream&operator<<(ostream&os,Student&s);

friendboolcomp(constStudent&,constStudent&);

friendclassList;

friendclassFile;

};

#endif

student.cpp

----------------------------------------------------------------------------------------------------------------

#include"student.h"

Student:

:

Student(stringid,stringname,doublescore){

_id=id;

_name=name;

_score=score;

next=NULL;

}

voidStudent:

:

setInfo(stringid,stringname,doublescore){

_id=id;

_name=name;

_score=score;

}

ostream&operator<<(ostream&os,Student&s){

os<<"name:

"<

<<"id:

"<

<<"score:

"<

returnos;

}

 

file.h

----------------------------------------------------------------------------------------------------------------

#ifndef__FILE_H__

#define__FILE_H__

#include

#include

#include"student.h"

classStudent;

usingnamespacestd;

classFile{

public:

File();

~File();

voidgetInfo();

voidsortForId();

voidwriteAfterSort();

voidprint();

private:

fstreamrwfile;

listslist;

};

#endif

 

file.cpp

---------------------------------------------------------------------------------------------------------------------

#include"file.h"

File:

:

File(){

rwfile.open("studentinfo.txt");

if(!

rwfile){

throw-1;

}

}

File:

:

~File(){

rwfile.close();

}

voidFile:

:

getInfo(){

while(!

rwfile.eof())

{

stringnon;

Studenttmp;

rwfile>>tmp._id>>tmp._name>>tmp._score;

rwfile>>non;

if(rwfile)

slist.push_back(tmp);

}

}

voidFile:

:

print(){

list:

:

iteratoriter=slist.begin();

for(iter;iter!

=slist.end();iter++){

cout<<(*iter)._id<<(*iter)._name<<(*iter)._score<

}

}

boolcomp(constStudent&a,constStudent&b){

return(a._id

}

voidFile:

:

sortForId(){

slist.sort(comp);

}

voidFile:

:

writeAfterSort(){

rwfile.close();

rwfile.open("studentinfo.txt");

list:

:

iteratoriter=slist.begin();

for(iter;iter!

=slist.end();iter++){

rwfile<<(*iter)._id<<""\

<<(*iter)._name<<""\

<<(*iter)._score<<""<

}

}

main.cpp----------------------------------------------------------------------------------------------------------------

#include"student.h"

#include"file.h"

#include

intmain(void)

{

Filefile;

file.getInfo();

file.print();

file.sortForId();

file.print();

file.writeAfterSort();

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2