青少年编程能力等级测评试卷及答案 C++编程(一级)
(当年的我掉了这个坑,唉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
一、单项选择题(共20题,每题3.5分,共70分)
1 C++中,用来定义无符号整型变量的关键字是( )。
A:unsigned int
B:int
C:short int
D:signed int
答案:A
2 下列数据中,不合法的C++常量的是( )。
A. 0xa5
B. 2.5e-2
C. 300
D. 0582
答案:D
3 在C++中,下列标识符合法的是( )。
A:c+b
B:_tmp
C:52C++
D:J#P
答案:B
4 下列定义整型变量num并初始化为0的语句是( )。
A:int num;
B:int num(0);
C:char num=0;
D:char num=’0’;
答案:B
5 下列转义字符中表示回车换行符的是( )。
A:\n
B:\t
C:\b
D:\a
答案A
6 下列有关cin的叙述中,不正确的是( )。
A:使用cin输入多个数据并读入到变量时,数据之间使用空格分隔
B:使用cin获取用户输入,不加头文件"iostream.h"也可以
C:使用cin输入多个数据并读入到变量时,数据之间使用回车分隔
D:使用cin输入多个数据并读入到变量时,数据之间使用Tab键分隔
答案:B
7 若定义int a=066,则执行cout << a;语句后,输出的结果是( )。
A:66
B:54
C:78
D:102
答案:B
8 运行下列程序,输出结果是( )。
#include
#include
using namespace std;
int main()
{ float x=2/3.0;
cout << x <<' ';
cout << setiosflags(ios::fixed);
cout << setprecision(0) << x << ' ';
cout << setprecision(2) << x << '\n';
}
A:0.66 0 0.67
B:0.67 1 0.66
C:0 0.6 0.66
D:0.666667 1 0.67
答案:D
9 若定义int a;char b;double c;则表达式a*b-c的类型是( )。
A:float
B:int
C:char
D:double
答案:D
10 阅读如图所示的框图,若输入 a , b 的值分别为20,5,则输出的 S 值为( )。

正在上传…重新上传取消
A:15
B:25
C:100
D:205
答案:B
11 下列有关分支结构的叙述中,正确的是( )。
A:if(x>y) ; 不是一个正确的C++语句
B:switch(x){……}语句中的x可以是浮点类型
C:switch语句中不一定要使用break语句
D:若有语句if(a) x++; 则表达式a 是不正确的
答案:C
12 运行下列程序,若输入:2↙,则输出结果是( )。
#include
using namespace std;
int main()
{ float x,y;
cin >> x;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
cout << y << endl;
return 0;
}
A:0.0
B:1.00
C:0.5
D:0.50
答案:C
13下列有关循环控制语句的叙述中,正确的是( )。
A:do-while 语句构成的循环不能用其他语句构成的循环来代替
B:do-while 语句构成的循环只能用break 语句退出
C:用do-while 语句构成的循环,在while 后的表达式为非零时结束循环
D:用do-while 语句构成的循环,在while 后的表达式为零时结束循环
答案:D
14 运行下列程序,输出结果是( )。
#include
using namespace std;
int main()
{ int i=1;
int s=1, a=0;
for(i=0;i<3;i++)
{
s+=i;
a++;
}
cout << s <<','<< i <<','<< a << endl;
return 0;
}
A:3,3,4
B:4,4,3
C:3,4,3
D:4,3,3
答案:D
15 下面程序的功能是输出10到100中的完全数。则在空白处应填入( )。
若一个自然數的所有正因數(除自身之外)相加之 和等於該自然數,则稱其為完美數。例如:數字6的正因數值為1、2、3;其因數總 和為1+2+3=6;由此可知6是一個完美數字
#include
using namespace std;
int main()
{ int i,j,s;
for (i=10 ;i<=100 ;i++)
{ s=0;
for (j=1;j<i;j++)
if (i==s)
cout <<s<<endl;
}
return 0;
}
A:if (i%j==0) s+=j;
B:if (i%j==0) s-=j;
C:if (i%j!=0) s-=j;
D:if (i%j!=0) s+=j;
答案:A
16 在定义数组时,对数组元素赋初值,下列不正确的是( )。
A:int a[5]={0,1,2,3,4};
B:int a[5]={0};
C:int a[5]={0,1,2,3,4,5};
D:int a[5]={0,1,2};
答案:C
17 运行下列程序,若输入:88 66 77 55 90↙,则输出结果是( )。
#include
#define N 5
using namespace std;
int main()
{ int a[N],m1,m2,i;
for(i=0; i<N; i++)
cin >> a[i];
m1=m2=a[0];
for (i=1; i<N; i++)
if (a[i]<m2) m2=a[i];
else if (a[i]>m1) m1=a[i];
cout << m1 <<','<< m2 <<endl;
return 0;
}
A:55,90
B:90,55
C:88,66
D:66,77
答案:B
18 若有定义:char a[ ]="ZHAO"; 则a[1]的值是( )。
A:Z
B:H
C:HAO
D:ZHAO
答案:B
若定义为char类型的数组str长度为20并赋值给定字符串'Hello!'的内容,则运行上述代码会输出strlen函数计算出的字符数量与str变量占用的空间大小是多少。
A:20,6
B:6,20
C:7,20
D:20,7
答案:B
20 运行下列程序,若输入:10↙,则输出结果是( )。
#include
using namespace std;
int main()
{ char k; int i;
for(i=1;i<3;i++)
{
cin >> k;
switch(k)
{
case '0': cout<<"ok"<<endl;
case '1': cout<<"book"<<endl;
}
}
}
A:ok
book
ok
B:book
book
ok
C:ok
book
D:book
ok
答案:A
二、编程题(共2题,每题15分,共30分)
21编写程序,输出以下图形。
要求用双重循环。
#include <iostream>
using namespace std;
int main()
{ int i,j;
for (i=1; i<=4; i++)
{ for (j=1; j<=i; j++)
cout << " ";
for (j=1;j<=9-2*i;j++)
cout << "*";
cout << "\n";
}
return 0;
}
