首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
一幅分辨率为320x240的256色未压缩图像所占用的存储空间为—量()KB。
查看本题答案
包含此试题的试卷
初级程序员《单项选择》真题及答案
点击查看
你可能感兴趣的试题
一幅分辨率为320×240的256色未压缩图像所占用的存储空间为______KB
320*240*8/8*210
320*240*8/8*103
320*240*256/8*103
320*240*256/8*210
使用300DPI的扫描分辨率扫描一幅3×4英寸的彩色图像使用24位真彩色格式未压缩图像的数据量约B
1055K
3164K
8438K
25313K
一幅分辨率为800×600×256色未压缩图像的数据量约为
470
480
3 760
480000
2012年5月第31题一幅分辨率为320×240的256色未压缩图像的数据量为KB
75
76.8
19200
76800
一幅分辨率为640×480的6.5万色的未经压缩的图像大约需要______存储空间才能保存下来
200KB
300KB
600KB
3MB
一幅分辨率为256×256的图像逐次减少至8×8的分辨率尺寸变大后会 发现细节信息的模糊这是因为缩小
一幅分辨率为800×600×256色未压缩图像的数据量约为14KB
470
480
3760
480000
使用300DPI的扫描分辨率扫描一幅3×4英寸的彩色图像使用24位真彩色格式未压缩图像的数据量约B
1055K
3164K
8438K
25313K
一幅分辨率为640×480的256色未压缩图像的数据量最小约为K字节
150
200
250
300
将一幅分辨率为640×480具有224种彩色的图像以我国PAL制的视频标准无闪烁显示动画4秒则该动画
8.80MB
7.37MB
87.89MB
737.28MB
一幅分辨率为320x240的256色未压缩图像的数据量为KB
75
76.8
19200
76800
使用300DPI的扫描分辨率扫描一幅3×4英寸的彩色图像使用24位真彩色格式未压缩图像的数据量约
1055K
3164K
8438K
25313K
一幅分辨率为800×600×256色未压缩图像的数据量最小约为KB
470
480
4 800
120000
使用300DPI的扫描分辨率扫描一幅3×4英寸的彩色图像使用24位真彩色格式未压缩图像的数据量约字节
1055k
3164k
8438k
25313k
将一幅分辨率为640×480像素具有224种彩色的图像以我国PAL制的视频标准无闪烁显示动画4秒则该
8.80MB
7.37MB
87.89MB
737.28MB
一幅分辨率为640×480的256色未压缩图像的数据量最小约为K字节
150
200
250
300
一幅分辨率为800×600×256色未压缩图像的数据量最小约为10KB
470
480
4 800
120000
一幅分辨率为800×600×256色未压缩图像的数据量约为KB
470
480
3 760
480000
一幅分辨率为800×600×256色未压缩图像的数据量最小约为______KB
470
480
4800
120000
一幅分辨率为800×600×256色未压缩图像的数据量约为14KB
470
480
3 760
480000
热门试题
更多
[说明] 对于具有n个元素的整型数组a需要进行的处理是删除a中所有的值为0的数组元素并将a中所有的非0元素按照原顺序连续地存储在数组空间的前端下面分别用函数CompactArr_v1和CompactArr_v2来实现上述处理要求函数的返回值为非零元素的个数 函数CompactArr_v1inta[]intn的处理思路是先申请一个与数组a的大小相同的动态数组空间然后顺序扫描数组a的每一个元素将遇到的非0元素依次复制到动态数组空间中最后再将动态数组中的元素传回数组a中 函数CompactArr_v2inta[]intn的处理思路是利用下标i初值为0顺序扫描数组a的每一个元素下标k初值为0表示数组a中连续存储的非0元素的下标扫描时每遇到一个数组元素i就增1而遇到非0元素并将其前移后k才增1 [C函数1] intCompactArr_v1inta[]intn intik int*temp=int*mallocn*1 if!temp return-1 fori=0k=0;i<ni++ ifa[i]!=0 2=a[i] fori=03i++ a[i]=temp[i] returnk [C函数2] intCompactArrv2inta[]intn intik fori=0k=0i<ni++ ifa[i]!=0 4=a[i] returnk 请根据说明中函数CompactArr_v1的处理思路填补空缺1~3根据CompactArr_v2的处理思路填补空缺4 请说明函数CompactArr_v1存在的缺点
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [Java代码] importJava.io.*; classStudent privatestringsNO;//学号 privateintcredit;//分数 publicintgetCredit returnCredit; publicStringtoString return"sNO="+this.sNO+"Credit="+this.Credit; StudentStringsNOintCredit 1=sNO; 2=Credit; publicclassSortStudent voidsortStudent[]s//Sortthearrays[]indescendingorderof Credit forinti=0;i<s.length-1;i++ forintj=i+1;j<s.length;j++ ifs[i].3<s[j].4 Studenttmp=s[i]; s[i]=s[j]; s[j]=tmp; publicstaticvoidmainStringargv[] Student[]testStudent=newStudent[size]; try BufferedReaderin=newBufferedReadernewFileReader "Students.txt"; booleandone=false; inti=0; while!done Strings=in.readLine;//每次读取一个学生的学号和成绩 ifs!=null Stringtmp[]=s.split""; testStudent[i++]=5tmp[0]Integer.parseInt tmp[1]; else done=true; in.close; 6=newSortStudent; ss.sorttestStudent; System.out.println"top30%:"; forintj=0;j<size*0.3;j++ System.out.printlntestStudent[j]; catchIOExceptione System.out.println"ioerror!"; catchNumberFormatExceptione System.out.println"notanumber!"; 7intsize=100;//学生总数 4处应填
[说明] 下面的流程图中有两个判断条件A>0和B>0这些判断条件的各种组合情况如下表所示表中Y表示相应的条件成立N表示相应的条件不成立每一列表示一种条件组合并在列首用相应的序号来表示 当遇到哪几种条件组合时流程图能执行2→j写出相应的序号即可
hasbecomeafactofmodemlifewithmillionsofpeoplenowshoppingon-line.
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [C++代码] #include<iostream> #include<fstream> #include<string> usingnamespacestd; classStudent private: stringsNO;//学号 intcredit;//分数 public: StudentstringaintbsNO=a;credit=b; Student intgetCredit; voidout; ; 1::getCredit returncredit; 2::out cout<<"SNO:"<<sNO<<"Credit="<<credit<<end1; classSortStudent public: voidsortStudent*sintn; SortStudent ; voidSortStudent::sortStudent*sintn forinti=0;i<n-1;i++ forintj=i+1;J<n;j++ ifs[i].3<s[j].4 Studenttemp=s[i];s[i]=s[j];s[j]=temp; intmainintargcchar*argv[] constintnumber=100;//学生总数 ifstreamStudents; Students.open"students.txt"; if!students.is_open throw0; Student*testStudent=5[number]; intk=0; strings; whilegetlinestudentss’\n’//每次读取一个学生的学号和成绩 Studentstudents.substr0s.find’’atois.substrs.find ’’+1.c_str; testStudent[k++]=student; students.colse; 6; ss.sorttestStudentk; cout<<"top30%:"<<end1; fork=0;k<number*0.3;k++ testStudent[k].out; delete[]testStudent; return0; 4处应填
[说明1] 下面代码的设计意图是将保存在文本文件data.txt中的一系列整数不超过100个读取出来存入数组arr[]然后调用函数sort对数组arr的元素进行排序最后在显示屏输出数组arr的内容 [C代码] 以上C代码中有三处错误省略部分的代码除外请指出这些错误所在的代码行号并在不增加和删除代码行的情况下进行修改写出修改正确后的完整代码行
[说明] 对于具有n个元素的整型数组a需要进行的处理是删除a中所有的值为0的数组元素并将a中所有的非0元素按照原顺序连续地存储在数组空间的前端下面分别用函数CompactArr_v1和CompactArr_v2来实现上述处理要求函数的返回值为非零元素的个数 函数CompactArr_v1inta[]intn的处理思路是先申请一个与数组a的大小相同的动态数组空间然后顺序扫描数组a的每一个元素将遇到的非0元素依次复制到动态数组空间中最后再将动态数组中的元素传回数组a中 函数CompactArr_v2inta[]intn的处理思路是利用下标i初值为0顺序扫描数组a的每一个元素下标k初值为0表示数组a中连续存储的非0元素的下标扫描时每遇到一个数组元素i就增1而遇到非0元素并将其前移后k才增1 [C函数1] intCompactArr_v1inta[]intn intik int*temp=int*mallocn*1 if!temp return-1 fori=0k=0;i<ni++ ifa[i]!=0 2=a[i] fori=03i++ a[i]=temp[i] returnk [C函数2] intCompactArrv2inta[]intn intik fori=0k=0i<ni++ ifa[i]!=0 4=a[i] returnk 请根据说明中函数CompactArr_v1的处理思路填补空缺1~3根据CompactArr_v2的处理思路填补空缺4 请根据说明中函数CompactArr_v1的处理思路填补空缺3.
如果要清除上网痕迹必须
[说明] 已知单链表L含有头节点且节点中的元素值以递增的方式排列下面的函数DeleteList在L中查找所有值大于mink且小于maxK的元素若找到则逐个删除同时释放被删节点的空间若链表中不存在满足条件的元素则返回-1否则返回0 例如某单链表如下图a所示若令minK为20maxK为50则删除后的链表如图b所示 链表节点类型定义如下 typedefstructNode intdata; structNode*next; Node*LinkList; [C函数] intDeleteListLinkListLintminKintmaxK /*在含头节点的单链表L中删除大于minK且小于maxK的元素*/ 1*q=L*p=L->next/*p指向第一个元素节点*/ intdelTag=0; whilep ifP->data<=minK q=p;p=2; else ifp->data<maxK/*找到删除满足条件的节点*/ q->next=3;freep; p=4;delTag=1; elsebreak; if5return-1; return0; 5处应填
如果一台配置成自动获取IP地址的计算机开机后得到的IP地址是169.254.1.17即没有DHCP服务器为其提供IP地址则首先应该
[说明] 下面的流程图中有两个判断条件A>0和B>0这些判断条件的各种组合情况如下表所示表中Y表示相应的条件成立N表示相应的条件不成立每一列表示一种条件组合并在列首用相应的序号来表示 该流程图共有多少条实际执行路径
[说明1] 函数deldigitchar*s的功能是将字符串s中的数字字符去掉使剩余字符按原次序构成一个新串并保存在原串空间中其思路是先申请一个与s等长的临时字符串空间并令t指向它将非数字字符按次序暂存入该空间最后再复制给s 4填
[说明] 对于具有n个元素的整型数组a需要进行的处理是删除a中所有的值为0的数组元素并将a中所有的非0元素按照原顺序连续地存储在数组空间的前端下面分别用函数CompactArr_v1和CompactArr_v2来实现上述处理要求函数的返回值为非零元素的个数 函数CompactArr_v1inta[]intn的处理思路是先申请一个与数组a的大小相同的动态数组空间然后顺序扫描数组a的每一个元素将遇到的非0元素依次复制到动态数组空间中最后再将动态数组中的元素传回数组a中 函数CompactArr_v2inta[]intn的处理思路是利用下标i初值为0顺序扫描数组a的每一个元素下标k初值为0表示数组a中连续存储的非0元素的下标扫描时每遇到一个数组元素i就增1而遇到非0元素并将其前移后k才增1 [C函数1] intCompactArr_v1inta[]intn intik int*temp=int*mallocn*1 if!temp return-1 fori=0k=0;i<ni++ ifa[i]!=0 2=a[i] fori=03i++ a[i]=temp[i] returnk [C函数2] intCompactArrv2inta[]intn intik fori=0k=0i<ni++ ifa[i]!=0 4=a[i] returnk 请根据说明中函数CompactArr_v1的处理思路填补空缺1~3根据CompactArr_v2的处理思路填补空缺4 请根据说明中函数CompactArr_v1的处理思路填补空缺1
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [C++代码] #include<iostream> #include<fstream> #include<string> usingnamespacestd; classStudent private: stringsNO;//学号 intcredit;//分数 public: StudentstringaintbsNO=a;credit=b; Student intgetCredit; voidout; ; 1::getCredit returncredit; 2::out cout<<"SNO:"<<sNO<<"Credit="<<credit<<end1; classSortStudent public: voidsortStudent*sintn; SortStudent ; voidSortStudent::sortStudent*sintn forinti=0;i<n-1;i++ forintj=i+1;J<n;j++ ifs[i].3<s[j].4 Studenttemp=s[i];s[i]=s[j];s[j]=temp; intmainintargcchar*argv[] constintnumber=100;//学生总数 ifstreamStudents; Students.open"students.txt"; if!students.is_open throw0; Student*testStudent=5[number]; intk=0; strings; whilegetlinestudentss’\n’//每次读取一个学生的学号和成绩 Studentstudents.substr0s.find’’atois.substrs.find ’’+1.c_str; testStudent[k++]=student; students.colse; 6; ss.sorttestStudentk; cout<<"top30%:"<<end1; fork=0;k<number*0.3;k++ testStudent[k].out; delete[]testStudent; return0; 6处应填
[说明1] 函数deldigitchar*s的功能是将字符串s中的数字字符去掉使剩余字符按原次序构成一个新串并保存在原串空间中其思路是先申请一个与s等长的临时字符串空间并令t指向它将非数字字符按次序暂存入该空间最后再复制给s 2填
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [Java代码] importJava.io.*; classStudent privatestringsNO;//学号 privateintcredit;//分数 publicintgetCredit returnCredit; publicStringtoString return"sNO="+this.sNO+"Credit="+this.Credit; StudentStringsNOintCredit 1=sNO; 2=Credit; publicclassSortStudent voidsortStudent[]s//Sortthearrays[]indescendingorderof Credit forinti=0;i<s.length-1;i++ forintj=i+1;j<s.length;j++ ifs[i].3<s[j].4 Studenttmp=s[i]; s[i]=s[j]; s[j]=tmp; publicstaticvoidmainStringargv[] Student[]testStudent=newStudent[size]; try BufferedReaderin=newBufferedReadernewFileReader "Students.txt"; booleandone=false; inti=0; while!done Strings=in.readLine;//每次读取一个学生的学号和成绩 ifs!=null Stringtmp[]=s.split""; testStudent[i++]=5tmp[0]Integer.parseInt tmp[1]; else done=true; in.close; 6=newSortStudent; ss.sorttestStudent; System.out.println"top30%:"; forintj=0;j<size*0.3;j++ System.out.printlntestStudent[j]; catchIOExceptione System.out.println"ioerror!"; catchNumberFormatExceptione System.out.println"notanumber!"; 7intsize=100;//学生总数 6处应填
阅读以下说明和C函数填补C函数中的空缺1~5将解答写在对应栏内 [说明] 假设一个算术表达式中可以包含以下三种括号“”和“”“[”和“]”及“”和“”并且这三种括号可以按照任意的次序嵌套使用 下面仪考虑表达式中括号的匹配关系其他问题暂时忽略例如表达式[a-b-5*c[]中的括号是完全匹配的而表达式[a-b-5]*c中的括号不是完全匹配的因为“”与“]”不能匹配而且多了一个“”即缺少一个与“”相匹配的“” 函数ifMatchedcharexpr[]的功能是用栈来判断表达式中的括号是否匹配表达式以字符串的形式存储在字符数组expr中若表达式中的括号完全匹配则该函数的返回值为Matched否则返回值为Mismatched 该函数的处理思路如下 1设置一个初始为空的栈从左至右扫描表达式 2若遇上左括号则令其入栈若遇上右括号则需要与栈顶的左括号进行匹配 3若所遇到的右括号能与栈顶的左括号配对则令栈顶的左括号出栈然后继续匹配过程否则返回Mismatched结束判断过程 4若表达式扫描结束同时栈变为空则说明表达式中的括号能完全匹配返回Matched 函数ifMatched中用到了两种用户白定义数据类型BOOL和STACK其中BOOL类型的定义如下 typedefenumMismatchedMatchedBOOL; STACK即栈类型的定义省略栈的基本操作的函数原型说明如下 voidInitStackSTACK*S初始化一个空栈 voidPushSTACK*S.chare将一个字符压栈栈中元素数目增1 voidPopSTACK*S栈顶元素出栈栈中元素数目减1 charTopSTACKS返回非空栈S的栈顶元素值栈中元素数目不变 intIsEmptySTACKS若S是空栈则返回1否则返回0 [C函数] BOOLifMatchedcharexpr[] char*cptr;/*cptr指向表达式中的字符*/ STACKS; chare; InitStack&S;/*构造一个空栈*/ forcptr=expr;*cptr!=’/0’1 if*cptr==’’||*cptr==’[’||*cptr==’’ 2; else if*cptr==’’||*cptr==’]’||*cptr==’’ ifIsEmptyS returnMismatched; e=3;/*取栈顶的左括号*/ if*cptr==’’&&e!=’’returnMismatched; if*cptr==’]’&&e!=’[’returnMismatched; if*cptr==’’&&e!=’’returnMismatched; 4;/*栈顶的左括号出栈*/ if5returnMatched; returnMismatched; 4处应填
[说明2] 在C函数2中reverseunsignedintn的功能是求出并返回n的反序数例如1234的反序数是4321其求解过程如下 1由1234除以10得到商123和余数40乘以10再加上4得到4 2由123除以10得到商12和余数34乘以10再加上3得到43 3由12除以10得到商1和余数243乘以10再加上2得到432 4由1除以10得到商0和余数1432乘以10再加上1得到4321 [C函数2] unsignedintreverseunsignedintn { unsignedintresult=0; while1{ result=result*10+n%10; n=2; } returnresult; } 请根据说明2填充C函数2中的空缺1和2
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入对应栏内 [说明] 下面的流程图可在正文字符串T1:L中计算关键词字符串K1:m出现的次数用n表示其中L为字符串T的长度m为字符串K的长度m<L为便于模糊查找关键词中的字符“”可以匹配任意一个字符 在该流程图中先从T中取出长度为m的子串存入A中再将A与K进行逐个字符的比较其中K可以包含字符“”注意从正文字符串中取出的关键词字符串不允许交叉例如“aaaaaa”中有3个关键词字符串“aa” [流程图] 1应填
[说明] 已知单链表L含有头节点且节点中的元素值以递增的方式排列下面的函数DeleteList在L中查找所有值大于mink且小于maxK的元素若找到则逐个删除同时释放被删节点的空间若链表中不存在满足条件的元素则返回-1否则返回0 例如某单链表如下图a所示若令minK为20maxK为50则删除后的链表如图b所示 链表节点类型定义如下 typedefstructNode intdata; structNode*next; Node*LinkList; [C函数] intDeleteListLinkListLintminKintmaxK /*在含头节点的单链表L中删除大于minK且小于maxK的元素*/ 1*q=L*p=L->next/*p指向第一个元素节点*/ intdelTag=0; whilep ifP->data<=minK q=p;p=2; else ifp->data<maxK/*找到删除满足条件的节点*/ q->next=3;freep; p=4;delTag=1; elsebreak; if5return-1; return0; 3处应填
设A是n*n常数矩阵n>1X是由未知数X1X2Xn组成的列向量B是由常数b1b2bn组成的列向量线性方程组AX=B有唯一解的充分必要条件不是
TCP/IParethestandardsaroundwhichtheInternetwasdeveloped.
[说明] 已知单链表L含有头节点且节点中的元素值以递增的方式排列下面的函数DeleteList在L中查找所有值大于mink且小于maxK的元素若找到则逐个删除同时释放被删节点的空间若链表中不存在满足条件的元素则返回-1否则返回0 例如某单链表如下图a所示若令minK为20maxK为50则删除后的链表如图b所示 链表节点类型定义如下 typedefstructNode intdata; structNode*next; Node*LinkList; [C函数] intDeleteListLinkListLintminKintmaxK /*在含头节点的单链表L中删除大于minK且小于maxK的元素*/ 1*q=L*p=L->next/*p指向第一个元素节点*/ intdelTag=0; whilep ifP->data<=minK q=p;p=2; else ifp->data<maxK/*找到删除满足条件的节点*/ q->next=3;freep; p=4;delTag=1; elsebreak; if5return-1; return0; 1处应填
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [C++代码] #include<iostream> #include<fstream> #include<string> usingnamespacestd; classStudent private: stringsNO;//学号 intcredit;//分数 public: StudentstringaintbsNO=a;credit=b; Student intgetCredit; voidout; ; 1::getCredit returncredit; 2::out cout<<"SNO:"<<sNO<<"Credit="<<credit<<end1; classSortStudent public: voidsortStudent*sintn; SortStudent ; voidSortStudent::sortStudent*sintn forinti=0;i<n-1;i++ forintj=i+1;J<n;j++ ifs[i].3<s[j].4 Studenttemp=s[i];s[i]=s[j];s[j]=temp; intmainintargcchar*argv[] constintnumber=100;//学生总数 ifstreamStudents; Students.open"students.txt"; if!students.is_open throw0; Student*testStudent=5[number]; intk=0; strings; whilegetlinestudentss’\n’//每次读取一个学生的学号和成绩 Studentstudents.substr0s.find’’atois.substrs.find ’’+1.c_str; testStudent[k++]=student; students.colse; 6; ss.sorttestStudentk; cout<<"top30%:"<<end1; fork=0;k<number*0.3;k++ testStudent[k].out; delete[]testStudent; return0; 2处应填
[说明] 某数据文件students.txt的内容为100名学生的学号和成绩下面的程序将文件中的数据全部读入对象数组按分数从高到低进行排序后选出排名前30%的学生 [Java代码] importJava.io.*; classStudent privatestringsNO;//学号 privateintcredit;//分数 publicintgetCredit returnCredit; publicStringtoString return"sNO="+this.sNO+"Credit="+this.Credit; StudentStringsNOintCredit 1=sNO; 2=Credit; publicclassSortStudent voidsortStudent[]s//Sortthearrays[]indescendingorderof Credit forinti=0;i<s.length-1;i++ forintj=i+1;j<s.length;j++ ifs[i].3<s[j].4 Studenttmp=s[i]; s[i]=s[j]; s[j]=tmp; publicstaticvoidmainStringargv[] Student[]testStudent=newStudent[size]; try BufferedReaderin=newBufferedReadernewFileReader "Students.txt"; booleandone=false; inti=0; while!done Strings=in.readLine;//每次读取一个学生的学号和成绩 ifs!=null Stringtmp[]=s.split""; testStudent[i++]=5tmp[0]Integer.parseInt tmp[1]; else done=true; in.close; 6=newSortStudent; ss.sorttestStudent; System.out.println"top30%:"; forintj=0;j<size*0.3;j++ System.out.printlntestStudent[j]; catchIOExceptione System.out.println"ioerror!"; catchNumberFormatExceptione System.out.println"notanumber!"; 7intsize=100;//学生总数 2处应填
[说明2] 下面是用C语言书写的函数get_str的两种定义方式以及两种调用方式 [问题] 若分别采用函数定义方式12和调用方式12请分析程序的运行情况填充下面的空1~3 若采用定义方式1和调用方式1则输出为“00000000” 若采用定义方式1和调用方式2则1 若采用定义方式2和调用方式1则2 若采用定义方式2和调用方式2则3 若采用定义方式2和调用方式1则
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入对应栏内 [说明] 下面的流程图可在正文字符串T1:L中计算关键词字符串K1:m出现的次数用n表示其中L为字符串T的长度m为字符串K的长度m<L为便于模糊查找关键词中的字符“”可以匹配任意一个字符 在该流程图中先从T中取出长度为m的子串存入A中再将A与K进行逐个字符的比较其中K可以包含字符“”注意从正文字符串中取出的关键词字符串不允许交叉例如“aaaaaa”中有3个关键词字符串“aa” [流程图] 3处应填
Softwarereferstothatthesoftwaretomeetthespecificationmustbeproduced.
阅读以下说明和流程图填补流程图中的空缺1~5将解答填入对应栏内 [说明] 下面的流程图可在正文字符串T1:L中计算关键词字符串K1:m出现的次数用n表示其中L为字符串T的长度m为字符串K的长度m<L为便于模糊查找关键词中的字符“”可以匹配任意一个字符 在该流程图中先从T中取出长度为m的子串存入A中再将A与K进行逐个字符的比较其中K可以包含字符“”注意从正文字符串中取出的关键词字符串不允许交叉例如“aaaaaa”中有3个关键词字符串“aa” [流程图] 5处应填
阅读以下说明和C函数填补C函数中的空缺1~5将解答写在对应栏内 [说明] 假设一个算术表达式中可以包含以下三种括号“”和“”“[”和“]”及“”和“”并且这三种括号可以按照任意的次序嵌套使用 下面仪考虑表达式中括号的匹配关系其他问题暂时忽略例如表达式[a-b-5*c[]中的括号是完全匹配的而表达式[a-b-5]*c中的括号不是完全匹配的因为“”与“]”不能匹配而且多了一个“”即缺少一个与“”相匹配的“” 函数ifMatchedcharexpr[]的功能是用栈来判断表达式中的括号是否匹配表达式以字符串的形式存储在字符数组expr中若表达式中的括号完全匹配则该函数的返回值为Matched否则返回值为Mismatched 该函数的处理思路如下 1设置一个初始为空的栈从左至右扫描表达式 2若遇上左括号则令其入栈若遇上右括号则需要与栈顶的左括号进行匹配 3若所遇到的右括号能与栈顶的左括号配对则令栈顶的左括号出栈然后继续匹配过程否则返回Mismatched结束判断过程 4若表达式扫描结束同时栈变为空则说明表达式中的括号能完全匹配返回Matched 函数ifMatched中用到了两种用户白定义数据类型BOOL和STACK其中BOOL类型的定义如下 typedefenumMismatchedMatchedBOOL; STACK即栈类型的定义省略栈的基本操作的函数原型说明如下 voidInitStackSTACK*S初始化一个空栈 voidPushSTACK*S.chare将一个字符压栈栈中元素数目增1 voidPopSTACK*S栈顶元素出栈栈中元素数目减1 charTopSTACKS返回非空栈S的栈顶元素值栈中元素数目不变 intIsEmptySTACKS若S是空栈则返回1否则返回0 [C函数] BOOLifMatchedcharexpr[] char*cptr;/*cptr指向表达式中的字符*/ STACKS; chare; InitStack&S;/*构造一个空栈*/ forcptr=expr;*cptr!=’/0’1 if*cptr==’’||*cptr==’[’||*cptr==’’ 2; else if*cptr==’’||*cptr==’]’||*cptr==’’ ifIsEmptyS returnMismatched; e=3;/*取栈顶的左括号*/ if*cptr==’’&&e!=’’returnMismatched; if*cptr==’]’&&e!=’[’returnMismatched; if*cptr==’’&&e!=’’returnMismatched; 4;/*栈顶的左括号出栈*/ if5returnMatched; returnMismatched; 2处应填
热门题库
更多
中级系统集成项目管理工程师
中级网络工程师
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识