信息学奥赛初赛天天练-83-NOIP2014普及组-基础题2-输入设备、输出设备、操作系统、二进制、整数除法、while、do while循环

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
posted @ 2024-09-05 18:55  new-code  阅读(9)  评论(0编辑  收藏  举报