青少年编程能力等级测评CPA C++(二级)试卷(2)

青少年编程能力等级测评CPA C++(二级)试卷(2)

一、单项选择题(共20题,每题3.5分,共70分)

CP2_2_1.下列C++程序段中,对二维数组arr的定义不正确是(  )。

A.

int arr[2][3];  

B.

int n=3;

int arr[n-1][n];  

C.

#define n 3;

int arr[n][n];  

D.

#define N 3;

int arr[N-1][N];  

CP2_2_2.在C++中,下列对二维数组x1进行初始化的语句,正确的是(  )。

A.int x1[3][3]={0};

B.int x1[3][ ]={{1},{2},{3}};

C.int x1[2][2]= {{0},{0},{0}};

D.int x1[2][ ]={1,2,3,4};

CP2_2_3 在C++中,若有定义:

int arr[ ][3]={{0,1},{2,3},{4,5,6},{7,8,9}};

则数组arr的行数是(  )。

A.2  

B.3  

C.4  

D.9  

CP2_2_4.在C++中,下列程序段可以将变量n的地址赋给指针变量p的是(  )。

A.

int *p = &n,n=6;

B.

int n;

int *p = &n;

C.

int *p,n;

*p = &n;

D.

int n;

float *p;

p = &n;

CP2_2_5.在C++中,若有定义:int x,y,*q1,*p1=&x; 则下列赋值语句不正确的是(  )。

A.*q1=*p1=10;

B.*p1=50;

C.q1=p1;

D.p1=&y;

CP2_2_6.在C++中,若有定义float y[4],*py=y; 则下列表达式不正确的是(  )。

A.*py=0.5  

B.py+=1  

C.y++  

D.*y=1.5  

CP2_2_7.在C++中,执行下列程序,若x1,x2分别输入:10和20,则输出的结果是(  )。

#include <iostream>

using namespace std;

void swap(int *p1,int *p2)

{

int temp;

temp =*p1,*p1=*p2,*p2=temp;

    cout << *p1 << ” ” << *p2 << endl;

}

int main()

{

int x1 ,x2;

    cin>>x1>>x2;

    swap(&x1,&x2);

cout << x1 << ” ” << x2 << endl;

return 0;

}

A.10 20

   10 20

B.10 20

   20 10

C.20 10

   10 20

D.20 10

   20 10

CP2_2_8.执行下列程序,输出的结果是(  )。

#include <string>

#include <iostream>

using namespace std;

int main()

{  string str="butter";

   cout << str[5] << endl;

   return 0;

}

A.e

B.er

C.butte

D.r

CP2_2_9.阅读下列框图。设i,n为整型变量,若给i,n分别输入2和7,则s的输出结果是(  )。

A.48

B.720

C.120

D.8

CP2_2_10.执行下列程序,若给a,b,c,d分别输入7 5 3 1,则输出的结果是(  )。

#include <iostream>

using namespace std;

int main()

{

int a,b,c,d,flag=1;

    cin>>a>>b>>c>>d;

if (a>b)

     if (a<c)

       if (a>d)

      flag=2;

       else

      flag=3;

     else

           flag=4;

     cout << flag << endl;

return 0;

}

A.1

B.2

C.3

D.4

CP2_2_11.执行下列程序,若输入:246,则输出的结果是(  )。

#include <iostream>

using namespace std;

int main()

{ char c;

  while((c=cin.get())!='\n')

      {

 switch(c-'1')

         {

case 0:

          case 1: cout<< 'A';

          case 2: cout<< 'B';break;

          case 3: cout<< 'C'; break;

          default:cout<< 'D';

}

      }

  return 0;

}

A.ABCD 

B.ABBD

C.AB

D.CD

CP2_2_12.执行下列程序,最后一行输出的结果是(  )。

#include <iostream>

using namespace std;

int main()

{

int i,j;

for(int i = 0;i < 4;i++)

{

for(int j = 1;j < 5;j++)

cout<< i+j << " ";

cout << endl;

}

return 0;

}

A.3 4 5 6

B.2 3 4 5

C.4 5 6 7

D.1 2 3 4

CP2_2_13.执行下列程序,输出的结果是(  )。

#include <iostream>

using namespace std;

int main(  )

{

    int i,j,n,result=0;

for(i=2;i<=5;i++)

{   j=1;

    n=1;

do

{

 n=n*j;

 j++;

}while(j<=i);

result=result+n;

}

cout << result;

}

A.30

B.144

C.150

D.152

CP2_2_14.执行下列程序,输出的“#”个数是(  )。

#include <iostream>

using namespace std;

int main()

