1 NOIP 2014 普及组 基础题2
4 以下哪一种设备属于输出设备( )
A 扫描仪
B 键盘
C 鼠标
D 打印机
5 下列对操作系统功能的描述最为完整的是( )
A 负责外设与主机之间的信息交换
B 负责诊断机器的故障
C 控制和管理计算机系统的各种硬件和软件资源的使用
D 将没有程序编译成目标程序
11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )
A 296
B 133
C 256
D 199
14 设变量 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;
15 有以下程序
#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
2 相关知识点
1) 输入输出设备
输入设备
是外界向计算机传送信息的装置。在微型计算机系统中,最常用的输入设备是键盘和鼠标。
此外还有电子光笔、数字化仪、图形扫描仪、触摸屏、麦克风、视频输入设备、条形码扫描等
输出设备
作用是将计算机的数据信息传送到外部媒介,并转化成某种为人们所识的标识形式。
在微型计算机中,最常用的输出设备是显示器和打印机。此外还有绘图仪等
2) 操作系统
操作系统是控制和管理计算机软硬件资源,以尽量合理有效的方法组织多个用户共享多种资源的程序集合
它是计算机系统中最基本的系统软件,是用户和计算机硬件之间的接口
操作系统的主要功能有:处理机管理、存储器管理、设备管理、文件管理和用户接口管理
常用的操作系统
Windows XP、Windows 2003、Vista、Windows 7、Windows 10、Windows Phone、Linux、Unix、Solaris、AIX、Netware、Mac OS、Android、iOS等
3) 二进制
二进制(Binary)是一种计数系统,它只使用两个数字:0和1。它是计算机科学中最基本的数制,因为计算机内部的所有信息都是以二进制形式存储和处理的
在二进制系统中,每一位的权重是2的幂次方
最右边的位(最低位)的权重是2^0 = 1
从右向左数第二位的权重是2^1 = 2
从右向左数第三位的权重是2^2 = 4
以此类推
二进制数的表示方法是从右向左,每一位的数字乘以其对应的权重,然后将所有的结果相加。例如,二进制数1101转换为十进制数的计算过程如下
1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13
4) 整数除法
整数除法中,默认是向下取整
例如 5/2=2
#include<bits/stdc++.h>
using namespace std;
/*
2个整数相除结果也是整数,如果不能整除会向下取整
*/
int main(){
int a=15,b=2;
int c=15/2;
cout<<"15/2为:"<<c<<endl;
return 0;
}
/*
输出:
15/2为:7
*/
5) while和do while
最初条件不满足,while不执行循环体,do while执行一次循环体后仍不满足循环条件,那么do while比whiel多执行一次
#include<bits/stdc++.h>
using namespace std;
/*
while 条件满足才执行
do while 先执行1次,然后再判断条件是否成立
*/
int main(){
bool b=false;
while(b){//条件成立才执行
cout<<"b为false时,while 不执行!";
}
do{//先执行1次,再判断条件是否成立
cout<<"b为false时,do while 会执行1次!";
}while(b);
return 0;
}
/*
输出
b为false时,do while 会执行1次!
*/
3 思路分析
4 以下哪一种设备属于输出设备( D )
A 扫描仪
B 键盘
C 鼠标
D 打印机
分析
打印机把电脑内容输出,属于输出设备
扫描仪,键盘,鼠标都是把内容输入到电脑中,属于输入设备
所以选D
5 下列对操作系统功能的描述最为完整的是( C )
A 负责外设与主机之间的信息交换
B 负责诊断机器的故障
C 控制和管理计算机系统的各种硬件和软件资源的使用
D 将没有程序编译成目标程序
分析
操作系统负责控制和管理计算机系统的各种硬件和软件资源的使用
所以选D
11 下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( D )
A 296
B 133
C 256
D 199
分析
1位二进制 最大为1 - 2^1-1=1
2位二进制 最大为3 - 2^2-1=3
3位二进制 最大为3 - 2^3-1=7
8位二进制 最大为3 - 2^8-1=255
4个选项中比255小的有133和199,较大的是199
所以选D
14 设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是( C )
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;
分析
A x = (x * 100) + 0.5 / 100.0; 使x的值扩大100倍,并且+0.005
B x = (x * 100 + 0.5) / 100.0; 都是float类型运算,不能保留2位小数
比如 x=3.144,x*100=314.4+0.5=314.9/100=3.149
C x = (int)(x * 100 + 0.5)/100.0; 可以实现保留2位小数,把第3为四舍五入
比如x=3.146, x * 100 + 0.5=315.1 ,(int)(315.1)=315, 315/100.0=3.15
D x = (x / 100 + 0.5) * 100.0; 结果会变大
比如x=3.146,x / 100 + 0.5=0.03146+0.5=0.53146,0.53146*100=53.146
所以选C
15 有以下程序
#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 输入的值是( B )
A -1
B -3
C -5
D 0
分析
1 根据程序分析,s初始为0,循环1次累加1
2 要使程序的输出为2,需要循环体执行2次
do while循环判断条件前先执行1次,需要判断条件只第1次满足
3 循环1次a减2,a初始为1
执行1次a为-1,此时条件成立,还需要循环1次
再次执行边为-3 此时条件不成立退出,因此n=-3
所以选B