2014年普及组初赛题解C++

1。选择题

断电后会丢失数据的存储器是(B)
A.ROM B.RAM C.光盘 D.硬盘

解析

随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存或内存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
只读存储器(read only memory),英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。计算机中的ROM主要是用来存储一些系统信息,或者启动程序BIOS程序,这些都是非常重要的,只可以读一般不能修改,断电也不会消失。
RAM与ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM(不会自动消失,可以长时间断电保存。
注意:RAM与ROM都是内存,但是通常说的计算机内存指的是RAM。硬盘,光盘,优盘等则外存。

2014年普及组初赛题解C++_第1张图片
下列各无符号十进制整数中,能用八位二进制表示的数中最大的是()
A.296 B.256 c.133 D.199
解析
八位二进制能表示的无符号十进制范围为0到255。
B选项256是100000000,9位,题里只有8。133和199都可以,但要的是最大的

2。把 M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(用 K表示)。例如, M=7,N=3 时,K=8 ;在这里认为(5,1,1) 和(1,5,1) 是同一种放置方法。
问:M=8,N=5 时,K=()。

解析
本题看似困难,但是数据量非常小,就不用去推公式求数,这种方法出错的几率会更大。这里可以用枚举,有条理的枚举所有情况,不重不漏。

枚举结果如下:
(每行五个数,表示五个袋子里的球数)

00008
00017
00026
00035
00044
00116
00125
00134
00224
00233
01115
01124
01133
01223
02222
11114
11123
11222

3
如图所示,图中每条边上的数字表示该边的长度,则从 A 到 E 的最短距离是____。
2014年普及组初赛题解C++_第2张图片

解析:
一般呢,我们先找这里面长度最小的边,看看通过它会不会是最优解。这里找到两条,BC,CF而且是连着的。(这里梯形ABCF不符合数学规则-_-)有一条路线同时通过BC,CF,ABCFE,长度为11。再看剩下的线段组合最短的是12,大于11
所以答案11

4。阅读程序

#include 
using namespace std;
int fun(int n)
{
    if(n == 1)
        return 1;
    if(n == 2)
        return 2;
    return fun(n - 2) - fun(n - 1);
}
int main()
{
    int n;
    cin >> n;
    cout << fun(n) << endl;
    return 0;
}

输入:7

输出:-11

阅读程序中,最麻烦、最容易出错的就是含递归的题。做这个题的一般方法就是画个图表。如下

f(1) f(2) f(3) f(4) f(5) f(6) f(7)
1 2 -1 3 -4 7 -11

还可以画递归树,更加形象直观,我这里就先不发图了。这里递归中将自己调用两次,那样就是一个二叉树,数的每个节点保存返回值。
5

#include 
using namespace std;
const int SIZE = 100;
int main()
{
    int p[SIZE];
    int n, tot, i, cn;
    tot = 0;
    cin >> n;
    for(i = 1; i <= n; i++)
        p[i] = 1;
    for(i = 2; i <= n; i++)
    {
        if(p[i] == 1)
            tot++;
        cn = i * 2;
        while(cn <= n)
        {
            p[cn] = 0;
            cn += i;
        }
    }
    cout << tot << endl;
    return 0;
}

输入:30
输出:10
解析
之前提到过递归不好做,其实更不好做的是这种不知道在干嘛的东西。但是还是要分析程序思想,这是埃氏筛素数法,这题实际上就是问1到三十有多少质数。事情一下就好办了。阅读程序题,get到思想、目的,百分之九十的情况能做对

你可能感兴趣的:(题解,c++,数据结构,算法,程序设计)