【C++】一个程序,求大神帮忙ps家帮忙看看。

c++ 程序 大家帮忙看看_百度知道
c++ 程序 大家帮忙看看
len):;getE2(); cout& case 4, int len){ memcpy(&e2, len), int len){ memcpy(&e3:;}各位高手帮我看看这个错误在哪里啊~~错误;:setE1(const void *e, len);}void Node::getE1(){ return e1;;
case &#39,getE4(), int len){ memcpy(&e4: return n-&c&#39:;}void Node#include &s&#39, e, int len){ memcpy(&e1; 4;& case 3;#include & } cout&lt::setE4(const void *e, int index){ switch (index) { case 1;}void* N ' for (int i = 0;using namespace std, case 2: s = (char*)getNodeValueb(&lt: c = *(char*)getNodeValueb(s;'i'ii, i+1);&lt:getE2(){ return e2:setE2(const void *e; i &; cout&lt::getE4(){ return e4;}void Node, i+1);
cout&getE3();}void* N}void Node, i+1); cout&&lt: return n-&}void* Node: return n-&gt, len): ii = *(int*)getNodeValueb(c;
case &#39:print(char *typeFormatString){ int ii, e:getE3(){ return e3.h&getE1();N i++) {
switch (typeFormatString[i])
case &#39:; } return 0:setE3(const void *e;;iostream&gt: return n-& string s:;}void* Node:;void* getNodeValueb(Node *n;}void N&string&#include &lt
case 2; break,整型或者常量表达式第一个函数应改为如下: return n-&gt: return n-&gt, int index) { switch (index) { case 1;break: return n-& case 4;getE4(); break: return n-&getE1()switch可以是字符型常量; case 3:return 0;getE3():void* getNodeValueb(Node *n
其他类似问题
为您推荐:
其他2条回答
搞定switch不能用字符型变量。只能用整型和布尔型,给分
switch只可以是字符型常量,整型或者常量表达式
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁【求助】有大神在么?帮我看一个C++的程序。。_编程吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:139,869贴子:
【求助】有大神在么?帮我看一个C++的程序。。收藏
设计一个类,成员变量包括学号、姓名、性别、年龄、成绩; 2.
完成以下: (1)
由键盘分别输入n个学生的学号、姓名、性别、年龄、成绩; (2)
计算每个学生的平均成绩; (3)
判断每个学生是否有不及格的课程; (4)
并输出所有学生的信息和平均成绩;
// 练习.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include&iostream&#include"cmath" class Student{ public:
void get_inf(); void show_inf(); void judge(); float ave(); private: float score[3];}; int main(){ get_n(); Student t[10000]; t[].get_inf(); t[].show_inf(); return 0;} void Student::get_n(){ cout&&"Please input the total num of students:"; int m=0,n; cin&&n;} void Student::get_inf(){ cout&&"Please input the student's information:"&& int i,k; Student t[10000]; for(i=0;i&n;i++) {
cout&&"input the name:";
cin&&t[i].
cout&&"input the number:";
cin&&t[i].
cout&&"input the sex:";
cin&&t[i].
cout&&"input the age:";
cin&&t[i].
for(k=0;k&3;k++)
cout&&"input score["&&k+1&&"]:";
cin&&t[i].score[k];
} } void Student::show_inf(){ Student t[10000]; int i,n; for(i=0;i&n;i++) { cout&&"This is the student's information:"&&
cout&&"number:"&&t[i].num&&
cout&&"name:"&&t[i].name&&
cout&&"sex:"&&t[i].sex&&
cout&&"age:"&&t[i].age&&
cout&&t[i].judge()&&
cout&&t[i].ave()&& }} void Student::judge(){ Student t[10000]; int i,j; for(j=0;j&3;j++) { if(t[i].score[j]&60)
cout&&"Some subject falied!"&& }} float Student::ave(){ Student t[10000]; float *p1,*p2,*p3; p1=&t[i].score[0]; p2=&t[i].score[1]; p3=&t[i].score[2]; m=(*p1)*(*p2)*(*p3)/3;}
很多错误。。。不知道怎么改。。还是新手。。
--------------------Configuration: 练习 - Win32 Debug--------------------Compiling...练习.cppD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(27) : error C2065: 'get_n' : undeclared identifierD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(29) : error C2059: syntax error : ']'D:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(30) : error C2059: syntax error : ']'D:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(34) : error C2039: 'get_n' : is not a member of 'Student'
D:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(10) : see declaration of 'Student'D:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(35) : error C2373: 'get_n' : different type modifiersD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(46) : error C2065: 'n' : undeclared identifierD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(64) : error C2601: 'show_inf' : local function definitions are illegalD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(79) : error C2601: 'judge' : local function definitions are illegalD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(90) : error C2601: 'ave' : local function definitions are illegalD:\Program Files\Microsoft Visual Studio\MyProjects\练习\练习.cpp(102) : fatal error C1004: unexpected end of file found执行 cl.exe 时出错. 练习.exe - 1 error(s), 0 warning(s)
类方法 得在类里面吧
// 练习.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include&iostream&#include"cmath" class Student{ public: void get_inf(); void show_inf(); void judge(); float ave(); private: float score[3];}; int get_n(){ cout&&"Please input the total number of the students:"; cin&&n;} void Student::get_inf(){ cout&&"Please input the student's information:"&& int i,k; for(i=0;i&n;i++) {
cout&&"input the name:";
cout&&"input the number:";
cout&&"input the sex:";
cout&&"input the age:";
for(k=0;k&3;k++)
cout&&"input score["&&k+1&&"]:";
cin&&score[k];
} }} void Student::show_inf(){ Student t[10000]; for(i=0;i&n;i++) { cout&&"This is the student's information:"&&
cout&&"number:"&&t[i].num&&
cout&&"name:"&&t[i].name&&
cout&&"sex:"&&t[i].sex&&
cout&&"age:"&&t[i].age&&
t[i].judge();
cout&&t[i].ave()&& }} void Student::judge(){ Student t[10000]; int i,j; for(j=0;j&3;j++) { if(t[i].score[j]&60)
cout&&"Some subject falied!"&& }} float Student::ave(){ Student t[10000]; float *p1,*p2,*p3; p1=&t[i].score[0]; p2=&t[i].score[1]; p3=&t[i].score[2]; m=(*p1)*(*p2)*(*p3)/3;} int main(){ Student t[10000]; n=get_n(); t[10000].get_inf(); t[10000].show_inf(); return 0;}改成这样了,编译没错,但是运行后输入名字后还是会无限循环。。。那个学生数目n的处理我不太会,不知道应该怎么改改?谢谢
兄弟,我现在要用你这个程序,请问你现在改出来了那个无限循环的问题吗?改好了求发一下,好人一生平安。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求帮忙写一个C++ 的程序_百度知道
求帮忙写一个C++ 的程序
The main function should allow the user to enter value of ‘xMax’, call the calculating function from above and output the calculated sum to the screen.Write a function generating 40 random integers of an array which are less than ‘xMax’。。或者把答案发到@qq。1.求答案.Write a function calculating the sum of elements in the array
提问者采纳
void generate(int*}int calculate(int* array: &n; & i++)
array[i] = rand()%xM); int a[40];i&/&#47,40) & cout & generate(a;pause&n;Please input xM;& cin & &i++)
sum += array[i];&}int main(){ int xMax, int n){ int sum = 0; cout &&Sum is &quot, xM system(&quot#include &lt,xMax); calculate(a;i&&iostream& for(int i=0, int xMax){ for(int i=0;& &quot,40
可以加一下好友么?还有几个题目,可以请你一起写了么?或者我提问。麻烦你写一下。。
是作业吗?=。=找人代写作业不是好孩子哦
咳咳,作业就不担心了- -28号考试了,这个是题目,真心不会。。
你继续提问吧,求助我就可以了,会收到提示的。多个问题可以放一个问题
提问者评价
来自团队:
其他类似问题
为您推荐:
其他1条回答
为什么题目会是英文的呢?弱弱的问一句,你是哪个学校的?
T.T我们上课都是英文的。。。流体力学,结构力学,C++,材料学。。。。都是英文的。。。上海理工大学中英国际学院
好厉害,佩服佩服!我英语很差,能加个好友吗?以后有空也好请教你。
好啊~我的QQ我英语也不好的,天天都是酱油。。
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求帮助,求帮助,大家能给我看看这段程序吗_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:236,833贴子:
求帮助,求帮助,大家能给我看看这段程序吗收藏
pedef struct bt{
bt *lchild,*}*Bint Search(Bitree T, char *p,Bitree f,Bitree &t){ if(!T) {t=f; return 0;} else if (!strcmp(p,T-&data.getword())) {t=T; return 1;} else if (strcmp(p,T-&data.getword())&0) return(Search(T-&lchild,p,T,t)); else return (Search(T-&rchild,p,T,t));}int insert(Bitree &T,words t){ Bitree s,p; if(!Search(T,t.getword(),NULL,p)){
s-&data.setword(t.getword());
s-&data.settrans(t.gettrans());
s-&lchild=s-&rchild=NULL;
if(!p)T=s;
else if(strcmp(t.getword(),p-&data.getword())&0) p-&lchild=s;
else p-&rchild=s;
return 1; } else return 0; }
只有一个结构体两个函数啊亲?你要看什么呢?
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或大家帮忙看看一个“软件工程师面试考题”-.NET技术/C#-c/c++-电脑编程网大家帮忙看看一个“软件工程师面试考题”-.NET技术/C#作者:lj102800 和相关&&一. 请简要地解释Windows下进程和线程之间的区别二. C#语言中的哪些关键字和类是用来实现线程同步的?三. 已知strcpy函数的原型是 char *strcpy(char *dest,const char *src),请用语法自已实现它,并说明为什么要返回char *四. 在c或c#中,如何不使用临时变量和加减法交换两个int变量的值,请写出示例代码五. 某个应用需要在磁盘上保存超过100万个小于5KB的文本文件,如何来减少占用磁盘空间的占有并提高读写速度?六. 在Windows中一个文件已被进程A打开,进程B和C在什么情况下可以打开该文件并修改该文件的内容?.八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)九. 在Windows平台如何编写一个可以同时接受50万个以上并发连接的高效Web,请讲讲你的思路和所用到的技术。十. 在SQL中,如何用左连接来替代子查询,并写出一个带子查询的SQL以及与该子查询SQL查询结果相同的左连接的SQL十一. 聚集索引和非聚集索引有什么区别,一个物理表可以建立几个聚集索引,为什么?十二. 影响Web应用系统性能的因素主要有哪些,如何来优化?十三. 请列举四种设计模式名称,并说明它们的解决了什么问题带来了什么好处十四. 请描述你所理解的软件项目开发流程------回答---------------其他回答(3分)---------一. 请简要地解释Windows下进程和线程之间的区别一个线程是给定的指令的序列 (你所编写的代码),一个栈(在给定的方法中定义的变量),以及一些共享数据(类一级的变量)。进程是目前桌面上正打开着的应用程序进程,如IE、MS Word、QQ等,还有在后台运行着的系统服务进程,即提供系统正常运行及上网所需的程序,如shost.exe即为系统服务的进程名称 ------其他回答(5分)---------二. C#语言中的哪些关键字和类是用来实现线程同步的? &
一、volatile关键字&   volatile是最简单的一种同步方法,当然简单是要付出代价的。它只能在变量一级做同步,volatile的含义就是告诉处理器, 不要将我放入工作内存, 请直接在主存操作我。(【转自 】)因此,当多线程同时访问该变量时,都将直接操作主存,从本质上做到了变量共享。 &
二、lock关键字  lock是一种比较好用的简单的线程同步方式,它是通过为给定对象获取互斥锁来实现同步的。它可以保证当一个线程在关键代码段的时候,另一个线程不会进来,它只能等待,等到那个线程对象被释放,也就是说线程出了临界区。lock的参数必须是基于引用类型的对象,不要是基本类型像bool,int什么的,这样根本不能同步,原因是lock的参数要求是对象,如果传入int,势必要发生装箱操作,这样每次lock的都将是一个新的不同的对象。最好避免使用public类型或不受程序控制的对象实例,因为这样很可能导致死锁。特别是不要使用字符串作为lock的参数,因为字符串被CLR“暂留”,就是说整个应用程序中给定的字符串都只有一个实例,因此更容易造成死锁现象。建议使用不被“暂留”的私有或受保护成员作为参数。其实某些类已经提供了专门用于被锁的成员,比如Array类型提供SyncRoot,许多其它集合类型也都提供了SyncRoot。  所以,使用lock应该注意以下几点:  1、如果一个类的实例是public的,最好不要lock(this)。因为使用你的类的人也许不知道你用了lock,如果他new了一个实例,并且对这个实例上锁,就很容易造成死锁。  2、如果MyType是public的,不要lock(typeof(MyType))  3、永远也不要lock一个字符串  三、System.Threading.Interlocked  对于整数数据类型的简单操作,可以用 Interlocked 类的成员来实现线程同步,存在于System.Threading命名空间。Interlocked类有以下方法:Increment , Decrement , Exchange 和CompareExchange 。使用Increment 和Decrement 可以保证对一个整数的加减为一个原子操作。Exchange 方法自动交换指定变量的值。CompareExchange 方法组合了两个操作:比较两个值以及根据比较的结果将第三个值存储在其中一个变量中。比较和交换操作也是按原子操作执行的。 &
四、Monitor&   Monitor类提供了与lock类似的功能,不过与lock不同的是,它能更好的控制同步块,当调用了Monitor的Enter(Object o)方法时,会获取o的独占权,直到调用Exit(Object o)方法时,才会释放对o的独占权,可以多次调用Enter(Object o)方法,只需要调用同样次数的Exit(Object o)方法即可,Monitor类同时提供了TryEnter(Object o,[int])的一个重载方法,该方法尝试获取o对象的独占权,当获取独占权失败时,将返回false。  但使用 lock 通常比直接使用 Monitor 更可取,一方面是因为 lock 更简洁,另一方面是因为 lock 确保了即使受保护的代码引发异常,也可以释放基础监视器。这是通过 finally 中调用Exit来实现的。事实上,lock 就是用 Monitor 类来实现的。Monitor还提供了三个静态方法Monitor.Pulse(Object o),Monitor.PulseAll(Object o)和Monitor.Wait(Object o ) ,用来实现一种唤醒机制的同步。关于这三个方法的用法,可以参考MSDN,这里就不详述了。  五、Mutex&   在使用上,Mutex与上述的Monitor比较接近,不过Mutex不具备Wait,Pulse,PulseAll的功能,因此,我们不能使用Mutex实现类似的唤醒的功能。不过Mutex有一个比较大的特点,Mutex是跨进程的,因此我们可以在同一台机器甚至远程的机器上的多个进程上使用同一个互斥体。尽管Mutex也可以实现进程内的线程同步,而且功能也更强大,但这种情况下,还是推荐使用Monitor,因为Mutex类是win32封装的,所以它所需要的互操作转换更耗资源。  六、ReaderWriterLock&   在考虑资源访问的时候,惯性上我们会对资源实施lock机制,但是在某些情况下,我们仅仅需要读取资源的数据,而不是修改资源的数据,在这种情况下获取资源的独占权无疑会影响运行效率,因此.Net提供了一种机制,使用ReaderWriterLock进行资源访问时,如果在某一时刻资源并没有获取写的独占权,那么可以获得多个读的访问权,单个写入的独占权,如果某一时刻已经获取了写入的独占权,那么其它读取的访问权必须进行等待, &
七、SynchronizationAttribute  当我们确定某个类的实例在同一时刻只能被一个线程访问时,我们可以直接将类标识成Synchronization的,这样,CLR会自动对这个类实施同步机制,实际上,这里面涉及到同步域的概念,当类按如下设计时,我们可以确保类的实例无法被多个线程同时访问  1). 在类的声明中,添加System.Runtime.Remoting.Contexts.SynchronizationAttribute属性。 &
2). 继承至System.ContextBoundObject &
需要注意的是,要实现上述机制,类必须继承至System.ContextBoundObject,换句话说,类必须是上下文绑定的。 &
八、MethodImplAttribute&   如果临界区是跨越整个方法的,也就是说,整个方法内部的代码都需要上锁的话,使用MethodImplAttribute属性会更简单一些。这样就不用在方法内部加锁了,只需要在方法上面加上 [MethodImpl(MethodImplOptions.Synchronized)] 就可以了,MehthodImpl和MethodImplOptions都在命名空间pilerServices 里面。但要注意这个属性会使整个方法加锁,直到方法返回,才释放锁。因此,使用上不太灵活。如果要提前释放锁,则应该使用Monitor或lock。------其他回答(2分)---------第五题:创建一个数据文件,在文件头中写入一个数据管理的结构,比如hashtable。key值为文本文件名。数据文件以5k为单元格。hashtable的value记录文本文件写入的单元格编号。程序先异步读取数据文件,读取数据管理结构,通过hashtabl查找到文本文件编号,读取或者修改需要的单元格数据。这个方法最大程度上省略了硬盘寻址时间。从而达到提高读写速度。占用磁盘空间的问题,则可以通过文件编码来实现。------其他回答(5分)---------各位看看这个是否是第六题的答案:六. 在Windows中一个文件已被进程A打开,进程B和C在什么情况下可以打开该文件并修改该文件的内容?.http://zongvv9./blog/static//------其他回答(15分)---------一. 请简要地解释Windows下进程和线程之间的区别大家都知道,百度就好了二. C#语言中的哪些关键字和类是用来实现线程同步的?Lock,Mutex, AutoEventSet 等等,方法还挺多的,三. 已知strcpy函数的原型是 char *strcpy(char *dest,const char *src),请用语法自已实现它,并说明为什么要返回char *C/C++ code
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL))
throw &Invalid argument(s)&;
char * strReturn = strD
while ((*strDest++=*strSrc++)!='\0');
return strR
}
要返回char * 是为了,让该函数的调用,可以直接做为另一个函数的参数,或是可以直接加入到其它的表达式,而不是只能成为一条语句。四. 在c或c#中,如何不使用临时变量和加减法交换两个int变量的值,请写出示例代码C# code
int a=1;
int b=2;
a=a^b;
b=a^b;
a=a^b;
五. 某个应用需要在磁盘上保存超过100万个小于5KB的文本文件,如何来减少占用磁盘空间的占有并提高读写速度?最简单的方法,就是用一个高性能的。来处理,建一个表,两个字段,文件名称(以文件名称做索引),文件内容(经过压缩的)。六. 在Windows中一个文件已被进程A打开,进程B和C在什么情况下可以打开该文件并修改该文件的内容?.在进程A释放文件句柄的时候, B和C就可以打开该文件修改了,或是调用系统API,干掉 该文件与进程A的关联八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)200 * 1024 * 1024 * 8 / 100 * 1024 * 1024 = 2 * 8 = 16 秒九. 在Windows服务器平台如何编写一个可以同时接受50万个以上并发连接的高效Web服务器,请讲讲你的思路和所用到的技术。这个不好说用上非常好的服务器,利用好缓存,页面尽可能做成静态,尽可能的避免与数据库交互。页面内容不应过长,以免,客户端连接保持过长,最好不要让客户端下载大的数据,不知道他所说的高效Web服务器,是指一台,还是多台,如果是多台,再考虑用上群集,可以域名解析分流,或是用智能交换机,分流。 总之有的是办法十. 在SQL数据库中,如何用左连接来替代子查询,并写出一个带子查询的SQL以及与该子查询SQL查询结果相同的左连接的SQLSQL code
SELECT * FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.CID=B.CID)
SELECT A.* FROM A LEFT JOIN B ON A.CID=B.CID WHERE B.CID IS NULL
十一. 聚集索引和非聚集索引有什么区别,一个物理表可以建立几个聚集索引,为什么?一个物理表只有一个聚集索引,聚集索引的意思是,物理上表记录的先后排序就是按聚集索引字段做为依据排的(其它的索引,是新建一个结构来存储索引),这也就是为什么一个物理表只能有一个聚集索引的原因了十二. 影响Web应用系统性能的因素主要有哪些,如何来优化?系统硬件, 软件,十三. 请列举四种设计模式名称,并说明它们的解决了什么问题带来了什么好处  Proxy:为其他对象提供一个代理以控制对这个对象的访问。&
Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。  State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。 &  Strategy:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。  Template Method:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。  Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。  Visitor:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。&
&baidu一下,一大堆十四. 请描述你所理解的软件项目开发流程 &
原始需求调研  编写业务需求 -& 找客户确定需求  编写开发需求  开发需求评审  编写测试用例  测试用例评审  详细设计  代码评审  提交测试  客户验收  收钱。 &
------其他回答(10分)---------一. 请简要地解释Windows下进程和线程之间的区别答:进程是系统正在进行的程序,或者说是在运行的程序。 &
线程,是程序内部运行的线路过程。二. C#语言中的哪些关键字和类是用来实现线程同步的?答:Thread类。thow关键字三. 已知strcpy函数的原型是 char *strcpy(char *dest,const char *src),请用c/c++语法自已实现它,并说明为什么要返回char *答:不会四. 在c或c#中,如何不使用临时变量和加减法交换两个int变量的值,请写出示例代码答:思路是用继承的方式实现,代码不写了。五. 某个应用需要在磁盘上保存超过100万个小于5KB的文本文件,如何来减少占用磁盘空间的占有并提高读写速度?答:把100万文件封装成一个文件,当读写的时候就解析里面的文件。六. 在Windows中一个文件已被进程A打开,进程B和C在什么情况下可以打开该文件并修改该文件的内容?.答:要看进程A打开后是否需要关闭进程A的情况下可以修改该文件。如果需要,就先关闭。八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)答:100M的传输速度为12.8M速度,那么200M需要传输的时间应该是0.015625秒.九. 在Windows服务器平台如何编写一个可以同时接受50万个以上并发连接的高效Web服务器,请讲讲你的思路和所用到的技术。答:第一个我想到的是lock。用取锁的方式。具体没做过。有急事,先提交个人的见解,不知道对不对哦~!(我不怕丢脸的,不对的,可以帮我修改一下啊,谢谢)十. 在SQL数据库中,如何用左连接来替代子查询,并写出一个带子查询的SQL以及与该子查询SQL查询结果相同的左连接的SQL十一. 聚集索引和非聚集索引有什么区别,一个物理表可以建立几个聚集索引,为什么?十二. 影响Web应用系统性能的因素主要有哪些,如何来优化?十三. 请列举四种设计模式名称,并说明它们的解决了什么问题带来了什么好处十四. 请描述你所理解的软件项目开发流程------其他回答(10分)---------八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)答:100M的传输速度为12.8M速度,那么200M需要传输的时间应该是0.015625秒. &忘记换算单位了,应该是答案是16秒.100m*kb102400kb/8=12800kb/s200m*kb204800kb/12800kb/s=16------其他回答(10分)---------一. 请简要地解释Windows下进程和线程之间的区别进程是计算机中正在运行的程序实例,由进程控制块、程序段、数据段三部分组成,一个进程可以有多个线程,线程共享同一个内存空间,有独立的栈,是OS调度的基本单位。二. C#语言中的哪些关键字和类是用来实现线程同步的?C#语法不熟,但是windows可用这些机制进行线程同步:互斥体,临界区,事件等待,信号量三. 已知strcpy函数的原型是 char *strcpy(char *dest,const char *src),请用c/c++语法自已实现它,并说明为什么要返回char *char * strcpy(char * strDest,const char * strSrc) &
if ((strDest==NULL)||(strSrc==NULL)) //[1] &
throw &Invalid argument(s)&; //[2] &
char * strDestCopy=strD
while ((*strDest++=*strSrc++)!='\0'); //[4] &
return strDestC &
}返回char*的原因是因为可以嵌套使用。四. 在c或c#中,如何不使用临时变量和加减法交换两个int变量的值,请写出示例代码void ExchangeValue1(int * a,int * b) &
*a=*a+*b; &
*b=*a-*b; &
*a=*a-*b; &
}五. 某个应用需要在磁盘上保存超过100万个小于5KB的文本文件,如何来减少占用磁盘空间的占有并提高读写速度?100万相当于1M,100万个5K是5G,很多文件系统的存储块是4K。减少磁盘空间就要压缩,而文本文件的压缩率一般不高。在磁盘上文件一般以B树的形式来存储,如果让操作系统自己管理这些文件,那么文件存放位置是不确定的,读写时磁盘效率是不高的。建议自己管理这些文件,尽量把相关的数据合并起来,按最常用的访问顺序存储,并放到一些物理大文件里,再通过一些索引机制来查询和访问。(就像数据库的聚集索引,分区表等概念,当然直接放入数据库可能还简单一些,有些数据库支持分区以及压缩等机制的)六. 在Windows中一个文件已被进程A打开,进程B和C在什么情况下可以打开该文件并修改该文件的内容?.进程A以共享的方式打开文件时(Of_Share_Deny_None ),其他进程可以打开该文件并修改。(默认记事本打开文件时应该就是这样吧)八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)文件大小以字节为单位,带宽大小以bit为单位,所以200*8/100=16秒(不知道TCP拷贝时ack机制等要不要考虑,不过看题目应该是不用考虑的)九. 在Windows服务器平台如何编写一个可以同时接受50万个以上并发连接的高效Web服务器,请讲讲你的思路和所用到的技术。完成端口是必要的,也是性能最高的。但是同时50万个,恐怕得考虑服务器集群,负载均衡等机制。十. 在SQL数据库中,如何用左连接来替代子查询,并写出一个带子查询的SQL以及与该子查询SQL查询结果相同的左连接的SQLselect a.* from table1 a where exists(select * from table2 b where b.id = a.id)select a.* from table1 a left join table2 b on a.id = b.id& 十一. 聚集索引和非聚集索引有什么区别,一个物理表可以建立几个聚集索引,为什么?聚集索引实际上就是物理数据存储的顺序,因为一个物理表只能有一种存储顺序,所以聚集索引也只有一个。十二. 影响Web应用系统性能的因素主要有哪些,如何来优化?影响因素:并发访问量,经常访问的页面文件大小。。。优化:使用集群,缓存。。。十三. 请列举四种设计模式名称,并说明它们的解决了什么问题带来了什么好处单例,工厂,适配器,策略。。。设计模式孜孜以求的是调用者和被调用者的解耦。。。十四. 请描述你所理解的软件项目开发流程瀑布法:需求分析,设计,实现,集成,测试,发布,维护还有敏捷法,快速原型法等等------其他回答(20分)---------
引用 66 楼 yuanhuiqiao 的回复:八. 一个200M的文件,在100M带宽的交换网络中大约需要多少时间可以从主机A转输到主机B(不考虑硬盘IO和网络延迟时间等因素)这里同样的M不同的含义:文件Size:200M(200MByte)=200MByte(字节)*8 =200Mbit(位)带宽:100M=100Mbit/s(1bit/s是带宽的基本单位)更正:文件Size:200M(200MByte)=200MByte(字节)*8 =1600Mbit(位)
------其他回答(5分)---------在考虑第8题需不需要考虑上下行带宽,按国内习惯下行带宽占80%,上行带宽占20%。记得在网络工程师一书中有提到过。所以如果要考虑这个的话,结果还要乘以5,也就是80秒……------其他回答(15分)---------引用 43 楼 sunnj87 的回复:第8题为什么要在200后面乘个8呢?因为实际上我们的带宽单位都是用的小写b....不是大写B,所以要*8相关资料:|||||||大家帮忙看看一个“软件工程师面试考题”-.NET技术/C#来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 大家帮忙看看 的文章

 

随机推荐