计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
程序员应用技术
程序员基础知识
程序员应用技术
问答题
进入题库练习
问答题[说明]某小型家电超市开发了下面的程序,用以实现商品提货信息的汇总和输出功能。程序的运行界面如下图所示:程序界面包含两个控件数组,分别是提货商品复选框控件数组Check1以及提货数量文本框控件数组Text1(相同下标的复选框和文本框相对应),提货清单的显示由List控件实现,按钮“打印清单”和“清除”分别名为Command1和Command2。[VisualBasic代码]’提货商品复选框的单击事件响应代码PrivateSubCheck1_Click(IndexAsInteger)IfCheck1(Index).Value=1Then{{U}}(1){{/U}}.SetFocusEndSub’按钮“打印清单”的单击事件响应代码PrivateSubCommand1_Click()Dimi,n,priceAsInteger,sumAsLong,titleAsStringsum=0Fori=OTo4SelectCaseiCase0:title="电视机":price=3580Case1:title="微波炉":price=660Case2:title="电冰箱":price=1850Case3:title="DVD":price=2880Case4:title="空调":price=2500EndSelectIf{{U}}(2){{/U}}=1AndTextl(i).Text<>""Then{{U}}(3){{/U}}title&Text1(i).Text&"台"n=n+Val(Textl(i))sum={{U}}(4){{/U}}EndIfNextiIfsum<>0Then{{U}}(3){{/U}}"共:"&n&"台,"&"合计金额:"&sum&"元。"EndIfEndSub’按钮“清除”的单击事件响应代码PrivateSubCommand2_Click(){{U}}(5){{/U}}EndSub
进入题库练习
问答题
进入题库练习
问答题[说明] 本程序使用类来管理员工的通讯地址信息。已知程序的输出为: 输出记录:5 姓名:王丽华 街道地址:中华路15号 市:襄樊市 省:湖北省 邮政编码:430070 [Java代码] public class Employee{ protected String {{U}}(1) {{/U}}; protected String street; protected String city; protected String prov; protected String post; protected int no; public Empbyee(){} public Employee(String name,String street,String city,String prov,String post,{{U}} (2) {{/U}}){ this.name=name; this.street=street; this.city=city; this.prov=prov; this.post=post; this.no=no; } public static void main(String[]args){ Employee emp=new Employee(“王华”,“中华路15号”,“武汉市”,“湖北省”,“430070”,1); emp.changeName(“王丽华”); {{U}} (3) {{/U}}(“襄樊市”); emp.changeNo(5); {{U}} (4) {{/U}}; } void changeName(String name){this.name=name;} void changeStreet(String street){this.street=street;} void changeCity(String city){this.city=city;} void changeProv(String prov){this.prov=prov;} void changeNo(int no){{{U}} (5) {{/U}};} void display(){ System.out.println(“输出记录:”+this.no); System.out.Println(“姓名:”+this.name); System.out.println(“街道地址:”+this.street); System.out.println(“市:”+this.city); System.out.println(“省:”+this.prov); System.out.println(“邮政编码:”+this.post); } }
进入题库练习
问答题
进入题库练习
问答题[说明]某公司的服务器上为每位员工提供了一定大小的存储空间,用于数据的备份。下面的程序面向公司员工,提供了本地计算机与服务器端之间文件传输的功能。主要操作介绍如下:(1)连接服务器:员工需要输入用户名和口令才能连接到服务器端,checkUser函数用于检查用户名和口令是否合法,返回真假值。(2)上传文件:从本地计算机上传文件到服务器。员工可以在本地文件列表中选择一个或多个文件,这些文件通过上传操作被复制到服务器端指定的某个文件夹中;(3)下载文件:从服务器端下载文件到本地。在开发过程中,本地驱动器列表框名为Drive1,本地和服务器端目录列表框分别名为Dir1和Dir2,本地和服务器端文件列表框分别名为File1和File2,界面上有上至下四个按钮分别名为Command1至Command4。[VisualBasic代码]PrivateSubDrive1_Change()(1)’更新目录列表框的路径EndSubPrivateSubDir1_Change()File1.Path=Dir1.Path’更新文件列表框file1的路径EndSubPrivateSubDir2_Change()File2.Path=Dir2.Path’更新文件列表框file2的路径EndSub’连接服务器PrivateSubCommand1_Click()Dimuser,passwordAsStringuser=(2)(“请输入用户名:”)password=(2)(“请输入口令:”)IfcheckUser(user,password)Then’若用户名和口令正确Dir2.Path=……’打开服务器上某一指定目录Else:MsgBox“口令错误,请重试!”EndIfEndSub’上传文件PrivateSubCommand2_Click()DimfsoAsnewFileSystemObject,fAsFile,iAsIntegerIfFile1.FileName=""Then’判断是否已经选中文件MsgBox“请选择本地的文件!”ExitSubEndIf’创建文件系统对象Setfso=CreateObject(“Scripting.FileSystemObject”)’上传文件Fori=0To(3)’遍历文件列表框File1中的全体文件If(4)Then’若该文件被选中Setf=fso.(5)(Dir1.Path&“/”&File1.List(i))f.CopyDir2.Path&“/”&File1.List(i),True’复制文件至服务器端EndIfNextFile2.RefreshEndSub’下载文件PrivateSubCommand3_Click()……EndSub’退出程序PrivateSubCommand4_Click()EndEndSub
进入题库练习
问答题[说明] 本程序接收输入的学生信息,包括学号、姓名、成绩,原样输出信息并计算学生的平均成绩。其中学生类Stud除了包括no(学号)、name(姓名)和grade(成绩)数据成员外,还有两个静态变量 sum和num,分别存放总分和人数,另有一个构造函数、一个普通成员函数disp()和一个静态成员函数avg()用于计算平均分。[Java代码]public class Stud public int no; public String name; public double grade; public (1) double sum=0; public static int num=0; public Stud(int no,String name,double grade) this.no = no; this.name = name; this.grade = grade; this.sum= (2) ; (3) ; public static double avg() return (4) ; public void disp() System.out.println(this.no+"/t"+this.name+"/t"+this.grade); public static void main(String[] args) Stud []students = new Stud (1,"Li", 81), new Stud(2,"Zhao",84.5), new Stud(3,"Zhang", 87); System.out.pfintln("no/tname/tgrade"); students[0].disp(); students[1].disp(); students[2].disp(); System.out.println("avg="+ (5) );
进入题库练习
问答题【说明】 设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。 【函数】 void Locate( int while(p!=frist if(p! =first) /*链表中存在x*/ (2) ; <结点类型说明> * current = P; /*从链表中摘下这个结点*/ Current -> prior -> next = current -> next; Current -> next -> prior = current -> prior; P = current -> prior; /*寻找重新插入的位置*/ While(p! =first Current-> next = (4) ; /*插入在P之后*? Current -> prior = P; P -> next -> prior = current; P->next= (5) ; else printf("Sorry. Not find! /n"); /*没找到*/
进入题库练习
问答题【说明】下列流程图用于从数组K中找出一切满足:K(I)+K(J)=M的元素对(K(I),K(J))(1≤I≤J≤N)。假定数组K中的N个不同的整数已按从小到大的顺序排列,M是给定的常数。【流程图】此流程图1中,比较“K(I)+K(J):M”最少执行次数约为{{U}}(5){{/U}}。
进入题库练习
问答题[说明]下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和n,假定m大于等于n,算法的主要步骤为:(1)以n除m并令r为所得的余数;(2)若r等于0,算法结束;n即为所求;(3)将n和r分别赋给m和n,返回步骤(1)。[流程图][问题1]将流程图中的(1)~(4)处补充完整。[问题2]若输入的m和n分别为27和21,则A中循环体被执行的次数是{{U}}(5){{/U}}。
进入题库练习
问答题【说明】 实现矩阵(3行3列)的转置(即行列互换)。 例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 【函数】 int fun(int array[3][3]) { int i,j,t; for(i=0;{{U}} (1) {{/U}};i++) for(j=0;{{U}} (2) {{/U}};j++) { t=array[i][j]; {{U}} (3) {{/U}}; {{U}} (4) {{/U}}; } } } main() { int i,j; int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; clrscr(); for (i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("/n"); } fun({{U}} (5) {{/U}}); printf("Converted array:/n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%7d",array[i][j]); printf("/n"); } }
进入题库练习
问答题【说明】 以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或'/t'、'/n'结束的字符串。其中6种关键字在程序中已经给出。 【程序】 #include <stdio.h> #include <stdlib.h> FILE *cp; char fname[20], buf[100]; int NUM; struct key { char word[10]; int count; }keyword[]={ "if", 0, "char", 0, "int", 0, "else", 0, "while", 0, "return", 0}; char *getword (FILE *fp) { int i=0; char c; while((c=getc(fp))!= EOF if(c==EOF) return (NULL); else buf[i++]=c; while((c=fgetc(fp))!=EOF buf[i]='/0'; return(buf); } void lookup(char *p) { int i; char *q, *s; for(i=0; i<NUM; i++) { q={{U}} (2) {{/U}}; s=p; while(*s break; } } return; } void main() { int i; char *word; printf("lnput file name:"); scanf("%s", fname); if((cp=fopen(fname, "r"))==NULL) { printf("File open error: %s/n", fname); exit(0); } NUM=sizeof(keyword)/sizeof(struct key); while({{U}} (5) {{/U}}) lookup(word); fclose(cp); for(i=0;i<NUM;i++) printf("keyword:%-20s count=%d/n",keyword[i].word,keyword[i].count); }
进入题库练习
问答题[说明] 二叉树的二叉链表存储结构描述如下:lypedef struct BiTNode datatype data; street BiTNode *lchiht, *rchild; /*左右孩子指针*/ BiTNode, *BiTree; 下列函数基于上述存储结构,实现了二叉树的几项基本操作: (1) BiTree Creale(elemtype x, BiTree lbt, BiTree rbt):建立并返回生成一棵以x为根结点的数据域值,以lbt和rbt为左右子树的二叉树; (2) BiTree InsertL(BiTree bt, elemtype x, BiTree parent):在二叉树bt中结点parent的左子树插入结点数据元素x; (3) BiTree DeleteL(BiTree bt, BiTree parent):在二叉树bt中删除结点parent的左子树,删除成功时返回根结点指针,否则返回空指针; (4) frceAll(BiTree p):释放二叉树全体结点空间。[函数]BiTree Create(elemtype x, BiTree lbt, BiTree rbt) BiTree p; if ((p = (BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL; p->data=x; p->lchild=lbt; p->rchild=rbt; (1) ;BiTree InsertL(BiTree bt, elemtype x,BiTree parent) BiTree p; if (parent= =NULL) return NULL; if ((p=(BiTNode *)malloc(sizeof(BiTNode)))= =NULL) return NULL; p->data=x; p->lchild= (2) ; p->rchild= (2) ; if(parent->lchild= =NULL) (3) ; else p->lchild= (4) ; parent->lchild=p; return bt;BiTree DeleteL(BiTree bt, BiTree parent) BiTree p; if (parent= =NULL||parent->lchild= =NULL) return NULL; p= parent->lchild; parent->lchild=NULL; freeAll( (5) ); return bt;
进入题库练习
问答题阅读以下说明和C函数,将应填入{{U}} (n) {{/U}}处的字句写在答题纸的对应栏内。 {{B}}[{{/B}}说明1{{B}}]{{/B}} 函数Counter(int n, int w[])的功能是计算整数n的二进制表示形式中1的个数,同时用数组w记录该二进制数中1所在位置的权。 例如,十进制数22的二进制表示为10110。对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)。 {{B}}[{{/B}}C函数1{{B}}]{{/B}} int Counter(int n,int w[]) { int i =0,k=1; while({{U}} (1) {{/U}}) { if (n% 2) w[i ++] =k; n=n/2;{{U}} (2) {{/U}}; } return i; } {{B}}[{{/B}}说明2{{B}}]{{/B}} 函数Smove(int A[],int n)的功能是将数组中所有的奇数都放到所有偶数之前。其过程为:设置数组元素下标索引i(初值为0)和j(初值为n-1),从数组的两端开始检查元素的奇偶性。若A[i]、A[j]都是奇数,则从前往后找出一个偶数,再与A[j]进行交换;若A[i]、A[j]都是偶数,则从后往前找出一个奇数,再与A[i]进行交换;若A[i]是偶数而A[j]是奇数,则交换两者,直到将所有的奇数都排在所有偶数之前为止。 {{B}}[{{/B}}C函数2{{B}}]{{/B}} void Smove(int A[],int n) { int temp,i=0,j=n-1; if(n<2) return; while (i<j){ if(A[i] % 2==1 } elseif(A[i]% 2 ==0 } else { if({{U}} (5) {{/U}}) { temp=A[i];A[i]=A[j];A[j]=temp; } i++, j--; } } }
进入题库练习
问答题【说明】 实现连通图G的深度优先遍历(从顶点v出发)的非递归过程。 【算法】 第一步:首先访问连通图G的指定起始顶点v; 第二步:从V出发,访问一个与v (1) p,再从顶点P出发,访问与p (2) 顶点q,然后从q出发,重复上述过程,直到找不到存在 (3) 的邻接顶点为止。 第三步:回退到尚有 (4) 顶点,从该顶点出发,重复第二、三步,直到所有被访问过的顶点的邻接点都已被访问为止。 因此,在这个算法中应设一个栈保存被 (5) 的顶点,以便回溯查找被访问过顶点的未被访问过的邻接点。
进入题库练习
问答题试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。[说明]本流程图用于计算菲波那契数列{a1=1,a2=l,…,an=an-1+an-2|n=3,4,…)的前n项(n≥2)之和S。例如,菲波那契数列前6项之和为20。计算过程中,当前项之前的两项分别动态地保存在变量A和B中。[流程图]
进入题库练习
问答题【说明】 函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下: #define MAXSIZE 32 typedef struct int * elem; /*栈的存储区*/ int max; /*栈的容量,即栈中最多能存放的元素个数*/ int top; /*栈顶指针*/ Stack; 【代码】 int InitStack(Stack * S,int n) /*创建容量为n的空栈*/ S -> elem = (int*) malloc(n*sizeof(int)); if(S -> elem == NULL) return-1 S->max=n; (1) =0;return 0; int Push (Stack * s,int item) /*将整数item压入栈顶*/ if(S->top==S->max)printf("Stack is full! /n");return-1; (2) = item; return 0 int StackEmpty(Stack S) return(! S. top)? 1:0; /*判断栈是否为空*/ int Pop(Stack * S) /*栈顶元素出栈*/ if(! S->top) printf("Pop an empty stack! /n") ;return -1; return (3) ; void MultibaseOutput(long n,int B) int m;Stack S if (InitStack( return; do if( Push( return; n= (5) ; while(n!=0); while(!StackEmpty(S)) /*输出B进制的数*/ m = Pop( if(m<10) printf("%d",m) ;/*小于10,输出数字*/ else printf("%c",m+55); /*大于或等于10,输出相应的字符*/ printf( "/n") ;
进入题库练习
问答题[说明] 以下程序的功能是实现堆栈的一些基本操作。堆栈类stack共有三个成员函数:empty判断堆栈是否为空;push进行人栈操作;pop进行出栈操作。[C++程序] #include "stdafx. h"#include <iostream, h>eonst int maxsize = 6;class stack float data[ maxsize]; int top;public: stuck(void); ~ stack(void); bool empty(void); void push(float a); float pop(void);;stack: :stack(void) top =0; cout < < "stack initialized." < < endl;stack:: ~stack(void) cout < <" stack destoryed." < < endl;bool stack:: empty (void) return (1) ;void stack: :push(float a) if(top= =maxsize) cout < < "Stack is full!" < < endl; return; data[top] =a; (2) ;float stack:: pop (void) if( (3) ) cout< < "Stack is undcrflow !" < < endl; return 0; (4) ; return (5) ;void main( ) stack s;coat < < "now push the data:";for(inti=l;i cout< <i< <" "; s. push(i);coat < < endl;cout< < "now pop the data:";for(i = 1 ;i < = maxsize ;i + + ) cout< <s. pop()< <" ";
进入题库练习
问答题 阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。 【说明】 1.HTTP ◆ HTTP请求消息示例 GET/index,htmlHTTP/1.1 Accept:image/gif,image/jpeg,*/* Accept-Language:zh-ch Accept-encoding:gzip,deflate User-Agent:Mozilla/4.0(compatible: MSIE6.0;Windows 2003) Host:localhost:8080 Connection:Keep-Alive ◆ HTTP响应消息示例 HTTP/1.1 200 OK Servert:Microsoft-IIS/6.0 Date:Mon,3 Jan 2008 13:13:33 GMT Content-Type:text/html Last-Modified:Mon,11 Jan 2008 13:23:42 GMT Contelit-Length:112 <html> ... </html> 2.相关类及主要成员函数 ◆ ServerSocket类 服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象,类中的主要成员函数如表6-16所示。 {{B}}表6-16 ServerSocket类的主要成员函数{{/B}} {{B}}函数名{{/B}} {{B}}功能说明{{/B}} ServerSocket(PORT) 构造函数 Accept() 返回建立连接的Socket类型的对象 Close() 关闭当前的ServerSocket类型的对象    ◆Socket类   基于连接的套接字,类中的主要成员函数如表6-17所示。                                         {{B}}表6-17 Socket类的主要成员函数{{/B}} {{B}}函数名{{/B}} {{B}}功能说明{{/B}} GetnetAddress() 返回InetAddress类型的对象,该对象封装了与该套接字所关联的客房机的IP地址 GetInputSffeam 返回当前对象所关联的输入流 GetOutputStream 返回当前对象所关联的输出流 Close() 关闭当前对象 【Java源程序:一个简单的Web服务器】 /* WebScrvc.java */ packageobjclass; import java.net.*; import java.io.*; public class WebServer{ public static final int PORT=8080; //Web服务器侦听的端口号 public static final String WEB_ROOT= SyStem.getProperty("user.dir")+ File.separator+"webroot"; //WEB_ROOT变量存放Web服务器工作目录,HTML, GIF图片等静态文件资源 private static final String SHUTDOWN_COMMAND="/shutdown"; //SHUTDOWN_COMM_AND变量保存关闭服务器的命令 private Boolean shutdown=false; //是否收到关闭服务器命令的标志 public static void main(Sting[] args) { WebServer server=new WebServer(); Server.await () } public void await() { ServerSocket serverSocket = null; try { serverSocket = new{{U}} (1) {{/U}}; //创建侦听端口号为PORT的ServerSocket类型的对象 System.out.println ("WebServerStarted!"); } catch(IOException e) { e.printStackTrace (); SyStem. exit (1); } while(!shutdown) { //循环等待客房端连接 Socket socket = null; InputStream input = null; OutputStream output = null; try{ Socket ={{U}} (2) {{/U}}; //创建来自客房端的连接套接字 Input = socket.{{U}} (3) {{/U}}; //创建输入流 Output = socket.{{U}} (4) {{/U}}; //创建输出流 Request request = new Request (input); //创建request对象 Request.{{U}} (5) {{/U}}; //解析客户端HTTP请求 Response response = new ReSponse(output); //创建Response对象 response, setRequest (request); //将request对象传递给response对象 response.{{U}} (6) {{/U}}; //给客户端发送所请求的静态资源 {{U}} (7) {{/U}}; //关闭连接套接字 shutdown = request.{{U}} (8) {{/U}}.equals (SHUTDOWN_COMMAND); //凑数当前HTTP请求中的URL是否是关闭服务器命令 } Catch(Exception e) { e.printStackTrace (); continue; } } } } /* Request.java */ package objclass; import java.io.InputStream; import java.iO.IOException; public Class Request{ private InputStream input; private String url; public Request(InputStream input){this.input = input;} public void parse() {... parseUrl() ;...} //解析客户端HTTP请求消息 private String parseUrl(String requestString){...} //解析客户端HTTP请求中的URL public String getUrl(){return url;} } /* Response.java */ package objclass; import java.io.*; public class Response{ private static final int BUFFER_ SIZE=1024; Request request; OutputStream output; public Response(Output Strearm output) {this.output=output;} public void setRequest(Request request){this.request=request;} public void sendStaticResource()throwsIOmxception{...} //向客户端发送所请求的静态资源 }
进入题库练习
问答题【说明】 以下【C程序】的功能是从文件text_01.ini中读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到文件word_xml.out中。 该C程序采用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立。然后中序遍历该二叉树,将遍历经过的二叉树上节点的内容输出。 程序中的外部函数 int getword(FILE *fpt,char *word) 从与fpt所对应的文件中读取单词置入word,并返回1;若已无单词可读,即到文件尾部时,则函数返回0。 【C程序】 #include <stdio.h> #include <malloc.h> #include <ctype.h> #include <string.h> #define INF "TEXT_01.INI" #define OUTF "WORD_XML.OUT" typedef struct treenode { char *word; int count; struct treenode *left, *right; } BNODE; int getword(FILE *fpt,char *word); void binary tree(BNODE **t,char *word) { BNODE *ptr, *p; int cmpres; p = NULL; {{U}} (1) {{/U}}; while (ptr) { /*寻找插入位置*/ cmpres = strcmp(word,{{U}} (2) {{/U}}); /* 保存当前比较结果*/ if (!cmpres) { {{U}} (3) {{/U}} return; } else { {{U}} (4) {{/U}}; ptr = cmpres > 0 ? ptr->right : ptr->left; } } ptr = (BNODE *)malloc(sizeof(BNODE)); ptr->right = ptr->left = NULL; ptr->word = (char *)malloc(strlen(word)+1); strcpy(ptr->word,word); ptr->count = 1; if (p == NULL) {{U}} (5) {{/U}}; else if (cmpres > 0) p->right = ptr; else p->left = ptr; } } void midorder(FILE *fpt, BNODE *t) { if ({{U}} (6) {{/U}}) return; midorder(fpt , t->left); fprintf(fpt , " %s %d/n " , t->word , t->count); midorder(fpt , t->right); } void main() { FILE *fpt; char word[40]; BNODE *root = NULL; if ((fpt = fopen(INF , "r")) == NULL) { printf("Can't open file %s/n",INF); return; } while (getword(fpt,word) == 1) binary_tree({{U}} (7) {{/U}}); fclose(fpt); fopen(OUTF,"w"); midorder(fpt, root); fclose(fpt); }
进入题库练习