计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
程序员应用技术
程序员基础知识
程序员应用技术
问答题试题一(共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); }
进入题库练习
问答题【说明】函数voidrcr(inta[],intn,intk)的功能是:将数组a中的元素s[0]~9[n-1]循环向右平移k个位置。为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标p,并将a[P]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[0]的备份值移到正确位置。若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至9[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。voidrcr(inta[],intn,intk){inti,j,t,temp,count;count=0;/*记录移动元素的次数*/k=k%n;if({{U}}(1){{/U}}){/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/i=0while(count<n){j=i;t=i;temp=a[1];/*备份a[i]的值*//*移动相关元素,直到计算出a[i]应移动到的目标位置*/while((j={{U}}(2){{/U}})!=i){a[t]=a[j];t={{U}}(3){{/U}};count++;}{{U}}(4){{/U}}=temp;count++;{{U}}(5){{/U}};}}}
进入题库练习
问答题【说明】 魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。 奇数阶魔方阵的生成方法如下: (1)第一个位置在第一行正中。 (2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。 (3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为: 8 1 6 3 5 7 4 9 2 了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。 【程序】 #include <stdio.h> #define MAX 15 void main() int n; int m=1; int i,j; int a[MAX][MAX]; printf("Please input the rank of matrix:"); scanf("%d", i=0; (1) while( (2) ) a[i][j]=m; m++; i--; j++; if((m-1)%n==0 if(j>(n-1)) //超出上界 (4) if(j>(n-1)) (5) for(i=0;i<n;i++) //输出魔方阵 for(j=0;j<n;j++) if(a[i][j]/10==0) printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐 else printf("%d ",a[i][j]); if(j==(n-1)) printf("/n");
进入题库练习
问答题【说明】 设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,则此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去,直到所有的人都出圈为止。 现要求按出圈次序,每10人一组,给出这n个人的顺序表。 设n=100,s=1,m=10。 (1)将1到n个人的序号存入一维数组p中; (2)若第i个人报数后出圈,则将p置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置: (3)重复第(2)步,直至圈中只剩下p[1]为止。 #include<stdio.h> #define N 100 #define S 1 #define M 10 void main() { int p[100],n,s,m; m=M; n=N; s=S; int i,j,s1,w; s1=s; for(i=1;{{U}} (1) {{/U}};i++) (2)=i; for(i=n;i>=2;i--) { s1={{U}} (3) {{/U}}; if(s1==0)s1=i; w={{U}} (4) {{/U}}; for(j=s1;j<i;j++) p[j-1]=p[j]; p[i-1]={{U}} (5) {{/U}}; printf("%4d",p[i])} }
进入题库练习
问答题【说明】喜迎2008年北京奥运会!以下【C程序】能将一个给定汉字(例如,奥运会的“会”字)的点阵逆时针旋转90°,并输出旋转前后的点阵数据及字形。图1-15是汉字“会”字的16×16点阵字形,用数字0表示空白位置,用数字1表示非空白位置,“会”字的第1行即可表示成如下的{0,1}序列:0000000100000000如果把它看做一个字的16个位,“会”字的第1行可以用十六进制数0100来表示。同理,“会”字的第2行可以用十六进制数0240表示,第3行可以用十六进制数0420表示……依此类推,用16个双字节整型数即可存放一个汉字点阵字形。“会”字的点阵数据及字形如图1-15的左半部分所示。将一个汉字逆时针旋转90°,就是把该汉字点阵的最右列作为旋转后新点阵的第1行,次最右列作为旋转后新点阵的第2行……依此类推来形成一个旋转后的点阵字形。图1-15的右半部分就是将“会”字逆时针旋转90°后的点阵数据和字形(提示:读者可将书本顺时针旋转90°,以查看旋转90°后的点阵字形)。在【C程序】中,数组old存放着“会”字的16个双字节整型点阵数据。函数turnleft能将该点阵数据逆时针旋转90°,旋转后的点阵数据存放在数组new中。函数display能将旋转前后的点阵数据加以编辑,用字符“.”表示值为0的位,用字符“x”表示值为1的位,从而将旋转前后的点阵按行输出其十六进制的数据和字形,如图1-15所示。【C程序】#include<stdio.h>#defineEMPTY'.'#defineNONEMPTY'x'#defineLEFT0#defineRIGHT1main(){staticunsignedold[16]={0x0100,0x0240,0x0420,0x0810,0x1004,0x23c2,0x4001,0x8ff8,0x0100,0x0200,0x0400,0x0800,0xl000,0x2004,0x7ffe,0x0001};unsignednew[16];turnleft(old,new);display(old,new);}turnleft(old,new)unsignedold[],new[];{introw,k;for(row=0;row<16;row++)for({{U}}(1){{/U}};k<16;k++)new[row]|=((old[k]>>{{U}}(2){{/U}})}display(old,new)unsigned*old,*new;{charout[2][17],letter[2];introw,col;letter[O]=EMPTY;letter[1]=NONEMPTY;out[LEFT][16]=out[RIGHT][16]={{U}}(4){{/U}};for(row=0;row<16;row++,old++,new++){for(col=0;co1<16;++col){out[LEFT][col]=letter[({{U}}(5){{/U}})out[RIGHT][col]=letter[({{U}}(6){{/U}})}printf("/n%4x%s",*old,printf("%4x%s",*new,}}
进入题库练习
问答题试题二(15 分,每空3 分) 阅读以下函数说明和C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [函数2.1 说明] 函数int fun1(int m,int n)的功能是:计算并返回正整数m 和n 的最大公约数。 [函数2.1] int fun1(int m,int n) { while( (1) ) { if ( m > n ) m = m - n; else n = n - m; } (2) ; } [函数2.2 说明] 函数long fun2(char *str)的功能是:自左至右顺序取出非空字符串str 中的数字字符形成一个十进制整数(最多8 位)。 例如,若字符串str 的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。 [函数2.2] long fun2(char *str) { int i = 0; long k = 0; char *p = str; while ( *p != '/0' ++i; } (5) ; } return k; }
进入题库练习
问答题[说明]设某单位Acess数据库中有一张员工信息表,其中记录了员工编号、姓名、性别等基本信息。下面的应用程序利用数据控件(Data)实现了对这张表中记录的增加、删除和修改操作。其运行界面如下:在开发过程中,数据控件Data1与员工数据表相连接,各文本框、“性别”组合列表框Combo1、“政治面貌”组合列表框Combo2都分别与数据表的相应字段绑定,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDel、CmdUpdate和CmdExit。[VisualBasic代码]PrivateSubForm_Load()'加载窗体Combo1.(1)"男"Combo1.(1)"女"Combo2.(1)"党员"Combo2.(1)"团员"Combo2.(1)"群众"EndSubPrivateSubCmdAdd_Cliek()'增加记录Datal.Recordset.AddNewEndSubPrivateSubCmdDel_Click()'删除记录Datal.Recordset.(2)Datal.Recordset.MoveNextEndSubPrivateSubCmdUpdate_Click()'修改记录IfDatal.ReadOnly=(3)AndDatal.Recordset.UpdatableThenDatal.Recordset.EditDatal.Recordset.(4)ElseMsgBox"数据表不允许修改!"EndIfEndSubPrivateSubCmdExit_Click()'退出程序DimretAsLongret:MsgBox("真的要退出吗?",vbQuestion+vbYesNo,"退出")If(5)ThenDatal.Reeordset.CloseEndEndffEndSub
进入题库练习
问答题[说明]设有一张学生成绩表scores存放在Access数据库Student中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用ADOData和DataGrid控件实现了对成绩数据的基本管理,其操作包括:(1)添加新记录:单击“添加”按钮,光标将指向最后一条数据记录,在其后编辑好新的数据记录后,再单击“更新”按钮,该数据即被加入成绩表;(2)删除记录:单击“删除”按钮将删除当前所指记录,其后的数据记录依次上移;(3)更新记录:直接编辑某条已有记录,再单击“更新”按钮将更新成绩表;(4)记录排序:选中单列字段后,单击“排序”按钮,记录集将按该字段升序排列。程序的运行界面为:在开发过程中,数据库连接对象使用了名为Adodc1的ADOData控件,数据显示区域使用了名DataGnd1的DataGrid控件,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDel、CmdUpdate、CmdRefresh、CmdSort和CmdExit。[VisualBasic代码]Dimconn,database,tableAsStringPrivateSubForm_Load()database="E:/Student.mdb"’设置要访问的数据库conn="Provider=Microsoft.Jet.OLEDB.4.0;DataSouse="&databaseAdodc1.ConnectionString=conn’设置连接字符串table="scores"Adode1.(1)=table’设置所要访问的数据表SetDataGrid1.(2)=Adodc1EndSubPrivateSubCmdAdd_Click()’“添加”按钮的单击事件响应过程Adodc1.Recordset.(3)EndSubPrivateSubCmdDel_Click()’“删除”按钮的单击事件响应过程Adodc1.Recordset.DeleteAdodc1.Reeordset.MoveNextEndSubPrivateSubCmdUpdate_Click()’“更新”按钮的单击事件响应过程Adode1.Reeordset.UpdateBatchadAffectAllEndSubPrivateSubCmdRefresh_Cliek()’“刷新”按钮的单击事件响应过程Adodc1.RefreshEndSubPrivateSubCmdSort_Cliek()’“排序”按钮的单击事件响应过程IfDataGrid1.SelStartCol<0OrDataGridl.SelStartCol(4)DataGrid1.SelEndColThenMsgBox“请选择某一字段(列)!”ExitSubEndIfAdodc1.RecordSource="SELECT*FROM"&table&"orderby"&_DataGrid1.Columns((5)).DataFieldAdodc1.RefreshEndSubPrivateSubCmdExit_Click()’“退出”按钮的单击事件响应过程EndEndSub
进入题库练习
问答题[说明] 邻接表是图的一种顺序存储与链式存储结合的存储方法。其思想是:对于图G中的每个顶点 vi,将所有邻接于vi的顶点vj连成一个单链表,这个单链表就称为顶点vi的邻接表,其中表头称作顶点表结点VertexNode,其余结点称作边表结点EdgeNode。将所有的顶点表结点放到数组中,就构成了图的邻接表AdjList。邻接表表示的形式描述如下: #define MaxVerNum 100 /*最大顶点数为100*/ typedef struct node{ /*边表结点*/ int adjvex; /*邻接点域*/ struct node *next; /*指向下一个边表结点的指针域*/ }EdgeNode; typedef struct vnode{ /*顶点表结点*/ int vertex; /*顶点域*/ EdgeNode *firstedge; /*边表头指针*/ }VertexNode; typedef VertexNode AdjList[MaxVerNum]; /*AdjList是邻接表类型*/ typedef struct{ AdjList adjlist; /*邻接表*/ int n; /*顶点数*/ }ALGraph; /*ALGraph是以邻接表方式存储的图类型*/ 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。 下面的函数利用递归算法,对以邻接表形式存储的图进行深度优先搜索:设初始状态是图中所有顶点未曾被访问,算法从某顶点v出发,访问此顶点,然后依次从v的邻接点出发进行搜索,直至所有与v相连的顶点都被访问;若图中尚有顶点未被访问,则选取这样的一个点作起始点,重复上述过程,直至对图的搜索完成。程序中的整型数组visited[]的作用是标记顶点i是否已被访问。 [函数] void DFSTraverseAL(ALGraph *G)/*深度优先搜索以邻接表存储的图G*/ { int i; for(i=0;i<{{U}} (1) {{/U}};i++) visited[i]=0; for(i=0;i<{{U}} (1) {{/U}};i++)if({{U}} (2) {{/U}}) DFSAL(G,i); } void DFSAL(ALGraph *G,int i) /*从Vi出发对邻接表存储的图G进行搜索*/ { EdgeNode *p; {{U}} (3) {{/U}}; p={{U}} (4) {{/U}}; while(p!=NULL) /*依次搜索Vi的邻接点Vj*/ { if(! visited[{{U}} (5) {{/U}}]) DFSAL(G,{{U}} (5) {{/U}}); p=p->next; /*找Vi的下一个邻接点*/ } }
进入题库练习
问答题【函数2.1说明】 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 【函数2.1】 Fun1 (int n) { int i; for(i=2;i<=n;i++) { while ({{U}} (1) {{/U}}) { if (n%i==0) { printf("%d*",i); {{U}}(2) {{/U}}; } else break; } } printf("%d",/n); } 【函数2.2说明】 下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第 3、4、5只猴子都是这样做的,问海滩上原来最少有多少个猴子? 【函数2.2】 main() { int i,m,j,k,count; for(i=4;i<10000;i+=4) { count=0; {{U}} (3) {{/U}}; for(k=0;k<5;k++)   { {{U}} (4) {{/U}}; i=j; if(j%4==0) {{U}} (5) {{/U}}; else break; } i=m; if(count==4) { printf("%d/n",count); break; } } }
进入题库练习
问答题[说明]设有一张学生成绩表存放在Acess数据库中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用数据控件(Data)实现了对这张数据表中记录的增加、删除、修改、查找和刷新操作,其中,删除一条记录后,要求界面显示下一条记录;要查找记录,首先要求用户输入学生姓名,程序查找并显示匹配的第一条记录;执行刷新操作后,要求界面显示数据表的第一条记录。程序的运行界面如下:在开发过程中,数据控件Datal与成绩数据表相连接,各文本框与数据表相应字段绑定,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDelete、CmdUpdate、CmdFind、CmdRefresh和CmdClose。[VisualBasic代码]PrivateSubCmdAdd_Click()’增加新记录Datal.Recordset.{{U}}(1){{/U}}EndSubPrivateSubCmdDelete_Click()’删除记录Data1.Recoldset.DeleleData1.Recoldset.{{U}}(2){{/U}}EndSubPnvateSubCmdUpdate_Click()’修改记录Data1.Reeordset.EditData1.Recordset.UpdateEndSubPrivateSubCmdFind_Click()’查找记录Dimname,searchAsStringname=InputBox("请输入要查询的姓名:")scarch="姓名='"&name&"'"’Data1.Recordset.MoveFirstDara1.Recordset.FindFirstscarchIfData1.Reeoldset.{{U}}(3){{/U}}ThenMsgBox"姓名为"&name&"的记录未找到!"EndIfEndSubPrivateSubCmdRefresh_Click()’刷新记录{{U}}(4){{/U}}EndSubPrivateSubCmdClose_Click()’退出程序Daral.Recordset.{{U}}(5){{/U}}EndEndSub
进入题库练习
问答题[说明]信息处理过程中经常需要将图片或汉字点阵作旋转处理。一个矩阵以顺时针方向旋转90°后可以形成另一个矩阵,如下图所示。流程图a描述了对n*n矩阵的某种处理。流程图b是将矩阵A顺时针旋转90°形成矩阵B的具体算法。
进入题库练习
问答题【函数1.1说明】 函数strcpy(char*to,char*from)将字符串from复制到字符串to。 【函数1.1】 void strcpy(char*to,char*from) while ( (1) ); 【函数1.2说明】 函数merge(int a[],int n,int b[],int m,int*c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。 【函数1.2】 void merge(int a[ ],int n,int b[ ] ,int m,int * c) int i,j; for(i=j=0;i<n ) *c++=a[i] <b[j]?a[i++]:b[j++]; while( (2) )*c++=a[i++]; while( (3) )*c++=b[j++]; 【函数1.3说明】 递归函数sum(int a[],int n)的返回值是数组a[]的前n个元素之和。 【函数1.3】 int sum(int a[] ,int n) if( n >0) return (4) ; else (5) ;
进入题库练习
问答题[问题3] 在上述流程图2-1和图2-2的算法中, (1)矩阵A第i行第j列的元素A(i,j)被复制到矩阵B中的哪个位置? (2)A(i,j)后来又被复制到矩阵C中的哪个位置? (3)填补流程图2-2中的空缺。
进入题库练习
问答题【说明】 设计希赛IT教育研发中心的工资管理系统,该中心主要有3类人员:经理、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;销售员拿固定工资1000元,然后再按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5‰。 按要求设计一个基类employee,销售员类salesman,经理类manager,销售经理类 salesmanager。 程序5-1是类employee的模块内容,程序5-2是类salesman的类模块内容,程序5-3是类manager的模块内容,程序5-4是类salesmanager的模块内容。在主测试程序中,输入张三所管部门月销售量10000后的输出结果如下: 张三所管部门月销售量:10000 销售经理:张三 编号:1001 本月工资:5050 #include <iostream.h> #include <string.h> class employee protected: int no; char *name; float salary; public: employee(int num,char *ch) no=num; name=ch; salary=0; virtual void pay()=0; virtual void display() cout<<"编号:"<<no<<endl; cout<<"本月工资:"<<salary<<endl; ; 【程序5-2】 class salesman: (1) protected: float commrate, sales; public: salesman(int num,char *ch):employee(num,ch) commrate=0.04; void pay() cout<<name<<"本月销售额:"; cin>>saies; salary=sales*commrate+1000; void display() cout<<"销售员:"<<name<<endl; employee::display(); ; 【程序5-3】 class manager: (1) protected: float monthpay; public: manager(int num,char *ch):employee(num,ch) monthpay=8000; void pay() salary=monthpay; void display() cout<<"经理:"<<name<<endl; employee::display(); ; 【程序5-4】 class salesmanager: (2) public: salesmanager(int num,char *ch): (3) monthpay=5000; commrate=0.005; void pay() cout<<name<<"所管部门月销售量:"; cin>>sales; (4) void display() cout<<"销售经理:"<<name<<endl; (5) ; void main() //主测试函数 salesmanager p1 (1001,"张三"); p1.pay(); p1.display();
进入题库练习
问答题[说明]若矩阵Am×n中存在某个元素aij满足:aij…是第i行中最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。下面程序的功能是输出A中所有鞍点,其中参数A使用二维数组表示,m和n分别是矩阵A的行列数。[程序]voidsaddle(intA[][],intm,intn){inti,j,min;for(i=0;i<m;i++){min:{{U}}(1){{/U}};for(j=1;j<n;j++)if(A[i][j]<min){{U}}(2){{/U}};for(j=0;j<n;j++)if({{U}}(3){{/U}}){p=0;while(p<mif(p>=m)printf("%d,%d,%d/n",i,j,min);}}}[问题1]将函数代码中的(1)~(4)处补充完整[问题2]在上述代码的执行过程中,若A为矩阵,则调用saddle(A,3,3)后输出是{{U}}(5){{/U}}。
进入题库练习