[说明] 函数sort(NODE*head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻节点中的元素,若较小的元素在后面,则交换这两个节点中的元素值。其中,head指向链表的头节点。排序时,为了避免每趟都扫描到链表的尾节点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个节点。例如,对于图8-25(a)所示的链表进行一趟冒泡排序后,得到图8-25(b)所示的链表。 链表的节点类型定义如下: typedef Struet Node int data; struct Node *next; NODE; [C语言函数] void sort(NODE *head) NODE *ptr, *preptr, *endptr; int tempdata; ptr=head->next; while (1) /*查找表尾节点*/ ptr=ptr->next; endptr=ptr; /*令endptr指向表尾节点*/ ptr= (2) ; while(ptr!=endptr) while( (3) ) if(ptr->data>ptr->next->data) tempdata=ptr->data; /*交换相邻节点的数据*/ ptr->data=ptr->next->data; ptr->next->data=tempdata; preptr= (4) ;ptr=ptr->next; endptr= (5) ; ptr=head->next;   (2)处填()

使用VC6打开考生文件夹下的工程test34_1,此工程包含一个源程序文件test34_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
David 3123 1000
源程序文件test34_1.cpp清单如下:
#include <iostream.h>
#include <string.h>
class person

public:
char name[20];
unsigned long id;
float salary;
void print( )cout<<name<<’ ’<<id<<’ ’<<salary<<
/***************** found *****************/

void main( )

person p;
person *ptr;
/***************** found *****************/
ptr=p;
/***************** found *****************/
strcpy("David",ptr->name);
ptr->id=3123;
ptr->salary=1000;
ptr->print( );


(A)错误:}
正确:};
(B)错误:ptr=p;
正确:ptr=&p;
(C)错误:strcpy("David",ptr>name);
正确:strcpy(ptr->name,"David");

对于下面定义的类MyClass,在函数f( )中将对象成员n的值修改为50的语句应该是( )。
class MyClass

public:
MyClass(int x) n=x;
void SetNum(int n1) n=n1;
private:
int n;

int f( )

MyClass *ptr=new MyClass(45);

A:MyClass(50) B:SetNum(50) C:C. ptr->SetNum(50) D:D. ptr->n=50

main函数中发生编译错误的语句是______。 #include<iostream.h> class A { public: int a; const int b; A( ):a(10),b(20){} void fun( )const { cout<<"a="<<a<<"/tb="<<b<<endl; } }; void main( ) { A obj1; const A*ptr=new A; ptr=&obj1; ptr->a=100; ptr->fun( ); }

ptr->a=100;

有如下程序: #include using namespace std; class Base{ public: void output( ){cout<output( ); ptr->Print( ); delete ptr; return 0; ) 程序的输出结果是

A:IB B:iD C:2B D:2D

对于下面定义的类MyClass,在函数f( )中将对象成员n的值修改为50的语句应该是( )。 class MyClass { public: MyClass(int x) {n=x;} void SetNum(int n1) {n=n1;} private: int n; } int f( ) { MyClass *ptr=new MyClass(45); }

A:MyClass(50) B:SetNum(50) C. ptr->SetNum(50) D. ptr->n=50

有如下程序: #include <iostream> using namespace std; class Base { public: void output( ) { cout<<1; } virtual void Print( ) { cout<<’B’; } }; class Derived: public Base { public: void output( ) { cout<<2; } void Print( ) { cout<<’D’; } }; int main( ) { Base *ptr=new Derived; ptr->output( ); ptr->Print( ); delete ptr; return ( ); }程序的输出结果是

A:1B B:1D C:2B D:2D

微信扫码获取答案解析
下载APP查看答案解析