首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
计算机中图形格式一般有二类,即 (101) 和 (102) 。具体的存储方式有许多种,通常用图形文件的后缀名来区分,如以 (103) 为后缀名的,则是以ASCII方式存储的图形;而 (104) 则不是...
查看本题答案
包含此试题的试卷
初级程序员《简单单选》真题及答案
点击查看
你可能感兴趣的试题
计算机中图像/图形主要分为矢量类和像素类使用Photoshop绘制的是矢量图
计算机可以在开发工具层次或应用系统层次时进行系统集成一般有两类集成即和物理集成
在电子邮件中邮局一般放在______
发送方的个人计算机中
ISP 主机中
接受方的个人计算机中
本地电信局
微型计算机中的存储器一般是指________和________
在计算机中文件名一般由和组成
在计算机中表示图形的方法有两种__和__
计算机中图形格式一般有二类即101和102具体的存储方式有许多种通常用图形文件的后缀名来区分如以10
图像扫描输入频率
屏幕图像刷新频率
动态图像
静止图片
计算机中图形格式一般有二类即101和102具体的存储方式有许多种通常用图形文件的后缀名来区分如以10
函数
位图
灰度
高分辨率
下列关于多媒体信息的叙述中不正确的是______
在计算机中用T和F表示多媒体信息的值
声音信号是模拟信号,计算机处理时需要转换成数字声音信号
在计算机中,图形、图像和视频也必须用数字化形式来表述
WAV是声音文件的格式,JPEG是图形图像文件格式
在电子邮件中邮局一般放在
发送方的个人计算机中
服务器上
接收方的个人计算机中
ISP主机中
在计算机中一般汉字的字号越大字越小
计算机中图形格式一般有二类即101和102具体的存储方式有许多种通常用图形文件的后缀名来区分如以10
场
彩色
矢量
低分辨率
外销出仓单无统一格式各企业内部自行编制格式并存于计算机中但主要包括的项目内容相似一般包括
商品名称
数量
件数
价格
计算机场地通讯附设的保护范围一般按计算
一类
二类
三类
不做要求
计算机中图形格式一般有二类即101和102具体的存储方式有许多种通常用图形文件的后缀名来区分如以10
DIF
MPC
JPC
BMP
计算机中的主机和高速硬盘进行数据交换一般采用程序中断控制
图像是由一些排列的组成的在计算机中的存储格式有BMPPCXTIFGIFD等一般数据量比较大
图片
像素
笔画
色块
计算机病毒和生物病毒功能类似关于计算机病毒叙述正确的是
计算机病毒只能通过安装软件方式进入计算机中
良性病毒会损坏系统文件
恶性病毒一般有两种破坏方式
计算机病毒其实是一种计算机程序
在未感染上病毒的计算机中对软盘进行完全格式化也不一定能消除软盘上的 计算机病毒
在计算机中数字文字符号图形声音等信息都是用二进制数来表示的
热门试题
更多
两个递增序列A和B的长度分别为m和nm<n将两者归并为一个长度为m+n的递增序列时______归并过程中元素的比较次数最少
[说明] 下面流程图的功能是在已知字符串A中查找特定字符串B如果存在则输出B串首字符在A串中的位置否则输出-1设串A由n个字符A0A1…An-1组成串B由m个字符B0B1…Bm-1组成其中n≥m>0在串A中查找串B的基本算法如下从串A的首字符A0开始取子串A0A1…im-1与串B比较若不同则再取子串A1A2…Am与串B比较以此类推 例如字符串“CABBRFFD”中存在字符子串“BRF”输出3不存在字符子串“RFD”输出-1 在流程图中i用于访问串A中的字符i=01…n-1j用于访问串B中的字符j=01…m-1在比较AiAi+1…Ai+m-1与B0B1…Bm-1时需要对Ai与B0Ai+1与B1…Ai+j与Bj…逐对字符进行比较若发现不同则需要取下一个子串进行比较以此类推 [流程图] 本题流程图如图8-30所示 3处填
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
[说明] 函数sortNODE*head的功能是用冒泡排序法对单链表中的元素进行非递减排序对于两个相邻节点中的元素若较小的元素在后面则交换这两个节点中的元素值其中head指向链表的头节点排序时为了避免每趟都扫描到链表的尾节点设置一个指针endptr使其指向下趟扫描需要到达的最后一个节点例如对于图8-25a所示的链表进行一趟冒泡排序后得到图8-25b所示的链表 链表的节点类型定义如下 typedefStruetNode intdata structNode*next NODE; [C语言函数] voidsortNODE*head NODE*ptr*preptr*endptr; inttempdata; ptr=head->next; while1/*查找表尾节点*/ ptr=ptr->next; endptr=ptr;/*令endptr指向表尾节点*/ ptr=2; whileptr!=endptr while3 ifptr->data>ptr->next->data tempdata=ptr->data;/*交换相邻节点的数据*/ ptr->data=ptr->next->data; ptr->next->data=tempdata; preptr=4ptr=ptr->next; endptr=5;ptr=head->next; 2处填
[说明] 函数sortNODE*head的功能是用冒泡排序法对单链表中的元素进行非递减排序对于两个相邻节点中的元素若较小的元素在后面则交换这两个节点中的元素值其中head指向链表的头节点排序时为了避免每趟都扫描到链表的尾节点设置一个指针endptr使其指向下趟扫描需要到达的最后一个节点例如对于图8-25a所示的链表进行一趟冒泡排序后得到图8-25b所示的链表 链表的节点类型定义如下 typedefStruetNode intdata structNode*next NODE; [C语言函数] voidsortNODE*head NODE*ptr*preptr*endptr; inttempdata; ptr=head->next; while1/*查找表尾节点*/ ptr=ptr->next; endptr=ptr;/*令endptr指向表尾节点*/ ptr=2; whileptr!=endptr while3 ifptr->data>ptr->next->data tempdata=ptr->data;/*交换相邻节点的数据*/ ptr->data=ptr->next->data; ptr->next->data=tempdata; preptr=4ptr=ptr->next; endptr=5;ptr=head->next; 4处填
[说明] 已知某二叉树的非叶子节点都有两个孩子节点现将该二叉树存储在结构数组Ht中节点结构及数组Ht的定义如下 #defineMAXLEAFNUM30 Structnode charch; char*pstr; intparent; intlchildrchiid; ; StructnodeHt[2*MAXLEAFNUM]; 该二叉树的n个叶子节点存储在下标为1~n的Ht数组元素中例如某二叉树如图8-26所示其存储结构如图8-27所示其中与叶子节点a对应的数组元素下标为1a的父节点存储在Ht[5]表示为Ht[1].parent=5Ht[7].parent=0表示7号节点是树根Ht[7].lchild=3Ht[7].rchild=6分别表示7号节点的左孩子是3号节点右孩子是6号节点 如果用“0”或“1”分别标识二叉树的左分支和右分支如图8-26所示从根节点开始到叶子节点为止按所经过分支的次序将相应标识依次排列可得到一个01序列称之为对应叶子节点的编码例如图8-26中abcd的编码分别是100101011 函数LeafCodeHt[]n的功能是求解存储在Ht中的二叉树中所有叶子节点n个的编码叶子节点存储在Ht[1]~Ht[n]中求出的编码存储区由对应的数组元素pstr域指示 函数LeafCode从叶子到根逆向求叶子节点的编码例如对图8-26中叶子节点a求编码的过程如图8-28所示 [函数] typedefenumStatusERROROKStatus; StatusLeafCodeStruetnodeHt[]intn intpcpf; intistart; chartstr[31]=’/0’; fori=1;1;i++ start=29; pc=i;pf=Ht[i].parent; whilePf!=2 if3.lchiid==pc tstr[--start]=’0’; else tstr[-start]=’1’; pc=4;pf=Ht[Pf].parent; Ht[i].pstr=char*malloc31-start; if!Ht[i].pstrreturnERROR; strcpyHt[i].pstr5; returnOK; 1处填
[说明] 下面流程图的功能是在已知字符串A中查找特定字符串B如果存在则输出B串首字符在A串中的位置否则输出-1设串A由n个字符A0A1…An-1组成串B由m个字符B0B1…Bm-1组成其中n≥m>0在串A中查找串B的基本算法如下从串A的首字符A0开始取子串A0A1…im-1与串B比较若不同则再取子串A1A2…Am与串B比较以此类推 例如字符串“CABBRFFD”中存在字符子串“BRF”输出3不存在字符子串“RFD”输出-1 在流程图中i用于访问串A中的字符i=01…n-1j用于访问串B中的字符j=01…m-1在比较AiAi+1…Ai+m-1与B0B1…Bm-1时需要对Ai与B0Ai+1与B1…Ai+j与Bj…逐对字符进行比较若发现不同则需要取下一个子串进行比较以此类推 [流程图] 本题流程图如图8-30所示 1处填
[说明]下面的程序用DoleRob算法生成N阶N为奇数魔方阵各行列对角线数字之和相等该算法的过程为从1开始按如下方法依次插入各自然数直到N2为止①在第一行的正中插入1②新位置应当处于最近插入位置的右上方若该位置已超出方阵的上边界则新位置取应选列的最下一个位置若超出右边界则新位置取应选行的最左一个位置③若最近插入的元素是N的整数倍则选同列的下一行位置为新位置例如3阶魔方阵如下所示816357492[C程序]#include<stdio.h>#include<stdlib.h>#defineSIZE50mainintrowcolnvalue;inta[SIZE+1][SIZE+1];/*不使用下标为0的元素*/printf请输入要输出魔方阵的阶数n奇数<%d:n=SIZE;scanf%d&n;if!n%2||n<1||1printf输入数据有误!/n;exit0;row=1;col=n+1/2;value=1;whilevalue<=2a[row][col]=value;/*计算下一位置*/ifvalue%n!=0row--;3;ifrow<1row=n;ifcol>n4;elserow++;value=5;printf/n%d阶魔方阵如下所示/n/nn;forrow=1;row<=n;row++forcol=1;col<=n;col++printf%5da[row][col];printf/n;
对图8-22所示的二叉树进行中序遍历左子树根右子树的结果是
若将图8-23a所示的无向图改为完全图则还需要增加24条边图b的邻接矩阵表示为25行列均以ABCDE为序 25是
[说明] 下面流程图的功能是在已知字符串A中查找特定字符串B如果存在则输出B串首字符在A串中的位置否则输出-1设串A由n个字符A0A1…An-1组成串B由m个字符B0B1…Bm-1组成其中n≥m>0在串A中查找串B的基本算法如下从串A的首字符A0开始取子串A0A1…im-1与串B比较若不同则再取子串A1A2…Am与串B比较以此类推 例如字符串“CABBRFFD”中存在字符子串“BRF”输出3不存在字符子串“RFD”输出-1 在流程图中i用于访问串A中的字符i=01…n-1j用于访问串B中的字符j=01…m-1在比较AiAi+1…Ai+m-1与B0B1…Bm-1时需要对Ai与B0Ai+1与B1…Ai+j与Bj…逐对字符进行比较若发现不同则需要取下一个子串进行比较以此类推 [流程图] 本题流程图如图8-30所示 5处填
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 5处填
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 3处填
[说明]下面待修改的C程序完成的功能是对于给定的一个长正整数从其个位数开始每隔一位取一个数字即取其个位百位万位等数字形成一个新的整数并输出例如将该程序修改正确后运行时若输入14251382则输出的整数为4532下面给出的C程序代码中有5个错误请指出所有的错误[C程序代码]01#include<stdio.h>0203intmain0405longnnum;06inti;0708do09printf清输入一个正整数:;10scanf%idn;11whilen<=0;12k=1;13fori=1;n>=0;i++14ifiio2=115Rum=num+n%10*k;16k=k*10;1718n=n/10;1920printf新数据为:%d/nnum;21return0;22
若原始数据序列2344567128197采用直接插入排序法顺序地将每个元素插入到它之前的适当位置排序则进行完第4趟后的排序结果是______
[说明]下面的程序用DoleRob算法生成N阶N为奇数魔方阵各行列对角线数字之和相等该算法的过程为从1开始按如下方法依次插入各自然数直到N2为止①在第一行的正中插入1②新位置应当处于最近插入位置的右上方若该位置已超出方阵的上边界则新位置取应选列的最下一个位置若超出右边界则新位置取应选行的最左一个位置③若最近插入的元素是N的整数倍则选同列的下一行位置为新位置例如3阶魔方阵如下所示816357492[C程序]#include<stdio.h>#include<stdlib.h>#defineSIZE50mainintrowcolnvalue;inta[SIZE+1][SIZE+1];/*不使用下标为0的元素*/printf请输入要输出魔方阵的阶数n奇数<%d:n=SIZE;scanf%d&n;if!n%2||n<1||1printf输入数据有误!/n;exit0;row=1;col=n+1/2;value=1;whilevalue<=2a[row][col]=value;/*计算下一位置*/ifvalue%n!=0row--;3;ifrow<1row=n;ifcol>n4;elserow++;value=5;printf/n%d阶魔方阵如下所示/n/nn;forrow=1;row<=n;row++forcol=1;col<=n;col++printf%5da[row][col];printf/n;
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
采用哈希或散列技术构造查找表时需要考虑冲突碰撞的处理冲突是指______
[说明]下面的程序用DoleRob算法生成N阶N为奇数魔方阵各行列对角线数字之和相等该算法的过程为从1开始按如下方法依次插入各自然数直到N2为止①在第一行的正中插入1②新位置应当处于最近插入位置的右上方若该位置已超出方阵的上边界则新位置取应选列的最下一个位置若超出右边界则新位置取应选行的最左一个位置③若最近插入的元素是N的整数倍则选同列的下一行位置为新位置例如3阶魔方阵如下所示816357492[C程序]#include<stdio.h>#include<stdlib.h>#defineSIZE50mainintrowcolnvalue;inta[SIZE+1][SIZE+1];/*不使用下标为0的元素*/printf请输入要输出魔方阵的阶数n奇数<%d:n=SIZE;scanf%d&n;if!n%2||n<1||1printf输入数据有误!/n;exit0;row=1;col=n+1/2;value=1;whilevalue<=2a[row][col]=value;/*计算下一位置*/ifvalue%n!=0row--;3;ifrow<1row=n;ifcol>n4;elserow++;value=5;printf/n%d阶魔方阵如下所示/n/nn;forrow=1;row<=n;row++forcol=1;col<=n;col++printf%5da[row][col];printf/n;
[说明] 已知包含头节点不存储元素的单链表的元素已经按照非递减方式排序函数compressNODE*head的功能是去掉其中重复的元素使得链表中的元素互不相同 处理过程中当元素重复出现时保留元素第一次出现所在的节点 图8-29ab是经函数compress处理前后的链表结构示例图 链表的节点类型定义如下 typedefstructNode intdata; structNode*next; NODE; [C语言函数] voidcompressNODE*head NODE*ptr*q; ptr=1;/*取得第一个元素节点的指针*/ while2&&ptr->next q=ptr->next; whileq&&3/*处理重复元素*/ 4=q->next; freeq; q=ptr->next; 5=ptr->next; /*endofwhile*/ /*endofcompress*/ 4填
若线性表241331615188采用散列Hash法进行存储和查找设散列函数为HKey=Keymod11则构造散列表时发生冲突的元素为______其中的mod表示整除取余运算
[说明] 已知某二叉树的非叶子节点都有两个孩子节点现将该二叉树存储在结构数组Ht中节点结构及数组Ht的定义如下 #defineMAXLEAFNUM30 Structnode charch; char*pstr; intparent; intlchildrchiid; ; StructnodeHt[2*MAXLEAFNUM]; 该二叉树的n个叶子节点存储在下标为1~n的Ht数组元素中例如某二叉树如图8-26所示其存储结构如图8-27所示其中与叶子节点a对应的数组元素下标为1a的父节点存储在Ht[5]表示为Ht[1].parent=5Ht[7].parent=0表示7号节点是树根Ht[7].lchild=3Ht[7].rchild=6分别表示7号节点的左孩子是3号节点右孩子是6号节点 如果用“0”或“1”分别标识二叉树的左分支和右分支如图8-26所示从根节点开始到叶子节点为止按所经过分支的次序将相应标识依次排列可得到一个01序列称之为对应叶子节点的编码例如图8-26中abcd的编码分别是100101011 函数LeafCodeHt[]n的功能是求解存储在Ht中的二叉树中所有叶子节点n个的编码叶子节点存储在Ht[1]~Ht[n]中求出的编码存储区由对应的数组元素pstr域指示 函数LeafCode从叶子到根逆向求叶子节点的编码例如对图8-26中叶子节点a求编码的过程如图8-28所示 [函数] typedefenumStatusERROROKStatus; StatusLeafCodeStruetnodeHt[]intn intpcpf; intistart; chartstr[31]=’/0’; fori=1;1;i++ start=29; pc=i;pf=Ht[i].parent; whilePf!=2 if3.lchiid==pc tstr[--start]=’0’; else tstr[-start]=’1’; pc=4;pf=Ht[Pf].parent; Ht[i].pstr=char*malloc31-start; if!Ht[i].pstrreturnERROR; strcpyHt[i].pstr5; returnOK; 5填
[说明] 某单位动态收集的数据中常包含重复的数据所以需要进行处理使得重复的数据仅出现一次下面流程图的功能是在nn≥1个数据D1D2…Dn中选出其中所有不重复的k个数据置于原来前k个数据的位置上 该流程图的算法如下第1个数据必然被选出然后从第2个数据开始逐个考察其余的数据假设D1D2…Dmm≥1是已经选出的不重复的数据则对于数据Dim<i≤n将其依次与DmDm-1…D1进行比较若没有发现与之相同者则Di被选出并置于Dm+1的位置上否则对Di不做处理 例如如下10个数据 5227447191n=10 经过上述算法处理后的结果为 527419k=6 [流程图] 本题流程图如图8-32所示 注循环开始的说明按照“循环变量名循环初值循环终值增量”格式描述 1处填
[说明]计算机在处理算术表达式时首先将其转换为后缀表达式例如表达式46+5*120-37的后缀表达式形式为46512037-*+计算后缀表达式时从左至右扫描后缀表达式若遇到运算对象则压入栈中遇到运算符则从栈中弹出相关运算对象进行计算并将运算结果压入栈中重复以上过程直到后缀表达式扫描结束例如后缀表达式46512037-*+的汁算过程如下①依次将46512037压入栈中②遇到-取出37120计算120-37=83将其压入栈中③遇到*取出835计算5×83=415将其压入栈中④遇到+取出41546计算46+415=461将其压入栈中⑤表达式结束则计算过程完成函数computingcharexpt[]int*result的功能是基于栈计算后缀形式的表达式以串形式存入字符数组expr的值并通过参数result返回该值函数的返回值为-1/0分别表示表达式有/无错误假设表达式中仅包含数字空格和算术运算符号其中所有项均以空格分隔且运算符仅包含加+减-乘*除/函数computing中所用栈的基本操作的函数原型说明如下voidInitStackSTACK*s初始化栈voidPushSTACK*sinte将一个整数压栈栈中元素数目增1voidPopSTACK*s栈顶元素出栈栈中元素数目减1intTopSTACKs返回非空栈的栈顶元素值栈中元素数目不变intIsEmptySTACKs若s是空栈则返回1否则返回0[C函数]intcomputingcharexpr[]int*resultSTACKs;inttnumab;char*ptr;InitStack&s;ptr=expr;pstr/*字符指针指向后缀表达式串的第一个字符*/while*ptr!=’/0’if*ptr==’’/*当前字符是空格*/1;/*字符指针指向下一字符*/continue;elseifisdigit*ptr/*当前字符是数字则将该数字开始的数字串转换为数值*/tnum=2;while*ptr>=’0’&&*ptr<=’9’tnum=tnum*10+3;ptr++;push4;else/*当前字符是运算符或其他符号*/if*ptr==’+’||*ptr==’-’||*ptr==’*’||*ptr==’/’if!IsEmptySa=Tops;Pop&s;/*取运算符的第二个运算数*/if!IsEmptySb=Tops;Pop&s;/*取运算符的第一个运算数*/elsereturn-1;elsereturn-1;switch*ptrcase’+’:Push&Sb+a;break;case’-’:Push&sb-a;break;case’+’:Push&sb*a;break;case’/’:Push&sb/a;break;elsereturn-1;ptr++;/*字符指针指向下一字符*//*while*/ifIsEmptysreturn-1;else5=Tops;Pop&s;/*取运算结果*/if!IsEmptysreturn-1;return0;
[说明]计算机在处理算术表达式时首先将其转换为后缀表达式例如表达式46+5*120-37的后缀表达式形式为46512037-*+计算后缀表达式时从左至右扫描后缀表达式若遇到运算对象则压入栈中遇到运算符则从栈中弹出相关运算对象进行计算并将运算结果压入栈中重复以上过程直到后缀表达式扫描结束例如后缀表达式46512037-*+的汁算过程如下①依次将46512037压入栈中②遇到-取出37120计算120-37=83将其压入栈中③遇到*取出835计算5×83=415将其压入栈中④遇到+取出41546计算46+415=461将其压入栈中⑤表达式结束则计算过程完成函数computingcharexpt[]int*result的功能是基于栈计算后缀形式的表达式以串形式存入字符数组expr的值并通过参数result返回该值函数的返回值为-1/0分别表示表达式有/无错误假设表达式中仅包含数字空格和算术运算符号其中所有项均以空格分隔且运算符仅包含加+减-乘*除/函数computing中所用栈的基本操作的函数原型说明如下voidInitStackSTACK*s初始化栈voidPushSTACK*sinte将一个整数压栈栈中元素数目增1voidPopSTACK*s栈顶元素出栈栈中元素数目减1intTopSTACKs返回非空栈的栈顶元素值栈中元素数目不变intIsEmptySTACKs若s是空栈则返回1否则返回0[C函数]intcomputingcharexpr[]int*resultSTACKs;inttnumab;char*ptr;InitStack&s;ptr=expr;pstr/*字符指针指向后缀表达式串的第一个字符*/while*ptr!=’/0’if*ptr==’’/*当前字符是空格*/1;/*字符指针指向下一字符*/continue;elseifisdigit*ptr/*当前字符是数字则将该数字开始的数字串转换为数值*/tnum=2;while*ptr>=’0’&&*ptr<=’9’tnum=tnum*10+3;ptr++;push4;else/*当前字符是运算符或其他符号*/if*ptr==’+’||*ptr==’-’||*ptr==’*’||*ptr==’/’if!IsEmptySa=Tops;Pop&s;/*取运算符的第二个运算数*/if!IsEmptySb=Tops;Pop&s;/*取运算符的第一个运算数*/elsereturn-1;elsereturn-1;switch*ptrcase’+’:Push&Sb+a;break;case’-’:Push&sb-a;break;case’+’:Push&sb*a;break;case’/’:Push&sb/a;break;elsereturn-1;ptr++;/*字符指针指向下一字符*//*while*/ifIsEmptysreturn-1;else5=Tops;Pop&s;/*取运算结果*/if!IsEmptysreturn-1;return0;
[说明] 已知包含头节点不存储元素的单链表的元素已经按照非递减方式排序函数compressNODE*head的功能是去掉其中重复的元素使得链表中的元素互不相同 处理过程中当元素重复出现时保留元素第一次出现所在的节点 图8-29ab是经函数compress处理前后的链表结构示例图 链表的节点类型定义如下 typedefstructNode intdata; structNode*next; NODE; [C语言函数] voidcompressNODE*head NODE*ptr*q; ptr=1;/*取得第一个元素节点的指针*/ while2&&ptr->next q=ptr->next; whileq&&3/*处理重复元素*/ 4=q->next; freeq; q=ptr->next; 5=ptr->next; /*endofwhile*/ /*endofcompress*/ 2填
如果待排序序列中两个元素具有相同的值在排序前后它们的相互位置发生颠倒则称该排序算法是不稳定的______是稳定的排序方法因为这种方法在比较相邻元素时值相同的元素并不进行交换
[说明]假设数组A中的各元素A1A2AM已经按从小到大排序M≥1数组B中的各元素B1B2BN也已经按从小到大排序N≥1执行下面的流程图后可以将数组A与数组B中所有的元素全都存入数组C中且按从小到大排序注意序列中相同的数全部保留并不计排列顺序例如设数组A中有元素25679数组B中有元素2347则数组C中将有元素223456779[流程图]本题流程图如图8-31所示
[说明] 已知某二叉树的非叶子节点都有两个孩子节点现将该二叉树存储在结构数组Ht中节点结构及数组Ht的定义如下 #defineMAXLEAFNUM30 Structnode charch; char*pstr; intparent; intlchildrchiid; ; StructnodeHt[2*MAXLEAFNUM]; 该二叉树的n个叶子节点存储在下标为1~n的Ht数组元素中例如某二叉树如图8-26所示其存储结构如图8-27所示其中与叶子节点a对应的数组元素下标为1a的父节点存储在Ht[5]表示为Ht[1].parent=5Ht[7].parent=0表示7号节点是树根Ht[7].lchild=3Ht[7].rchild=6分别表示7号节点的左孩子是3号节点右孩子是6号节点 如果用“0”或“1”分别标识二叉树的左分支和右分支如图8-26所示从根节点开始到叶子节点为止按所经过分支的次序将相应标识依次排列可得到一个01序列称之为对应叶子节点的编码例如图8-26中abcd的编码分别是100101011 函数LeafCodeHt[]n的功能是求解存储在Ht中的二叉树中所有叶子节点n个的编码叶子节点存储在Ht[1]~Ht[n]中求出的编码存储区由对应的数组元素pstr域指示 函数LeafCode从叶子到根逆向求叶子节点的编码例如对图8-26中叶子节点a求编码的过程如图8-28所示 [函数] typedefenumStatusERROROKStatus; StatusLeafCodeStruetnodeHt[]intn intpcpf; intistart; chartstr[31]=’/0’; fori=1;1;i++ start=29; pc=i;pf=Ht[i].parent; whilePf!=2 if3.lchiid==pc tstr[--start]=’0’; else tstr[-start]=’1’; pc=4;pf=Ht[Pf].parent; Ht[i].pstr=char*malloc31-start; if!Ht[i].pstrreturnERROR; strcpyHt[i].pstr5; returnOK; 3处填
热门题库
更多
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术