1589: B-阅读程序1

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Special Judger Creator:
Submit:22 Solved:1

Description

判断题正确填 V 错误填 X;判断题3.75分,选择题7.5分,共计100分)

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) 第16 行输出 ans 时,ans 的值一定大于i。( )

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

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

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

选择题

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

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

6) 若输入

   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 n,k=0,s;
   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行
       printf(" * %d",1);    //第24行
   }
   return 0;
}


判断题

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

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

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

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

选择题

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

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

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

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


3.

#include<cstdio>
int main( )
{
    int i,j,s,sp,p;
    int a[11];
    sp=1; a[1]=2; j=2;
    while(sp<10)
    {
        j++; p=1;    //第6行
        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;
}


判断题

13) a[1]=2,a[2]=3...... 那么此程序是否循环求得 a[sp]=a[sp-1]+1。 ( )

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

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

16) 此程序在判别s是被i整除后,立即退出 while 循环,再去输出显示s的结果。( )

选择题

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

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

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

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

Sample Input Copy


Sample Output Copy