答案:
A
〖第8题〗『单项选择』(1分)(题号:
1452)
在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()比较合适.
A:
内联函数
B:
重载函数
C:
递归调用
D:
嵌套调用
答案:
A
〖第9题〗『单项选择』(1分)(题号:
1435)
下述关于循环体的描述中,()是错误的.
A:
循环体中可以出现break语句和continue语句
B:
循环体中还可以出现循环语句
C:
循环体中不能出现goto语句
D:
循环体中可以出现开关语句
答案:
C
〖第10题〗『单项选择』(1分)(题号:
1420)
已知:
类A中一个成员函数说明如下:
voidSet(A&a);其中,A&a的含意是().
A:
指向类A的指针为a
B:
将a的地址值赋给变量Set
C:
a是类A的对象引用,用来作为函数Set()的形参
D:
变量A与a按位相与作为函数Set()的参数
答案:
C
〖第11题〗『单项选择』(1分)(题号:
723)
下列字符常量表示中,()是错误的.
A:
'\105'
B:
'*'
C:
'\4f'
D:
'\a'
答案:
C
〖第12题〗『单项选择』(1分)(题号:
729)
在inta=3,*p=&a;中,*p的值是().
A:
变量a的地址值
B:
无意义
C:
变量p的地址值
D:
3
答案:
D
〖第13题〗『单项选择』(1分)(题号:
378)
下列关于运算符重载的描述中,()是正确的.
A:
运算符重载可以改变操作符的个数
B:
运算符重载可以改变优先级
C:
运算符重载可以改变结合性
D:
运算符重载不可以改变语法结构
答案:
D
〖第14题〗『单项选择』(1分)(题号:
721)
下列十六进制的整型常数表示中,()是错误的.
A:
Oxaf
B:
OXlb
C:
2fx
D:
OxAE
答案:
C
〖第15题〗『单项选择』(1分)(题号:
734)
下列各运算符中,()可以作用于浮点数.
A:
++
B:
%
C:
>>
D:
&
答案:
A
〖第16题〗『单项选择』(1分)(题号:
1419)
已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象.如果要给m赋值为5,()是正确的.
A:
A1.p=5
B:
A1->p=5
C:
A1.*p=5
D:
*A1.p=5
答案:
C
〖第17题〗『单项选择』(1分)(题号:
1411)
()是析构函数的特征.
A:
一个类中只能定义一个析构函数
B:
析构函数名与类名不同
C:
析构函数的定义只能在类体内
D:
析构函数可以有一个或多个参数
答案:
A
〖第18题〗『单项选择』(1分)(题号:
715)
下面关于类概念的描述中,()是错误的.
A:
类是由抽象数据类型的实现
B:
类是具有共同行为的若干对象的统一描述体
C:
类是创建对象的样板
D:
类是C语言中的结构类型
答案:
D
〖第19题〗『单项选择』(1分)(题号:
1404)
关于多继承二义性的描述中,()是错误的.
A:
一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B:
解决二义性的最常用的方法是对成员名的限定法
C:
基类和派生类中同时出现的同名函数,也存在二义性问题
D:
一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性
答案:
C
〖第20题〗『单项选择』(1分)(题号:
1439)
下列关于条件语句的描述中,()是错误的.
A:
if语句中只有一个else子句
B:
if语句中可以有多个elseif子句
C:
if语句中if体内不能是开关语句
D:
if语句的if体中可以是循环语句
答案:
C
〖第1题〗『WINDOWS操作』(15分)(题号:
15)
---------------------------------------------------------------------
请在打开的窗口中,进行下列操作,完成所有操作后,请关闭窗口。
--------------------------------------------------------------------
1:
在文件夹“bn”内新建一个名称为“xg”的文本文档。
2:
将文件夹“bn”复制到文件夹“mm”内。
3:
将文件夹“mm”内的文件夹“tr”删除。
〖第1题〗『程序填空』(10分)(题号:
291)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序用来对从键盘上输入的两个字符串进行比较,
然后输出两个字符串中第一个不相同字符的ASCII码之差。
例如:
输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。
-------------------------------------------------------*/
#include
#include
voidmain()
{
charstr1[50],str2[50];
inti,s;
cout<<"\ninputstring1:
\n";
/***********SPACE***********/
【?
】;
cout<<"\ninputstring2:
\n";
cin.getline(str2,50);
i=0;
/***********SPACE***********/
while((【?
】)&&(str1[i]!
='\0'))
/***********SPACE***********/
【?
】;
/***********SPACE***********/
【?
】;
cout<
}
答案:
1).cin.getline(str1,50)或gets(str1)
2).str1[i]==str2[i]或str2[i]==str1[i]
3).i++或i=i+1或i+=1或++i
4).s=str1[i]-str2[i]
〖第2题〗『程序填空』(10分)(题号:
337)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
将N(N<100)个元素的一维数组循环向左移位
(即将每一个元素向前移动一位,第一位移到最后一位。
)
-------------------------------------------------------*/
#include
voidmain()
{
inta[100],n,b,i;
cin>>n;
/***********SPACE***********/
for(i=0;i<【?
】;i++)
cin>>a[i];
/***********SPACE***********/
b=【?
】;
/***********SPACE***********/
for(【?
】)
a[i-1]=a[i];
/***********SPACE***********/
【?
】;
for(i=0;icout<}
答案:
1).n
2).a[0]
3).i=1;i4).a[n-1]=b或a[i-1]=b
〖第1题〗『程序改错』(10分)(题号:
75)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
在[100,5000]之间打印出各位数字和为5的所有整数的个数.
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
voidmain()
{
inta,b,c,d,k,i;
k=0;
for(i=104;i<=500;i++)
{
/***********FOUND***********/
a=i%100;
b=(i-a*100)/10;
c=i-a*100-b*10;
/***********FOUND***********/
if(a+b+c<>5)k++;}
for(i=1000;i<=5000;i++)
{a=i/1000;
b=(i-a*1000)/100;
/***********FOUND***********/
c=(i-A*1000-b*100)/100;
d=i-a*1000-b*100-c*10;
/***********FOUND***********/
if(a+b+c==5)k++;
}
cout<}
答案:
1).a=i/100;
2).if(★a★+★b★+★c★==5)k++;
3).c=(i-a*1000-b*100)/10;
4).if(★a★+★b★+★c★+★d★==5)k++;
〖第2题〗『程序改错』(10分)(题号:
54)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
以下程序的输出结果为:
调用构造函数
text=abcdef
调用析构函数
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
/***********FOUND***********/
#include
classstring
{
private:
/***********FOUND***********/
chartext;
public:
string(char*ch)
{
text=newchar[strlen(ch)+1];
strcpy(text,ch);
cout<<"调用构造函数"<}
/***********FOUND***********/
string()
{
delete[]text;
cout<<"调用析构函数"<}
voidprint(){cout<<"text="</***********FOUND***********/
}:
voidmain()
{
stringstring("abcdef");
string.print();
}
答案:
1).#include
2).char*text;
3).~string()
4).};
〖第3题〗『程序改错』(10分)(题号:
71)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
用顺序交换法将12个整数中处于奇数位的数从大到小排序。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
voidmain()
/***********FOUND***********/
{intm[12],i,j;
/***********FOUND***********/
for(i=1;i<=12;i++)
cin>>m[i];
for(i=0;i<11;i+=2)
/***********FOUND***********/
for(j=i+1;i<11;i++)
/***********FOUND***********/
if(m[i]>m[j])
{k=m[i];
m[i]=m[j];
m[j]=k;}
for(i=0;i<12;i++)
cout<}
答案:
1).{int★m[12]★,★i★,★j★,★k★;
2).for(i=0;i<12;i++)或for(i=0;i<=11;i++)
3).for(j=i+2;j<11;j+=2)或for(j=i+2;j<11;j=j+2)
4).if(m[j]>m[i])或if(m[i]〖第1题〗『程序设计』(10分)(题号:
51)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
程序功能是从文本文件in.dat中读取全部整数,将
整数序列存放到intArray类的对象myArray中。
输出
到文件out.dat中。
文件in.dat中的整数个数不大于
300个。
请将程序补充完整。
实现对整数序列按非递
减排序,并将排序结果在屏幕输出。
不得修改程序
的其他部分。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其
它函数中的任何内容。
------------------------------------------------*/
#include
#include
#include
usingnamespacestd;
classintArray
{
private:
int*array;//整数序列首地址
intlength;//序列中的整数个数
public:
//构造函数,从文件中读取数据用于初始化新对象。
参数是文件名。
intArray(char*filename);
voidsort();//对整数序列按非递减排序
~intArray();
voidwriteToFile(char*filename);
};
intArray:
:
intArray(char*filename)
{
ifstreammyFile(filename);
intlen=300;
array=newint[len];
length=0;
while(myFile>>array[length++]);
length--;
myFile.close();
}
/**********Program**********/
/**********End**********/
intArray:
:
~intArray()
{
delete[]array;
}
voidintArray:
:
writeToFile(char*filename)
{
intstep=0;
ofstreamoutFile(filename);
for(inti=0;i{
outFile<step++;
}
outFile.close();
}
voidmain()
{
intArraymyArray("in.dat");
myArray.sort();
myArray.writeToFile("out.dat");
}
答案:
voidintArray:
:
sort()
{
for(inti=0;ifor(intj=length-1;j>i;j--)
{
if(array[j-1]>array[j])
{
inttmp;
tmp=array[j-1];
array[j-1]=array[j];
array[j]=tmp;
}
}
for(i=0;icout<}