Problem G: CSP 阅读程序-1

Memory Limit:32 MB Time Limit:1.000 S
Judge Style:Special Judger Creator:
Submit:285 Solved:14

Description

二.阅读程序(判断题正确填√ 错误填×; 判断题2分,选择题3 ,共计40

1.

#include <cstdio>

#include <iostream>

using namespace std;

int n;

int a[100];

int main(){

   scanf("%d"&n);

    for(int i=0;i<n;i++) scanf("%d"&a[i]);

    int ans=1;

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

    {

      if(i > 1 && a[i] < a[i-1]) ans=i; //第12行

      while(ans < n && a[i] >=a[ans+1]) ++ans; //14行

      printf("%d "ans);  //第16行

    }

    return 0;

}

判断题

1)  程序输出的ans小于等于n。(        )

2)  若将第12行的“ < ”改为“!=”,程序输出的结果不会改变。(        )

3)  当程序执行到第16行时,若ans-i > 2,则a[i+1]<=a[i]。(          )


选择题

 1) 若输入a数组的n个数据全部为0,则输出为值为(     )

A) 全部为0      B) 全部为1     C)  为1至n     D) 全部为n


 2) 若输入3

          5

          2

          6

则输出为值为(     )

A) 5  2  6      B) 1  2  3      C) 1  3     D) 1  2

  

2.

#include <cstdio>

#include <iostream>

using namespace std;

int main()

{

        int nk=0s;

        scanf("%d"&n);

    for(int i=2; i*i<=n; i++)   //第6行

    {

            if(n%i==0)

            {

                     while(n%i==0)

                     {

                             k++;

                             if(k==1)  printf("%d"i);  //第13行

                             else  printf(" * %d"i); //第14行

                             n=n/i;

                        }

                }

        }

        if(n!=1)

        {

                k++;

                if(k==1)  printf("%d"n);  //第23行

            else  printf(" * %d"n);    //第24行

        }

        return 0;

}

判断题

1)  若n为0,则输出为值为0。(     )

2)  若n为1,则输出为值为1。(     )

3)  若将第13行的“k==1”改为“k>0”,程序输出的结果不会改变。(        )

4)  此程序是求n的k个质因数。(          )

选择题

 1) 若输入n为100,则第六行的循环变量i为(     )时退出循环。

A) 11      B) 10     C)  6     D)  7


 2) 若输入n为127,则此程序会在第(     )行输出结果。         

A) 13      B) 14      C) 23     D) 24


3.

#include<cstdio>

int main()

{  int ijsspp;

   int a[11];

   sp=1; a[1]=2; j=2;

   while(sp<10)    //第6行

   {  j++; p=1;

      for(i=2; i<=j-1; i++)

          if(j%i==0) p=0;

       if(p)

        { 

           sp++;     //第12行

          a[sp]=j; //第13行

        }

    }

    j=2; p=1;

   while(p)

   {  s=1;

      for(i=1; i<=j; i++) s=s*a[i];

      s++;

      for(i=2; i<=s-1; i++)

          if(s%i==0) p=0;  //第22行

      j++; 

   }

   printf("s=%d\n"s); //第25行

   return 0;

}

判断题

1) 此程序前几步计算可知a[1]=2 a[2]=3….  那么a[sp]=a[sp-1]+1。 (     )

2) 若修改第6行为while(sp !=10) ,则此程序输出结果不会改变。(     )

3) 若删去12行的sp++ 更改第13行的语句为 a[++sp],程序输出的结果会改变。(       )

4) 第二个while循环终止后,j的值为6。(     )

选择题

 1) 当while(sp<10)程序段执行完后,a数组中的最后一个数是(     )。

A) 9      B) 10      C)  19     D)  29


 2) 此程序执行完后,第25行的printf("s=%d\n"s)输出结果为(     )。         

A) s=211      B) s=2311      C) s=3031     D) s=30031

Input

题目如上

Output

选择正确的编号

Sample Input Copy


Sample Output Copy