{

for(int i=0;i<=5;i++)

{

for(int j=0;j<8;j++)

{

if(j==i+1)

break;

cout << "#";

    }

cout << '\n';

}

return 0;

}

A.15个

B.21个

C.35个

D.48个

CP2_2_15.在C++中,若定义了函数:

int min(int x, int y)

{

int z;

if(x > y)

    z = y;

else

    z = x;

return z;

}

下列对其进行函数声明的语句中,正确的是(  )。

A.int min(int x; int y);

B.int min(int , int);

C.int min(int a; int b);

D.int min(int x, y);

CP2_2_16.执行下列程序,输出结果是(  )。

#include <iostream>

using namespace std;

void f1(int x, int y)

{

   x=x+y; y=x-y;   

   cout << x <<" " << y << endl;

}

int main( )

{

    int a=30,b=60;

    f1(a,b);                

    cout << a << " " << b << endl;

    return 0;

}

A.

90 30

30 60

B.

90 30

90 30

C.

30 60

30 60

D.

30 60

90 30

CP2_2_17.执行下列程序,输出的结果是(  )

#include <iostream>

using namespace std;

void Sort(int b[ ],int n);

int main( )

{

  int a[10] = {70,98,63,75,58,80,45, 32,73,36};

  Sort(a,10);

  cout << a[9] << "," << a[0] << endl;

}

void Sort(int b[ ], int n)  

{

  int i,j,t;

  for (i=1; i<n; i++)

     for (j=0; j<n-i; j++ )

        if (b[j]>b[j+1])   {t=b[j];b[j]=b[j+1];b[j+1]=t;}

}

A.98,70

B.36,70

C.98,32

D.36,32

CP2_2_18.执行下列程序,输出的结果是(  )

#include <iostream>

using namespace std;

void sub1(int &x,int y)

{

    x*=2;

y/=2;

cout << x << "," << y << endl;

}

int main()

{

int n1=15,n2=15;

sub1(n1,n2);

cout << n1 << "," << n2 << endl;

return 0;

}

A.

30,7

15,15

B.

30,7

30,15

C.

30,7.5

30,7.5

D.

30,7.5

15,15

CP2_2_19.执行下列程序,若给n输入5,输出的结果是(  )。

#include <iostream>

using namespace std;

int s2(int n)

{

  return  n+2;

}

int s1(int n)

{

int i,a=0;

  for (i=n; i>0; i--)  

      a+=s2(i);

  return a ;

 }

int main()

{

int n;

cin >> n;

cout << s1(n) << endl;

return 0;

}

A.5

B.10

C.18

D.25

CP2_2_20.执行下列程序,若给i,n分别输入3和4,输出的结果是(  )。

输出结果是(  )。

#include <iostream>

#include <cmath>

using namespace std;

int f(int x,int n)

{

    if(n == 0)

return 1;

    else

return x*pow(x,n-1);

}

int main()

{

int i,n;

cin >> i >> n;

cout << f(i,n) << endl;

return 0;

}

A.9

B.12

C.64

D.81

二、编程题(共2题,每题15分,共30分)

CP2_2_21:

编写程序,其功能是:求一个4×4整型二维数组中第2行元素之和,并输出结果。

样例:

输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

输出:26

CP2_2_22:

编写程序计算一个人的体重指数(BMI),国际上是通过计算公式来计算的,BMI的公式=体重(公斤)/身高(米)的平方。计算出的体重指数按照我国标准分类为:BMI<18.5(偏瘦)。18.5 <=BMI<25(标准),BMI≥25(偏胖)。完成计算,判断其类别并输出。

说明:

(1)设体重的范围30-150kg,身高的范围1.3-2.2m。若输入的体重,或身高不在范围内,则直接输出NO。

(2)编程过程中对于程序给定的部分不允许修改,仅允许在/****code****/提示行区间内作答。

样例1:

输入:75 1.75         //体重:75(kg),身高:1.75(m)

输出:24.4898 标准    //BMI:24.4898,类别:标准

样例2:

输入:88 1.66

输出:31.935 偏胖

样例3:

输入:192 1.80

输出:NO

#include <iostream>

#include <cmath>

using namespace std;

void f(float w,float h)

{

/******************code***********************/

/******************code***********************/

}

int main()

{

float Weight,Height;

cin >> Weight >> Height;        // Weight代表体重,Height代表身高

if (Weight<30 || Weight>150||Height<1.3||Height>2.2)   

   {  

      cout << "NO" <<endl;

      return 0;

   }

    f(Weight,Height);

return 0;

}

上一篇:女生适合学编程吗?打破刻板印象,让梦想代码起航


下一篇:电子取证新视角:USB键盘流量提取密码方法研究与实现