当前位置:学者斋 >

IT认证 >计算机等级 >

2016年计算机笔试考试题及答案

2016年计算机笔试考试题及答案

2016年计算机等级考试就要开始了,同学们复习好了吗?下面yjbys小编为大家准备的是关于网络笔试的考试题及答案,希望能帮助大家顺利通过考试!

2016年计算机笔试考试题及答案

  【字符串】

1、输入一个字符串,打印出该字符串中字符的所有排列。

例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。

2、有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在大写字母的前面

(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法。

C语言函数原型void proc(char *str),也可以采用你自己熟悉的语言

3、编写反转字符串的程序,要求优化速度、优化空间。

4、用C语言实现函数void * memmove(void *dest, const void *src, size_t n)。

memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。

分析:由于可以把任何类型的指针赋给void类型的指针,这个函数主要是实现各种数据类型的拷贝。

5、编程找出两个字符串中最大公共子字符串,如"abccade", "dgcadde"的最大子串为"cad"。

6、输入一个字符串,输出该字符串中对称的子字符串的最大长度。

比如输入字符串"google",由于该字符串里最长的对称子字符串是"goog",因此输出4。

7、字符串原地压缩。题目描述:“eeeeeaaaff" 压缩为 "e5a3f2",请编程实现。

8、请以回溯与不回溯算法实现字符串匹配。

9、输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。

为简单起见,标点符号和普通字母一样处理。

例如:输入"I am a student.",则输出"student. a am I"。

10、在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

11、写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。

例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。

12、定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。

如:把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。

要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。

13、有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接。

问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。

14、如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。

注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。

请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。

例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,

则输出它们的长度4,并打印任意一个子串。

分析:求最长公共子串(Longest Common Subsequence, LCS)是一道非常经典的动态规划题。

15、输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。

例如,输入"They are students."和"aeiou",则删除之后的第一个字符串变成"Thy r stdnts."。

16、一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对,如abc和cba。

17、给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。

18、已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde的个数,如果没有返回0,有的话返回子字符串的个数。

19、求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")。

20、实现strstr功能,即在父串中寻找子串首次出现的位置。

21、编码完成下面的处理函数。

函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。

如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)

22、删除字符串中的数字并压缩字符串。如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。

23、求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。

  【栈、链表、树、图】

1、编写一个程序,把一个有序整数数组放到二叉树中。

2、编程实现从顶部开始逐层打印二叉树节点数据。[参考]

3、编程实现单链表逆转。

4、设计一个算法,找出二叉树上任意两个结点的最近共同父结点。复杂度不能为O(n2)。

5、二叉排序树中,令f = (最大值+最小值) / 2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度不能为O(n2)。

6、有双向循环链表结点定义为:

struct node

{

int data;

struct node *front,*next;

};

有两个双向循环链表A,B,知道其头指针为:pHeadA、pHeadB,请写一函数将两链表中data值相同的结点删除。

  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/itrz/dengji/0vg9r5.html