1589: B-阅读程序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