【2002年的程序】2002年程序下午试卷2
【shitiku.jxxyjl.com--计算机技术】
2002年程序试卷(下)试题一
阅读下列算法说明和算法,将应填入 (n) 处的字句写在答题纸的对应栏内。
[算法说明]
为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为x轴,垂直向下方向设为y轴。
设某种显示器的像素有128X128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127,0≤y≤127。
现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下:
MAP(0),MAP(1),……,MAP(7)
MAP(8),MAP(9),……,MAP(15)
……
MAP(1016),MAP(1017),……,MAP(1023)
下述算法可根据用户要求,将指定坐标(x,y)上的像素置为“亮”或“暗”。
在该算法中,变量X,Y,V,S,K都是16位无符号的二进制整数。数组BIT中的每个
元素BIT(K)(K=0,…,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整
数,即BIT(K)的值为2l5-k。
[算法]
第1步根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素MAP(V)。这
一步的具体实现过程如下:
1、将x送变量X,将y送变量Y;
2、将Y左移 (1) 位,仍存入变量Y;
3、将X右移 (2) 位,并存入变量S;
4、计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)。
第2步算出指定像素在MAP(V)中所对应的位置K(K=0,…,15)。这一步的具体实现过程如下:
将变量X与二进制数 (3) 进行逻辑乘运算,并存入变量K。
第3步根据用户要求将数组元素MAP(V)左起第K位设置为”1”或”0”。这一步的具体实现过程
如下: ,
1、为在指定像素置“亮”,应将MAP(V)与BIT(K)进行逻辑 (4) 运算,并存入MAP(V)。
2、为在指定像素置“暗”, 应先将BIT(K)各位取反,再将MAP(V)与BIT(K)进行逻辑 (5) 运算,并存入MAP(V)。
试题二
阅读下列函数说明和C代码,将应填入—匹l处的字句写在答题纸的对应栏内。
[函数2.1说明]
函数strcat(char *si,char *s2)是将字符串s2连接在字符串si之后,构成一个首指
针为s1的字符串。
[函数2.1]
void strcat(char *sl,char *s2)
{ while(*s1!="\0") ;
(1) :
for( ; (2) ;s1++,s2++);
}
[函数2.2说明] .
本函数输入n(<1000)个整数到指定数组,求该数组中最大元素的值和此元素的下标,最大元素值以函数值返回,此元素的下标通过指针形参带回调用处。
[函数2.2]
#include<stdio.h>
#define MAXLINE 1000
int maxindex(int a[],int *index)
{ int i,n;
do {
printf("Please input n\n");
scanf("%d",&n);
}while( (3) );/*保证输入的n在限定范围内*/
for(i=0 ; i<n ; i++)
scanf("%d",&a[i]);
*index=0;
for(i=1 ; i<n ; i++)
if( (4) ) *index=i;
return (5) ;
}
试题三
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
[函数3.1说明]
函数insert_sort(int a[],int count)是用直接插入排序法对指定数组的前count个元素从小到大排序。
直接插入排序法的基本思想是:将整个数组(count个元素)看成是由有序的(a[0],…,a[i-1])和无序的(a[i],…,a[Count-1))两个部分组成;初始时i等于1,每趟排序时将无序部分中的第一个元素a[i]插入到有序部分中的恰当位置,共需进行count-1趟,最终使整个数组有序。
[函数3.1]
void insert_sort(int a[] , int count)
{ int i, j, t;
for(i=1 ; i<count ; i++)
{ /*控制a[i],……, a[count-1]的比较和插入*/
t=a[i];
j= (1) ;
while (j>=0 && t<a[j])
{ /*在有序部分中寻找元素a[i]的插入位置*/
(2) ;
j--;
}
(3) ;
}
}
[函数3.2说明]
递归函数invert(int a[],int k)将指定数组中的前k个元素逆置。
[函数3.2]
void invert(int a[] , int k);
{ int t;
if ( (4) ) {
invert( (5) );
t=a[0];
a[0]=a[k-1];
a[k-1]=t;
}
}
试题四
阅读下列程序说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[程序4说明]
本程序用古典的Eratosthenes的筛法求从2起到指定范围内的素数。如果要找出2至10中的素数,开始时筛中有2到10的数,然后取走筛中的最小的数2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9:重复上述步骤,再取走最小数3,宣布它为素数,并取走3的倍数,于是留下5、7。反复重复上述步骤,直至筛中为空时,工作结束,求得2至10中的全部素数。
程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走。
[程序4]
#include <stdio.h>
#define MAX 22500
main()
{ unsigned int i , range , factor , k ;
int sieve[MAX] ;
printf(“please input the range : ”);
scanf(“%d”,&range); /*range指出在多大的范围内寻找素数 */
for (i=2 ; i<=range ; i++) /* 筛子初始化 */
(1) ;
factor=2 ;
while (factor<=range) {
if ( (2) ) { /*筛子最小数是素数 */
printf(“%d\t”,factor);
k=factor;
while (k<=range)
{ /*移走素数的倍数 */
(3) ; /*筛中的个数减一 */
k= (4) ;
}
}
(5) ;
}
试题五
阅读下列函数说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
设二叉树的结点数据类型为:
typedef struct node{
char data;
struct node *left;
struct node *right:
}BTREE;
[函数5.1说明]
函数void SortTreelnsert(BTREE **tree,BTREE*s)采用递归方法,将结点s插入以*tree为根结点指针的二叉排序树(二叉查找树)中。
[函数5.1)
void SortTreelnsert(BTREE **tree,BTREE *S)
{ if(*tree = = NULL) *tree=S;
else if(S->data<(*tree)->data)
SortTreelnsert( (1) ,S);
else if(S->data>(*tree)->data)
SortTreelnsert( (2) ,S);
}
[函数5.2说明]
函数void TraversalTree(BTREE *tree)用非递归方法,对以tree为根结点指针的二叉树进行后序遍历。
[函数5,2]
void TraversalTree(BTREE *tree)
{ BTREE *stack[1000],*p;
int tag[1000],top=0;
p=tree;
do {
while(p!=NULL){
stack[++top]=p;
(3) ;
tag[hop]=0; /*标志栈顶结点的左子树已进行过后序遍历*/ :
}
while(top>0 && (4) ){ /* 栈顶结点的右子树是否被后序遍历过*/
p=stack[top--];
putchar(p->data);
}
if (top>0) { /*对栈顶结点的右子树进行后序遍历*/
(5) ;
tag[top]=1;
}
}while(top>0);
}
-
【2020年下半年网络工程师答案】2005年下半年网络工程师填空题总结详细阅读
第二章 1、 数据可定义为有意义的实体,它涉及到事物的存在形式,数据可分为______和_______两大类。 2、 信号是数据的电子或电磁编码。对应于模拟数据和数字数据,信号也可分为______和______两大类。 3、 通信过程中产生和发送信息的设备或计算机...
-
【微波网络基础试题】网络基础试题100例(附答案)详细阅读
1 “令牌环环存在冲突检测问题”的说法(B)A 正确 B 错误 2 网络中PC机与集线器相联所使用的网线接头类型为?AA RJ-45 B RJ-11 3 100BaseT中的“Base”的意义是?BA 基础传输 B 基带传输 4 下面哪种网络类型适合对网络进行集中管理?BA Peer-to-Peer...
-
[软考网络工程师真题]软考网络工程师模拟试题及答案(三)详细阅读
试题1从选择的答案中,选出应填入下面的叙述中_?_内的最确切的解答,把相应的编号写在答卷的对应栏内。在网络中使用的5类UTP作为传输介质,单段UTP的最长长度为_(1)_米,采用EIA568A布线标准时,可以达到的最高数据率是_(2)_Mbps STP与UTP的主要区别是_(3)_。一般而言,单模光...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(六)详细阅读
·多路复用技术能够提高传输系统利用率。常用的多路复用技术有_(1)_。将一条物理信道分成若干时间片,轮换的给多个信号使用,实现一条物理信道传输多个数字信号,这是_(2)_。将物理信道的总频带宽分割成若干个子信道,每个信道传输一路信号,这是_(3)_。在光纤中采用的多路复用技术是_(4)_,多路复用技...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(二)详细阅读
数据通信中采取的纠错方式通常有两种,即丢弃重发和(1),丢弃重发方式中,当线路出错率较高时,其效率较高的控制协议时(2)。海明码的是属于(3)纠错方式中常用到的措施,这种方式一般适合于(4) 情况。在Go Back N ARQ协议中,若窗口大小用K位二进制表示,且分别WT和WR表示发送窗口大小和...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(五)详细阅读
第2章 计算机硬件基础知识复习题1单项选择题(1)中央处理器包括( )。A 运算器和控制器 B 累加器和控制器C 运算器和寄存器组 D 运算和控制系统答案:A。分析:中央处理器简称CPU,由运算器和控制器组成。(2)运算器的作用是( )。A 计算...
-
[软考网络工程师模拟卷]2005软考网络工程师模拟试题及答案(一)详细阅读
网络工程师模拟试题上(1) 若卫星信道的数据传输率为1Mbps,帧长为1000bit,利用卫星信道的两个站点从一方到另一方的传播时延为250ms。忽略确认帧长和处理时间则若帧的出错概率为0 1, 而假设应答帧不出现错误,当采用停等协议时,其协议效率是(1)。若采用连续ARQ协议,发送窗口Wt=7,接...
-
专升本模拟试题app_专升本微机原理模拟试题详细阅读
一、填空题(每空0 5分,共15分) 1 8086 CPU通过______________寄存器和______________寄存器能准确找到指令代码。 2 8086中地址 数据线分时复用,为保证总线周期内地址稳定,应配置___________,为提高总线驱动能力,应配置_____________。...
-
【软考网络工程师中级】软考网络工程师复习资料及练习题(四)详细阅读
试题一 阅读以下说明,回答问题1、问题2、问题3。[说明]随着网络应用的日益广泛,接入网络和边缘网络的需求也更加复杂多样,企业为了开展电子商务,必须实现与Internet的互联,路由器是实现这一互联网的关键设备,路由器可以位企业提供越来越多的智能化服务,包括安全性、可用性和服务质量(QoS)等。...
-
网络管理员面试试题及答案_2005年5月网络管理员试题及答案详细阅读
1.在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规2B铅笔在你写入的准考证号下填涂准考证号。2.本试卷的试题中共有75个空格,需要全部解答,每个空格1分,满分75分。3.每个空格对应一个序号,有A、B、C、D四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。4.解答前...