#6125. gesp二级真题分类十:图形打印与循环嵌套

gesp二级真题分类十:图形打印与循环嵌套

十、图形打印与循环嵌套(共10题)

题目

1. 下面代码用于输出九九乘法表,相关说法错误的是( )。

for(int Hang=1;Hang<10;Hang++){
    for(int Lie=1;Lie<Hang+1;Lie++){
        if(Lie*Hang>9)
            printf("%d*%d=%d ",Lie,Hang,Lie*Hang);
        else
            printf("%d*%d=%d  ",Lie,Hang,Lie*Hang);
    }
    printf("\n");
}

{{ select(1) }}

  • 将printf("\n")移到内层循环末尾效果相同
  • 将printf("\n")修改为print("%c",'\n')效果相同
  • 将LieHang>9修改为LieHang>=10效果相同
  • 将LieHang>9修改为HangLie>9效果相同

2. 下面代码输出图形,横线处应填入( )。

int height;
cin>>height;
for(i=0;i<height;i++){
    for(j=0;j<________;j++) cout<<" ";
    for(k=0;k<________;k++) cout<<"*";
    cout<<endl;
}

{{ select(2) }}

  • height; i
  • height-1; 2*i+1
  • height-i; 2*i+1
  • height-i-1; 2*i+1

3. 下面代码执行后输出( )。

for(i=1;i<5;i++){
    for(j=1;j<i+1;j++)
        cout<<j;
    cout<<endl;
}

{{ select(3) }}

  • 1\n12\n123\n1234
  • 1\n22\n333\n4444
  • 1\n21\n321\n4321
  • 4\n34\n234\n1234

4. 下面代码用于输出菱形,横线处应填入( )。

for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
        if(________) printf("#");
        else printf(".");
    }
    printf("\n");
}

{{ select(4) }}

  • abs(k-i+1)+abs(k-j+1)==k
  • i==j
  • i+j==n+1
  • ij || i+jn+1

5. 下面代码输出如下图形,说法错误的是( )。

int line_number,now_number=0;
for(row=1;row<line_number+1;row++){
    for(i=0;i<row;i++){
        cout<<now_number;
        now_number++;
        if(now_number==10) now_number=0;
    }
    cout<<endl;
}

{{ select(5) }}

  • 将now_number=0移到两层循环之间效果不变
  • now_number++改为now_number=1+now_number效果不变
  • now_number==10改为now_number>9效果不变
  • cout<<endl改为cout<<"n"效果不变

6. 以下代码输出一个N行N列的矩阵,请判断其输出图形。( )

for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
        if(i==j) cout<<i;
        else cout<<0;
    }
    cout<<endl;
}

{{ select(6) }}

  • 对角线为1,2,...,n,其余为0
  • 全0
  • 全1
  • 对角线为1,其余为0

7. 下面代码用于输出H字矩阵(N为奇数),横线处应填入( )。

for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        if(j==0||j==n-1) cout<<'|';
        else if(________) cout<<'-';
        else cout<<'a';
    }
    cout<<endl;
}

{{ select(7) }}

  • i0||in-1||i==n/2
  • i0||in-1
  • i==n/2
  • j==n/2

8. 下面代码用于输出日字矩阵,说法正确的是( )。

for(i=0;i<n;i++){
    for(j=0;j<n;j++){
        char ch;
        if(j==0||j==n-1) ch='|';
        else if(i==0||i==n-1||i==n/2) ch='-';
        else ch='x';
        cout<<ch;
    }
    cout<<endl;
}

{{ select(8) }}

  • 当n=5时,第一行输出"|---|"
  • 当n=5时,中间一行输出"|---|"
  • 当n=5时,第二行输出"|xxx|"
  • 以上都对

9. 下面代码执行后输出是( )。

for(int i=0;i<5;i++){
    for(int j=0;j<i;j++)
        cout<<j;
    cout<<endl;
}

{{ select(9) }}

  • 第一行空,第二行0,第三行01,第四行012,第五行0123
  • 第一行0,第二行01,第三行012,第四行0123,第五行01234
  • 第一行空,第二行0,第三行01,第四行012,第五行01234
  • 第一行0,第二行01,第三行012,第四行0123,第五行空

10. 下面代码输出图形,若输入5,输出为( )。

int n;
cin>>n;
for(int i=1;i<=n;i++){
    for(int j=1;j<=n;j++){
        if(i==1 || i==n || j==1 || j==n) cout<<"*";
        else cout<<" ";
    }
    cout<<endl;
}

{{ select(10) }}

  • 空心矩形
  • 实心矩形
  • 十字形
  • 对角线