c++九峰实验学校面试题目题目

计算机二级C++考试试题及答案-计算机二级C++机试试题及答案-C++模拟试题-C++练习题-233网校
扫描二维码进入
扫描二维码进入
233网校移动资讯
扫描二维码下载APP
233网校查分神器
您现在的位置:&&&模拟试题
海量免费模拟试题,在线测试。
各科每年真题试卷,实战演练!
逐章逐节针对练习,专项突破。
每天10道最新试题,随机练习。导读:(二)完成实验项目,3.撰写实验报告,五、实验机时,实验六函数调用,二、实验设备及分组,(一)验证实验程序,3.从键盘输入两个字符串,将它们连接成一个字符串。分析:建立两个变量i、j,先使i指向字符数组str1的第一个元素,然后移动i使其指向str1的末尾,即指向str1的最后一个元素‘\\0’;再使j指向字符数组str2的第一个元素,然后将str2中的元素分别赋给str1中相应位置的元素,直3.从键盘输入两个字符串,将它们连接成一个字符串。 分析:建立两个变量i、j,先使i指向字符数组str1的第一个元素,然后移动i使其指向str1的末尾,即指向str1的最后一个元素‘\\0’;再使j指向字符数组str2的第一个元素,然后将str2中的元素分别赋给str1中相应位置的元素,直到str2结束为止,即j指向str2的最后一个元素‘\\0’;最后在str1的末尾添加一个结束标志‘\\0’。 程序如下: 解: #include
void main(void) {
char str1[40],str2[20];
//定义字符数组str1、str2
cout<<\输入二个字符串:\
cin.getline(str1,20);
//输入字符串1到str1中
cin.getline(str2,20);
//输入字符串2到str2中
//使i指向str1的第一个元素
while (str1[i]!='\\0')
//判断str1是否结束
//str1没有结束,使i指向下一个元素
//使j指向str2的第一个元素
while (str2[j]!='\\0')
//判断str2是否结束
str1[i]=str2[j];
//str2没有结束,将str2[j]赋给;str1[i] i++;
//使i指向str1的下一个元素
//使j指向str2 的下一个元素
str1[i]='\\0';
//在str1末尾添加结束标志‘\\0’
cout<<str1<<
//输出str1 } 4.编程序将输入的字符串删去空格后输出。 分析:逐个读取每个字符,若为空格将其后面的字符和字符串结束标志前移一位,再从该位置开始,重复上述操作,直到字符串结束。 解: #include
void main() {
char str[]=\
int i=0,j;
while(str[i]!=NULL) {
if(str[i]==' ')
j=i; while(str[j]!=NULL) {
str[j]=str[j+1];
cout<<str<<
//C } 思考: ?
将程序中A行的“\”用“'”改写,观察现象。 ?
将程序中B行的“'”用“\”改写,观察现象。 ?
将程序中C行改写为: for(j=1;str[j]!=NULL;j++,cout<<str[j]) ;
观察输出结果。 ?
编程序将输入字符串中出现的字符除空格外,按从大到小的顺序输出(每个字符只输出一次)。 (二)完成实验项目 1.编程实现将一十进制整数M转换为D进制数。 2.已知一int a[20]数组,编程将值为偶数的元素移到数组前端,值为奇数的元素移到数组后端。(要求元素比较、移动次数尽量最少) 3.求S?1?4?7?10?13???n,其中n≥20。 4.某班有10个学生,进行了“数学”、“语文”、“英语”、“C++语言”等科目的考试,编写程序: (1)
将考试成绩输入一个二维数组; (2)
求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分; (3)
求每个学生的平均成绩、总分、不及格门数; (4)
按学生平均成绩的高低排序并输出。 5.设计一个程序,打印杨辉三角形。(使用其它方法) 6.编写程序,实现str=str1+str2的操作,此处运算符“+”表示将二个字符串str1、str2连接成一个字符串str。用键盘将二个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str中,并输出连接后的字符串str。 471013n四、课后作业 1.
设A、B、C为m行n列矩阵。设计矩阵加法程序,能完成C=A+B的操作。m与n用define定义为常量,其值由用户自定义。 2.
已有一按从小到大次序排序好的数组,现输入一数,要求用折半查找法找出该数在数组中的位置。 3.
撰写实验报告。
五、实验机时 4个标准学时。 实验六
函数调用 一、目的和要求 1.了解函数的定义方法,理解函数的调用; 2.初步掌握函数的递归、嵌套调用; 3.了解函数调用的实参与形参的传递,以及参数默认值的设置。 4.学习并了解重载函数、内联函数的基本概念。 二、实验设备及分组 1.
Windows2000以上操作系统; 2.
Visual C++6.0语言环境; 3.
每人一台PC机。 三、内容和步骤 (一)验证实验程序 1.编写一个函数,用递归的方法求1+2+3+4+?+n的值。在主函数中进行输入输出。 解: #include
int fun(int n) {
z=n+fun(n-1);
return(z); } void main(void) {
sum=fun(x);
cout<<\求和结果为:\} 运行结果: 请输入X的值 10 求和结果为:55 m2.编写程序,输入m和n(n>m),求n的值。 分析:已知 cn!c?m!(n?m)! mnmc根据公式,只要自定义一个函数计算阶乘,即可通过函数调用求出n的值。 解: 阶乘函数定义如下: double fact(int k) {
if((k==0)||(k==1))
for(int i=1;i<=k;i++)
} } 一个完整的参考程序如下: #include
double fact(int);
void main() {
cout<<\l1:
cout<>n; cout<>m; if (n<m) {
cout<<\ goto l1; } c= fact(n)/( fact(m)* fact(n-m)); cout<<\
//B double fact(int k)
int p=1; if((k==0)||(k==1)) else {
for(int i=1;i<=k;i++) p=p*i;
} } 思考: ?
分别输入n=0,1,3,m=0,1,2测试程序。 ?
试用静态存储变量设计阶乘函数。 3.编写程序,求两个自然数m和n的最大公约数和最小公倍数。 分析: 最大公约数就是能同时整除m和n的最大正整数,可用欧几里德算法(也称辗转相除法)求解。应用欧几里德算法计算两个数的最大公约数的方法是:求两个数(m、n)相除的余数r(r=m/n
m>n),当余数不为零时,m取n的值,n取r的值,再求两个数相除的余数,反复进行直到余数为零,除数n是最大公约数。 最小公倍数=m×n/最大公约数。 解: #include
int fun1(int c,int d) {
while(r!=0) c=d; d=r;
void main() {
int m,n,e,d;
cout<>m>>n;
e=fun1(m,n);
cout<<\最大公约数为:\ cout<<\最小公倍数为:\} 思考: ?
输入两个数m=36,n=24观察程序运行结果。 ?
用递归调用的方法实现程序编写,参考程序如下: # include
int fun1(int c,int d) { r=c%d; if(r!=0) 包含总结汇报、考试资料、外语学习、资格考试、行业论文、办公文档、IT计算机、word文档、人文社科、经管营销以及C++上机实验题目及解答等内容。本文共10页
相关内容搜索当前位置:&>&&>&&>& > C++程序设计实验指导与习题解答
C++程序设计实验指导与习题解答
相关信息:
本站推荐:
C++程序设计实验指导与习题解答C++程序设计实验指导与习题解答&(21&世纪全国应用型本科计算机系列实用规划教材)李兰,刘天印主编北京大学出版社,2006.1内容&简&介本书是《C++程序设计》的配套教材,是上机实验的指导书。内容包括:Visual&C++的编程环境、Windows应用程序的基本运行机制、MFC&的应用程序框架组成。上机实验根据C++程序设计教程的进度,安排了13&个实验单元,每个单元都指出了实验目的和系列的实验题目,每个实验题目都给出实验目的、实验内容和思考题等。有的实验列出了测试数据,还有的实验根据需要介绍了操作过程。最后给出教材中习题参考答案。本书是辅导教师和学生必备的工具书,可以作为高等学校C++程序设计课的实验指导书,也可供编程爱好者和编程技术人员参考使用。
下载地址C++程序设计实验指导与习题解答
上一篇: 下一篇:
联系本站邮件
学兔兔 - 工程技术交流与学习网站!C++实验题目_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++实验题目
&&C++上机实验题目
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩29页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢博客访问: 238420
博文数量: 83
博客积分: 1855
博客等级: 上尉
技术积分: 825
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
1.下列关于对象概念的描述中,( A )是错误的。
& A. 对象就是C语言中的结构变量
&& B. 对象代表着正在创建的系统中的一个实体
& C. 对象(类)是一个状态和操作(或方法)的封装体
& D. 对象之间的信息传递是通过消息进行的
2.分析下面的C++代码段:
&& class Employee
&& private:
&& protected:
&& public:
&& class Director:public Employee{};
&& 在Main()中,下列( C)操作是正确的。
3.#include&&&&&&&
&& #define SQR(x) x*x
&& void main()
&&&&& int a=10,k=2,m=1;
&&&&& a/=SQR(k+m);
&&&&& cout<<a;
&& 执行上面的C++程序后,a的值是( B )。
4.C++ 基类中的private成员通过( D )类型的继承,可以被派生类访问。
&& a) public
&& b) protected
&& c) private
&& d) 任何类型的继承都不能使得派生类可以访问基类的private成员
5.下列概念()体现了面向对象的多态性。( B )
&& a) 虚基类
&& b) 虚函数
&& c) 对象容器
&& d) 封装
6.#include
&& class One
&& public:
&&&&&&& & void display(){cout<<"1"<<"";}
&& class Two:public One
&&&& & public:
&&&&&&& & void display(){cout<<"2"<<"";}
&&& void main()
&& &&& && O
&& &&& && T
&& &&& && first.display();
&& &&& && second.display();
&&& &&&&& One *p=&
&& &&& && p->display();
&&& &&&&& p=&
&&& &&&&& p->display();
&& 在C++中,以上程序的运行结果为( C )。
&& a) 1 1 1 2
&& b) 1 2 1 2
&& c) 1 2 1 1
&& d) 2 1 1 2&
7.#include
&& class A
&& public:
&&&&& A(){cout<<"A construct";}
&& class B:public A
&& public:
&&&&& B():A(){cout<<"B construct"<<}
&& void main(){B}
&& 上面的C++程序运行的结果是( B )。
&& a) B construct& A construct
&& b) A construct& B construct
&& c) A construct&
&& d) B construct
8.class wheel
&& public:
&&&&&&& wheel (int w){num=w;}
&& class car
&&&&& wheel carW
&& public:
&& &&&&&&&& &&//写出car的构造函数
&& 在C++中,上面程序中,空白处正确的语句是(B &)。
&& a) void car(int n)::carWheel(n){}
&& b) car(int n): carWheel(n){}
&& c) void car(int n):: carWheel(n){}
&& d) car(int n):: carWheel(n){}
9.class Employee
&& private :
&& protected:
&& public :
&&&&& void display();
&& class Director:public Employee
&& public :
&&&&& void show();
&& 在C++中,以下操作正确的是( &D)。
&& a) void Employee::show(){cout<<a<<b<<c<<}
&& b) void Director::display(){cout<<a<<b<<c<<}
&& c) void Director::show(){cout<<a<<b<<c<<}
&& d) void Director::show(){cout<<b<<c<<};
10.在C++中,下列类的成员函数( C )属于纯虚函数。
&& A) void display();
&& B) Virtual void display();
&& C) Virtual void display()=0;
&& D) Virtual void display(){int a=0};
11.C++中,下列关于继承的描述。( A )是错误的。
&& a) 继承是基于对象操作的层面而不是类设计的层面上的
&& b) 子类可以继承父类的公共行为
&& c) 继承是通过重用现有的类来构建新的类的一个过程
&& d) 将相关的类组织起来,从而可以共享类中的共同的数据和操作
12.#include
&& int &func(int &num)
&& && num++;
&&& && void main()
&& && int n1,n2=5;
&& && n1=func(n2);
&& && cout<<n1<<""<<n2<<
&& 上面C++程序运行结果是( C ).(选择一项)
13.#include
&&& class A
&&& && public:
&&&&& A(){}
&&&&& ~A(){cout<<"A destroy";}
&&& && class B:public A
&&& && public:
&&&&&&& & B():A(){}
&&&&& ~B(){cout<<"B destroy";}
&&& && void main(){B}
&&& && 上面的C++程序运行的结果是( A )。
&&& && a)& B destroy&& A destroy
&&& && b)& A destroy & B destroy
&&& && c)& A destroy
&&& && d)& B destroy
14.如果基类A 和A 的派生类B中都有成员函数func();
&& 要在派生类的func()中调用同名的基类的func()成员函数,下列( B )操作下正确的。
&& a) func();
&& b) A::func();
&& c) B::func();
&& d) A.func();
15.读下面C++程序:
&& #include
&& class vehicle
&&&&& protected:
&&&&& public:
&&&&& && vehicle(int in_wheels=4){wheels=in_}
&&&&& && int get_wheels(){& }
&& void main()
&&&&& vehicle unicycle2(3);
&&&&& cout<<"The unickele1 has"<<unicyclel.get_wheels()<<"wheel.\n";
&&&&& cout<<"The unickele2 has"<<unicycle2.get_wheels()<<"wheel.\n";
&& 编译后输出结果为( C )。
&& a)The unicycle1 has 0 wheel.
&& &&&The unicycle2 has 3 wheel.
&& b)The unicycle1 has 4 wheel.
&& && The unicycle2 has 4 wheel.
&& c)The unicycle1 has 4 wheel.
&& && The unicycle2 has 3 wheel.
&& d)The unicycle1 has 0 wheel.
&&&&&& The unicycle2 has 4 wheel.
16.对类的构造函数和析构函数描述正确的是(& A)  A)构造函数可以重载,析构函数不能重载  B)构造函数不能重载,析构函数可以重载  C)构造函数可以重载,析构函数也可以重载  D)构造函数不能重载,析构函数也不能重载
17.下面对静态数据成员的描述中,正确的是( A)  A)静态数据成员是类的所有对象共享的数据&&  B)类的每个对象都有自己的静态数据成员  C)类的不同对象有不同的静态数据成员值&&&&  D)静态数据成员不能通过类的对象调用
18.可以用p.a的形式访问派生类对象p的基类成员a,其中a是(D& )  A)私有继承的公有成员&&&&&&&&&&&&&&&&&&&&  B)公有继承的私有成员  C)公有继承的保护成员&&&&&&&&&&&&&&&&&&&&  D)公有继承的公有成员
19.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为( A )  A)abc&&&&&&&&&&&&&&&  B)acb&&&&&&&&&&&&&&  C)cab&&&&&&&&&&&&&&  D)cba
20.下面关于虚函数的描述,错误的是( B )A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C)虚函数可以是另一个类的友元函数,但不能是静态成员函数D)基类中说明的纯虚函数在其任何派生类中都必须实现
21.C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是(B &)A)面向过程  B)面向对象  C)安全性  D)复用性
22.下面描述中,表达错误的是( B )A)公有继承时基类中的public成员在派生类中仍是public的  B)公有继承是基类中的private成员在派生类中仍是private的(不可访问) C)公有继承时基类中的protected成员在派生类中仍是protected的  D)私有继承时基类中的public成员在派生类中是private的
23.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(&C& )。
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
24.定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为(& A&)。&
A.私有继承
B.非私有继承
C.保护继承
D.公有继承
25.在函数的返回值类型与返回值表达式的类型的模式中,( B )是错误的。
A.函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的
B.函数返回值的类型就是返回值表达式的类型
C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型
D.函数返回值类型决定了返回值表达式的类型
26.完成下列程序
要求输出以下内容
*...*...*...*...
*....*....*....*....*....
*.....*.....*.....*.....*.....*.....
*......*......*......*......*......*......*......
*.......*.......*.......*.......*.......*.......*.......*.......
完成以下程序
#define& N 8
int main(void)
&& for(i = 0; i < N ; i++)
&&&&& for(j = j >= 0; j--)&
&&&&&&&& cout << "*";
&&&&&&&& for(k = k > 0; k-- )
&&&&&&&& {
&&&&&&&&&&& cout << ".";
&&&&&&&& }
&&&&& cout <<
&& return 0;
27.完成代码
背景:某网络游戏存在战士(Fighter)、野蛮人(Savage)、白法师(WhiteWitch)三种角色,它们具有 Role接口,Role接口提供显示方法display()。现要将黑法师(BlackWitch)角色加入此网络游戏以实现功能扩充。已知某第三方库已经提供了法师 (Witch)类,且完全满足系统新增的黑法师角色所需的功能,但法师(witch)不是由Role派生而来,它提供的显示方法(displayself())不能被系统直接使用。要求既使用了法师(Witch),又遵循了Role规定的接口,既避免了从头开发一个新的黑法师类,又可以不修改游戏中已经定义的接口。
要求1:给出Role、Fighter、Savage、WhiteWitch的类定义
要求2:给出BlackWitch、witch的类定义
要求3:设计一个类,提供通用的角色显示方法(int show(int type)),根据输入值(整形值)生成特定的角色实例,并对之进行显示操作。
阅读(1278) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。

我要回帖

更多关于 大学物理实验竞赛题目 的文章

 

随机推荐