通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
第1题
在以下各项中, ( )不是操作系统软件。
Solaris
Linux
Sybase
Windows Vista
Symbian
第2题
微型计算机中,控制器的基本功能是( )。
控制机器各个部件协调工作
实现算术运算和逻辑运算
存储各种控制信息
获取外部信息
存放程序和数据
第3题
设字符串 S=”Olympic ”, S的非空子串的数目是( )。
29
28
16
17
7
第4题
完全二叉树共有 2*N-1 个结点,则它的叶节点数是( )。
N-1
2*N
N
2^N-1
N/2
第5题
将数组 {8, 23, 4, 16, 77, -5, 53, 100} 中的元素按从大到小的顺序排列,每 次可以交换任意两个元素,最少需要交换( )次。
4
5
6
8
第6题
设栈 S 的初始状态为空,元素 a,b,c, d,e,f 依次入栈 S,出栈的序列为 b,d,c, f ,e,a,则栈 S 的容量至少应该是( )。
3
2
第7题
与十进制数 28.5625 相等的四进制数是( )。
123.21
131.22
130.22
130.21
130.20
第8题
递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
队列
多维数组
线性表
链表
栈
第9题
TCP/IP 是一组构成互联网基础的网络协议, 字面上包括两组协议: 传输控制协议 (TCP) 和网际协议( IP )。TCP/IP 协议把 Internet 网络系统描述成具有四个层次功能的网络 模型 , 其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是 ()。
链路层
网络层
传输层
应用层
会话层
第10题
对有序数组 {5, 13, 19, 21, 37, 56, 64, 75, 88, 92, 100} 进行二分查 找,等概率的情况下查找成功的平均查找长度(平均比较次数)是( )。
35/11
34/11
33/11
32/11
34/10
第11题
在下列关于图灵奖的说法中,正确的有( )。
图灵奖是美国计算机协会于 1966 年设立的,专门奖励那些对计算机事业作出重要贡献的个人
图灵奖有“计算机界诺贝尔奖”之称
迄今为止,还没有华裔计算机科学家获此殊荣
图灵奖的名称取自计算机科学的先驱、英国科学家阿兰·图灵
第12题
计算机在工作过程中,若突然停电, ( )中的信息不会丢失。
硬盘
CPU
ROM
RAM
第13题
设A=true ,B=false ,C=true ,D=false ,以下逻辑运算表达式值为真的有 ( )。
(A ∧B) ∨(C ∧D∨ ¬A)
(( ¬A∧B) ∨ C) ∧ ¬D
(B ∨C∨ D) ∨ D∧A
A ∧(D ∨ ¬C) ∧B
第14题
Web2.0 是近年来互联网的热门概念之一, 其核心思想是互动与分享。 下列网站中,( ) 是典型的 Web2.0 应用。
Sina
Flickr
Yahoo
Google
第15题
(2008) 10 + (5B) 16 的结果是( )。
(833) 16
(2099) 10
(4063) 8
(100001100011) 2
第16题
二叉树 T,已知其先根遍历是 1 2 4 3 5 7 6 (数字为结点的编号,以下同) ,后根 遍历是 4 2 7 5 6 3 1 ,则该二叉树的可能的中根遍历是( )。
4 2 1 7 5 3 6
2 4 1 7 5 3 6
4 2 1 7 5 6 3
2 4 1 5 7 3 6
第17题
面向对象程序设计( Object-Oriented Programming )是一种程序设计的方法论, 它将对象作为程序的基本单元, 将数据和程序封装在对象中, 以提高软件的重用性、 灵活性 和扩展性。下面关于面向对象程序设计的说法中,正确的是( )。
面向对象程序设计通常采用自顶向下设计方法进行设计。
面向对象程序设计方法具有继承性( inheritance )、封装性( encapsulation )、多态性( polymorphism )等几大特点。
支持面向对象特性的语言称为面向对象的编程语言,目前较为流行的有 C++、JAVA、C#等。
面向对象的程序设计的雏形来自于 Simula 语言, 后来在 SmallTalk 语言的完善和标准化的过程中得到更多的扩展和对以前思想的重新注解。至今, SmallTalk 语言仍然被视为面向对象语言的基础。
第18题
设 T 是一棵有 n 个顶点的树,下列说法正确的是( )。
T 是连通的、无环的
T 是连通的,有 n-1 条边
T 是无环的,有 n-1 条边
以上都不对
第19题
NOIP 竞赛推荐使用的语言环境有( )。
Dev-C++
Visual C++
free pascal
Lazarus
第20题
在下列防火墙( firewall )的说法中,正确的有( )。
防火墙是一项协助确保信息安全的设备,其会依照特定的规则,允许或是限制数据通过
防火墙可能是一台专属的硬件或是安装在一般硬件上的套软件
网络层防火墙可以视为一种 IP 数据包过滤器,只允许符合特定规则的数据包通过,其余的一概禁止穿越防火墙
应用层防火墙是在 TCP/IP 的“应用层”上工作,可以拦截进出某应用程序的所有数据包
第21题
有 6 个城市,任何两个城市之间都有一条道路连接, 6 个城市两两之间的距离如下 表所示,则城市 1 到城市 6 的最短距离为 _____________ 。
第22题
书架上有 21 本书,编号从 1 到 21 ,从其中选 4 本,其中每两本的编号都不相邻的 选法一共有 ______ 种。
第23题
#include<stdio.h> int main() { int i, a, b, c, d, f[4]; for(i = 0; i < 4; i++) scanf("%d", &f[i]); a = f[0] + f[1] + f[2] + f[3]; a = a / f[0]; b = f[0] + f[2] + f[3]; b = b / a; c = (b * f[1] + a) / f[2]; d = f[(b / c ) % 4]; if(f[(a + b + c + d) % 4] > f[2]) printf("%d\n", a + b); else printf("%d\n", c + d); return 0; }
输入: 9 19 29 39
输出: _______________
第24题
#include<stdio.h> void foo(int a, int b, int c) { if(a > b) foo(c, a, b); else printf("%d,%d,%d\n", a, b, c); } int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); foo(a, b, c); return 0; }
输入: 2 1 3
输出 :__________
第25题
#include<stdio.h> void f(int a, int b, int c) { printf("%d%d%d/", a, b, c); if(a == 3 && b == 2 && c == 1) return; if(b < c) f(a, c, b); else if(a < b) { if(a < c) f(c, a, b); else f(b, c, a); } } int main() { int a, b, c; scanf("%d %d %d", &a, &b, &c); f(a, b, c); printf("\n"); return 0; }
输入 : 1 3 2
输出: ________________________
第26题
#include <stdio.h> #include <string.h> int i,j,len; char s[50]; int main() { scanf("%s", s); len = strlen(s); for (i = 0;i < len; ++i) { if (s[i] >= 'A' && s[i] <= 'Z') s[i] -= 'A' - 'a'; } for (i = 0;i < len; ++i) { if (s[i] < 'x') s[i] += 3; else s[i] += -23; } printf("%s/", s); for (j = 1;j < 4;j ++) { for (i = 0;i < len-j; i = i + j) { s[i] = s[i + j] ; } } printf("%s\n", s); return 0; }
输入: ABCDEFGuvwxyz
输出: __________________________
第27题
( 找第 k 大的数 ) 给定一个长度为 1,000,000 的无序正整数序列,以及另一个数 n(1<=n<=1000000) ,接下来以类似快速排序的方法找到序列中第 n 大的数 (关于第 n 大 的数:例如序列 {1 ,2, 3, 4,5,6} 中第 3 大的数是 4)。
#include <stdlib.h> #include <stdio.h> int a[1000001],n,ans = -1; void swap(int *a,int *b) { int c; c = *a; *a = *b; *b = c; } int FindKth(int left, int right, int n) { int tmp,value,i,j; if (left == right) return left; tmp = rand()% (right - left) + left; swap( &a[tmp], &a[left] ); value = ① i = left; j = right; while (i < j) { while (i < j && ② ) j --; if (i < j) {a[i] = a[j]; i ++;} else break; while (i < j && ③ ) i ++; if (i < j) {a[j] = a[i]; j - -;} else break; } ④ if (i < n) return FindKth( ⑤ ); if (i > n) return ⑥ return i; } int main() { int i; int m = 1000000; for (i = 1;i <= m;i ++) scanf("%d", &a[i]); scanf("%d", &n); ans = FindKth(1,m,n); printf("%d\n", a[ans]); return 0; }
第28题
(矩阵中的数字) 有一个 n*n(1<=n<=5000) 的矩阵 a, 对于 1<=i < n,1<=j<=n, a[i,j] < a[i + 1,j] a[j,i] < a[j,i+1] 。即矩阵中左右相邻的两个元素,右边 的元素一定比左边的大。上下相邻的两个元素,下面的元素一定比上面的大。给定矩阵 a 中的一个数字 k,找出 k 所在的行列(注意:输入数据保证矩阵中的数各不相同) 。
#include <stdio.h> int n,k,answerx,answery; int a[5001][5001]; void FindKPosition() { int i = n,j = n; while (j > 0) { if (a[n][j] < k) break; j --; } ① while (a[i][j] != k) { while ( ② && i > 1) i --; while ( ③ && j <= n) j ++; } ④ ⑤ } int main() { int i,j; scanf( "%d", &n ); for (i = 1;i <= n;i ++) for (j = 1;j <= n;j ++) scanf( "%d", &a[i][j]); scanf( "%d", &k ); FindKPosition(); printf("%d %d\n", answerx, answery); return 0; }
一、 单项选择题 (1-10 共 10 题) ; 二、 不定项选择题 (11-20 共 10 题); 三.问题求解(21-22 共 2 题); 四.阅读程序写结果(23-26 共 4 题)。