国家二级C++机试(基本控制结构和数组、指针与引用)模拟试卷1
选择题
1.若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。(A)
A. if(x==0)y=1;else y=2;
B. if(x==0)then y=1 else y=2;
C. if(x==0)y=1 else y=2;
D. if(x==0)y=1;else y=2;
解析:ifelse语句的形式为:
if(<条件>) <语句1>else<语句2>
所以符合以上形式的ifelse语句为选项A。
2.下列语句中,与语句“1n=(a>b?(1)>c?1:0):0);”的功能等价的是( )。(C)
A. if(a<=b) n=0;
B. if((a>b)Il(b>c))n=1;else n=0;
C. if(a>b)if(b>c) n=1:else n=0;else n=0;
D. if(a>b) n=1;else if(<=c)n=1;else if(b>c)n=1;else n=0;
解析:条件表达式(a>b?(b>c?1:0):0)的含义是,如果a>b成立,则此表达式的值等于条件表达式(b>c?1:0)的值,否则其值等于0。而条件表达式(b>c?1:0)的含义是,如果b>c成立,其值等于1,否则其值等于0。
3.有如下程序
#inelude<iostream>
using namespace std;
int main(){
char a;
cin>>a;
if(a=’*’) cout<<’’***’’<<end1;
else cout<<’’###’’<<end1;
rerurn 0:
}
输入字符+时,程序的运行结果是( )。(A)
A. ***
B. ###
C. ***###
D. 无输出
解析:本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算if后表达式的值,如果表达式的值为非零,则执行if后面的分支,否则执行与其匹配的else后面的分支。本题执行时虽然输入变量a的值为‘+’,但是在执行if后括号内表达式(a=’*’)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值’*’,其ASCII码的值非零,执行if后面的输出语句“***”后回车。
4.执行语句序列( )。
int i=0;
while(i<25)i+=3;
cout<<i;
输出结果是(C)
A. 24
B. 25
C. 27
D. 28
解析:此题考查的是循环语句while的使用。i为3的倍数,当i=24时,i<25,执行while的循环体i+=3,则i=27,不满足i<25的条件,结束循环。
5.有如下程序:
int x=3;
do {
x-=2;
cout<<x;
} while(1(–x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 30
C. 1-2
D. 死循环
解析:此题考查的是do-while循环语句。do-while循环首先执行do语句中的循环体,再判断是否需要继续执行循环。题目中do语句“x-=2”,while语句中“–x”即x为0,取反为非0,循环继续执行;执行“x-=2”和“–x”取反后,循环结束程序退出。
6.有如下程序:
#include<iostream>
using namespace std;
int main(){
hat sum;
for(int i=0;i<6;i+=3){
sum=i;
for(int j=i;j<6;j++)sum+=j;
}
cout<<sum<<end 1;
return 0:
}
运行时的输出结果是( )。(D)
A. 3
B. 10
C. 12
D. 15
解析:由题干可以知道,外层循环会进行两次,且第一次的结果我们可以不去理会和计算,读者仔细观察能发现,在第一次的循环以后sum和j都会被重新赋值,所以外层第二次循环如下:
此时i=3,sum=3内层循环开始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出内层循环。得到sum=15。
7.有如下程序段:
int i=5;
while(int i=0){cout<<’*’;i–;}
运行时输出’’*’’的个数是( )。(A)
A. 0
B. 1
C. 5
D. 无穷
解析:因为while循环中,因为i的值等于0,所以while循环体一次也不执行。因而运行时输出“*”的个数是0。
8.下列循环语句中有语法错误的是( )。(D)
A. int i;for(i=1;i<10;i++)cout<<’*’;
B. int i,j;for(i=l,j=0;i<10;i++,j++)cout<<’*’;
C. int i=0;for(;i<10;i++)cout<<’*’;
D. for(1)tout<’*’;
解析:这道题目主要考查for循环语句的语法。for循环语句的语法格式如下:for(<表达式1>;<表达式2>;<表达式3>)<语句>,在三个表达式都省略的情况下,其格式如下for(;;),这时for循环语句是一个死循环。
9.有如下程序:
#include<iostream>
using namespace std;
int main() {
int f,f1=0(),t2=1;
for(int i=3;i<=6;i++) {
f=f1+f2;
f1=f2;f2=f;
}
cout<<f<<end1;
return 0;
}
运行时的输出结果是( )。(C)
A. 2
B. 3
C. 5
D. 8
解析:在主函数中for循环语句执行4次,第一次循环结束时,变量f的值等于1,n的值等于1,f2的值等于1;第二次循环结束时,变量f的值等于2,f1的值等于1,f2的值等于2:第三次循环结束时,变量f的值等于3,f1的值等于2,f2的值等于3;第四次循环结束时,变量f的值等于5,f1的值等于3,f2的值等于5;结束循环。
10.有如下程序:
#inclu&<iostream>
usin
本文档预览:3600字符,共9076字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载