收藏 分销(赏)

NOIP2014初赛普及组C题目及答案.doc

上传人:a199****6536 文档编号:2668483 上传时间:2024-06-04 格式:DOC 页数:7 大小:120.52KB 下载积分:6 金币
下载 相关 举报
NOIP2014初赛普及组C题目及答案.doc_第1页
第1页 / 共7页
NOIP2014初赛普及组C题目及答案.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
第二十届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题2014年 一、 快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)  ⒈以下哪个是面向对象的高级语言(      )。     A.汇编语言   B.C++   C.Fortran   D.Basic   ⒉1TB代表的字节数是(      )。     A.2的10次方   B.2的20次方   C.2的30次方   D.2的40次方   ⒊二进制数00100100和00010101的和是(      )。     A.00101000   B.001010100   C.01000101   D.00111001   ⒋以下哪一种设备属于输出设备(      )。     A.扫描仪   B.键盘   C.鼠标   D.打印机   ⒌下列对操作系统功能的描述最为完整的是(      )。     A.负责外设与主机之间的信息交换   B.负责诊断机器的故障    C.控制和管理计算机系统的各种硬件和软件资源的使用   D.将没有程序编译成目标程序   ⒍CPU、存储器、I/O设备是通过(      )连接起来的。     A. 接口   B.总线   C.控制线   D.系统文件   ⒎断电后会丢失数据的存储器是(      )。     A.RAM   B.ROM   C.硬盘   D.光盘   ⒏以下哪一种是属于电子邮件收发的协议(      )。     A.SMTP   B.UDP   C.P2P   D.FTP   ⒐下列选项中不属于图像格式的是(      )。   A. JPEG格式   B.TXT格式   C.GIF格式   D.PNG格式   ⒑链表不具有的特点是(      )。     A.不必事物估计存储空间   B.可随机访问任一元素    C.插入删除不需要移动元素   D.所需空间与线性表长度成正比   ⒒下列各无符号十进制整数中,能用八位二进制表示的数中最大的是(      )。     A.296   B.133   C.256   D.199   ⒓下列几个32位IP地址中,书写错误的是(      )。     A.162.105.135.27   B.192.168.0.1   C.256.256.129.1   D.10.0.0.1   ⒔要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。   #include <iostream>   using namespace std;   int main()    {  int n;      float s;      s = 1.0;  for(n = 10; n > 1; n--)        s = s + 1 / n;      cout << s << endl;      return 0;    }  程序运行后输出结果错误,导致错误结果的程序行是(      )。    A.s = 1.0;   B.for(n = 10; n > 1; n--)   C.s = s + 1 / n;   D.cout << s << endl;   ⒕设变量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;   ⒖有以下程序  #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   ⒗一棵具有5层的满二叉树中结点数为(      )。     A.31   B.32   C.33   D.16   ⒘有向图中每个顶点的度等于该顶点的(      )。     A.入度   B.出度   C.入度和出度之和   D.入度和出度之差   ⒙设有100个数据元素,采用折半搜索时,最大比较次数为(      )。     A.6   B.7   C.8   D.10   ⒚若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值,c>0。 s = a;  for(b = 1; b <= c; b++)   s += 1;  则与上述程序段功能等价的赋值语句是(      )。    A.s = a + b   B.s = a + c   C.s = s + c   D.s = b + c   ⒛计算机界的最高奖是(      )。   A.菲尔兹奖  B.诺贝尔奖  C.图灵奖  D.普利策奖  二、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)  1.把M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(用K表示)。  例如,M=7,N=3时,K=8;在这里认为和是同一种放置方法。 问:M=8,N=5时,K=       。  2.如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是             。    三、阅读程序写结果(共4题,每题8分,共计32分) 1.  #include <iostream>    using namespace std;    int main()     {   int a, b, c, d, ans;       cin >> a >> b >> c;       d = a- b;       a = d + c;       ans = a * b;   cout << "Ans = " << ans << endl;      return 0;     }  输入:2 3 4   输出:Ans =  2. #include <iostream>    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   输出:   3. #include <iostream>   #include <string>    using namespace std;    int main()     {   string st;       int i, len;   getline(cin, st);  len = st.size();    for(i = 0; i < len; i++)         if(st[i] >= 'a' && st[i] <= 'z')            st[i] = st[i] - 'a' + 'A';       cout << st << endl;       return 0;     }  输入:Hello, my name is Lostmonkey.   输出:    4.  #include <iostream>    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   输出: 四、完善程序(共2题,共计28分)  1.(数字删除)下面程序的功能是将字符串中的数字字符删除后输出。请填空。(每空3分,共12分)  #include <iostream>    using namespace std;    int delnum(char *s)     {       int i, j;       j = 0;       for(i = 0; s[i] != '\0'; i++)         if(s[i] < '0'  ① s[i] > '9')           {        s[j] = s[i];               ② ;           }       return  ③ ;     }    const int SIZE = 30;    int main()     {       char s[SIZE];       int len, i;       cin.getline(s, sizeof(s));        len = delnum(s);       for(i = 0; i < len; i++)         cout <<  ④ ;       cout << endl;       return 0;     }  2.(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。   输入第一行包含两个整数m和n,即矩阵的行数和列数。之后m行,每行n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(最后一空4分,其余3分,共16分)   比如在如下这个矩阵中:  4  4   0 -2 -7 0   9 2 -6 2   -4 1 -4 1   -1 8 0 -2   拥有最大和的子矩阵为:   9 2   -4 1   -1 8   其和为15    3  3   -2 10 20  -1 100 -2  0 -2 -3  最大子矩阵和为128    4  4   0 -2 -9 -9  -9 11 5 7  -4 -3 -7 -6  -1  7  7  5  最大子矩阵和为26   #include <iostream>    using namespace std;    const int SIZE = 100;   int matrix[SIZE + 1][SIZE + 1];   int rowsum[SIZE + 1][SIZE + 1]; //rowsum[i][j]记录第i行前j个数的和   int m, n, i, j, first, last, area, ans;    int main()     {       cin >> m >> n;       for(i = 1; i <= m; i++)         for(j = 1; j <= n; j++)           cin >> matrix[i][j];       ans = matrix ① ;       for(i = 1; i <= m; i ++)         ②       for(i = 1; i <= m; i++)         for(j = 1; j <= n; j++)            rowsum[i][j] =  ③ ;        for(first = 1; first <= n; first++)         for(last = first; last <= n; last++)           {              ④ ;             for(i = 1; i <= m; i++)               {      area +=  ⑤ ;                 if(area > ans)                    ans = area;                  if(area < 0)                     area = 0;               }            }       cout << ans << endl;       return 0;     } 第二十届全国青少年信息学奥林匹克联赛初赛 普及组参考答案 一、单项选择题(共20题,每题1.5分,共计30分) 1 2 3 4 5 6 7 8 9 10 B D D D C B A A B B 11 12 13 14 15 16 17 18 19 20 D C C C B A C B B C 二、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分) 1. 18 2. 11 三、阅读程序写结果(共4题,每题8分,共计32分) 1. Ans=9 2. -11 3. HELLO,MYNAMEISLOSTMONKEY. 4. 10 四、完善程序(共计28分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报CCFNOI科学委员会复核) Pascal语言 C++语言 C语言 分值 1. (1) or || 3 (2) j:=j+1或inc(j) j++或j=j+1或++j 3 (3) j 3 (4) s[i] 3 2. (1) [1,1] [1][1] 3 (2) rowsum[i,0]:=0 rowsum[i][0]=0 3 (3) rowsum[i,j-1]+matrix[i,j] rowsum[i][j-1]+matrix[i][j] 3 (4) area:=0 area=0 3 (5) rowsum[i,last]-rowsum[i,first-1] rowsum[i][last]-rowsum[i][first-1] 4
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服