没有合适的资源?快使用搜索试试~ 我知道了~
C++练习题及答案.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 30 浏览量
2023-02-27
20:10:46
上传
评论
收藏 1007KB PDF 举报
温馨提示
试读
34页
.
资源推荐
资源详情
资源评论
C++(一)
说明:在本试题中统一规定整型(int)数据占用 4 个字节的存储单元。
一、单选题()
1、在每个 C++程序中都必须包含有这样一个函数,该函数的函数名为 A 。
A. main B. MAIN C. name D. function
2、设 x 和 y 均为 bool 量,则 x&&y 为真的条件是 A 。
A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假
3、下面的哪个保留字不能作为函数的返回类型? C 。
A. void B. int C. new D. long
4、假定 a 为一个整型数组名,则元素 a[4]的字节地址为 C 。
A. a+4 B. a+8 C. a+16 D. a+32
5、假定 A 为一个类,则执行“A a(4) , b[3] , * p[2] ; ”语句时,自动调用该类构造函数的
次数为 B 。
A. 3 B. 4 C. 6 D. 9
6、假定要对类 A 定义加号操作符重载成员函数,实现两个 A 类对象的加法,并返回相加结
果,则该成员函数的声明语句为: B 。
A. A operator+(A & a , A & b) B. A operator+(A & a)
C. operator+(A a) D. A & operator+( )
二、填空题()
1、C++语言中的每条基本语句以 ; 作为结束符,每条复合语句以 }
作为结束符。
2、执行“cout <<char('A'+2)<<endl;”语句后得到的输出结果为 C 。
3、float 和 double 类型的大小分别为 4 和 8 。
xy
2
4 、 算 术 表 达 式
4b-
对 应 的 C++ 表 达 式 为
+ 1
3a
(x*y*y)/3a+4*b-1 。
5、关系表达式 x+y>5 的相反表达式为 x+y<=5 。
6、假定一个一维数组的定义为“char * a[8] ;”,则该数组所含元素的个数为 8 ,
所占存储空间的字节数为 32 。
7、变量分为全局和局部两种, 局部 变量没有赋初值时,其值是不确定的。
8 、 假 定 a 是 一 个 二 维 数 组 , 则 a[i][j] 的 指 针 访 问 方 式 为 * ( a[i]+j )
*(*(a+i)+j) 。
9、假定一个结构类型定义为
“struct D { int a ; union { int b ; double c ; } ; D * d[2] ; } ;” ,
则该类型的大小为 20 字节。
10 、 对 一 个 类 中 的 数 据 成 员 的 初 始 化 可 以 通 过 构 造 函 数 中 的 成 员 初 始 化 列 表
实现,也可以通过构造函数中的 函数体 实现。
11、假定 F 为一个类,则执行“F a[10];”语句时,系统自动调用该类的构造函数的次数为
10 。
12、假定类 A 中有一个公用属性的静态数据成员 aa,在类外不通过对象名访问该成员aa 的
写法为 A::aa 。
三、给出下列程序运行后的输出结果()
1、# include <iostream.h>
1
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 <<endl;
}
2、# include <iostream.h>
# include <string.h>
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 <<p1<<' '<<p2<<endl;
}
3、# include <iostream.h>
int a=5;
void main() {
int a=10,b=20;
cout <<a<<' '<<b<<endl;
{ int a=0,b=0;
for (int i=1; i<6; i++) {
a+=i; b+=a;
}
cout <<a<<' '<<b<<' '<<::a<<endl;
}
cout <<a<<' '<<b<<endl;
2
}
4、# include <iomanip.h>
int LB(int *a,int n) {
int s=1;
for (int i=0; i<n; 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="<<b<<endl;
}b=240
5、# include <iostream.h>
# include <string.h>
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 <<x.name<<' '<<x.age<<' '<<x.pay<<endl;
}
6、# include <iostream.h>
class A {
int a;
public:
A(int aa=0) { a=aa; }
~A() { cout <<"Destructor A!"<<a<<endl; }
};
class B:public A {
int b;
public:
B(int aa=0,int bb=0):A(aa) { b=bb; }
~B() { cout <<"Destructor B!"<<b<<endl; }
};
void main() {
3
B x(5),y(6,7); // 后定义的变量将先被释放
}
四、写出下列每个函数的功能()
1、# include <iostream.h>
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 <class Type>
void WE(Type a[],Type b[],int n) {
for (int i=0; i<n; 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、A 2、A 3、C 4、C 5、B 6、B
4
二、填空题()
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、 A::aa
三、给出下列程序运行后的输出结果()
评分标准:每题与参考答案的数据和显示格式完全相同者得 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 分,否则酌情给分。
1、比较两个整数a 和 b 的大小,若 a>b 则返回 1,若 a==b 则返回 0,若 a<b 则返回-1。
2、求出从键盘上输入的 n 个常数的平方和并返回。
3、模板函数,把数组 a 的每个元素按逆序放入数组 b 中。
4、建立一个具有 n 个结点的链表,每个结点的字符串值由键盘输入,链表的表头指针
由引用变量 f 带回。
五、编写程序,把从键盘上输入的一批整数 (以-1 作为终止输入的标志 )保存到文本文件
“a:xxk1.dat”中。()
评分标准:见参考程序中的注释。
# include <iostream.h> // 使用此命令得 1 分
# include <fstream.h>
# include <stdlib.h>
void main() {
ofstream fout("a:xxk1.dat"); // 定义输出文件流并打开文件得 2 分
if (!fout){
cerr <<"文件没有打开!"<<endl;
exit(1);
} // 可有可无
int x;
cin >>x;
5
剩余33页未读,继续阅读
资源评论
- 洛可洛克2023-07-11资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
- qq_418662152024-02-01终于找到了超赞的宝藏资源,果断冲冲冲,支持!
xxpr_ybgg
- 粉丝: 6501
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功