一、单选题(每题 2 分,共 30 分) 1、我国第⼀台⼤型通用电⼦计算机使用的逻辑部件是()。 A. 集成电路 B. ⼤规模集成电路 C. 晶体管 D. 电⼦管 【答案】D 【考纲知识点】 计算机基础知识 【解析】本题属于考察计算机基础知识。中国第一台计算机通用数字电子计算机于 1958 年 6 月由中科院计算所研制成功。那时候的逻辑部件是电子管。 2、下列流程图的输出结果是( )? A. 5 12 B. 12 5 C. 5 5 D. 12 12 【答案】B 【考纲知识点】 流程图的概念与描述 【解析】本题属于考察流程图知识。通过图得知,x=5,y=12,x>y 不成立,会执行否,结果是 a=y=12,b=x=5,输出选项为 B。 3、如果要找出整数 a 、 b 中较⼤⼀个,通常要⽤下⾯哪种程序结构?()。
A. 顺序结构 B. 循环结构 C. 分支结构 D. 跳转结构 【答案】C 【考纲知识点】 控制语句结构 【解析】本题属于考察计算机程序结构。比较大小,需要分支结构。 4、以下不是 C++关键字的是( )。 A. continue B. cout C. break D. goto 【答案】B 【考纲知识点】 变量的定义与使用 【解析】本题属于考察 C++知识,cout 不是关键字,是一个类的对象。 5、C++表达式 int(-123.123 / 10) 的值是( )。 A. -124 B. -123 C. -13 D. -12 【答案】D 【考纲知识点】 数据类型的转换 【解析】本题属于考察 C++运算和强制类型转换。-123.123/10=-12.3123,转换成整数是-12。 6、以下 C++代码实现从⼤到⼩的顺序输出 N 的所有因⼦。例如,输⼊N=18时输出 18 9 6 3 2 1 ,横线处应填⼊( )。 int N = 0;
cin >> N;
for (_____________) //此处填写代码
if (!(N % i))
cout << i << ' ';
A. ; ; B. int i = 1; i < N; i++ C. int i = N; i > 0; i-- D. int i = N; i > 1; i-- 【答案】C 【考纲知识点】 控制语句结构、基本运算 【解析】本题属于考察程序填空,根据题意,从大到小输出N 的所有因子,判断范围是[N,1],观察选项,C 选项符合,D 选项错误的地方是i>1,不包括1。 7、如下图所⽰,输出 N ⾏ N 列的矩阵,对角线为 1,横线处应填⼊()。 int N = 0;
cout<< "请输入行列数量:";
cin>>N;
for (int i = 1; i < N + 1; i++){
for (int j = 1; j < N + 1; j++)
if (__________)//此处填写代码
cout << 1 << " ";
else
cout << 0 << " ";
cout<< endl;
}
A. i = j B. j != j C. i >= j D. i == j 【答案】D 【考纲知识点】 多层循环结构 【解析】本题属于考察程序填空,根据题意,对角线上的元素等于1,对角线元素的坐标特点是行左边等于列坐标,也就是 i==j。 选D。 8、下⾯C++代码⽤于判断 N 是否为质数(素数),约定输⼊N 为⼤于等于2的正整数,请在横线处填⼊合适的代码( )。 int N = 0,i = 0;
cout<<"请输入一个大于等于2的正整数:";
cin>>N;
for ( i = 2; i < N; i++)
if (N % i == 0){
cout << "非质数";
______________;//此处填写代码
}
if (i == N)
cout<< "是质数";
A. break B. continue C. exit D. return 【答案】A 【考纲知识点】 控制语句结构、基本运算 【解析】本题属于考察程序填空,根据题意,判断质数,质数的特点是只能被1和它本身整除,如果被 2---N-1 之间的数字整除,就不是质数,这样的数字找到1 个,就不需要再循环判断了,因此填 break,A。 9、下⾯C++代码执⾏后的输出是( )。 int N = 9;
for (int i = 2; i < N; i++)
if(N % i)
cout << "1#";
cout << "0" << endl;
A. 1#0 B. 1# C. 1#1#1#1#1#1 D. 1#1#1#1#1#1#0 【答案】D 【考纲知识点】 控制语句结构、基本运算 【解析】本题属于考察程序填空,根据代码,最后的 0 肯定输出,所以判断AD选项。9%2==1,会输出 1#,可以判断 i=2,4,5,6,7,8 时都会输出1#,选D。 10、下⾯C++代码执⾏后的输出是( )。 int cnt = 0;
for (int i = 1; i < 9; i++)
for (int j = 1; j < i; j += 2)
cnt += 1;
cout << cnt;
A. 16 B. 28 C. 35 D. 36 【答案】A 【考纲知识点】 多层循环结构 【解析】本题属于考察程序填空,根据题意这是一道双重循环的题,题目的核心是考核运行次数,注意 i 的循环范围,j 的循环范围,j 的每次累加的是2。i=1是,j 循环次数是 0;i=2 时,j 循环 1 次,cnt+1,以此类推,选A。 11、下⾯C++代码执⾏后的输出是( )。 int cnt = 0;
for (int i = 1; i < 13; i += 3)
for (int j = 1; j < i; j += 2)
if( i * j % 2 == 0)
break;
else
cnt += 1;
cout << cnt;
A. 1 B. 3 C. 15 D. 没有输出 【答案】B 【考纲知识点】 多层循环结构 【解析】本题属于考察程序填空,根据题意,i 的范围是[1,12],i 每次累加3;j 每次的范围是[1,i-1],j 每次累加 2。我们会发现,j 每次的值都是奇数,根据if 条件,i 是偶数的时候不会累加,只有奇数的时候才会累加cnt,因此i 的范围是1,7。I=1,j 不会循环(j<i);i=7,j 的合理范围是 1,3,5,cnt 会增加3 次。选B。 12、下⾯C++代码执⾏后的输出是( )。 int x = 1;
while ( x < 100 ){
if (!(x % 3))
cout << x << ",";
else if ( x/10 )
break;
x += 2;
}
cout<< x ;
A. 1 B. 3,9,11 C. 3,6,9,10 D. 1,5,7,11,13,15 【答案】B 【考纲知识点】 控制语句结构、基本运算 【解析】本题属于考察程序填空,根据题意,while 循环中,x 每次增加2,x=1,3,5,7,9,11….. 根据 if 条件,1%3==1,!(1)==0,不会输出;x=3 时,会输出“3,”,以此类推,x=11 时,x/10 等于 1,退出循环,输出 11,答案选B。 13、下⾯图形每⼀⾏从字母 A 开始,以 ABC⽅式重复。⾏数为输⼊的整数。请在 C++代码段横线处填⼊合适代码( ) 。 int N = 0;
cout<< "请输入行列数量:";
cin >> N;
for (int i = 1; i < N+1; i++){
for (int j = 0; j < i; j++)
cout <<____________;//此处填写代码
cout<< endl ;
}
A. 'A' + j / 3 B. (char)('A' + j / 3) C. 'A' + j % 3 D. (char)('A' + j % 3) 【答案】D 【考纲知识点】 多层循环结构 【解析】本题属于考察程序填空,根据题意,要输出 N 行字符,每行字符数量都等于行数,例如第 1 行输出 1 个字符,第 2 行输出2 个字符……每行输出的内容总结是:ABC 循环输出,BD 选项可以输出字符,模拟B选项发现会连续输出 A,因此选择 D 选项。 14、输⼊⾏数,约定 1≤ lineCount ≤ 9,输出以下图形。应在C++代码横线处填⼊( )。 int lineCount = 0;
cout<<"请输入行数量:";
cin >> lineCount;
for (int i = 0; i < lineCount; i++){
for (int j = 0; j < _______; j++) //此处填写代码
cout << ' ';
for (int j = 1; j < i + 1; j++)
cout << j << ' ';
for (int j = i + 1; j > 0; j--)
cout << j << ' ';
cout<<endl;
}
A. (lineCount - i - 1) * 2 B. (lineCount - i) * 2 C. lineCount - i - 1 D. lineCount - i 【答案】A 【考纲知识点】 多层循环结构 【解析】本题属于考察程序填空,根据给出的数字三角形,总结规律:1、每行前面空格逐渐减少,最后 1 行不需要输出,AC 中选择;2、每行每个数字之间还有 1 个空格,因此每行前还要多输出 1 个空格,选A。 15、某班级⼈数不知,连续输⼊成绩直到输⼊负数停⽌,输⼊结束后求出平均成绩。在以下 C++代码横线处应填⼊是( )。 double totalScore = 0; //总分
int studCount = 0; //总人数
int score;
while (___________){ //此处填写代码
cin >> score;
if (score < 0)
break;
totalScore += score;
studCount += 1;
}
cout<< "平均分=" << totalScore / studCount;
A. true B. false C. True D. False 【答案】A 【考纲知识点】 控制语句结构、基本运算 【解析】本题属于考察程序填空,根据题意,while 循环内是根据输入数据退出,如果输入不是负数,就一直循环下去。CD 关键字错误,B 直接退出循环,不能实现题意,选 A。
(责任编辑:admin) |