自学内容网 自学内容网

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

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

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

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

A.

int N=5;

int arr[N][N];  

B.

int N=5;

int arr[N-1][N];  

C.

int N;

int arr[N][N];  

D.

#define N 5;

int arr[N-1][N];  

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

A.int a1[3][3]={1,2,3,4};

B.int a1[3][3]={{0}};

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

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

CP2_1_3 在C++中,若有定义:int x[ ][3]={0,1,2,3,4,5,6,7,8,9}; 则数组x的行数是(  )。

A.2  

B.4  

C.3  

D.9  

CP2_1_4.在C++中,下列程序段能使指针变量q指向变量x的是(  )。

A.

int *q = &x;

int x = 8;

B.

int x;

int *q = &x;

C.

int *q;

int x;

*q = &x;

D.

int x;

int *q,

*q = x;

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

A.*p1=100;

B.*p2=100;

C.p1=&i;

D.p1=p2;

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

A.*py+0.5  

B.py+=1  

C.*(py+1)-0.5  

D.py+=1.5  

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

}

int main()

{

int x1 ,x2;

    cin>>x1>>x2;

    swap(&x1,&x2);

cout << x1 << x2 << endl;

return 0;

}

A.1010

B.1020

C.2010

D.2020

CP2_1_8.在C++中,若有下列程序段,则表达式的值为字符“f”的是(  )。

#include <string>

string str="butterfly";

A.str[6]

B.str[7]

C.str[0]

D.str[10]

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

A.121

B.120

C.106

D.105

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

#include <iostream>

using namespace std;

int main()

{

int a,b,c,d,flag;

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

if (a>b)

    {  if (a>c)

       if (a>d)

      flag=1;

       else

      flag=2;

     }

     else

flag=3;

     cout << flag << endl;

return 0;

}

A.1

B.2

C.3

D.4

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

#include <iostream>

using namespace std;

int main()

{ char c;

  while((c=getchar())!='\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.C

D.D

CP2_1_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 << endl;

return 0;

}

A.15

B.7

C.16

D.9

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

#include <iostream>

using namespace std;

int main(  )

{

    int i,j,n,result=0;

for(i=3;i<6;i++)

{   j=1;

    n=1;

do

{

 n=n*j;

 j++;

}while(j<=i);

result=result+n;

}

cout << result;

}

A.24

B.120

C.150

D.6

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

#include <iostream>

using namespace std;

int main()

{

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

{

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

{

if(j==i+1)

break;

cout << "*";

    }

Cout << '\n';

}

return 0;

}

A.15个

B.10个

C.30个

D.20个

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

int max(int a, int b)

{

int m;

if(a>b)

    z=a;

else

    z=b;

return z;

}

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

A.int max(int x, int y);

B.int max(int a, b);

C.int max(int a, int b);

D.int max(int , int);

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

#include <iostream>

using namespace std;

void Swap(int x, int y)

{

   int z;

   z=x; x=y; y=z;   

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

}

int main( )

{

    int a=100,b=200;

    Swap(a,b);                

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

    return 0;

A.

100 200

100 200

B.

100 200

200 100

C.

200 100

200 100

D.

200 100

100 200

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

#include <iostream>

using namespace std;

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

int main( )

{

  int a[10] = {11,22,63,97,58,80,45, 32,73,36};

  sort(a,10);

  cout << a[9] << 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.97

B.36

C.80

D.73

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

#include <iostream>

using namespace std;

void sub1(int x,int &y)

{

    x+=2;

    y+=2;

}

int main()

{

int n1=15,n2=15;

sub1(n1,n2);

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

return 0;

}

A.17,17

B.15,17

C.15,15

D.17,15

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

#include <iostream>

using namespace std;

int sub2(int n)

{

  return  n+2;

}

int sub1(int n)

{

int i,a=0;

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

      a+=sub2(i);

  return a ;

 }

int main()

{

int n;

cin >> n;

cout << sub1(n) << endl;

return 0;

}

A.14

B.10

C.18

D.4

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

输出结果是(  )。

#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.16

B.36

C.32

D.64

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

CP2_1_21:

编写程序,其功能是:求一个3×3整型二维数组中对角线元素之和,并输出结果。

样例:

输入:1 2 3 4 5 6 7 8 9

输出:15

CP2_1_22:

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

说明:

(1)设体重的范围40-120kg,身高的范围1.4-2.1m。若输入的体重,或身高不在范围内,则直接输出NO。

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

样例1:

输入:70.5 1.72       //体重:70.5(kg),身高:1.72(m)

输出:23.8304 正常    //BMI:23.8304,类别:正常

样例2:

输入:90 1.65

输出:33.0579 肥胖

样例3:

输入:190 1.85

输出:NO

#include <iostream>

using namespace std;

void f(int w,int h)

{

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

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

}

int main()

{

int w,h;                // w代表体重,h代表身高

cin >> w >> h; 

if (w<40 || w>120||h<1.4||h>2.1)   

   {  

      cout << "NO" << endl;

      return 0;

   }

f(w,h);

return 0;

}


原文地址:https://blog.csdn.net/qq_27248989/article/details/142964894

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!