哈理工C++题库

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈理工C++题库试题
〖第1题〗『填空』(1分)
已知a=13, !a的十进制数值为【1】.
答案:
1). 0
〖第2题〗{填空』(1分)
已知a=13,b=6, a||b的十进制数值为【1】.
答案:
1). 1
〖第3题〗『填空』(1分)
int x=2,y=3,z=4; 则表达式x+(y>!z)的值为【1】.
答案:
1). 3
〖第4题〗『填空』(1分)
int x=2;x*=y=z=4; 则x的值为【1】.
答案:
1). 8
〖第5题〗『填空』(1分)
若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a 后a的值为【1】. 答案:
1). -60
〖第6题〗『填空』(1分)
在定义有参数的函数时,放在函数名后面括号中的变量被称为【1】,简称为【2】答案:
1). 形式参数
〖第7题〗『填空』(1分)
若有以下数组a,数组元素:a[0]~a[9],其值为
9 4 12 8 2 10 7 5 1 3
该数组中下标最小的元素名字是【1】.
答案:
1). a[0]
〖第8题〗『填空』(1分)
下列程序段的输出结果是【1】.
int sub(int x=100,int y=200);
void main()
{ int a(30),b(50);
cout<<sub()<<endl;
}
int sub(int x,int y){ return x-y; }
答案:
1). -100
〖第9题〗『填空』(1分)
函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参. 答案:
1). 2
〖第10题〗『填空』(1分)
C++中,预定义算子hex表示【1】进制的输出.
答案:
1). 十六或15
〖第11题〗『填空』(1分)
C++语言的三种基本结构是【1】结构、选择结构、循环结构. 答案:
〖第12题〗『填空』(1分)
若有以下数组a,数组元素:a[0]~a[9],其值为
9 4 12 8 2 10 7 5 1 3
该数组可用的最大下标值是【1】.
答案:
1). 9
〖第13题〗『填空』(1分)
为了避免嵌套条件语句的二义性,C++语言规定else与其前面最近的【1】语句配对. 答案:
1). if
〖第14题〗『填空』(1分)
若所用变量都已正确定义,请填写以下程序段的输出结果【1】.
for(i=1;i<=5;i++);
cout<<"OK"<<endl;
答案:
1). OK
〖第15题〗『填空』(1分)
C++中,定义的重载函数必须具有不同参数个数,或不同的参数【1】.
答案:
1). 类型
〖第16题〗『填空』(1分)
在面向对象程序设计中,将类所说明的变量称为【1】.
答案:
1). 对象
〖第17题〗『填空』(1分)
在面向对象程序设计中,与构造函数相对应的函数称为【1】函数.
答案:
〖第18题〗『填空』(1分)
若有说明:int *p=new int[100],则分配了【1】个字节的内存空间.
答案:
1). 400
〖第19题〗『填空』(1分)
在C++中,结构体类型及由结构体类型所定义的结构体变量二者中,【1】占内存空间.
答案:
1). 结构体变量
〖第20题〗『填空』(1分)
已知i=5, 写出语句a=(i>5)?0:1; 执行后整型变量a 的值是【1】.
答案:
1). 1
〖第1题〗『判断』(1分)
int x,a[10]={0,1,2},*p=a;x=p[2];此语句将a[2]赋值给变量x
答案:Y
〖第2题〗『判断』(1分)
关系运算符<= 与== 的优先级相同.
答案:N
〖第3题〗『判断』(1分)
continue语句用于while、do-while、for构成的循环中,常与if条件语句一起使用,用来加速循环.
答案:Y
〖第4题〗『判断』(1分)
3%5的值是3
答案:Y
〖第5题〗『判断』(1分)
char ch1[ ]= "student", ch2[10];ch2=ch1; 是错误的
〖第6题〗『判断』(1分)
若有int i,*p=&i;则语句*p=1000;
是合法的.
答案:Y
〖第7题〗『判断』(1分)
在C++环境下,可以使用Ctrl+F5键运行程序.
答案:Y
〖第8题〗『判断』(1分)
x=5>2是错误的写法
答案:N
〖第9题〗『判断』(1分)
若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是2.5.
答案:N
〖第10题〗『判断』(1分)
else总是与离它最近的if匹配,可以通过使用大括号{}来改变匹配关系.
答案:Y
〖第11题〗『判断』(1分)
用于字符串复制的函数是strcat()
答案:N
〖第12题〗『判断』(1分)
int a [5]={1, 2, 3, 4, 5};初始化后a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5. 答案:Y
〖第13题〗『判断』(1分)
任何对象都可以使用delete运算符来释放.
答案:N
〖第14题〗『判断』(1分)
对于函数原型:int fun(int a, int b=300,int c=200,int d=100);可以使用如下方式调用:fun ();
答案:N
〖第15题〗『判断』(1分)
break语句只能出现在switch中.
答案:N
〖第16题〗『判断』(1分)
C++中,变量使用时遵循"先定义,后使用"的原则.
答案:Y
〖第17题〗『判断』(1分)
对于函数原型:int fun(int a, int b=300,int c=200,int d=100);可以使用如下方式调用:fun (..
答案:Y
〖第18题〗『判断』(1分)
有定义int a[5]={0,1,2,3,4},*p,i=2;若执行语句:p=a;cout<<*(p+i);后的输出结果是1. 答案:N
〖第19题〗『判断』(1分)
成员函数与一般的函数一样可以重载.内联和设置参数的默认值.
答案:Y
〖第20题〗『判断』(1分)
关于函数体:包括局部变量的声明和可执行代码.
答案:Y
〖第1题〗『单项选择』(1分)
如果a=1,b=2,c=3,d=4,执行表达式a>b?a:c<d?c:d后的结果是().
A:1
B:2
C:3
D:4
答案:C
〖第2题〗『单项选择』(1分)
下列程序段的输出结果为().
#include <iostream.h>void main(){ float x=213.82631f; cout<<(int)x;} A:213.82
B:213.83
C:213
D:214
答案:C
〖第3题〗『单项选择』(1分)
一个C++程序的执行是从().
A:本程序的main函数开始,到main函数结束
B:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C:本程序的main函数开始,到本程序文件的最后一个函数结束
D:本程序文件的第一个函数开始,到本程序main函数结束
答案:A
〖第4题〗『单项选择』(1分)
int a=1,b=2,c=3;
if(a>b)a=b;
if(a>c)a=c;
则a的值为().
A:1
B:2
C:3
D:不一定
答案:A
〖第5题〗『单项选择』(1分)
设有定义int n; 执行n='f'-'a'后,n的值是().
A:f
B:a
C:5
D:6
答案:C
〖第6题〗『单项选择』(1分)
C++语言结构体类型变量在程序执行期间().
A:所有成员一直驻留在内存中
B:只有一个成员驻留在内存中
C:部分成员驻留在内存中
D:没有成员驻留在内存中
答案:A
〖第7题〗『单项选择』(1分)
设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是().
A:p=1;
B:*q=2;
C:q=p;
D:*p=5;
答案:D
〖第8题〗『单项选择』(1分)
以下程序的输出结果是().
#include <iostream.h>void main(){ char s[]="123",*p; p=s; cout<<*p++<<endl;} A:123
B:1
C:3
D:321
答案:B
〖第9题〗『单项选择』(1分)
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(). A:函数调用可以作为独立的语句存在
B:函数调用可以作为一个函数的实参
C:函数调用可以出现在表达式中
D:函数调用可以作为一个函数的形参
答案:D
〖第10题〗『单项选择』(1分)
下列的调用方式()是引用调用.
A:形参和对应的实参都是变量名
B:形参是指针,对应的实参是地址值
C:形参是引用,对应的实参是变量名
D:形参是变量名,对应的实参是地址值
答案:C
〖第11题〗『单项选择』(1分)
设int x=1, y=1; 表达式(!x||y--)的值是().
A:0
B:1
C:2
D:-1
答案:B
〖第12题〗『单项选择』(1分)
相同结构体类型的变量之间,可以().
A:相加
B:赋值
C:比较大小
D:地址相同
答案:B
〖第13题〗『单项选择』(1分)
先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是().
A:c='a';
B:c="a";
C:c="97";
D:C='97'
答案:A
〖第14题〗『单项选择』(1分)
设有定义:char ch;在函数体内出现,在为ch 赋值之前,ch的值是().
A:0
B:\0'
C:不确定
D:\n'
答案:C
〖第15题〗『单项选择』(1分)
下列程序运行结果为:
#include <iostream.h>#define P 3#define S(a) P*a*avoid main(){ int ar; ar=S.. A:192
B:29
C:27
D:25
答案:B
〖第16题〗『单项选择』(1分)
以下叙述中不正确的是().
A:预处理命令行都必须以#号开始
B:在程序中凡是以#号开始的语句行都是预处理命令行
C:C++程序在执行过程中对预处理命令行进行处理
D:以下是正确的宏定义#define IBM_PC
答案:C
〖第17题〗『单项选择』(1分)
设C++语言中,int类型数据占4个字节,则long类型数据占().
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:C
〖第18题〗『单项选择』(1分)
C++语言中,double类型数据占().
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:D
〖第19题〗『单项选择』(1分)
求平方根函数的函数名为().
A:cos
B:abs
C:pow
D:sqrt
答案:D
〖第20题〗『单项选择』(1分)
下列程序的输出为().
#include <iostream.h>void main(){ int y=10; while(y--); cout<<"y="<<y<<"\n";} A:y=0
B:while构成无限循环
C:y=1
D:y=-1
〖第21题〗『单项选择』(1分)
char *s1="hello",*s2;s2=s1;则().
A:s2指向不确定的内存单元
B:不能访问"hello"
C:cout<<s1;与cout<<s2;结果相同
D:s1不能再指向其它单元
答案:C
〖第22题〗『单项选择』(1分)
若变量a,i已正确定义,且i已正确赋值,非法的语句是(). A:a==1
B:++i;
C:a=(int)i;
D:a=int(i);
答案:A
〖第23题〗『单项选择』(1分)
char str[10]="China";数组元素个数为().
A:5
B:6
C:9
D:10
答案:D
〖第24题〗『单项选择』(1分)
下面说明不正确的是().
A:char a[10]="china";
B:char a[10],*p=a;p="china"
C:char *a;a="china";
D:char a[10],*p;p=a="china"
〖第25题〗『单项选择』(1分)
以下程序段的输出结果为().
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');cout<<i-1;
A:abc
B:ab
C:2
D:3
答案:D
〖第26题〗『单项选择』(1分)
下列对析构函数的描述中,正确的是().
A:一个类中只能定义一个析构函数
B:析构函数名与类名不同
C:析构函数的定义只能在类体内
D:析构函数可以有一个或多个参数
答案:A
〖第27题〗『单项选择』(1分)
int a[10];
给数组a的所有元素分别赋值为1、2、3、……的语句是(). A:for(i=1;i<11;i++)a[i]=i;
B:for(i=1;i<11;i++)a[i-1]=i;
C:for(i=1;i<11;i++)a[i+1]=i;
D:for(i=1;i<11;i++)a[0]=1;
答案:B
〖第28题〗『单项选择』(1分)
设有说明:char w;int x;float y;double z;则表达式w*x+z-y
值的数据类型为().
A:float
B:char
C:int
D:double
答案:D
〖第29题〗『单项选择』(1分)
下列关于C++语言数据文件的叙述中正确的是().
A:文件由ASCII码字符序列组成,C++语言只能读写文本文件
B:文件由二进制数据序列组成,C++语言只能读写二进制文件
C:文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件答案:D
〖第30题〗『单项选择』(1分)
以下正确的说法是:在C++语言中进行值传递时().
A:实参和与其对应的形参各占用独立的存储单元
B:实参和与其对应的形参共占用一个存储单元
C:只有当实参和与其对应的形参同名时才共占用存储单元
D:形参是虚拟的,不占用存储单元
答案:A
〖第1题〗『程序填空』(8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:输入一个学生的生日(年:y0、月:m0、日:d0),并输
入当前日期(年:y1、月:m1、日:d1)。

求出该学生的
年龄(实足年龄)。

-------------------------------------------------------*/
#include<iostream.h>
void main()
{int age,y0,y1,m0,m1,d0,d1;
cout<<"输入生日日期(年、月、日)";
/***********SPACE***********/
【?】>>y0>>m0>>d0;
cout<<"输入当前日期(年、月、日)";
cin>>y1>>m1>>d1;
age=y1-y0;
/***********SPACE***********/
if(m0【?】m1)age--;
/***********SPACE***********/
if((m0【?】m1)&&(d0>d1))age--;
cout<<"age="<<age;
}
答案:
1). cin
2). >
3). ==
〖第2题〗『程序填空』(8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以下程序的功能是对任一整数N(N≠0),它都可以分解成1 (或-1)和一些质数(素数)因子的形式。

如N=150时,可分
解成1×2×3×5×5;N=-150时,可分解为-1×2×3×5×5。

下边程序能实现这种分解过程。

当N=150,输出以下分解结果:N= 1* 2* 3* 5* 5
-------------------------------------------------------*/ #include<iostream.h>
int main()
{
int n,i,r;
cin >> n;
if (n==0)
{
cout << "data error" << endl;
return -1;
}
/***********SPACE***********/
else if (【?】)
cout << "n=1";
else
{
cout << "n=-1";
n=-n;
}
/***********SPACE***********/
for(【?】;i<=n;i++)
{
/***********SPACE***********/
【?】;
while(r==0)
{
cout << "*" << i;
/***********SPACE***********/
【?】;
r=n%i;
}
}
cout << endl;
return 0;
}
答案:
1). n>0 或0<n
2). i=2
3). r=n%i
4). n=n/i 或n/=i
〖第1题〗『程序改错』(8分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:请编写一个函数int fun(int x),它的功能
是:判断整数x是否是同构数。

若是同购数,
函数返回1;否则返回0。

所谓“同构数”是指这个数出现在它的平方数
的右边。

例如:输入整数25,25的平方数是625,25是625中右侧的数,所以25是同构数。

x的值由主函数从键盘读入,要求不大于1000。

--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/
#include<iostream.h>
int fun(int x)
{
/**********FOUND**********/
int k
/**********FOUND**********/
k=x;
/**********FOUND**********/
if((k%10==x)&&(k%100==x)&&(k%1000==x)) return 1;
else
return 0;
}
int main()
{
int x,y;
cout<<"\nPlease enter a integer numbers:"; cin>>x;
if(x>100){cout<<"data error!\n";return -1;}
y=fun(x);
if(y) cout<<x<<" YES\n";
else cout<<x<<" NO\n";
return 0;
}
答案:
1). int k;
2). k=x*x;
3). if((k%10==x)||(k%100==x)||(k%1000==x)) 〖第1题〗『程序设计』(6分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:已知10个数求最大值及最小值以及它们的差.例如输入8,92,7,8,1,56,37,23,25,26
则输出max=92,min=1,ca=91
--------------------------------------------------
注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编
写的若干语句。

------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int max,int min,int ca)
{
fstream myfile;
myfile.open("f.txt",ios::out);
myfile<<max<<","<<min<<","<<ca<<endl;
myfile.close();
}
void main()
{
int a[ ]={8,92,7,8,1,56,37,23,25,26},max,min,ca,i;
/**********Program**********/
/********** End **********/
writeinfile(max,min,ca);
}
答案:---------------------- max=min=a[0];
for(i=0;i<10;i++)
{if(a[i]>max)max=a[i]; if(a[i]<min)min=a[i];} ca=max-min;
----------------------。

相关文档
最新文档