计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
程序员(初级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题[Java代码]
进入题库练习
问答题
进入题库练习
问答题阅读以下说明和C函数,将解答填入答题纸的对应栏内。 [说明] 函数del_substr(S,T)的功能是从头至尾扫描字符串S,删除其中与字符串T相同的所有子串,其处理过程为:首先从串S的第一个字符开始查找子串T,若找到,则将后面的字符向前移动将子串T覆盖掉,然后继续查找子串T,否则从串S的第二个字符开始查找,依此类推,重复该过程,直到串S的结尾为止。该函数中字符串的存储类型SString定义如下: typedef struct { char* ch; /*串空间的首地址*/ int length; /*串长*/ }SString; [C函数] void del_substr(SString* S, SString T) { iht i, j; if(S->length<1 ||T.length<1 ||S->length<T.length) return; i=0; /* i为串S中字符的下标*/ for (;;) { j =0; /*j为串T中字符的下标*/ while(i<S->length j++; } else { i={{U}} (1) {{/U}};j=0; /*i值回退,为继续查找T做准备*/ } } if({{U}} (2) {{/U}}){ /*在s中找到与T相同的子串*/ i={{U}} (3) {{/U}}; /*计算s中子串T的起始下标*/ for(k=i+T.length;k<S->length;k++)/* 通过覆盖子串T进行删除*/ S->ch[{{U}} (4) {{/U}}] =S->ch[k]; S->length={{U}} (5) {{/U}}; /* 更新S的长度*/ } else break; /* 串S中不存在于串T*/ } }
进入题库练习
问答题【函数2.1说明】 函数palindrome(char s[])的功能是,判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。 【函数2.1】 int palindrome( char s[ ] ) char * pi, * pj; pi=s; pj=s+strlen(s)-1; while( pi<pjpj -- if( (2) )return -1; else return 0; 【函数2.2说明】 函数f(char * str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。 例如若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”、“4”和“5”。 【函数2.2】 void f( char * str, char del) int i ,j ,len; len = strlen (str) i=0; while(i < len) while( (3) )i++; /*忽略连续的标志字符*/ /*寻找从str[i]开始直到标志字符出现的一个子字符串*/ j=i+1; while(str[j] != del /*给找到的字符序列置字符串结束标志*/ printf("%s/t", (5) ;
进入题库练习
问答题[函数2.1说明] 下面程序的功能是计算x和y的最小公倍数。[函数2.1]main() int m,n,d,r; seanf("%d %d", if(m<n) r=m;m=n;n=r; (1) ; while (d%n! =0) (2) ; printf("%d/n",d);[函数2.2说明] 下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。[函数2.2]#include <stdio.h>main() char c,preChar='/0'; c = getchar(); while(c! = '.') if( (3) ) putchar(c); else if(preChar! =' ') putchar(c); (4) ; c= (5) ;
进入题库练习
问答题阅读以下应用程序说明和C程序,将C程序段中(1)~(6)空缺处的语句填写完整。 【说明】 某大学征询学生意见,从各学院预选的n(n≤60)位优秀大学生中,评选出“十佳大学生”。以下【C程序】对各位学生选票进行相关的统计、排序等处理。 (1)各学院预选的优秀大学生按1,2,…顺序连续编号,每个编号用两个字符表示,即01,02,…。 (2)所回收的选票按以下格式存于文件source中,每行字符串对应一张选票。其中,姓名占10个字符,学院名称占30个字符,大学生编号占20个字符。 (3)对应名次的大学生编号可以有空缺,但必须用00表示。 (4)若编号超出规定范围,或编号重复出现,按照废票处理。 (5)按选票中所列“十佳大学生”顺序给出各名大学生的得分。评分标准如下: 一 二 三 四 五 六 七 八 九 十 15 12 9 7 6 5 4 3 2 1 (6)按各位大学生得分数由高到低顺序排队,并按以下格式列出“十佳大学生”排行表。 名次 大学生编号 合计得分 合计得票数 若得分相同,则得票数多的在前;若得分和得票数都相同,则编号小的在前。 以下【C程序】中所应用到的函数fopen、fclose和fgets都是I/O程序库中的函数。 【C程序】 #include <stdio. h> #define n 60 long int tn[n], td[n], score[n+1][10], order[n]; char s[80]; int mark[]=(15,12,9,7,6,5,4,3,2,1); FILE *fp, *fopen(); Main() { int c, g, k, I, j, b[10]; long int e, d, t, tt, dd; char * p; for(i=0; i<=n; i++) for(j=0; j<10; j++) score[i][j]=0; fP=fopen("source", "r"); /*以读方式打开文件source*/ p=fgets(s, 80, fp); /*读fp所指文件的下一行字符串于s*/ while(*p){ g=l; k=0; p+=40; while(k<10){ c=((*p++)-'0')*10+((*p++)-'0'); b[k++]=c) if(c<=n){ if(c) { i=0; While({{U}} (1) {{/U}}); If({{U}} (2) {{/U}}){g=0; break;} } else{g=0; break;} } If(g) For(i=0; i<k; i++) If(b[i]) {{U}}(3) {{/U}}; p=fgets(s, 80, fP); } Fclose(fp); /*关闭fp所指文件*/ For(i=1; i<n; i++){ For(t=0, d=0, j=0; j<10; j++){ t +=(e=score[i][j]); d +=e * mark[j]; } tn[i-1]=t; td[i-1]=d; order[i-1]=i; } For(i=0; i<n-1; i++){ k=i; for(j=i+1; j<n; j++) if((t=td[order[j]-1])>(d=td[order[k]-1])) k=j; else if(t==d){ tt={{U}} (4) {{/U}}; dd={{U}} (5) {{/U}}; for(c=0; c<10; c++) if((e={{U}} (6) {{/U}})>0){ k=j; break;} else if(e<0)break; } If(k!=i){ t=order[k]; order[k]=order[i]; order[i]=t; } } For(i=0; i<10; i++) Printf("%2d%2d%d%d/n", i+1, order[i], td[order[i]-1], tn[order[i]-1])); } }
进入题库练习
问答题[说明] 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是: 姓名:Smith 年龄:31 工资:2960 姓名:Smith 年龄:31 工资:3500 姓名:Mary 年龄:23 工资:2500 [C++程序] #include <iostream.h> #include <string.h> class employee{ char *name; //雇员姓名 short age; //年龄 float salary;//工资 public: employee(); void set_name(char *); void set_age(short a) {age=a;} void set_salary(float s) {salary=s;} {{U}} (1) {{/U}}; ~ employee(){delete[] name;} }; employee::employee() { name=""; age=0; salary=0.0; void employee::set_name(char *n) { name=new char[strlen(n)+1]; {{U}}(2) {{/U}} (name,n); } void employee::print() { cout<<"姓名":"<<name<<" 年龄:"<<agc<<" 工资:" <<salary<<endl; } void main() { char *na; short ag=0; float sa=0; {{U}} (3) {{/U}}; na=new char[10]; cin>>na>>ag>>sa; emp.set_name(na); emp.set_age(ag); emp.set_salary(sa); emp.print(); {{U}} (4) {{/U}} (3500.0); emp.print(); {{U}} (5) {{/U}}; emp.set_name("Mary"); emp.set_age(23); emp.set_salary(2500.0); emp.print(); }
进入题库练习
问答题【说明】 单击窗体上的“测试”(cmdTest)按钮,出现一个输入框,要求输入一串字符,将该字符串中的非字母字符删除后,显示在窗体中的一个文本框(txtShow)中。 【程序代码】 Private Sub cmdTest_Click( ) Dim strT1 ,strT2 As String Dim strCh As {{U}}(1) {{/U}} Dim intL As Integer Dim intl As Integer strT1 = {{U}}(2) {{/U}}("请输入一串字符","字符串输入") intL = {{U}}(3) {{/U}} strT2 = " " For intl = I To intL strCh = Mid ( strT1, intl, 1 ) If(strCh>"A"And{{U}} (4) {{/U}}) Or (strCh >"a" And suCh <"z" )Then strT2 = strT2 + strCh End If Next intl txtShow. Text= {{U}}(5) {{/U}} End sub
进入题库练习
问答题【说明】 本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下: 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9 【C++代码】 #include"stdio.h" #include"iostream,h" int array[11][11]; int temp; int ROW; void godown(int temp<=ROW;temp++) if(array[temp][a]==0) array[temp][a]={{U}} (1) {{/U}}; a++; } void goright(int temp<=ROW;temp++) if(array[b][temp]==0) array[b][temp]=m++; b--; } void goup(int temp>0;temp-) if(array[temp][c]==0) array[temp][c]=m++; c--; } void goleft(int temp>0;temp--) if(array[d][temp]==0) array[d][temp]=m++; {{U}}(2) {{/U}}; } void main() { int a,b,c,d,max,m; cin>>ROW; cout>>end1; for(a=1;a<=ROW;a++) for(b=1;b<=ROW;b++) {{U}} (3) {{/U}}; m=1; a=d=1; b=c=ROW; max={{U}} (4) {{/U}}; whiie(m<=max) { godown(m,a); {{U}} (5) {{/U}}(m,b); goup(m,c); goleft(m,d): } for(a=1;a<=ROW;a++) { for(b=1;b<=ROW;b++) printf("%3d ",array[a][b]); cout<<end1; } }
进入题库练习
问答题[说明] 循环队列的类型定义如下(其中队列元素的数据类型为datatype): typedef struct{ datatype data[MAXSIZE]; /*数据的存储区*/ int front,rear; /*队首、队尾指针*/ int num; /*队列中元素的个数*/ }c _ SeQueue; /*循环队*/ 下面函数及其功能说明如下: (1) c_SeQueue* Init_SeQueue():新建队列; (2) int ln_SeQueue( c_SeQueue *q, datatype x):将元素x插入队列q,若成功返回1否则返回0; (3) int Out_SeQueue (c_SeQueue *q, datatype *x):取出队列q队首位置的元素,若成功返回1否则返回0。 [函数] c_SeQueue* Init_SeQueue() { q=malloc(sizeof(c_SeQueue)); q->front=q->rear=MAXSIZE-1; {{U}} (1) {{/U}}; return q; } int In_SeQueue( c_SeQueue *q, datatype x) { if(q->num= =MAXSIZE) return 0; /*队满不能入队*/ else { q->rear={{U}} (2) {{/U}}; q->data[q->rear]=x; {{U}}(3) {{/U}}; return 1; /*入队完成*/ } } int Out_SeQueue( c_SeQueue *q, datatype *x) { if (q->num= =0) return 0; /*队空不能出队*/ else{ *x= {{U}}(4) {{/U}}; /*读出队首元素*/ q->front= {{U}}(5) {{/U}}; q->num- -; return 1; /*出队完成*/ } }
进入题库练习
问答题[说明]某公司的服务器上为每位员工提供了一定大小的存储空间,用于数据的备份。下面的程序面向公司员工,提供了本地计算机与服务器端之间文件传输的功能。主要操作介绍如下:(1)连接服务器:员工需要输入用户名和口令才能连接到服务器端,checkUser函数用于检查用户名和口令是否合法,返回真假值。(2)上传文件:从本地计算机上传文件到服务器。员工可以在本地文件列表中选择一个或多个文件,这些文件通过上传操作被复制到服务器端指定的某个文件夹中;(3)下载文件:从服务器端下载文件到本地。在开发过程中,本地驱动器列表框名为Drive1,本地和服务器端目录列表框分别名为Dir1和Dir2,本地和服务器端文件列表框分别名为File1和File2,界面上有上至下四个按钮分别名为Command1至Command4。[VisualBasic代码]PrivateSubDrive1_Change(){{U}}(1){{/U}}’更新目录列表框的路径EndSubPrivateSubDir1_Change()File1.Path=Dir1.Path’更新文件列表框file1的路径EndSubPrivateSubDir2_Change()File2.Path=Dir2.Path’更新文件列表框file2的路径EndSub’连接服务器PrivateSubCommand1_Click()Dimuser,passwordAsStringuser={{U}}(2){{/U}}(“请输入用户名:”)password={{U}}(2){{/U}}(“请输入口令:”)IfcheckUser(user,password)Then’若用户名和口令正确Dir2.Path=……’打开服务器上某一指定目录Else:MsgBox“口令错误,请重试!”EndIfEndSub’上传文件PrivateSubCommand2_Click()DimfsoAsnewFileSystemObject,fAsFile,iAsIntegerIfFile1.FileName=""Then’判断是否已经选中文件MsgBox“请选择本地的文件!”ExitSubEndIf’创建文件系统对象Setfso=CreateObject(“Scripting.FileSystemObject”)’上传文件Fori=0To{{U}}(3){{/U}}’遍历文件列表框File1中的全体文件If{{U}}(4){{/U}}Then’若该文件被选中Setf=fso.{{U}}(5){{/U}}(Dir1.Path&“/”&File1.List(i))f.CopyDir2.Path&“/”&File1.List(i),True’复制文件至服务器端EndIfNextFile2.RefreshEndSub’下载文件PrivateSubCommand3_Click()……EndSub’退出程序PrivateSubCommand4_Click()EndEndSub
进入题库练习
问答题【说明】 为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置。(假设R[]中的元素互不相同) [算法] 1.变量声明 X: Data Type i,j,low, high,mid,r:0..n 2.每循环一次插入一个R[i] 循环:i以1为步长,从2到n,反复执行。 (1)准备 X←R[i];{{U}} (1) {{/U}}; high←i-1; (2)找插入位置 循环:当{{U}} (2) {{/U}}时,反复执行。 {{U}} (3) {{/U}} 若X.key<R[mid].key 则high←mid-1; 否则{{U}} (4) {{/U}} (3)后移 循环:j以-1为步长,从{{U}} (5) {{/U}},反复执行。 R[j+1]←R[j] (4)插入 R[low]←X 3.算法结束
进入题库练习
问答题【说明】计算三角函数sinx给定精度e和n,若第k步后的结果为sin1,第k+1步后的结果为sin2,若|sin1·sin2|<e,则返回sin1的值。若没有达到精度e,但是步骤达到n步,则返回第n步后的值。其流程图如下所示:
进入题库练习
问答题阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]在股票交易中,股票代理根据客户发出的股票操作指示进行股票的买卖操作。其类图如下图所示。相应的Java代码附后。类图[Java代码]importJava.util.ArrayList;importjava.util.List;ClassStock{privateStringname;privateintquantity;publicStock(Stringname,intquantity){thiS.name=name;this.quantity=quantity;}publicvoidbuy(){System.out.println("[买进]:"+name+",数量:"+quantity);}publicvoidsell(){System.out.println("[卖出]:"+name+",数量:"+quantity);}}interfaceOrder{VOidexecute();}classBuyStock______Order{privateStockStock;publicBuyStock(Stockstock){______=stock;}publicvoidexecute(){stock.buy();}}//类SellStock实现和BuyStock类似,略clasSBroker{privateList<Order>orderList=newArrayList<Order>();DublicvoidtakeOrder(______Order){orderList.add(order);}publicvoidplaceorders(){for{______order:orderList){order.execute();}orderLiSt.clear();}}publicclassStockCommand{publicstaticvoidmain(String[]args){StockaStock:newStock("股票A",10);StockbStock=newStock("股票B",20);OrderbuyStockorder=newBuyStock(aStock);OrdersellStockOrder=newSellSt0Ck(bStoCk);Brokerbroker=newBroker();broker.takeOrder(buyStockorder);broker.takeOrder(sellStockOrder);broker.______;}}
进入题库练习
问答题【说明】某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入点AP(AccessPoin)。假设每个无线AP覆盖范围的半径是6米,因此必须使得每台笔记本电脑上的无线网卡到某个无线AP的直线距离不超过6米。为了简化问题,假设所有无线网卡在同一直线上,并且无线AP沿该直线放置。该问题可以建模为如图1-16所示,其中直线表示无线网卡所在的直线,实心正方形表示无线网卡。现利用贪心策略实现用尽可能少的无线AP覆盖所有的无线网卡。实现贪心算法的流程如图1-17所示。其中,①d[i](1≤i≤N)表示第i张无线网卡到通道A端的距离,N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道A端的距离从小到大进行编号;②s[k]表示第k(k≥1)个无线AP到通道A端的距离。算法结束后k的值为无线AP的总数。1.【问题1】请填补图1-17流程图中(1)-(4)空缺处的内容。
进入题库练习
问答题【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。 【C++程序】 #ifndef H_MiniComplex #define H_MiniComplex #include <iostream> using namespace std; class MiniComplex{ public: //重载流插入和提取运算符 {{U}} (1) {{/U}}ostream return osObject; } {{U}} (2) {{/U}}istream isObject >>complex.realPart>>ch>>complex.imagPart>>ch; return isObject; } MiniComplex(double real=0,double imag=0); //构造函数 MiniComplex operator+(const MiniComplex //重载运算符+ MiniComplex operator-(const MiniComplex //重载运算符- MiniComplex operator*(const MiniComplex //重载运算符* MiniComplex operator/(const MiniComplex //重载运算符/ bool operator==(const MiniComplex //重载运算符== private : double{{U}} (3) {{/U}}; double imagPart; }; #end if #include "MiniComplex.h" bool MiniComplex::operator==(const MiniComplex } MiniComplex::MiniComplex(double real,double imag){ realPart== real; imagPart==imagPart; } MiniComplex MiniComplex::operator+(const MiniComplex temp.realPart = realPart+ortherComplex. realPart; temp.imagPart = imagPart +ortherComplex. imagPart; return temp; } {{U}} (4) {{/U}} { MiniComplex temp; temp.realPart= realPart-ortherComplex. realPart; temp.imagPart = imagPart-ortherComplex. imagPart; return temp; } MiniComplex MiniComplex::operator*(const MiniComplex temp.realPart = (realPart*ortherComplex. realPart)-(imagPart *ortherComplex.imagPart); temp.imagPart = (realPart*ortherComplex. imagPart)+(imagPart *ortherComplex.realPart); return temp; } MiniComplex MiniComplex::operator/(const MiniComplex float tt; tt=1/(ortherComplex.realPart*ortherComplex.realPart+ortherComplex.imagPart *ortherComplex. imagPart); temp.realPart=((realPart*ortherComplex, realPart)+(imagPart *ortherComplex. imagPart))*tt; temp.imagPart =((imagPart *ortherComplex. realPart)-(realPart*ortherComplex. imagPart))*tt; return temp; } #include <iostream> #include <MiniComplex.h> using namespace std; int main(){ MiniComplex numl(23, 34),num2(56, 35); cout<<"Initial Value of num1="<<num1<<"/n Initial Value of num2="<<num2<<end1; cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1; //使用重载的加号运算符 cout<<num1<<"-"<<num2<<"="<<num1-num2<<end1; //使用重载的减号运算符 cout<<num1<<"*"<<num2<<"="<<num1*num2<<end1; //使用重载的乘号运算符 cout<<num1<<"/"<<num2<<"="<<num1/num2<<end1; //使用重载的除号运算符 {{U}} (5) {{/U}}; }
进入题库练习
问答题【说明】 使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下Visual C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。 创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。 【Visual C++程序】 【ListenEX()函数】 void CWzdServer::ListenEx( int hdrSz, int bodyPos, CWzdQueue *pQueue,CWnd *pWnd, UINT id ) //初始化接收数据 m_RecvData.hdrSz = hdrSz; m_RecvData.bodyPos = bodyPos; m_RecvData.pQueue = pQueue; m_RecvData.pWnd = pWnd; m_id = id; //启动标志 //开始监听 (1) 【OnAccept()函数】 void CWzdServer::OnAccept ( iht nErrorCode ) if ( nErrorCode == 0 ) CSocket *pSocket = (2) ; //创建新的套接字并添加到映射图中 m_mapSockets[m_id] = pSocket; Accept( ( CasyncSocket //用该新的套接字去连接客户端 //置套接字于同步模式 DWORD arg = 0; pSocket -> AsyncSelect( 0 ); pSocket -> IOCtl( FIONBIO, m_RecvData.pSocket = pSocket; m_RecvData.id = m_id++; //启用线程 AfxBeginThread( RecvThread, 【RecvThread()函数】 UINT RecvThread( LPVOID pParam ) //从线程中苑取数据 RECVDATA *pRecv = ( RECVDATA * )pParam; int len = 1; int error = 0; char *pBody = NULL; char *pHdr = NULL; //两个套接字都开放 while (TRUE) //开始读报文头部 iht res; pBody = NULL; pHdr = new char[pRecv -> hdrSz]; if ( ( res = pRecv -> pSocket -> CAsyncSocket::Receive( pHdr, pRecv ->hdrSz ) ==SOCKET_ERROR ) error = ::GetLastError(); else len = res; //如果完毕,则退出线程 if ( len == 0 || error == WSAECONNRESET || error == WSAECONNABORTED ) break; if ( !error pBody = new char[bodyLen]; if((res=pRecv -- >pSocket >CAsyncSocket::Receive(pBody,bodyLen))==SOCKET_ERROR) error = ::GetLastError(); else (3) ; //如果完毕,则退出线程 if(len == 0 || error == WSAECONNRESET || error == WSAECONNABORTED) break; //将消息排入队列 pRecv -> pQueue ->Add(new CWzdMsg(pRecv -> id,pHdr, p B o d y,len,error) ); //传送消息到窗口来处理新信息 pRecv -> pWnd -> PostMessage(WM_NEW_MESSAGE); //清记录 delete [ ]pHdr; delete [ ]pBody; //向相关对象发送停止通知 pRecv->pWnd->SendMessage(WM_DONE_MESSAGE, WPARAM)pRecv->id, (LPARAM)error); (4) ; 【SendEx()函数】 void CWzdServer::SendEx( int id, LPSTR lpBuf, int len ) //为该标识符设置套接字 CSocket *pSocket = (5) ; if ( pSocket ) m_SendData.pSocket = pSocket; m_SendData.lpBuf = lpBuf; m_SendData.len = len; //启动线程 AfxBeginThread( SendThread, 【SendThread()函数】 UINT SendThread( LPVOID pParam ) SENDDATA *pSend = ( SENDDATA * )pParam; //从线程中获取数据 pSend -> pSocket -> (6) ( pSend -> lpBuf, pSend -> len ); //执行写入操作 return 0; 【CloseEx()函数】 void CWzdServer::CloseEx() int id; CSocket *pSocket; for ( POSITION pos = m_mapSockets.GetStartPosition(); pos; ) m_mapSockets.GetNextAssoc( pos,id,pSocket ); pSocket -> Close(); (7) ;
进入题库练习
问答题
进入题库练习
问答题[说明] 有若干教师,每个教师只有姓名,一个教师可以指导多名研究生;每名研究生有姓名和研究方向,程序最后输出每个教师指导的所有研究生的姓名和研究方向。 [Java程序] public class Teacher { String name; int top=0; Student[] student=new Student[20]; public Teacher() {} public Teacher(String name) { this.name=name;} boolean add(Student stu){ int len=this.student.length; if (top<len-1) { this.student[top]=siu; {{U}}(1) {{/U}}; return true; } else return {{U}}(2) {{/U}}; } void disp(){ System.out.println(“指导老师"”+this.name); System.out.println(“研究生:”); for(int i=0;i<{{U}} (3) {{/U}};i++){ System.out.println(“姓名:”+this.student[i].name+“/t研究方向:”+this.student[i]. search); } } public static void main(String[] args){ Teacher t[]={new Teacher(“李明”),new Teacher(“王华”)}; Student s1 = new Student(“孙强”,“数据库”); Student s2 = new Student(“陈文”,“软件工程”); Student s3 = new Student(“章锐”,“计算机网络”); if(! t[0].add(s1)) {System.out.println(“每个老师最多只能指导20个学生!”);} if(! t[0].add(a2)) {System.out.println(“每个老师最多只能指导20个学生!”);} if(! t[1].add(s3)) {System.out.println(“每个老师最多只能指导20个学生!”);} for(int i=0;i<2;i++) {{U}}(4) {{/U}}; } } class {{U}}(5) {{/U}}{ String name; String search; public Student(){} public Student(String name,String search){ this.name=name; this.search=search; } String getName(){return this.name;} String getSearch(){return this.search;} }
进入题库练习
问答题【说明】 设有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; (1) ;i++) (2)=i; for(i=n;i>=2;i--) s1= (3) ; if(s1==0)s1=i; w= (4) ; for(j=s1;j<i;j++) p[j-1]=p[j]; p[i-1]= (5) ; printf("%4d",p[i])
进入题库练习