问答题 使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],intn),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。 注意:不能修改和删除程序的其他部分,也不能修改程序的结构。 试题程序: #include<iostream.h> #defineN10 voidsort(intA[N],intn) { } intmain() { intA[N]={1,50,17,69,87,42,90,-6,O,-11}; sort(A,10); for(inti=0;i<sizeof(A)/sizeof(int);i++) { cout<<A[i]<<'; } cout<<endl; return0; }
判断题 饱和土体固结时,孔隙水应力消散的数值等于有效应力增长的数值。( )
问答题 (1)“while()”应改为“while(infile.get(ch))”。 (2)应添加“bur[len++]=ch;bur[len]=ch;len++;”。 (3)应添加“outfile2<<bur[i++];”或“outfile2<<buf[i];i++;”。 (4)“TCobj();”应改为“TCobi("in.txt");”。 【解析】本题考查了文件流的使用。根据题意,第1处要获得一个字符,并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf数组,同时让len增1;第3处将buf中的字节输出给outfile2,注意同时让i增1,否则while循环将进入死循环;第4处TC只确一个带char*参数的构造函数,所以创建对象时必须使用构造参数,根据题意这个参数应该是“"in.txt"”。
判断题 粘性土液性指数越小土越硬。( )
判断题 粘性土土坡的稳定性与坡高无关。( )
判断题 同一土层的自重应力按直线分布。( )
问答题 (1)应添加“intseta(intx)”。 (2)应添加“classTC3:publicTC1,privateTC2”。 (3)应添加“intC;”。 (4)应添加“seta(x);”。 【解析】本题第1处要求“完成类TCl的成员函数seta定义,定义seta对象X为int类型”。类的成员函数是函数的一种,它与一般函数的区别是,它是一个类的成员,出现在类体中。所以类TCl中的成员函数,就是在TCl中定义题目中要求的参数为intx的seta函数,即“intseta(intx)”。第2处要求“完成类TCl(公有)和类TC2(私有)派生类TC3的定义”。从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为“class派生类名;[继承方式]基类名”。根据声明派生类的一般形式,这里补全“class TC3:publicTC1,privateTC2”。第3处要求“定义类TC3中的私有成员C为int”。在类TC3中的private数据成员区域,定义intC,印在第3处补全“intC;”。第4处要求“完成setc中对基类的变量a的赋值”。基类为TCl,setc对于该类a的赋值,是intseta(intx)函数的赋值,即“seta(x);”
问答题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: number=1 number=10 number=100 注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。 试题程序: #include<iostream.h> classTC { public: TC(inti) { number=i; } voidSetNumber(intm) { number=m; } intGetNumber()const { returnnumber; } voidPrint()const { cout<<"number="<<number<<endl; } private: intnumber; }; voidmain() { //********error******** TCobjl; objl.Print(); TCobj2(3); //********error******** objl.number=10; //********error*‰****** TC.SetNumber(100); objl.Print(); obj2.Print(); }
判断题 无粘性土压密后,内摩擦角增大,稳定坡角也增大。( )
问答题 (1)应改为“catch(char*s)”。 (2)应改为“cateh(inti)”。 (3)应改为“catch(…)”。 【解析】本题中第1个标识前的异常抛出语句为“throw("error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。