求x的n次方编程_青少年编程能力等级测评试卷及答案 C++编程(一级)

这是一份C++编程(一级)的青少年编程能力等级测评试卷,包含20道选择题,涉及C++基础知识如变量定义、常量、标识符、输入输出等,以及两道编程题,要求输出特定图形和计算三角形面积。试卷旨在考察学生的C++编程基础和逻辑思维能力。
摘要由CSDN通过智能技术生成

df725d652d8d0cb91fcde9096bfefa66.png

青少年编程能力等级测评试卷

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 <iostream>

#include <iomanip>

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 阅读如图所示的框图,若输入ab的值分别为20,5,则输出的S值为( )。

bd393425dd0197d7e1ab2da26af224c8.png

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 <iostream>

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 <iostream>

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 <iostream>

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 <iostream>

#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

19 若有定义char str[20]="Hello!"; 则执行cout<<strlen(str)<<","<<sizeof(str)<<endl;语句的输出结果是( )。

A:20,6

B:6,20

C:7,20

D:20,7

答案:B

20 运行下列程序,若输入:10↙,则输出结果是( )。

#include <iostream>

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编写程序,输出以下图形。

bd393425dd0197d7e1ab2da26af224c8.png

要求用双重循环。

答案程序:

#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;

}

22编写程序,已知三条边a、b、c,求三角形面积。计算三角形面积的海伦公式:

要求:3条边长a、b、c用cin输入,并判断a、b、c是否能构成三角形?能构成三角形输出面积area(保留2位小数,并进行四舍五入),否则输出No。

样例1:

输入:3 4 5

输出:6.00

样例2:1 2 3

输出:No

答案程序:

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

int main()

{ int a,b,c;

float s,area ;

cin >> a >> b >> c;

if((a+b)>c && (a+b)>c && (a+b)>c)

{

s =1./2*(a+b+c) ;

area = sqrt(s*(s-a)*(s-b)*(s-c));

cout << setiosflags(ios::fixed);

cout << setprecision(2) << area << endl;

}

else

cout << "No" << endl;

return 0;

}

测试用例1:

输入:4 6 8

输出:11.62

测试用例2:

输入:15 25 30

输出:187.08

测试用例3:

输入:15 16 33

输出:No

测试用例4:

输入:14 16 18

输出:107.33

测试用例5:

输入:35 47 66

输出:789.54

测试用例6:

输入:4 6 18

输出:No

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值