资源描述
一、C++基础、变量、常量部分试题:
(一)单项选择题
8.
由C++语言编写的代码程序( )
A. 可直接执行(.exe才能够直接执行 B. 是一61个源程序
C. 通过编译即可执行 (通过编译链接才能够执行) D. 通过编译解释才能执行
9.
按照C++语言要求的用户标识符命名规则,不能出目前标识符中的是( )
A. 大写字母 B. 中划线 C. 数字字符 D. 下划线
10.
下列选项中,不能用作标识符的是( )
A. _1234_ B. _1_2 C. int_2_ D. 2_int
11.
如下选项中合法的用户标识符是( )
A. long(核心字) B. _2Test C. 3Dmax D. A.dat
12.
如下不能定义为用户标识符的是( )
A. Main B. _0 C. _int D. sizeof(运算符)
13.
列定义变量的语句错误的是( )
A. int _int; B. double int_; C. char For; D. float US?;
14.
在C++语言中,非法的字符常量是( )
A.‘\t’ B.‘\017’ C. "\n" D.‘\xaa’
29.
如下程序的输出成果是()
void main()
{
int k=11;
cout<<dec<<"k="<<k<<“,”;
cout<<oct<<"k="<<k<<“,”;
cout<<hex<<"k="<<k<<endl;
}
A. k=11,k=12,k=11 B. k=11,k=13,k=13
C. k=11,k=013,k=0xb D. k=11,k=13,k=b
41.
不属于C++语言核心字的是( )。
A.int B.break C.while D.character
42.
是C++语言提供的合法核心字的是( )。
A.Float B.signed C.integer D.Char
43.
下列说法中,错误的是( )。
A.每个语句必须独占一行,语句的最后能够是一个分号,也能够是一个回车换行符号
B.每个函数都有一个函数头和一个函数体,主函数也不例外
C.主函数只能调用用户函数或系统函数,用户函数能够相互调用
D.程序是由若干个函数组成的,不过必须有、并且只能有一个主函数
(二)填空题
1.一个C源程序最少有并且只能有一个 main 函数。
2. 如下程序运行后的输出成果是 1012a 。
#include<iostream.h>
#include<iomanip.h>
int main()
{
int a=10;
cout<<dec<<a<<oct<<a<<hex<<a<<endl;
return 0;
}
3.如下程序运行后的输出成果是( 25 21 37 ) 。
void main()
{ int a,b,c;
a=25;b=025;c=0x25;
cout<<a<<" "<<b<<" "<<c<<endl;
}
4.如下程序运行后的输出成果是 2 1 。
void main()
{ int a=1,b=2;
a=a+b;b=a-b;a=a-b;
cout<<a<<" "<<b;
}
5. 结构化设计中的三种基本结构是__次序结构______、__选择结构_____、__循环结构___。
6.C++语言源程序文献的后缀是___.cpp_____,通过编译后生成文献的后缀是__.obj______,通过链接后生成文献的后缀是__.exe______。
7. 一个函数由两部分组成,它们是__函数首部_____、__函数体_____。
8. 若x和y均为int型变量,则如下语句的功效是_互换变量x,y的值___。
x+=y; y=x-y; x-=y;
二、运算符部分试题:
(一)单项选择题
1.
如下程序的输出成果是( )
void main()
{
int a=1,b=2,c=3,d=4;
cout<<(a<b?a:c<d?a:d)<<endl;
}
A. 4 B. 3 C. 2 D. 1
15.
下列运算符中优先级最高的运算符是( )
A. <= B. = C. % D. &&
16.
如下程序的输出成果是( )
main()
{ int a=3,b=4;
cout<<(a<=b)<<endl;
}
A. 3 B. 4 C. 1 D. 0
17.
在C++语言中,如下非法的体现式是( )
A. x++ B. i=j==0 C. (char)(65+3) D. x+1=x+1
18.
在C++语言中,如下非法的赋值语句是( )
A. j++; B. ++(i+1); C. x=j>0; D. k=i==j;
19.
体现式3.6-5/2+1.2+5%2的值是( )
A. 4.3 B. 4.8 C. 3.3 D. 3.8
20.
设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )
A. 3 B. 0 C. 9 D. -12
21.
设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )
A. 10 B. 20 C. 40 D. 30
22.
如下程序的输出成果是( )
void main()
{
int i=10,j=1;
cout<<i--<<“,”<<++j<<endl;
}
A. 9,2 B. 10,2 C. 9,1 D. 10,1
23.
如下程序的输出成果是( )
void main()
{
int x=100,y=200;
cout<<(x,y)<<endl;
}
A. 200 B. 100
C. 100 200 D.200 100
24.
如下程序的输出成果是( )
void main()
{
int x=10,y=3,z;
cout<<(z=(x%y,x/y))<<endl;
}
A. 1 B. 0 C. 4 D. 3
25.
int k=0;,如下选项的四个体现式中与其他三个体现式的值不相同的是( )
A. k++ B. k+=1 C. ++k D. k+1
26.
如下程序的输出成果是( )
void main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
cout<<x<<", "<<y<<", "<<z<<endl;
}
A. 2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,1
27.
设x、y、t均为int型变量,执行了如下程序后,变量y 的值为( )。
void main()
{
int x,y,t;
x=y=3;
t=++x||++y;
cout<<y<<endl;
}
A. 1 B. 2 C. 3 D. 4
28.
设int x=-1;执行体现式++x||++x||++x||++x,x的值是( )
A. 0 B. 1 C. 2 D. 4
45.
逻辑运算符两侧运算对象的数据类型( )。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.能够是任何类型的数据
46.
如下有关运算符优先次序的描述中正确的是( )。
A.关系运算符<算术运算符<赋值运算符<逻辑与运算符
B.逻辑与运算符<关系运算符<算术运算符<赋值运算符
C.赋值运算符<逻辑与运算符<关系运算符<算术运算符
D.算术运算符<关系运算符<赋值运算符<逻辑与运算符
48.
判断char型变量s是否为小写字母的正确体现式是( )。
A.’a’ <= s<=’z’ B.(s>=’a’) & (s<=’z’)
C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)
49.
若希望当x的值为奇数时,体现式的值为“真”,x的值为偶数时,体现式的值为“假”。则如下不能满足要求的体现式是( )。
A.x%2==1 B.!(x%2==0)
C.!(x%2) D.x%2
50.
已知 x=45, y=’a’, z=0; 则体现式(x>=z && y<’z’ || !y)的值是( )。
A.0 B.语法错
C.1 D.“假”
51.
执行如下语句后,y 的值为( )。
int x,y,z;
x=y=z=0;
++x || ++y && ++z;
A.0 B.1 C.2 D.不确定值
55.
则执行下面语句后的w值是( )。
void main()
{int a=1,b=2,c=3,d=4,w;
w=(a<b)?a:b;
w=(w<c)?w:c;
w=(w<d)?w:d;
cout<<w<<endl;
}
A.1 B.2 C.3 D.4
(二)填空题:
1.如下程序运行后的输出成果是 。
main()
{
int x=,y=;
cout<<(x,y);
}
2. 如下程序运行后的输出成果是 D 。
void main()
{ char ch='B';
ch+=2;
cout<<ch<<endl;
}
3.
如下程序运行后的输出成果是 98 。
main()
{ int c;
char ch=97;
c=ch+1;
cout<<c<<endl;
}
4. 如下程序运行后的输出成果是 123.46 。
#include<iostream.h>
int main()
{
float x=123.4567f;
cout<<(int)(x*100+0.5)/100.0<<endl;
return 0;
}
5.
如下程序运行后的输出成果是 14 。
#include<iostream.h>
void main()
{
int a=10;
a=(3*5,a+4);
cout<<a<<endl;
}
6.
如下程序运行后的输出成果是 -10 -10 -7 。
#include<iostream.h>
void main()
{
int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
cout<<a<<" "<<b<<" "<<c<<endl;
}
7.
如下程序运行后的输出成果是 0 。
#include<iostream.h>
void main()
{
int a=5,b=4,c=3,x;
x=a>b>c;
cout<<x<<endl;
}
8.
如下程序运行后的输出成果是 3 0 。
#include<iostream.h>
void main()
{
int a=3,b=2;
b=a<0&&a++>3;
cout<<a<<" "<<b<<endl;
}
9. 如下程序运行后的输出成果是 1 。
#include<iostream.h>
void main()
{
int x,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;
cout<<x<<endl;
}
10. 设int x=9,y=8;体现式x==y+1的成果是____1____。
11. 定义int x,y;执行y=(x=1,++x,x+2);后, y的值是____4____。
12. 定义int x=10,y,z; 执行y=z=x; x=y==z;后, x的成果是____1____。
三、流程控制语句部分试题:
(一)单项选择题
2.
void main()
{
int i;
for(i=0;i<3;i++)
{
switch(i)
{
case 0:cout<<i;
case 1:cout<<i;
default:cout<<i;
}
}
}
程序执行后的输出成果是( )
A.000112 B. 012 C. 01 D. 120
7.
如下程序运行后的输出成果是 4 5 99 。
#include<iostream.h>
void main()
{
int a=3,b=4,c=5,t=99;
if(b<a && a<c) t=a;a=c;c=t;
if(a<c && b<c) t=b;b=a;a=t;
cout<<a<<" "<<b<<" "<<c<<endl;
}
30.
如下程序段的输出成果是( )
void main()
{
int x=5;
if(x++>5)
cout<<x<<endl;
else
cout<<x--<<endl;
}
A. 4 B. 5 C. 6 D. 7
31.
有如下程序:
void main()
{
int n=4;
while(n--)
cout<<--n;
}
程序执行后的输出成果是( )
A. 20 B. 31 C. 321 D. 210
32.
有如下程序
void main()
{
int y=10;
while(y--) ;
cout<<y<<endl;
}
程序执行后的输出成果是( )
A. y=0 B. y=-1
C. y=1 D. while组成无限循环
44.
为了防止嵌套的if-else语句的二义性,C++语言要求else总是与( )组成配对关系。
A.缩排位置相同的if
B.在其之前未配正确if
C.在其之前未配正确最近的if
D.同一行上的if
47.
选择出合法的if语句(设int x,a,b,c;)( )。
A.if(a=b) c++;
B.if(a=<b) c++;
C.if(a<>b) c++;
D.if(a=>b) c++;
52.
已知int a=1,b=2,c=3; 如下语句执行后a,b,c的值是( )。
if(a>b)
c=a;
a=b;
b=c;
A.a=1, b=2, c=3 B.a=2, b=3, c=3
C.a=2, b=3, c=1 D.a=2, b=3, c=2
53.
请阅读如下程序:该程序( )。
void main()
{ int x=-10, y=5, z=0;
if (x=y+z) cout<<"***\n";
else cout<<"$$$\n";
}
A.有语法错不能通过编译
B.能够通过编译但不能通过连接
C.输出***
D.输出$$$
54.
执行完下面一段程序后x的值是( )。
void main()
{ int a=1,b=2,c=4,d=3,x;
if (a<b)
if (c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=4;
else x=5;
cout<<x<<endl;
}
A.1 B.2 C.3 D.4
56.
如下switch语句结构哪一个是正确的?( )
A.
void main()
{int a=1,b=0,c1,c2,x,y;
switch (a+b);
{ case 1: y=a+b; break;
case 0: y=a-b; break;
}
}
B.
void main()
{int a=1,b=0,c1,c2,x,y;
switch a ( )
{ case c1: y=a-b; break;
case c2: x=a*b; break;
default:x=a+b;
}
}
C.
void main()
{int a=1,b=0,c1,c2,x,y;
switch (a*a+b*b)
{ case 3:
case 1: y=a+b; break;
case 3: y=b-a; break;
}
}
D.
void main()
{int a=1,b=0,c1,c2,x,y;
switch (a*a+b*b)
{ default:y=a*b;break;
case 3: x=a+b; break;
case 10:
case 11:y=a-b; break;
}
}
57.
假定等级和分数有如下对应关系:
等级:A 分数:85——100
等级:B 分数:60——84
等级:C 分数:60如下
对于等级grade输出对应的分数区间,能够完成该功效的程序段是( )。
A.
void main()
{
char grade;
cin>>grade;
switch (grade)
{
case 'A':cout<<"85--100\n";
case 'B':cout<<"60--84\n";
case 'C':cout<<"<60\n";
default:cout<<"grade is error!\n";
}
}
B.
void main()
{
char grade;
cin>>grade;
switch (grade)
{
case 'A':cout<<"85--100\n";
break;
case 'B':cout<<"60--84\n";
case 'C':cout<<"<60\n";
default:cout<<"grade is error!\n";
}
}
C.
void main()
{
char grade;
cin>>grade;
switch (grade)
{
case 'A':cout<<"85--100\n";
break;
case 'B':cout<<"60--84\n";
break;
case 'C':cout<<"<60\n";
default:cout<<"grade is error!\n";
}
}
D.
void main()
{
char grade;
cin>>grade;
switch (grade)
{
case 'A':cout<<"85--100\n";
break;
case 'B':cout<<"60--84\n";
break;
default:cout<<"grade is error!\n";
break;
case 'C':cout<<"<60\n";
}
}
58.
当执行如下程序段时,程序将( )。
void main()
{
int x=-1;
do
{x=x*x;}
while (!x);
}
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无数数次 D.系统将提示有语法错误
59.
若i,j已定义为int类型,则如下程序段中内循环的总的执行次数是 ( )。
for (i=5;i;i--)
for (j=0;j<4;j++)
{…}
A.20 B.24 C.25 D.30
60.
有如下语句:
i=1;
for(;i<=100;i++) sum+=i;
与以上语句序列不等价的有( )。.
A. for(i=1; ;i++) {sum+=i;if(i==100)break;}
B. for(i=1;i<=100;){sum+=i;i++;}
C. i=1;for(;i<=100;)sum+=i;
D. i=1;for(; ;){sum+=i;if(i==100)break;i++;}
61.
标有/**/的语句的执行次数是( )。
int y,i;
for(i=0;i<20;i++)
{if(i%2==0)continue;
y+=i;/**/
}
A.20 B.19 C.10 D.9
(二)填空题:
2. #include<iostream.h> 0
void main()
{
int i,t=0;
for(i=5;i>=0;i--)
t*=i;
cout<<t<<endl;
}
3.
写成下列程序的输出成果:
#include<iostream.h>
void main()
{
int i=1;
while(i<=15)
if(++i%3!=2) continue;
else cout<<i<< " ";
cout<<endl;
} 2 5 8 11 14
4. 输入a,输出成果是 very good
输入c,输出成果是 pass 。
#include<iostream.h>
void main()
{
char n;
cin>>n;
switch(n)
{ case 'a':case 'A':cout<<"very good\n";break;
case 'b':case 'B':cout<<"good\n";break;
case 'c':case 'C':
case 'd':case 'D':cout<<"pass\n";break;
case 'e':case 'E':cout<<"warning\n";break;
default:cout<<"error\n";
}
}
5. 如下程序的功效是计算:1-2+3-4……+99-100
void main()
{ int i=1,j=1,s=0;
while( i<=100 )
{ s+= i*j ;
i++;
j=-j ; }
cout<<s<<endl;
}
6. 若从键盘输入58,则输出成果是_585858_______。
#include<iostream.h>
void main()
{
int a;
cin>>a;
if (a>50) cout<<a;
if (a>40) cout<<a;
if (a>30) cout<<a;
}
}
7. 下面程序依照如下函数关系,对输入的每个x值,计算出y值。请在【】内填空。
X
y
2<x<=10
x(x+2)
-1<x<=2
1/x
x<=-1
x-1
void main()
{
int x,y;
cin>>x;
if (【1】(x>2)&&(x<=10)) y=x*(x+2);
else if (【2】((x>-1)&&(x<=2))) y=1/x;
else if (x<=-1) y=x-1;
else 【3】y=-1;
if (y!= -1) cout<<y<<endl;
else cout<”error”<<endl ;
}
8. 如下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。
void main()
{
char ch;
cout<<”please input a letter:”;
cin>>ch;
if (【1】(ch>=’A’) && (ch<=’Z’)) ch=ch+32;
else if (ch>=’a’ && ch<=’z’)
【2】ch=ch-32;
cout<<” the converted letter is<<ch<<endl;
}
9. 如下程序运行后的输出成果是______20 0_______。
void main()
{
int x=10, y=20, t=0;
if (x==y) t=x; x=y; y=t;
cout<<x<< " "<<y;
}
10. 执行如下语句后,x、y和z 的值分别为___1,0,0__________。
int x,y,z;
x=y=z=0;
++x || ++y && ++z;
11. 程序运行成果是___ 135______。
#include<iostream.h>
void main()
{
int i;
for(i=1;i+1;i++)
{
if(i>4)
{
cout<<i++;
break;
}
cout<<i++;
}
}
(三)编程题
1. 百钱百鸡:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?
2.输出九九乘法表。
四、数组与指针部分试题:
(一)单项选择题
3.
如下数组定义中错误的是( )
A. int x[][3]={0};
B. int x[2][3]={{1,2},{3,4},{5,6}};
C. int x[][3]={{1,2,3},{4,5,6}};
D. int x[2][3]={1,2,3,4,5,6};
4.
如下能正确定义二维数组的是( )
A. int a[][3]; B. int a[][3]={2*3};
C. int a[][3]={}; D. int a[2][3]={{1},{2},{3,4}};
5.
设有char array[]="China";
则数组array所占的空间字节数为( )
A. 4 B. 5 C. 6 D. 7
6.
对于如下定义正确的论述为( )
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
A. 数组x和数组y等价 B. 数组x和数组y的长度相同
C. 数组x的长度不小于数组y的长度 D. 数组x的长度不小于数组y的长度
33.
如下论述中正确的是( )
A. 能够在一个函数中调用另一个函数
B. 能够在一个函数中定义另一个函数
C. main()函数必须放在其他函数之前
D. 所有被调用函数一定要在调用之前进行定义
34.
如下说法中正确的是( )
A. C++语言程序总是从第一个函数开始执行
B. 在C++语言程序中,要调用的函数必须在main()函数中定义
C. C++语言程序总是从main()函数开始执行
D. C++语言程序中的main()函数必须放在程序的开始部分
35.
如下程序的输出成果是( )
void main( )
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
cout<<*(p+2)<<endl;
}
A. 3 B. 4 C. 1 D. 2
36.
如下程序的输出成果是( )
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
cout<<(*p+9)<<endl;
}
A. 0 B. 1 C. 10 D. 9
37.
如下程序的输出成果是( )
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
cout<<(*p+*q)<<endl;
}
A. 16 B. 10 C. 8 D. 6
38.
如下不能正确进行字符串赋初值的语句是( )
A. char str[5]= "good!"; B. char str[]="good!";
C. char *str="good!"; D. char str[5]={'g','o','o','d','!'};
39.
如下程序的输出成果是( )
void main()
{ char str[]="ABCD",*p=str;
cout<<int(*(p+4))<<endl;
}
A. 68 B. 'D' C. 0 D. '0'
40.
如下程序的输出成果是( )
void main()
{ char str[]="aeiou",*p=str;
cout<<*(p+4)<<endl;
}
A. o B. u C. e D. f
62.
如下有关数组的描述正确的是( )。
A. 数组的大小是固定的,但能够有不一样的类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,能够有不一样的类型的数组元素
63.
如下对一维整型数组a的正确阐明是( )。
A.int a(10); B. int n=10,a[n];
C.int n; D. const int SIZE=10;
cin>>n; int a[SIZE];
int a[n];
64.
在C++语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A. 整型常量
B. 整型体现式
C. 整型常量或整型体现式
D. 任何类型的体现式
65.
如下对一维数组m进行正确初始化的是( )。
A. int m[10]=(0,0,0,0) ; B. int m[10]={ };
C. int m[ ]={0}; D. int m[10]=10*2;
66.
若有定义:int bb[ 8];。则如下体现式中不能代表数组元bb[1]的地址的是( )。
A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1
67.
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A. 3 B. 6 C. 10 D. 20
68.
执行下面的程序段后,变量k中的值为( )。
int k=3, s[2];
s[0]=k; k=s[1]*10;
A. 不定值 B. 33 C. 30 D. 10
69.
如下程序的输出成果是( )
void main()
{
int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
cout<<a[2]<<a[5]<<a[8]<<endl;
}
A. 258 B. 741 C. 852 D. 369
70.
若阐明:int a[2][3]; 则对a数组元素的正确引用是( ) 。
A. a(1,2) B. a[1,3] C. a[1>2][!1] D. a[2][0]
71.
若有定义:int b[3][4]={0};则下述正确的是( ) 。
展开阅读全文