通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
计算机如果缺少( ),将无法正常启动。
内存
鼠标
U 盘
摄像头
第2题
( )是一种先进先出的线性表。
栈
队列
哈希表(散列表)
二叉树
第3题
目前计算机芯片(集成电路)制造的主要原料是( ),它是一种可以在沙子中提炼出的物质。
硅
铜
锗
铝
第4题
十六进制数 9A 在( )进制下是 232
四
八
十
十二
第5题
( )不属于操作系统。
Windows
DOS
Photoshop
NOI Linux
第6题
如果一棵二叉树的中序遍历是 BAC,那么它的先序遍历不可能是( )。
ABC
CBA
ACB
BAC
第7题
目前个人电脑的( )市场占有率最靠前的厂商包括 Intel、AMD 等公司。
显示器
CPU
第8题
使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少 1 个 逆序对,因此序列 :5,4,3,2,1 需要执行( )次操作,才能完成冒泡排序。
0
5
10
15
第9题
1946年诞生于美国宾夕法尼亚大学的 ENIAC 属于( )计算机。
电子管
晶体管
集成电路
超大规模集成电路
第10题
无论是 TCP/IP 模型还是 OSI 模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )。
中国公司的经理与缅甸公司的经理交互商业文件
军队发布命令
国际会议中,每个人都与他国地位对等的人直接进行会谈
体育比赛中,每一级比赛的优胜者晋级上一级比赛
第11题
矢量图(Vector Image)图形文件所占的贮存空间比较小, 并且无论如何放大、 缩小或旋转等都不会失真,是因为它( )。
记录了大量像素块的色彩值来表示图像
每个像素点的颜色信息均用矢量表示
把文件保存在互联网,采用在线浏览的方式查看图像
第12题
如果一个栈初始时为空, 且当前栈中的元素从栈底到栈顶依次为 a,b,c, 另有元素 d 已经出栈,则可能的 入栈顺序是( )。
a, d, c, b
b, a, c, d
a, c, b, d
d, a, b, c
第13题
( )是主要用于显示网页服务器或者文件系统的 HTML文件的内容,并 让用户与这些文件交互的一种 软件。
资源管理器
浏览器
电子邮件
编译器
第14题
( )是目前互联网上常用的 E-mail 服务协议
HTTP
FTP
POP3
Telnet
第15题
( )就是把一个复杂的问题分成两个或者更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后的子问题可以简单的直接求解。而原问题的解就是子问题解的并。
动态规划
贪心
分治
搜索
第16题
地址总线的位数决定了 CPU 可直接寻址的内存空间大小,例如地址总线 为 16 位,其最大的可寻址空间为 64KB。如果地址总线是 32 位,则理论上最大 可寻址的内存空间为( )。
128KB
1MB
1GB
4GB
第17题
蓝牙和 Wi-Fi 都是( )设备。
无线广域网
无线城域网
无线局域网
无线路由器
第18题
在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。
系统分配的栈空间溢出
系统分配的堆空间溢出
系统分配的队列空间溢出
系统分配的链表空间溢出
第19题
原字符串中任意一段连续的字符组成的新字符串称为子串。则字符串“AAABBBCCC”共有( )个不同的非空子串。
3
12
36
45
第20题
仿生学的问世开辟了独特的科学技术发展道路。人们研究生物体的结构、功能和工作原理,并将这些原理移植于新兴的工程技术之中。以下关于仿生学的叙述,错误的是( )。
由研究蝙蝠,发明雷达
由研究蜘蛛网,发明因特网
由研究海豚,发明声纳
由研究电鱼,发明伏特电池
第21题
如果平面上任取 n 个整点(横纵坐标都是整数),其中一定存在两个点,它们连线的中点也是整点,那么 n 至少是____。
第22题
在 NOI 期间,主办单位为了欢迎来自各国的选手,举行了盛大的晚宴。在第 十八桌,有 5 名大陆选手和 5 名港澳选手共同进膳。 为了增进交流, 他们决定相 隔就坐,即每个大陆选手左右旁都是港澳选手, 每个港澳选手左右旁都是大陆选 手。那么,这一桌一共有 _______种不同的就坐方案。注:如果在两个方案 中,每个选手左右相邻的选手相同 ,则视为同一种方案。
第23题
#include <iostream> using namespace std; int a, b, c, d, e, ans; int main(){ cin>>a>>b>>c; d = a+b; e = b+c; ans = d+e; cout<<ans<<endl; }
输入: 1 2 5
输出: _______
第24题
include<iostream> using namespace std; int n, i, ans; int main(){ cin>>n; ans = 0; for (i = 1; i <= n; i++) if (n % i == 0)ans++; cout<<ans<<endl; }
输入: 18
输出: ___________
第25题
#include <iostream> using namespace std; int n, i, j, a[100][100]; int solve(int x, int y){ int u, v; if (x == n)return a[x][y]; u = solve(x + 1, y); v = solve(x + 1, y + 1); if (u > v) return a[x][y] + u; else return a[x][y] + v; } int main(){ cin>>n; for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) cin>>a[i][j]; cout<<solve(1, 1)<<endl; return 0; }
输入:
5 2
-1 4
2 -1 -2
-1 6 4 0
3 2 -1 5 8
输出: ______________
第26题
#include <iostream> #include <string> using namespace std; int n, ans, i, j; string s; char get(int i){ if (i < n) return s[i]; else return s[i-n]; } int main(){ cin >> s; n = s.size(); ans = 0; for (i = 1; i <= n-1; i++){ for (j = 0; j <= n-1; j++) if (get(i+j) < get(ans+j)){ ans = i; break; }else if (get(i+j) > get(ans+j)) break; } for (j = 0; j <= n-1; j++) cout<<get(ans+j); cout<<endl; }
输入: CBBADADA
输出: ______
第27题
(坐标统计)输入 n 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即 x、y 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。
#include<iostream> using namespace std; const int SIZE = 100; int x[SIZE], y[SIZE], f[SIZE]; int n, i, j, max_f, ans; int main(){ cin>>n; for (i = 1; i <= n; i++) cin >> x[i] >> y[i]; max_f = 0; for (i = 1; i <= n; i++){ f[i] =①; for (j = 1; j <= n; j++){ if (x[j] < x[i] && ②) ③; } if (④){ max_f = f[i]; ⑤; } } for (i = 1; i <= n; i++) cout<<f[i]<<endl; cout<<ans<<endl; }
第28题
(排列数)输入两个正整数 n,m(1<n<20,1<m<n),在 1~n 中任取 m个数,按字典序从小到大输出所有这样的排列。例如:
输入: 3 2
输出:
1 2
1 3
2 1
2 3
3 1
3 2
#include<iostream> #include<cstring> using namespace std; const int SIZE = 25; bool used[SIZE]; int data[SIZE]; int n, m, i, j, k; bool flag; int main(){ cin>>n>>m; memset(used, false, sizeof(used)); for (i = 1; i <= m; i++){ data[i] = i; used[i] = true; } flag = true; while (flag){ for (i = 1; i <= m-1; i++)cout<<data[i]<<""; cout << data[m] << endl; flag =①; for (i = m; i >= 1; i--){ ②; for (j = data[i]+1; j <= n; j++) if (!used[j]){ used[j] = true; data[i] =③; flag = true; break; } if (flag){ for (k = i+1; k <= m; k++) for (j = 1; j <=④; j++) if (!used[j]){ data[k] = j; used[j] = true; break; } ⑤; } } } }
一、单项选择题(1-20 共 20 题); 二、问题求解(21-22 共 2 题); 三、阅读程序写结果。(23-26 共 4 题); 四、完善程序(27-28 共 2 题)。