202 C++语言基础

*
您的姓名:
单项选择题
1.
【NOIP2014】若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值,c>0。
    s=a;
    for(b =1;b<=c;b++)
        s+=1;
则与上述程序段功能等价的赋值语句是()。
A.s =a+b
B.s =a+c
C.s =s+c
D.s =b+c
2.
【NOIP2014】要求以下程序的功能是计算:s =1+1/2 +1/3 +...+1/10。
    #include <iostream>
    using namespace std;
    int main(){
        int n;
        float s;
        s =1.0;
        for(n =10;n>1;n--)
            s =s +1/n;
        cout <<s <<endl;
        return 0;
    }
程序运行后输出结果错误,导致错误结果的程序行是()。
A.s =1.0;
B.for(n =10;n>1;n--)
C.s =s +1/n;
D.cout<<s <<endl;
3.
【NOIP2014】有以下程序:
    #include<iostream>
    using namespace std;
    int main(){
        int s,a,n;
        s =0;
        a =1;
        cin >>n;
        do {
            s +=1;
            a -=2;
        }while(a !=n);
        cout <<s<<endl;
        return 0;
    }
若要使程序的输出值为 2,则应该从键盘给 n 输入的值是()。
A.-1
B.-3
C.-5
D.0
4.
【NOIP2016】有以下程序:
    #include <iostream>
    using namespace std;
    int main(){
        int k =4,n =0;
        while(n<k){
            n++;
            if(n %3 !=0)
                continue;
            k--;
        }
        cout <<k<<","<<n<<endl;
        return 0;
    }
程序运行后的输出结果是()。
A.2,2
B.2,3
C.3,2
D.3,3
5.
【NOIP2018】为了统计一个非负整数的二进制形式中1的个数,代码如下:
    int CountBit(int x){
        int ret =0
        while(x){
            ret++;
            _______;
        }
        return ret;
    }
则空格内要填入的语句是()。
A.x>>=1
B.x&=x-1
C.x|=x>>1
D.x<<=1
6.
【NOIP2013】下列程序中,正确计算1,2,…,100这100个自然数之和sum(初始值为0)的是()。
A.
i=1;
do {
sum +=i;
i++;
}while(i<=100);
B.
i=1
do {
sum +=i;
i++;
}while(i>100);
C.
i=1;
while(i<100){
sum +=i;
i++;
}
D.
i=1;
while(i >=100){
sum +=i;
i++;
}
7.
【NOIP2014】若有变量int a,float x,y,且 a=7,x=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值大约是().
A.2.500000
B.2.750000
C.3.500000
D.0.000000
8.
【NOIP2014】设变量 x 为float型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是()。
A.x=(x*100)+0.5/100.0;
B.x=(x*100 +0.5)/100.0;
C.x=(int)(x*100 +0.5)/100.0;
D.x=(x/100 +0.5)*100.0;
9.
【NOIP2014】以下程序段实现了找第二小元素的算法。输入是 n 个不等的数构成的数组 S,输出 S 中第二小的数 SecondMin。在最坏情况下,该算法需要做()次比较。
    if(S[1]<S[2]){
        FirstMin=s[1];
        SecondMin=S[2];
    }else{
        FirstMin=S[2];
        SecondMin=s[1];
    }
    for(i=3;i<=n;i++)
        if(S[i]<SecondMin)
            if(S[i]<FirstMin){
                SecondMin=FirstMin;
                FirstMin=s[i];
            }else{
                SecondMin=S[i];
            }
A.2n
B.n-1
C.2n-3
D.2n-2
10.
【NOIP2008】递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A.队列
B.多维数组
C.线性表
D.栈
11.
【NOIP2012】在程序运行过程中,如果递归调用的层数过多,会因为()引发错误。
A.系统分配的栈空间溢出
B.系统分配的堆空间溢出
C.系统分配的队列空间溢出
D.系统分配的链表空间溢出
不定项选择题
12.
【NOIP2013】下列程序中,正确计算1,2,,100这100个自然数之和sum(初始值为0)的是()。【多选题】
A.
for(i=1;i<=100;i++)
sum +=i;
B.
i=1;
while(i>100){
sum +=i;
i++;
}
C.
i=1;
do{
sum +=i;
i++;
}while(i<=100);
D
i=1;
do{
sum+=i;
i++;
}while(i>100);
问卷星提供技术支持
举报