山东大学计算机方向自主招生
报考信息类计算机和学与技术软件工程专业的同学,笔试内容为信息技术及计算机程序设计,同学们需要掌握一定的信息技术和计算机基本知识,最好会一门计算机语言,能够有独立编写的能力。
2016年山东大学的自主招生面试分为两部分,考生先去第一专业面试,再去第二专业面试,面试的形式为15分钟的单面,三位考官轮流对等生提问。通常,考生根据报考的专业会被分成不同的小组,到达面试制定地点后,人部分考生会在教室里候考,而序号位于前列的考生则依次进入面试的考场接受考官的询问,面试问题很广,不同专业组有所不同。
有不少考生坦言,在考官的一再追问下自己的知识显得有些匮乏,同学们一定要针对自己所报专业进行准备学习一些基本的专业术语和概念知识,最好能用专业知识理论来解释一些生活中的现象。首先我们要明确表示观点,即对该陈述赞成或是反对,然后有条理地说出持这种观点的理由,语言流畅且提供充足的论据。
笔试有机试,难度CCF前三道题难度。
2018年山东大学计算机方向自主招生考题原题及部分解析
第一题让找100~399之间符合条件的数字
第二题用递归将整形转化为字符型
#include <stdio.h> #include <string.h> main() { int number; printf("/nInput an integer: "); scanf("%d",&number); printf("Output: "); if(number<0) /*if语句的作用是将一个负整数转换为正整数*/ { putchar('-'); /*输出负号,因为下一条语句会把这个负数强制转换为正数后进行运算,convert函数的输出结果是没有符号的,因此,这里必须要输出一个负号(-),以保证打印出正确结果*/ number=-number; /*把负数转换成正数。如输入-5623,则把-5326转换成-(-5326),即为正5326,这样才便于convert函数的把数字转换成字符,否则convert函数是无法识别这个整数,因为整数只有0~9这10个数字组成,而没正(+)负(-)符号,符号只是一个数的声明部分,无法参加运算*/ } convert(number); } void convert(int n) { int i; static num=0; /*num用于计算递归次数,定义num为static静态变量是为了使下次递归(重复)执行该语句时其值不会被初始化而是保持前一次运算的结果*/ num++; /*printf("/nNow: %d, Times: %d/n",n,num);*/ if((i=n/10)!=0) convert(i); putchar(n%10+' '); }
第三题用插入排序法将字符排序
第四题画出二叉树,并找最小权值
遍历二叉树的方法:前序遍历,中序遍历,后序遍历
第五题n个人排成一圈儿报数,报第n个数的人被排出,求最后剩下的人