2012吉林省C语言版加强
- 格式:docx
- 大小:21.97 KB
- 文档页数:5
2024年吉林省成考(专升本)计算机应用基础预测试题一、单选题1、已知字符“A”的ASCII码为41H,则字符“d”的ASCII码为________。
(A)44D(B)44H(C)64D(D)64H2、下列关于PowerPoint占位符的说法正确的是()A.表示文本长度B.表示图片大小C.可以添加文本D.位置不可改变3、下列关于数据库系统特点的描述,错误的是()。
(A)数据结构化(B)共享性高(C)独立性高(D)冗余度高4、位于WINDOWS窗口右上角的控制按钮是()A.“关闭”按钮B.“查找”按钮C.“替换"按钮D.“选择”按钮5、在PowerPoint中,属于人工控制放映方式是()A.单击放映B.双击放映C.观众放映D.演讲者放映6、下列不同进制的无符号整数中,数值最大的是________。
(A)10011101B(B)B3H(C)231Q(D)227D7、在Word中,“拆分”可以实现的功能是()A.将文档分栏B.设置文档分隔符C.打开"标记”D.将窗口分成两个部分8、下列选项中,与硬盘存储容量无关的是()。
(A)磁头数(B)柱面数(C)盘径尺寸(D)扇区数9、下列关于硬件的叙述,错误的是()。
(A)通常多核CPU比单核CPU的计算性能好(B)系统的日期和时间存放在CMOS中(C)总线是计算机硬件系统中各部件之间传输信息的公共通道(D)芯片组中北桥芯片是I/O控制中心,南桥芯片是存储器控制中心10、逻辑运算(10110010⊦01100111)⊥11001011的结果是________。
(A)00000010(B)11100100(C)1101011(D)1100001111、CPU能一次处理数据的位数称为()。
(A)比特(B)字长(C)字(D)字节12、当用户在使用某软件时,有一些错误输入,此时软件并没有出错误,而是给出提示信息并允许重新输入,说明该软件具有()。
(A)易维护性(B)可扩展性(C)可读性(D)健壮性13、下列关于多任务处理的叙述中,错误的是________。
附录1 窗口相关函数窗口设置函数:函数名: window功能: 定义活动文本模式窗口用法: void window(int left,int top,int right,int bottom);颜色相关函数:函数名: textbackground功能: 选择新的文本背景颜色用法: void textbackground(int color);函数名: textcolor功能: 在文本模式中选择新的字符颜色用法: void textcolor(int color);函数名: textattr功能: 设置文本属性用法: void textattr(int attribute);函数名: cprintf功能: 送格式化输出至屏幕用法: int cprintf(const char *format[, argument, ...]);函数名: cputs功能: 写字符到屏幕用法: void cputs(const char *string);函数名: putch功能: 输出字符到控制台用法: int putch(int ch);函数名: getche功能: 从控制台取字符(带回显)用法: int getche(void);屏幕操作的函数:函数名: clrscr功能: 清除文本模式窗口用法: void clrscr(void);函数名: clreol功能: 在文本窗口中清除字符到行末用法: void clreol(void);函数名: gotoxy功能: 在文本窗口中设置光标用法: void gotoxy(int x, int y);函数名: gettext功能: 将文本方式屏幕上的文本拷贝到存储区用法: int gettext( int left, int top, int right,int bottom, void *destin );函数名: puttext功能: 将文本从存储区拷贝到屏幕用法: int puttext( int left, int top, int right, int bottom, void *source );函数名: movetext功能: 将屏幕文本从一个矩形区域拷贝到另一个矩形区域用法: int movetext( int left, int top, int right, int bottom, int newleft, int newtop );其他函数:函数名: highvideo功能: 选择高亮度文本字符用法: void highvideo(void);函数名: lowvideo功能: 选择低亮度字符用法: void lowvideo(void);函数名: normvideo功能: 选择正常亮度字符用法: void normvideo(void函数名: wherex功能: 返回窗口内水平光标位置用法: int wherex(void);函数名: wherey功能: 返回窗口内垂直光标位置用法: int wherey(void);总黄酮生物总黄酮是指黄酮类化合物,是一大类天然产物,广泛存在于植物界,是许多中草药的有效成分。
2012年普通高等学校招生全国统一考试理科数学(必修+选修II )一、 选择题(1)、复数131i i-++= A. 2 B. 2 C. 12 D. 12i i i i +-+- 【考点】复数的计算【难度】容易【答案】C 【解析】13(13)(1)24121(1)(1)2i i i i i i i i -+-+-+===+++-. 【点评】本题考查复数的计算。
在高二数学(理)强化提高班下学期,第四章《复数》中有详细讲解,其中第02节中有完全相同类型题目的计算。
在高考精品班数学(理)强化提高班中有对复数相关知识的总结讲解。
(2)、已知集合A ={1.3. m },B ={1,m } ,A B =A , 则m =A. 0或3B. 0或3C. 1或3D. 1或3【考点】集合【难度】容易【答案】B【解析】(1,3,),(1,)30,1()3A B A B A A m B m m A m m m m m m ⋃=∴⊆==∴∈∴==∴===或舍去.【点评】本题考查集合之间的运算关系,及集合元素的性质。
在高一数学强化提高班下学期课程讲座1,第一章《集合》中有详细讲解,其中第02讲中有完全相同类型题目的计算。
在高考精品班数学(理)强化提高班中有对集合相关知识及综合题目的总结讲解。
(3) 椭圆的中心在原点,焦距为4, 一条准线为x =﹣4 ,则该椭圆的方程为 A. 216x +212y =1 B. 212x +28y =1 C. 28x +24y =1 D. 212x +24y =1 【考点】椭圆的基本方程【难度】容易【答案】C【解析】椭圆的一条准线为x =﹣4,∴2a =4c 且焦点在x 轴上,∵2c =4∴c =2,a =22∴椭圆的方程为22=184x y + 【点评】本题考查椭圆的基本方程,根据准线方程及焦距推出椭圆的方程。
在高二数学(理)强化提高班,第六章《圆锥曲线与方程》中有详细讲解,其中在第02讲有相似题目的详细讲解。
第十八届全国青少年信息学奥林匹克联赛初赛(普及组C++语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意:●试题纸共有10页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。
A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。
A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。
A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。
A.四B.八C.十D.十二5.()不属于操作系统。
A.Windows B.DOS C.Photoshop D.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。
A.ABC B.CBA C.ACB D.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A.显示器B.CPU C.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,14,3,2,1需要执行()次操作,才能完成冒泡排序。
A.0 B.5 C.10 D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。
如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。
A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈1D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(Vector Image)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。
5201编写程序,借助中间变量,交换A,B两个整型变量的值。
例如:a=5,b=8,输出时a=8,b=5 #include<stdio.h>void main (){int a,b,c;scanf("%d%d",&a,&b);c=a;a=b;b=c;printf("%d %d ",a,b);}5202编写程序,输入一个字符,然后顺序输出该字符的前驱字符、该字符本身和它的后继字符。
例如:输入字符m,则输出k m n。
#include<stdio.h>void main (){char ch;ch=getchar();putchar(ch-1);putchar(ch);putchar(ch+1);}5203编写程序,读入角度值,输出弧度值。
例如:输入角度值为450,输出的值为0。
785#include<stdio.h>void main (){float a,b;scanf("%f",&a);b=a/180.0*3.14;printf("%f ",b);}5204编写程序,不用中间变量,交换A,B两个整型变量的值。
例如:a=5,b=8,输出时a=8,b=5 #include<stdio.h>void main (){int a,b;scanf("%d%d",&a,&b);a=a+b;b=a-b;a=a-b;printf("%d %d ",a,b);}5205编写程序,输入两个整数,分别求他们的和、差、积、商、余数并输出。
例如:a=10,b=5,输出时:15,5,50,2,0 #include<stdio.h> void main (){ int a,b,c,d,n,m,y;scanf("%d%d",&a,&b); c=a+b; d=a-b; n=a*b;m=(float)a/b; y=a%b;printf("%d %d %d %d %d ",c,d,n,m,y); } 5206编写程序,输入3个浮点数,求他们平均值并输出。
1、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。
现要求采用循环链表结构设计一个算法,模拟此过程。
2、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。
当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。
设当n=m-1时结论成立,现证明当n=m时结论成立。
设中序序列为S1,S2,…,Sm,后序序列是P1,P2,…,Pm。
因后序序列最后一个元素Pm是根,则在中序序列中可找到与Pm相等的结点(设二叉树中各结点互不相同)Si(1≤i≤m),因中序序列是由中序遍历而得,所以Si是根结点,S1,S2,…,Si-1是左子树的中序序列,而Si+1,Si+2,…,Sm是右子树的中序序列。
若i=1,则S1是根,这时二叉树的左子树为空,右子树的结点数是m-1,则{S2,S3,…,Sm}和{P1,P2,…,Pm-1}可以唯一确定右子树,从而也确定了二叉树。
若i=m,则Sm是根,这时二叉树的右子树为空,左子树的结点数是m-1,则{S1,S2,…,Sm-1}和{P1,P2,…,Pm-1}唯一确定左子树,从而也确定了二叉树。
最后,当1<i<m时,Si把中序序列分成{S1,S2,…,Si-1}和{Si+1,Si+2,…,Sm}。
由于后序遍历是“左子树—右子树—根结点”,所以{P1,P2,…,Pi-1}和{Pi,Pi+1,…Pm-1}是二叉树的左子树和右子树的后序遍历序列。
因而由{S1,S2,…,Si-1}和{P1,P2,…,Pi-1}可唯一确定二叉树的左子树,由{Si+1,Si+2,…,Sm}和{Pi,Pi+1,…,Pm-1}可唯一确定二叉树的右子树。
3、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。
采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。
本题要找p和q 的最近共同祖先结点r ,不失一般性,设p在q的左边。
后序遍历必然先遍历到结点p,栈中元素均为p的祖先。
将栈拷入另一辅助栈中。
再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p 和q的最近公共祖先。
typedef struct{BiTree t;int tag;//tag=0 表示结点的左子女已被访问,tag=1表示结点的右子女已被访问}stack;stack s[],s1[];//栈,容量够大BiTree Ancestor(BiTree ROOT,p,q,r)//求二叉树上结点p和q的最近的共同祖先结点r。
{top=0; bt=ROOT;while(bt!=null ||top>0){while(bt!=null && bt!=p && bt!=q) //结点入栈{s[++top].t=bt; s[top].tag=0; bt=bt->lchild;} //沿左分枝向下if(bt==p) //不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点{for(i=1;i<=top;i++) s1[i]=s[i]; top1=top; }//将栈s的元素转入辅助栈s1 保存if(bt==q) //找到q 结点。
for(i=top;i>0;i--)//;将栈中元素的树结点到s1去匹配{pp=s[i].t;for (j=top1;j>0;j--)if(s1[j].t==pp) {printf(“p 和q的最近共同的祖先已找到”);return (pp);}}while(top!=0 && s[top].tag==1) top--; //退栈if (top!=0){s[top].tag=1;bt=s[top].t->rchild;} //沿右分枝向下遍历}//结束while(bt!=null ||top>0)return(null);//q、p无公共祖先}//结束Ancestor4、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。
现要求采用循环链表结构设计一个算法,模拟此过程。
#include<stdlib.h>typedef int datatype;typedef struct node{datatype data;struct node *next;}listnode;typedef listnode *linklist;void jose(linklist head,int s,int m){linklist k1,pre,p;int count=1;pre=NULL;k1=head; /*k1为报数的起点*/while (count!=s) /*找初始报数起点*/{pre=k1;k1=k1->next;count++;}while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/{ p=k1; /*从k1开始报数*/count=1;while (count!=m) /*连续数m个结点*/{ pre=p;p=p->next;count++;}pre->next=p->next; /*输出该结点,并删除该结点*/printf("%4d",p->data);free(p);k1=pre->next; /*新的报数起点*/}printf("%4d",k1->data); /*输出最后一个结点*/free(k1);}main(){linklist head,p,r;int n,s,m,i;printf("n=");scanf("%d",&n);printf("s=");scanf("%d",&s);printf("m=",&m);scanf("%d",&m);if (n<1) printf("n<0");else{/*建表*/head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/head->data=n;r=head;for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/{ p=(linklist)malloc(sizeof(listnode));p->data=i;p->next=head;head=p;}r->next=head; /*生成循环链表*/jose(head,s,m); /*调用函数*/}}5、假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一个简单有向回路,若存在,则以顶点序列的方式输出该回路(找到一条即可)。
(注:图中不存在顶点到自己的弧)有向图判断回路要比无向图复杂。
利用深度优先遍历,将顶点分成三类:未访问;已访问但其邻接点未访问完;已访问且其邻接点已访问完。
下面用0,1,2表示这三种状态。
前面已提到,若dfs(v)结束前出现顶点u到v的回边,则图中必有包含顶点v和u的回路。
对应程序中v的状态为1,而u是正访问的顶点,若我们找出u的下一邻接点的状态为1,就可以输出回路了。
void Print(int v,int start ) //输出从顶点start开始的回路。
{for(i=1;i<=n;i++)if(g[v][i]!=0 && visited[i]==1 ) //若存在边(v,i),且顶点i的状态为1。
{printf(“%d”,v);if(i==start) printf(“\n”); else Print(i,start);break;}//if}//Printvoid dfs(int v){visited[v]=1;for(j=1;j<=n;j++ )if (g[v][j]!=0) //存在边(v,j)if (visited[j]!=1) {if (!visited[j]) dfs(j); }//ifelse {cycle=1; Print(j,j);}visited[v]=2;}//dfsvoid find_cycle() //判断是否有回路,有则输出邻接矩阵。
visited数组为全局变量。
{for (i=1;i<=n;i++) visited[i]=0;for (i=1;i<=n;i++ ) if (!visited[i]) dfs(i);}//find_cycle6、给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的路程最短?试设计一个解答上述问题的算法,并应用该算法解答如图所示的实例。
20分void Hospital(AdjMatrix w,int n)//在以邻接带权矩阵表示的n个村庄中,求医院建在何处,使离医院最远的村庄到医院的路径最短。
{for (k=1;k<=n;k++) //求任意两顶点间的最短路径for (i=1;i<=n;i++)for (j=1;j<=n;j++)if (w[i][k]+w[k][j]<w[i][j]) w[i][j]=w[i][k]+w[k][j];m=MAXINT; //设定m为机器内最大整数。
for (i=1;i<=n;i++) //求最长路径中最短的一条。
{s=0;for (j=1;j<=n;j++) //求从某村庄i(1<=i<=n)到其它村庄的最长路径。
if (w[i][j]>s) s=w[i][j];if (s<=m) {m=s; k=i;}//在最长路径中,取最短的一条。
m记最长路径,k记出发顶点的下标。
Printf(“医院应建在%d村庄,到医院距离为%d\n”,i,m);}//for}//算法结束对以上实例模拟的过程略。
各行中最大数依次是9,9,6,7,9,9。