设为首页 加入收藏

TOP

C++语言程序设计试题
2014-09-29 08:00:05 来源: 作者: 【 】 浏览:44
Tags:语言 程序设计 试题

(说明:在本试卷中统一规定整型(int)数据占用4个字节的存储单元。)



1、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为 。A. main B. MAIN C. name D. function


2、设x和y均为bool量,则x&&y为真的条件是 。


A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假


3、下面的哪个保留字不能作为函数的返回类型? 。A. void B. int C. new D. long


4、假定a为一个整型数组名,则元素a[4]的字节地址为 。A. a+4 B. a+8 C. a+16 D. a+32


5、假定AB为一个类,则执行”AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为 。


A. 3 B. 4 C. 6 D. 9


6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: 。 A. AB operator+(AB & a , AB & b) B. AB operator+(AB & a)


C. operator+(AB a) D. AB & operator+( )



1、C++语言中的每条基本语句以 作为结束符,每条复合语句以 作为结束符。


2、执行”cout <

3、float 和 double 类型的大小分别为 和 。


4、算术表达式 对应的C++表达式为 。


5、关系表达式x+y>5的相反表达式为 。


6、假定一个一维数组的定义为”char * a[8] ;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。


7、变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。


8、假定a是一个二维数组,则a[i][j]的指针访问方式为 。


9、假定一个结构类型定义为”struct D { int a ; union { int b ; double c ; } ; D * d[2] ; } ;” ,则该类型的大小为 字节。


10、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。


11、假定AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类的构造函数的次数为 。


12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为




三、给出下列程序运行后的输出结果(每小题6分,共36分)


1、


# include


void SB(char ch) {


switch(ch){


case ‘A’: case ‘a’:


cout <<”well!”; break;


case ‘B’: case ‘b’:


cout <<”good!”; break;


case ‘C’: case ‘c’:


cout <<”pass!”; break;


default:


cout <<”nad!”; break;


}


}


void main() {


char a1=’b’,a2=’C’,a3=’f’;


SB(a1);SB(a2);SB(a3);SB(‘A’);


cout <


}





2、


# include


# include


void main() {


char *a[5]={“student”,”worker”,”cadre”,”soldier”,”peasant”};


char *p1,*p2;


p1=p2=a[0];


for (int i=0; i<5; i++) {


if (strcmp(a[i],p1)>0) p1=a[i];


if (strcmp(a[i],p2)<0) p2=a[i];


}


cout <


}




3、


# include


int a=5;


void main() {


int a=10,b=20;


cout <


{ int a=0,b=0;


for (int i=1; i<6; i++) {


a+=i; b+=a;


}


cout <


}


cout <


}




4、


# include


int LB(int *a,int n) {


int s=1;


for (int i=0; i


s*=*a++;


return s;


}


void main() {


int a[]={1,2,3,4,5,6,7,8};


int b=LB(a,5)+LB(&a[3],3);


cout <<”b=”<


}




5、


# include


# include


struct Worker{


char name[15]; // 姓名


int age; // 年龄


float pay; // 工资


};


void main() {


Worker x;


char *t=”liouting”;


int d=38; float f=493;


strcpy(x.name,t);


x.age=d; x.pay=f;


cout <


}




6、


# include


class A {


int a;


public:


A(int aa=0) { a=aa; }


~A() { cout <<”Destructor A!”<


};


class B:public A {


int b;


public:


B(int aa=0,int bb=0):A(aa) { b=bb; }


~B() { cout <<”Destructor B!”<


};


void main() {


B x(5),y(6,7); // 后定义的变量将先被释放


}




四、写出下列每个函数的功能(每小题6分,共24分)


1、# include


int SA(int a,int b) {


if (a>b) return 1;


else if (a==b) return 0;


else return -1;


}




2、float FI(int n) {


// n为大于等于1的整数


float x,y=0;


do {


cin >>x;


n–; y+=x*x;


} while (n>0);


return y;


}




3、template


void WE(Type a[],Type b[],int n) {


for (int i=0; i


b[n-i-1]=a[i];


}




4、struct StrNode {


char name[15]; // 字符串域


StrNode * next; // 指针域


};


void QB(StrNode * & f ,int n) {


if (n==0) { f=NULL; return; }


f=new StrNode;


cin >>f->name;


StrNode * p=f;


while (–n) {


p=p->next=new StrNode;


cin >>p->name;


}


p->next=NULL;


}




五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件”a:xxk1.dat”中。(10分)





六、简答题



1、简述Windows中句柄的意义和消息映射机制





2、一个Windows程序的关键就是打开一个窗口,处理消息,调用主事件循环等。要创建一个完全实用的Windows程序,需要进行哪几步工作?


*******************************************************************************


C++语言程序设计试题
答案及评分标准


一、单选题(每小题1分,共6分)


评分标准:选对者得1分,否则不得分。


1、A 2、A 3、C 4、C 5、B 6、B


二、填空题(每小题2分,共24分)


评分标准:每题与参考答案相同者得2分,否则不得分。


1、 : } 2、 C


3、 4 8 4、 (x*y*y)/(3*a)+4*b-1


5、 x+y<=5 6、 8 32


7、 局部 8、 *(a[i]+j) 或 *(*(a+i)+j)


9、 20 10、 初始化表 函数体


11、 10 12、 AB::bb


三、给出下列程序运行后的输出结果(每小题6分,共36分)


评分标准:每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。


1、 good! pass! bad! well!


2、 worker cadre


3、 10 20


15 35 5


10 20


4、 b=240


5、 liouting 38 493


6、 Destructor B! 7


Destructor A! 6


Destructor B! 0


Destructor A! 5


四、写出下列每个函数的功能(每小题6分,共24分)


评分标准:每题与参考答案的叙述含义相同者得6分,否则酌情给分。


1、比较两个整数a和b的大小,若a>b则返回1,若a= =b则返回0,若a


2、求出从键盘上输入的n个常数的平方和并返回。


3、模板函数,把数组a的每个元素按逆序放入数组b中。


4、建立一个具有n个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针由引用变量f带回。


五、编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件”a:xxk1.dat”中。(10分)




评分标准:见参考程序中的注释。




# include // 使用此命令得1分


# include


# include




void main() {


ofstream fout(“a:xxk1.dat”); // 定义输出文件流并打开文件得2分


if (!fout){


cerr <<”文件没有打开!”<


exit(1);


} // 可有可无


int x;


cin >>x;


while (x!=-1) {


fout <


cin >>x;


} // 能够从键盘向文件正确输出数据得6分


fout.close(); // 关闭输出文件流得1分


}



六、简答题


1、简述Windows中句柄的意义和消息映射机制


句柄是一个4字节长的数值,用于标识应用程序中不同的对象同类对象中不同的实例


任何需要消息映射的类,在其定义中必须加入DECLARE_MESSAGE_MAP()宏定义。


2、 



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇捷成世纪软件测试工程师笔试题 下一篇软件测试、智力测试面试题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: