-1
第27题若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为【1】.x%=(n%=2)答案:
0
第28题若有定义:
doublex[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】.
答案:
04
第29题下面程序的功能是计算1-3+5-7+…-99+101的值,请填空.
#includemain(){inti,t=1,s=0;
for(i=1;i<=101;i+=2){【1】;s=s+t;【2】;}cout<
t=t*it=-t/i
第30题若a为double类型的变量,表达式a=1,a+5,a++的值为【1】答案:
1.0
1.00
2、判断
第1题如果一个函数在其函数体内直接或间接的调用了自己,该函数
称为递归函数。
答案:
Y
第2题开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。
答案:
N
第3题while循环语句的循环体至少执行一次。
答案:
N
第4题对于数值类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为'0\';答Y
第5题设置了参数默认值后,调用函数时对应实参就必须省略.答案:
N
第6题循环是可以嵌套的,一个循环体内可以包含另一种循环语句.答案:
Y
第7题C++引入内联函数的原因是用它来取代C中的预处理宏函数。
答案:
Y
第8题continue语句只能出现在循环体中.答案:
Y
第9题标识符规定大小写字母没有区别。
答案:
N
第10题构造函数和析构函数都不能重载.答案:
N
第11题开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间.答案:
N
第12题C++语言和C语言都是面向对象的程序设计语言。
答案:
N
第13题for循环中,循环变量的作用域是在该循环的循环体内.答案:
N
第14题break语句可以出现在各种循环体中.答案:
Y
第15题数组元素可以用下标表示,也可以用指针表示。
答案:
Y
第16题switch语句中必须有break语句,否则无法退出switch语句.答案:
N
第17题指针的类型是它所指向的变量或对象的类型。
答案:
Y
第18题可以通过typedef增加新的数据类型。
答案:
N
第19题编译系统所提供的系统函数都被定义在它所对应的头文件中.答案:
Y
第20题continue语句只能出现在循环体中。
答案:
Y
三、单项选择共50题(共计50分)
第1题以下符号中不能作为标识符的是:
【B】A:
_256B:
voidC:
scanfD:
Struct答案B
第2题C++程序的执行总是从哪里开始的?
A:
main函数B:
第一行C:
头文件D:
函数注答案:
A
第3题合法的数组初始化语句是【】。
A:
chara[]="string";B:
inta[5]={0,1,2,3,4,5}C:
inta[]="string"
D:
chara[]={0,1,2,3,4,5};答案:
A
第4题下列for循环的循环体执行次数为【】for(inti(O),j(10);i=j=10;i++,j--)无限
第5题下列运算符中优先级最高的是:
【】A:
!
B:
%C:
-=D:
&&答案:
A
第6题在intb[][3]={{1},{3,2},{4,5,6}};中,b[2][2]的值为【】。
A:
0B:
5C:
6D:
2答C
第7题以下正确的函数定义形式是____
A:
doublefun(intx,inty)B:
doublefun(intx;inty)
C:
doublefun(intx,inty);D:
doublefun(intx,y);答案:
A
8设有定义intx;floaty;,则10+x+y值的数据类型是A:
intB:
doubleC:
floatD:
不确定C
第9题C++语言对C语言进行了很多改进,C++语言相对于C语言的最根本的变化是【】
A:
增加了一些新的运算符B:
允许函数重载,并允许设置缺省参数
C:
规定函数说明符必须用原型D:
引进了类和对象的概念答案:
D
第10题在下述对字符数组的描述中,有错误的是【】。
A:
字符数组可以存放字符串B:
字符数组中的字符串可以进行整体输入输出
C:
可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D:
字符数组的下标从0开始:
C
第11题关于函数返回值的的描述正确的是().A:
函数返回表达式的类型一定与函数的类型相同.B:
函数返回值的类型决定了返回值表达式的类型C:
当函数类型与返回值表达式类型不同,将对返回值表达式的值进行类型转换.D:
函数返回值类型就是返回值表达式类型.答案:
C
第12题假设有定义charch;下列输入字符的方法不正确的是().A:
cin.get(ch)
B:
cin>>chC:
cin>>get(ch)D:
ch=cin.get()答案:
C
第13题下面常数中不能作为常量的是()A:
0xA5B:
2.5e-2C:
3e2D:
0583答案:
D
第14题设有程序段t=0;while(printf("*"))
{t++;if(t<3)break;}则下面描述正确的是____B:
其中循环控制表达式与'0'等价
第15题若有说明:
inta[3][4];则数组a中各元素____
A:
可在程序的运行阶段得到初值0B:
可在程序的编译阶段得到初值0
C:
不能得到确定的初值D:
可在程序的编译或运行阶段得到初值0答案:
B
第16题当执行以下程序段时(A:
循环体将执行一次)x=-1;do{x=x*x;}while(!
x);
第17题如果一个函数无返回值,定义时它的函数类型应是(C).A:
任意B:
intC:
voidD:
无
第18题已知:
inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果【】。
for(i=0;i<3;i++)cout<357
第19题下述关于break语句的描述中,【C】是不正确的A:
break语句可用于循环体内,它将退出该重循环B:
break语句可用于开关语句中,它将退出开关语句
C:
break语句可用于if体内,它将退出if语句D:
break语句在一个循环体内可以出现多次
第20题表达式9!
=10的值为:
【】A:
非零值B:
trueC:
0D:
1答案:
D
第21题在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(3)
第22题下面程序段的运行结果是.A:
1,2,0
a=1;b=2;c=2;while(a
第23题下面程序的输出是【3】#include voidmain()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout<<*(p+2); }
第24题以下选项中合法的字符常量是()A:
"B"B:
'\010'C:
68D:
D答案:
B
第25题下面程序段.for(t=1;t<=100;t++){cin>>x;if(x<0)continue;cout<A:
当x<0时整个循环结束B:
x>=0时什么也不输出C:
printf函数永远也不执行
D:
最多允许输出100个非负整数答案:
D
第26题C++程序的执行总是从哪里开始的?
A:
main函数
第27题已知a,b均被定义为double型,则表达式:
b=1,a=b+5/2的值为:
(3.0)
第28题C语言规定:
在一个源程序中,main函数的位置____.D:
必须在最后
第29题若有以下说明和语句,且0
inta[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;
A:
*(a+i)B:
a[p-a]C:
p+iD:
*(&a[i])答案:
C
第30题已知:
intm=10;下列表示引用的方法中,【】是正确的。
A:
int&x=m;
B:
int&y=10;C:
int&z;D:
float&t=&m;答案:
A
第31合法的数组初始化语句是()A:
chara[]="string"B:
inta[5]={0,1,2,3,4,5}
C:
inta[]="string"D:
chara[]={0,1,2,3,4,5}答案:
A
第32题在参数传递过程中,对形参和实参的要求是()A:
函数定义时,形参一直占用存储空间
B:
实参可以是常量、变量或表达式C:
形参可以是常量、变量或表达式
D:
形参和实参类型和个数都可以不同答案:
B
第33题在intb[][3]={{1},{3,2},{4,5,6},{0}};中,b[2][2]的值为(6).
第34题以下不正确的说法是.C语言规定A:
实参可以是常量、变量或表达式答案:
B
B:
形参可以是常量、变量或表达式C:
实参可以为任意类型D:
形参应与其对应的实参类型一致
第35题已知函数f的原型是:
voidf(int*x,long&y);则以下对函数f正确的调用语句是(其中a和b是实参)【】A:
f(a,b)B:
f(&a,b)C:
f(a,&b)D:
f(&a,&b)答案:
B
第36题在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(3)
37(B:
构造函数可以有返回值,也可以有参数,构造函数可以重载;)不是构造函数的特征.
第38题以下程序的运行结果是【15】。
#include
voidmain(){inta=0,b=1,c=0,d=20;if(a)d-=10;elseif(b)
{if(!
c)d=15;elsed=25}cout<第39题下列四个选项中,均是C语言关键字的选项是____.B:
switchtypedefcontinue
第40题指针是指该变量的(B:
地址)
第41题下面描述正确的是____
A:
两个字符串所包含的字符个数相同时,才能比较字符串B:
字符个数多的字符串比字符个数少的字符串大C:
字符串"STOP"与"STOP"相等D:
字符串"That"小于字符串"The"答案:
D
第42题下面程序的输出结果是(A).#include
voidmain(){inta[3][3]={{1,2},{3,4},{5}};intsum=0;for(intI=1;I<3;I++)
for(intj=0;j<=I;j++)sum+=a[I][j];cout<12B:
14C:
15D:
13
第43题(1.0分)题号:
4182
如果一个函数无返回值,定义时它的函数类型应是(B:
int).
第44题下面程序的运行结果是.#include
main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);cout<A:
a=3,b=11B:
a=2,b=8C:
a=1,b=-1D:
a=4,b=9答案:
B
第45题以下选项中不是正确的实型常量的是:
(B)A:
3.8E-1B:
0.4e2C:
-43.5D:
243.43e-2
第46题已知学生记录描述为D:
s.birth.year=1984;s.birth.month=11;s.birth.day=11;
第47题若有说明:
inta[][4]={0,0};则下面不正确的叙述是____
A:
数组a的每个元素都可得到初值0B:
二维数组a的第一维大小为1
C:
因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
D:
只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0答案:
D
第48题若有说明:
inti,j=7,*p;p=&i;则与i=j等价的语句是()
A:
i=*pB:
*p=*&jC:
i=&jD:
i=**p答案:
B
第49题以下选项中不是正确的实型常量的是:
【】
A:
3.8E-1B:
0.4e2C:
-43.5D:
243.43e-2答案:
B
第50题对两个数组a和b进行如下初始化
chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};
则以下叙述正确的是___D:
a数组比b数组长度
数组有关试题
一、填空
第1题给出以下程序运行的结果【1】
#includevoidmain(){inta[]={1,2,3,4,5};intx,y,*p;
p=&a[0];x=*(p+2);y=*(p+4);cout<<*p<<''<135
第2题已知:
char*s="hello";执行语句"for(inti=0;*s++;i++);"之后,变量i的结果是【5】
第3题给出以下程序的输出结果是【200】
#includevoidmain(){int*v,b;v=&b;b=100;*v+=b;cout<第1题若有以下语句,且0<=k<6,则正确表示数组元素地址的语句是【】
intx[]={1,9,10,7,32,4},*ptr=x,k=1;A:
x++B:
&ptrC:
&ptr[k]D:
&(x+1)答案:
C
第2题在intb[][3]={{1},{3,2},{4,5,6}};中,b[2][2]的值为【6】。
第3题设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是【】A:
k=*p1+*p2;B:
p2=k;C:
p1=p2;D:
k=*p1*(*p2);答案:
B
第4题下面程序的输出是【3】#include voidmain()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout<<*(p+2); }
第5题int*pa[5];的描述中,【】是正确的。
A:
pa是一个指向数组的指针,所指向的数组是5个int型元素
B:
pa是一个指向某数组中的第5个元素的指针,该元素是int型变量
C:
pa[5]表示某个数组的第5个元素的值
D:
pa是一个具有5个元素的指针数组,每个元素是一个int型指针答案:
D
第6题下列关于指针的运算中,【】是非法的。
A:
两个指针在一定条件下,可以进行相等或不等的运B:
可以用一个空指针赋值给某个指针
C:
一个指针可以加上两个整数之和D:
两个指针在一定条件下,可以相加答案:
D
第7题若有说明:
inti,j=7,*p;p=&i;则与i=j等价的语句是【】
A:
i=*p;B:
*p=*&j;C:
i=&jD:
i=**p;答案:
B
第8题若有以下定义和语句,且0
inta[]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a;
A:
&(a+1)B:
a++C:
*pD:
&p[i]答案:
D
第9题在下述对字符数组的描述中,有错误的是【】。
A:
字符数组可以存放字符串B:
字符数组中的字符串可以进行整体输入输出
C:
可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D:
字符数组的下标从0开始:
C
第10题已知:
inta[]={1,2,3,4,5,6},*p=a;下面表达式中其值为5的是【】
A:
p+=3;*(p++);B:
p+=5;*p++;C:
p+=4;*++p;D:
p+=4;*p++;答案:
D
第11题已知:
inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果【369】。
for(i=0;i<3;i++)cout<第12题若有以下语句:
char*p[2]={"1234","5678"}则正确的叙述是【】
A:
p数组的两个元素中各自存放了字符串"1234"和"5678"的首地址。
第13题已知:
intm=10;下列表示引用的方法中,【】是正确的。
A:
int&x=m;B:
int&y=10;C:
int&z;D:
float&t=&m;答案:
A
第14题在C++语言中,二维数组元素在内存中的存放顺序是【】。
A:
按行存放
第15题合法的数组初始化语句是【】。
A:
chara[]="string";
B:
inta[5]={0,1,2,3,4,5};C:
inta[]="string"D:
chara[]={0,1,2,3,4,5};答案:
A
3、程序填空
4、第1题
题目:
以下程序将数组中的数据按逆序存放。
#includevoidmain()
{inta[12],i,j,t;for(i=0;i<12;i++)cin>>a[i];for(i=0;i<6;i++)
/***********SPACE***********/
{【t=a[i];a[i]=a[11-i];a[11-i]=t;】}//数组元素交换
for(i=0;i<12;i++)cout<第2题题目:
程序读入10个整数,统计非负数个数,并计算非负数之和。
#includevoidmain()
{/***********SPACE***********
inti,a[10],s=0,【count=0;】;for(i=0;i<10;i++)/***********SPACE***********/
【cin>>a[i];】for(i=0;i<10;i++)
{if(a[i]<0)/***********SPACE***********/【continue;】//负数跳过,不参与统计
count++;/***********SPACE***********/【s+=a[i];】}
cout<<"非负数的个数为:
"<cout<<"非负数之和为:
"<<【s】<有关函数题型
一、程序填空
第1题题目:
找出数组当中的最大数#include/***********SPACE***********/
int【max】(intb[],intn);voidmain()
{intarr[10];/***********SPACE***********/for(inti=0;i<【10】;i++)cin>>arr[i];
/***********SPACE***********/cout<<【max(arr,10)】<{intm=0;for(inti=0;im)m=b[i];/***********SPACE***********/