信息学初赛模拟试题(四)一、选择题:(选出每题正确的答案代码,填在括号里,1—10题为单选题,每小题只有一个正确答案,11—20题为不定项选择题,每小题有一个或一个以上的正确答案,共20题,每题,共30分)1、二进制数01100100转换成十六进制数是()。
A.32 B.64 C.128 D.100 E.2562、操作系统是一类重要的系统软件,下面几个软件中,不属于系统软件的是()。
A.Java B.MS-DOS C.Linux D.Windows7 E.Unix3、计算机病毒的传染是以计算机运行和()为基础的,没有这两个条件,病毒是不会传染的。
A.编辑文稿 B.读写磁盘 C.编程序 D.扫描图画 E.打印4、因特网不属于任何个人,也不属于任何组织。
其中在网络知识这一块中有一个英文简写ISP,它的中文意思是()。
A.因特网连接 B.因特网使用 C.因特网设计 D.因特网服务提供者 E.信息传输5、Internet给我们提供了资源共享、浏览、检索信息和远程登录等多种服务,下面几个选项中用于远程登录的是()。
A.WWW B.TCP/IP C.Telnet D.E-mail E.FTP6、IE是目前流行的浏览器软件,它的工作基础是解释执行用()语言书写的文件。
A.VC B.HTML C.BASIC D.HTTP E.VB7、给出3种排序:插入排序、冒泡排序、选择排序。
这3种排序的时间代价分别是()。
A.O(n)、O(n2)、O(logn) B.O(logn) 、O(n)、O(n2) C.O(n2)、O(n)、O(logn) D.O(n2)、O(n)、O(n) E.O(n2)、O(n2)、O(n2)8、一棵完全二叉树的结点总数为18,其叶结点数为()。
A.7个 B.8个 C.9个 D.10个 E.11个9、在流程图的符号中,菱形框一般作为()。
A.起始框 B.判断框 C.输入输出框 D.处理工作框 E.结速框10、在解决计算机主机与打印机之间速度不匹配时通常设置一个打印数据缓冲区,主要将要输出打印的数据依次写入该缓冲区,而打印机从该缓冲区中取出数据打印。
该缓冲区应该是一个()结构。
A.堆栈 B.数组 C.线性表 D.队列 E.链表11、多媒体技术中的“多媒体”的含义主要是指如()等多种表达信息的形式。
A.磁盘 B.音箱 C.显示器 D.声音 E.图像12、下面有关计算机知识说明,正确的是()。
A.在WINDOWS98操作系统下,删除磁盘中的文件时都先存放在回收站中B.FOXMAIL是用于收发电子邮件的工具C.文件夹组织是一个有层次的树状结构,其中最顶层的是桌面D.存储器具有记忆能力,其中的信息任何时候都不会丢失E.为了提高软件的测试效率,应该选择发现错误的可能性大的测试数据13、对按关键字排序好的线性表进行二分查找,该线性表适合的存储结构为()。
A.链接存储 B.索引存储 C.散列存储 D.顺序存储 E.循环存取14、一个栈的输入顺序为1、2、3、4、5,下列序列中可能是栈的输出序列的是()。
A.54312 B.24135 C.21543 D.12534 E.1234515、评价一个算法的好坏有多种指标,下列是算法评价指标的是()。
A.正确性 B.运行时间 C.占用空间 D.迭代次数 E.简单性16、下面描述用多维数组表示的数据结构的语句中,正确的是()。
A.多维数组存放的都是同一种类型的数据B.多维数组各维的下标范围必须一样C.多维数组在内存中的地址是连续的D.多维数组中的下标不能是表达式E.多维数组是随机存取的数据结构17、若已知一个栈的入栈顺序1,2,3,…,n,其输出序列为P1,P2,P3,…,P n(它是输入序列的一个排列),则在输出序列中可能出现的情况是()。
A.P j<P k<P i,其中i<j<kB.P k< P j<P i,其中i<j<kC.P j<P i<P k,其中i<j<kD.P i<P k< P j,其中i<j<kE.以上都不可能出现18、线性表具有如下的结构特点:()A.均匀性 B.单一性 C.简单性 D.无序性 E.有序性19、下列关于数据结构的叙述中正确的是()。
A.数据结构是带有结构的数据元素的集合B.线性表的线性存储结构优于链式存储结构C.队列是限定仅在一端进行插入,在另一端进行删除的线性表D.二维数组是其数据元素为线性表的线性表E.图是一种非线性数据结构20、任意一棵树均可惟一地转换成与它对应的二叉树。
由树转换成的二叉树中,顶点N的左右子女分别是N在原树里对应顶点的()。
A.最左子顶点/最邻近的右兄弟B.最右子顶点/最右的兄弟C.最邻近的右兄弟/最左的兄弟D.最邻近的左兄弟/最邻近的右兄弟F.最邻近的右兄弟/最右的兄弟二、问题解答:(共2题,每题5分,共10分)1.光明中学开设数学、英语和信息学三个兴趣学习小组,其中数学小组30人,英语小组15人,信息学小组18人,参加三个小组总人数为50人,其中有3人同时参加3个小组,那么同时只参加两个小组的同学有多少人?2.给出一组顶点(顶点值用A,B,C,D,E,F表示),其对应权值分别为2,3,1,7,8,4。
请以A,B,C,D,E,F为叶子顶点构造一棵哈夫曼树,并求出它的最小带权路径长度WPL的值。
三、写出程序的运行结果(共4题,每题8分,共32分)1.#include<iostream>using namespace std;int n;int count(int n){if(n==1) return 0;else if(n%2==0)return count(n/2)+1;elsereturn count(n*3+1)+1; }int main(){cin>>n;cout<<count(n);return 0;}输入:99输出:2.#include<iostream>using namespace std;int main(){int i,j,k,s;s=0;for(i=3;i>=1;i--){for(j=1;j<=3;j++){k=0;do{k=k+1;s=s+k;}while(k!=j);}s=s-(k+1);}cout<<"s="<<s<<endl;return 0;}输出:3.#include<iostream>using namespace std;int main(){int a,b,n;a=0;b=0;cin>>n;do{a=a+1;b=b+a;}while(b<n);cout<<a<<endl;return 0;}输入:415377输出:4.#include<iostream>using namespace std;int main(){int m,n,i,p,k;int r[200];bool b;m=6;n=2;for(i=1;i<=m-1;i++)r[i]=i+1;r[m]=1;i=0;p=1;b=true;while(b){i=i+1;k=p;p=r[p];if(k==p){cout<<p<<endl;b=false;}else if(i==n+1){cout<<p<<" ";i=0;p=r[p];r[k]=p;}}return 0;}输出:四、完善程序(共2题,每题14分,共28分)1.设有n种物品,每种物品有一个重量及一个价值。
但每种物品的数量是无限的,同时有一个背包,最大载重量为XK,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于XK,而价值的和为最大。
【程序清单】#include<iostream>#include<Cstring>using namespace std;int maxxk=400,maxm=20;char w[400],u[400];int f[20][20],n,xk;void init(){int i;memset(w,0,sizeof(w));memset(u,0,sizeof(u));cin>>n>>xk;for(i=1;i<=n;i++)[1]}void make(){int i,j;for(i=1;i<=n;i++){for(j=1;j<=w[i-1];j++)f[i][j]=f[i-1][j];for(j=w[i];i<=xk;j++)if(f[i-1][j]>f[i][j-w[i]]+u[i])[2]else[3]}}void print(){char get[400];int i,j;memset(get,0,sizeof(get));i= [4] ;j= [5] ;while(i>0)if(f[i][j]==f[i-1][j])i--;else{j=j-w[i];[6]}cout<<"n="<<n<<","<<"xk="<<xk<<endl;cout<<"max worth="<< <<endl;cout<<"no. ,weight: worth: get"<<endl;for(i=1;i<=n;i++)cout<<i<<" "<<w[i]<<" "<<u[i]<<" "<<get[i]<<endl; }int main(){init();make();print();return 0;}2.给定一个01串,请你找出长度介于a,b之间,重复出现次数最多的01串。
输入:a,b(0<a<=b<=12)由0,1组合的数列,由‘.’结尾。
输出:要求的串。
提示:本程序中将01序列转换为2进制数存取。
【程序清单】#include<iostream>#include<Cstring>using namespace std;int main(){int i,j,s,k,a,b,max;int m[10000],two[20],v[20];char c;for(i=1;i<=13;i++)[1]cin>>a>>b;cin>>c;s=1;k=1;while(c!='.'){s=s<<1+(c-48);if( [2] )s=(s-two[b+1])%two[b]+two[b];m[s]=m[s]+1;if(k<b)for(i=a;i<=k-1;i++)[3]k++;cin>>c;}for(i=two[b];i<=two[b+1];i++)if(m[i]>0)for(j=a;j<=b-1;j++)m[i%two[j]+two[j]]= [4] ;max=0;for(i=two[a];i<=two[b+1];i++)if(m[i]>max) [5]for(i=two[a];i<=two[b+1];i++)if(m[i]==max){j=0;k=i;do{j++;v[j]=k%2;[6]}while( [7] );while(j>0){cout<<v[j]<<" ";j--;}cout<<endl;}return 0;}。