C语言笔试题及参考答案-东软集团
东软软件测试(偏重C语言)工程师笔试题及参考答案
东软软件测试(偏重C语言)工程师笔试题及参考答案问题:东软软件测试(偏重C语言)工程师笔试题及参考答案回答:试卷一:C系语言面试题及答案1、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。
要用全局变量,需要使用::局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。
对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
2、如何引用一个已经定义过的全局变量?答:extern可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个变量写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。
4、语句for( ;1 ;)有什么问题?它是什么意思?答:无限循环,和while(1)相同。
5、do……while和while……do有什么区别?答:前一个循环一遍再判断,后一个判断以后再循环。
6、请写出下列代码的输出内容#includemain(){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf( b,c,d:%d,%d,%d ,b,c,d);return 0;}答:10,12,1207、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?答案:软件测试计划是指导测试过程的纲领性文件。
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。
东软笔试题0715
1,下列选项中正确的有:(E)A Boolean b = null;B char c = "a";C int i = 257;D float f = 1.7;E int a=10;2,选择输出结果正确的是:()package Test;public class CeShi {public static void main(String[] args) {System.out.println(args[2]);}}C:出现异常:ng.ArrayIndexOutOfBoundsException: 23,对线性表,在下列哪种情况下应当采用链表表示( B )。
A)经常需要占据一片连续的存储空间B)经常需要进行插入和删除操作C)经常需要随机地存取元素D)表中元素的个数不变4,一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35,队列的--插入--操作时在队列的---队尾----进行,--删除--操作是在队列的---队首--进行;6,二叉树第 k 层最多有 2的k-1次方个节点7,下面排序算法中,待排序数据已有序时花费时间最少的是(A)排序A插入 B冒泡 C快速 D选择8,有关Servlet的生命周期说法正确错误的有 (A)A. Servlet的生命周期由Servlet实例控制B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象C. service()方法响应客户端发出的请求D. destroy()方法释放Servlet实例9,在a.jsp中有代码片断如下:<form action =”b.jsp” method =”POST”name=”form1”>loginName:<input type=”text”name=”loginName”/><input type=”submit” name=”submit”/></form>在b.jsp中加入下列()代码,可以输出在a.jsp页面上输入的loginName的值(多选)A. <%=request.getParameter(“loginName”)%>B. <%=request.gerAttribute(“loginName”)%>C. <%Stringname=request.getParameter(“loginname”);out.println(name); %>D. <% Stringname=request.getAttribute(“loginname”); out.println(name); %>正确答案为:AC10,给定一个 Servlet 的doGet方法中的代码片段,如下:request.setAttribute(“name”,”zhang”);response.sendRedirect(“http://localhost:8080/servlet/MyServlt”);那么在 MyServlet中可以使用(D)方法把属性 name的值取出来。
C++语言考试(东软员工)——答案
一、选择题(每小题2分,共12分)A A AB B A二填空题(每小题3分,共30分)1. 址传递2. this指针3. 私有不可以访问,其他同基类一致4.无参5.共享6. 封装,多态,继承,抽象7. 虚基类、虚函数8. 作为左值9. 210. friend class AB三给出下列程序运行后的输出结果(每小题5分,共20分)1. 32.i=2i=5i=8i=11i=143.Initalizing defaulInitalizing defaul0 0.0Desdtructor is activeDesdtructor is active4.A::A() called.B::B() called.B::~B() called.A::~A() called.5.9 5 38 4 7四、问答题(每小题5分,共20分)1. 浅拷贝问题,主要原因为类中如果有指针成员变量时,当调用拷贝构造函数时只拷贝地址从而使两个对象的指针变量指向了一个地址空间。
2. 成员函数只能由该类所实例化的对象来进行调用。
[静态成员除外]全局函数可以在任意位置进行调用。
友元函数可以让本类和友元类对象调用。
3. 结构化程序设计为从程序代码的开始处按照顺序方式执行至代码的结束位置。
是一种顺序的方式,函数与变量没有明显的联系面向对象主要把处理事情的事物和方法结合为一体成为一个类,一个类具备处理一件事情的数据变量和处理方法,把数据和方法有机的结合为了一体,使每一件事情都具备一定的独立性,形成一个模块。
增加了内聚性,降低了耦合性。
同时也增加了代码的可读性以及代码的重用性。
4. 在c语言中struct只能对数据进行聚合,而c++的class把数据以及对数据的处理方法也同时聚合为一体,增加了内聚性。
此外class拥有可再生性和可抽象性,实现的代码的复用。
集中体现在派生的功能和多态的功能。
同时class也比struct具备更好的封装性,体现在三种访问权限上。
东软C++笔试题附答案
东软c++笔试题+答案1、public static const int num = 9; 判断题const 成员变量是静态的不需要加static修饰2、C#中接口和类的主要区别问答接口只包含方法或属性的声明,不包含具体实现方法的代码,接口可以实现多继承(可以实现多个接口),而类只能是单继承,继承(实现)接口的类必须实现接口中声明的方法或属性3、用sealed修饰的类有什么特点问答不可被继承4、找错误指出下面程序的错误public class MyTest{public void Test(ref int i){i = 1;}public void Test(int i){i = 1;}public void Test(out int i){i = 1;}}Out 和 ref 不能用来重载方法compiler error CS0663: "cannot define overloaded methods that differ only on ref and out"5、什么类型的变量可以用foreach 来遍历?问答In C#, it is not strictly necessary for a collection class to inherit from IEnumerable and IEnumerator in order to be compa tible with foreach; as long as the class has the required GetEnumerator, MoveNext, Reset, and Current members, it will work with foreach. Omitting the interfaces has the advantage of allowing you to define the return type of Current to be more specific than object, thereby providing type-safety.6、读程序写出输出结果读程序public class MyTest{static void Main(string[] args){MyTest mt = new MyTest();mt.Test();}public void Test(){StructPoint sp = new StructPoint();sp.x = 9;sp.y = 10;StructPoint retSp = RefreshStructPoint(sp);OutputStructPointResult(ref retSp);OutputStructPointResult(ref sp);retSp = RefreshStructPoint(ref sp);OutputStructPointResult(ref retSp);OutputStructPointResult(ref sp);ClassPoint cp = new ClassPoint(10, 12);ClassPoint retCp = RefreshClassPoint(cp);OutputClassPointResult(ref retCp);OutputClassPointResult(ref cp);}public void OutputStructPointResult(ref StructPoint sp){Console.WriteLine(sp.x);Console.WriteLine(sp.y);}public void OutputClassPointResult(ref ClassPoint cp){Console.WriteLine(cp.X);Console.WriteLine(cp.Y);}private StructPoint RefreshStructPoint(ref StructPoint point) {point.x++;point.y++;return point;}private StructPoint RefreshStructPoint(StructPoint point){point.x++;point.y++;return point;}private ClassPoint RefreshClassPoint(ClassPoint point) {point.X = 0;point.Y = 0;return point;}}public struct StructPoint{public int x;public int y;}public class ClassPoint{private int x = 0;private int y = 0;public ClassPoint(int x, int y){this.x = x;this.y = y;}public int X{get{return x;}set{x = value;}}public int Y{get{return y;}set{y = value;}}}输出结果1011910101110117、string 是值类型还是引用类型?下面的代码Main方法中在调用第一个Method 和第二个Method方法后str变量结果分别是什么,是否会被改变class RefExample{static void Method(ref string s){s = "changedRef";}static void Method(string s){s = "changed";}static void Main(){string str = "original";Method(str);Method(ref str);}}第一个方法后str = “original”第二个方法后str = “changed Ref”8、out和ref关键字的作用,有什么不同?表示参数是传递引用,out传递前不需要初始化,执行的函数返回前必须赋值,ref传递前必须初始化。
东软培训考核试题答案(内部资料)
东软培训考核试题答案(内部资料)⼀、单选题(共20分,每题1分)1、快速排序的时间复杂度_____。
A)B) O(n*n); C)O(n*n/2); ; D)O(log(n));2、计算程序执⾏完的结果:short a;char *p;a = 1234;p= (char *)&a*p = 56;请问题变量a的数值为______。
A)1234; B) 3456; C)5634;3、判断程序的结果:char * p = “Hello World”;*p = “A”;程序执⾏后的结果_______。
A) p指向的字符串为“Aello World”;“H ello World”;C)D) 结果未知;4、请问这个结构体所占的空间⼤⼩是______。
Typedef {Int a;Char b,Short c,Short d,}AA_t;A)16byte; B) 9 byte; D)85、有下列程序段char a[3],b[]=”China”;a = b;printf(“%s”,a);则______。
A)运⾏后将输出China Ch;C)运⾏后将输出Chi6、若有语句int * point,a =4 ;和point = &a______。
7 、语句int (*ptr)();的含义是______。
A)ptr是指向⼀维数组的指针变量;D)ptr是⼀个函数名,该函数的返回值是指向int类型的指针;8、若有以下定义和语句:struct student{int age;int num;};struct student stu[3] = {{1001,20},{1002,19},{1003,21}};main(){struct student *p;p = stu;...}则以下不正确的引⽤是______。
A)(p++)->num; B)p++; C)(*p).num;9、请正确指出下列指针的最确切的含义,int (*ptr)[3]、int *(*ptr)[4]、void* (*ptr)(void*)______。
东软员工培训 摸底考试试题 内部资料
a[2]的值依次是___________
A. 10,11,12 B. 11,12,12 C.10, 12, 12
D.11,11,12
10.设有说明 int s[2]={0,1}, int *p=s;则下列错误的 C 语句是___________ A. s+=1; B. p+=1; C. *p++; D.(*p)++;
func2(x, y);
printf(“%d,%d”, x, y) ;
}
运行结果为(
)
A.10, 10,10,10 B.10, 10, 20, 20 C.20, 20, 20, 20 D.20, 20, 30, 30
14.如下代码 typedef struct ptrblock {
char *ptr; char name[10]; }Node_t;
static int y=10;
D. 不确定
void func1( ) {
x += 10; Y += 10; }
void func2(int x, int y) {
x += 10; y += 10; }
void main( void )
{
Func1( );
printf(“%d, %d”, x, y) ;
D, char c = 100; unsigned char uc = 100 c = c + uc; if (c > uc) {…} else {…}
18.下面各个程序中那些是不正确的(不符合 const 特征)(
)
A, int i;
int * const pi;
pi =&i;
C++培训考试 东软内部资料
《C++语言编程》课程考试笔试试卷总分:100分时间:120分钟姓名:班级:身份证号:一、选择题(每小题2分,共12分)1 C++源文件的缺省扩展名为()A.cppB.exeC.objD.lik2 程序运行中需要从键盘上输入多于一个数据时,各数据之间应该使用()符号作为分隔符A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车3 在每个C++程序中都必须包含有这样一个函数,该函数的名称为()A.mainB.MAIND.function4 假定a 为一个短整型(short int)数组名,则元素a[8]的地址为()A.a+4B.a+8C.a+16D.a+325 假定AB 为一个类,则执行“ABa(4),b[4],*p[5]”语句时,自动调用该类够造函数的次数为()A.4B.5C.8D.136 当需要使用istrstream流类定义一个流类对象并联系一个字符串时,应在文件开始使用#include命令,使之包含()文件A.iostream.hB.iomanip.hC.fstream.hD.ststrea.h二填空题(每小题3分,共30分)1.在C++中,函数的参数有两种传递方式,它们是值传递和()。
2.当一个成员函数被调用时,该成员函数的()指向调用它的对象。
3.在公有继承的情况下,基类数据成员在派生类中的访问权限()。
4.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到()构造函数,否则应用程序会产生一个编译错误。
5.静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象()。
6.面向对象的程序设计有四大特征,它们是()。
7.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为(),定义该类至少具有一个()。
8.在C++类中,const关键字可以修饰对象和成员函数,const对象不能()。
9.假定一个枚举类型的定义为“enum RB{ab,ac,ad,ae}x=ad;”则x的值为()10.若需要把一个类AB定义一个类CD的友元素,则应在类CD的定义中加入一条语句为()。
C语言笔试题及参考答案
C语言笔试题及参考答案-东软集团一、选择题(共30题,每题2分,满分60分)1、(数据结构)对图中的二叉树,按先根次序遍历得到的结点序列为BA、ABCDHEIFGB、ABDHIECFGC、HDIBEAFCGD、HIDBEFGAC2、(数据结构)设线性表(a1,a2,a3,...,a500)中所有元素的值由小到大排列,对一个给定的值K,用二分法查找表中与K相等的元素,在查找不成功的情况下,至多需要比较 A 次。
(本人拿不准)A、8B、9C、10D、113、(数据结构)二叉树的查找有深度优先和广度优先,深度优先包括 AA、前序遍历、后序遍历、中序遍历B、前序遍历、后序遍历、层次遍历C、前序遍历、中序遍历、层次遍历D、中序遍历、后序遍历、层次遍历4、(数据结构)已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为DA、DEBAFCB、DEFBCAC、DEBCFAD、DEBFCA5、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循A 原则。
A、先进先出B、先进后出C、随机进、随机出D、顺序进、随机出6、(数据结构)在数据结构中,结点及结点间的相互关系是数据的逻辑结构,数据结构按逻辑关系的不同,通常可分为两类A、动态结构和表态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构7、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循原则。
A、先进先出B、先进后出C、随机进、顺序出D、顺序进、随机出8、(数据结构)与单向链表相比,双向链表的优点之一是A、更节省存储空间B、便于进行随机访问C、更容易访问相邻结点D、可以省略头指针和尾指针9、(操作系统)在文件存储设备管理中,有三类常用字的空闲块管理方法,即位图向量法,空闲块链表法和A、级目录法B、多级目录法C、分区法D、索引法10、(操作系统)在进程管理中,当时,进程从阻塞状态变为就绪状态。
A、进程被进程调度程序选中B、等待某一事件C、等待事件发生D、时间片用完11、(操作系统)若进程P1正在运行,操作系统强行撤下P1进程所占用的CPU,让具有更高优先级的进程P2运行,这种调度方式称为A、中断方式B、抢占方式C、非抢占方式D、查询方式12、(操作系统)I/O控制方式有多种,一般用于大型、高效的计算机系统中。
东软笔试面试试题目汇总52页word
东软面试试题汇总1 堆和栈那个是对程序员透明的?答案:栈。
2 请结合具体实例阐述一下面向对象中"多态"的概念。
答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:→编译时多态---- 通过overload来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作→运行时多态---- 通过override来实现,根据运行时具体对象的类型决定调用哪个方法。
给我面试的人很有亲和力,我没有感到有压力。
首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。
你在项目组里主要负责什么?是怎么做的?主要负责页面前台展示,我现在设计页面框架,用的Struts-tile;把页面分为4部分,sidebar,header,footer,context;然后把sidebar,header,footer这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。
变得就是context部分。
另外在sidebar里面,用javascript来实现导航栏的弹出功能。
用什么方法可以检测一个环行链表?首先可以在data里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;但这个链表不一定是完全的链表,里面可能有分支,该怎么检测?设置一个循环,条件设为true,如果可以结束就不是,不能结束里面就有环。
那这样的话怎么让他跳出循环呢?我也不知道,那请教一下吧。
你看看如果next引用如果相同的话是不是就是环行链表?对,是那你想个办法来实现他吧。
把这个next引用,写进一个list,以后都把next引用和list里面的内容进行比较,如果有相同的就是环,没有就不是。
但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?呵呵,我想不出来了。
1.自我介绍,(注自我介绍中的自我经历可能会成为他的考点)2.我在自我介绍中说了我参加过数学建模,他问了我我们建的什么模型,我给他介绍了一下。
东软集团招聘笔试试题
东软集团招聘笔试试题(11)第一部分(通用能力类)1 、某学校2006 年度毕业学生7650 名,比上年度增长2 % . 其中本科毕业生比上年度减少2 % . 而研究生毕业生数量比上年度增加10 % , 那么,这所高校今年毕业的本科生有:A .3920人B .4410人C .4900人D .5490人2 、现有边长1 米的一个木质正方体,已知将其放入水里,将有0 . 6 米浸入水中.如果将其分割成边长0. 25 米的小正方体,并将所有的小正方体都放入水中,直接和水接触的表内积总量为:A .3. 4平方米B .9. 6平方米C .13. 6平方米D .16 平方米3 、把144张卡片平均分成若干盒,每盒在10 张到40 张之间,则共有()种不同的分法。
A .4B .5C .6D .74 、从一副完整的扑克牌中.至少抽出()张牌.才能保证至少6 张牌的花色相同。
A . 2 1B . 22C . 23D . 245、小明和小强参加同一次考试,如果小明答对的题目占题目总数的3 / 4 .小强答对了27 道题,他们两人都答对的题目占题目总数的2 / 3 ,那么两人都没有答对的题目共有:A . 3道B . 4道C . 5道D .6 道6、甲乙两人在一条椭圆型田径跑道上练习快跑和慢跑,甲的速度为3M/S,乙的速度为7M/S,他们在同一点同向跑步,经过100S第一次相遇,若他们反向跑,多少秒后第一次相遇()A 30B 40C 50 D707、有一堆钢管,最下面一层有30根,逐层向上递减一根,这堆钢管最少有多少根?()A 450 B 455 C 460 D4658、甲乙丙三名羽毛球选手训练共用了48个羽毛球,其中甲比乙多用了4个,乙比丙多用了4个,他们三个用的羽毛球数之比为()A 5:4:3 B 6:5:4 C 4:3:2 D 3:2:19、10、11、共有20 个玩具交给小王手工制作完成.规定,制作的玩具每合格一个得5 元,不合格一个扣2 元,未完成的不得不扣.最后小王共收到56 元,那么他制作的玩具中,不合格的共有()个。
东软C_C++笔试
1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数;答://假设线性表的双向链表存储结构typedef struct DulNode{struct DulNode *prior; //前驱指针ElemT ype data; //数据struct DulNode *next; //后继指针}DulNode,*DuLinkList;//删除操作Status ListDelete_DuL(DuLinkList &L,int i,ElemT ype &e){if(!(p=GetElemP_DuL(L,i))) //此处得到i位置的节点指针,如果有需要也得写出具体函数实现return ERROR;e=p->data;p->prior->next=p->next;p->next->prior=p->pror;free(p);return OK;}//插入操作Status ListInsert_DuL(DuLinkList &L,int i,ElemT ype &e){if(!(p=GetElemP_DuL(L,i)))return ERROR;if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))return ERROR;s->data=e;s->prior=p->prior;p->prior->next=s;s->next=p;p->prior=s;return OK;}2.写一个函数,将其中的\t都转换成4个空格。
答:该函数命名为convert,参数的意义为:*strDest目的字符串,*strSrc源字符串,length源字符串的长度函数实现为:char* convert(char *strDest, const char *strSrc,int length){char * cp = strDest;int i=0;while(*strSrc && i{if (*strSrc==‟\t‟) //将\t转换成4个空格{for(int j=0;j<4;j++)*cp++='';}else //否则直接拷贝*cp++=*strSrc;strSrc++;i++;}return strDest;}7.下列哪两个是等同的int b;A const int* a = &b;B const* int a = &b;C const int* const a = &b;D int const* const a = &b;答:各式表示的意思分别为:A const int* a = &b; //*a是const,但指针a可变B const* int a = &b; //a是const,但*a可变C const int* const a = &b; //a和*a都是const,常量和指针的值都不能改变D int const* const a = &b; //a和*a都是const,常量和指针的值都不能改变因此C,D两者是相同的。
东软c语言笔试题及答案大全
东软c语言笔试题及答案大全东软C语言笔试题及答案大全1. 以下哪个关键字用于定义C语言中的函数?A. classB. functionC. voidD. int答案:D2. 在C语言中,以下哪个选项不是合法的变量名?A. _myVarB. my_varC. 2variableD. myVar2答案:C3. 下列关于C语言中数组的描述,错误的是:A. 数组可以存储相同类型的多个元素B. 数组的索引从0开始C. 数组的大小在声明时必须指定D. 数组的大小可以在运行时确定答案:D4. C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. !=答案:A5. 在C语言中,以下哪个语句用于循环执行一段代码?A. ifB. forC. whileD. switch答案:B6. 下列哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 在C语言中,以下哪个选项是正确的注释方式?A. // This is a single line commentB. /* This is a single line comment */C. // This is a multi-line commentD. /* This is a multi-line comment */答案:A8. 下列哪个函数用于计算两个数的和?A. printfB. scanfC. sumD. strcat答案:C(注意:C语言标准库中没有sum函数,此题意在考察自定义函数的概念)9. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A10. 下列哪个选项是C语言中的预处理器指令?A. #includeB. #defineC. #importD. #export答案:A11. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. *答案:D12. 下列哪个选项是合法的C语言常量?A. 0x1AB. 1.23e5C. 123D. All of the above答案:D13. C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. sprintfD. strcat答案:A14. 下列哪个选项是C语言中正确的二维数组声明?A. int arr[3][4];B. int arr[][];C. int arr[3][];D. int arr[4][3][2];答案:A15. 在C语言中,以下哪个选项用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C16. 下列哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A17. C语言中,以下哪个关键字用于定义一个联合体?A. structB. unionC. enumD. typedef答案:B18. 下列哪个选项是C语言中正确的条件语句?A. ifB. unlessC. switchD. case答案:A19. 在C语言中,以下哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A20. 下列哪个选项是C语言中正确的无限循环?A. while(1)B. for(;;)C. do-whileD. All of the above答案:D。
东软C-C 笔试题及参考答案
东软C/C++笔试题及参考答案问题:东软C/C++笔试题及参考答案回答:在C/C++中static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。
它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。
那就是,这个函数被限制在声明它的模块的本地范围内使用引用与指针有什么区别?1) 引用必须被初始化,指针不必。
2) 引用初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引用,但是存在指向空值的指针。
char szstr[10]; strcpy(szstr, 0123456789 ); 产生什么结果为什么字符串需要11个字节才能存放下(包括末尾的’\0’),而szstr 只有10个字节的空间,strcpy会导致数组越界。
写出float x 与“零值”比较的if语句。
if(x-0.000001)Internet采用哪种网络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采用什么协议?a) TCP/IP协议b) 主要层次结构为:应用层/传输层/网络层/数链路层。
c) ARP (Address Resolution Protocol)(地据址解析协议)举两个C语言中不能做switch()的参数类型实型(float,Double)说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;1、自顶向下集成优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
C 语言考试(东软员工)
《C语言编程》课程考试笔试试卷总分:100分时间:120分钟姓名:班级:身份证号:一:简答:(22分)1 . 头文件中的ifndef/define/endif 起什么用?(2分)使被包含的程序只被编译一次。
2. 以下为Windows NT下的VC6开发环境下程序,请计算sizeof的值(8分)char str[] = “Hello” ;char *p = str ;int n = 10;请计算sizeof (str ) = 6sizeof ( p ) = 4sizeof ( n ) = 4void *p = malloc( 100 );请计算sizeof ( p ) = 43. 用变量a给出下面的定义:a) 一个整型数(An integer)(1分)int a;b) 一个指向整型数的指针(A pointer to an integer)(1分)int *a;c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)(1分)int **a;d) 一个有10个整型数的数组(An array of 10 integers)(1分)int a[10];e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)(2分)int *a[10];f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)(2分)int (*a)[10];g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)(2分)int (*a)(int iT emp);h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(An array of ten pointers to functions that take an integer argument and return an integer)(2分)int (*a[10])(int iT emp);typedef int (*fn)(int a); fn a[10];二.选择:(36分,每空3分)1.下面程序段的运行结果是【】a =1;b=2;c=2;while (a<b<c){t = a; a = b; b = t; c--;}printf(“%d,%d,%d”,a,b,c);A) 1,2,0B) 2,1,0 C) 1,2,1 D) 2,1,12.下面的程序输出是【】。
校园招聘_2011年东软集团校园招聘笔试真题
2021年东软集团校园招聘笔试真题一、选择题〔每题 2 分,共 40 分〕1、在C 语言中,假设已定义x 和y 为double 类型,那么表达式:x=1, y=x+3/2 的值是。
2、假设有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;那么不能表示a 数组元素的表达式是。
A、*pB、 a[10]C、 a[*p] D 、a[p-a]3、假设有代数式3ae/bc,那么不正确的C 语言表达式是:。
A、a/b/c*e*3B、 3*a*e/b/cC、 3*a*e/b*c D 、a*e/c/b*34、以下程序的执行结果是。
int main(){int i = 0;int a[5] ={0}; intcount = 0;for(i = 0; i<=5; i++){a[i] = 1;}printf("%d.",a[0]); return 0;}A、0B、 1C、 2D、结果未定义5、C 程序代码“while((c=getchar()!='a') putchar(c);〞中存在 B 错误。
A、调用 B 、语法C、逻辑D、运行6、下面对静态数据成员的描述中,正确的选项是。
A、静态数据成员可以在类体内进展初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能受private 控制符的作用D、公有静态数据成员可以直接用类名调用7、类的指针成员的初始化是通过函数完成的,这个函数通常是。
A、析构函数B、构造函数C、其它成员函数D、友元函数8、在一个 Windows API 的根本应用程序框架中,有如下的消息循环:while( GetMessage( &Msg, NULL, 0 , 0)){TranslateMessage( &Msg);DispatchMessage( &Msg);}下面哪个消息使得该消息循环退出运行,从而终止整个应用程序的运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法2:
#include
#include
main()
{
char str[]= "hello,world ";
int len=strlen(str);
char t;
for(int i=0; i{
t=str[i];
str[i]=str[len-i-1]; str[len-i-1]=t;
}
printf( "%s ",str);
15。enum string
{
x1,
x2,
x3=10,
x4,
x5,
}x;
问x;
答案:取值在0。1。10。11。12中的一个
16。unsigned char *p1;
unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
return 0;
}
答:10,12,120
7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
{
return GT_Length_ERROR;
}
.......}答案:要释放内存
5、do……while和while……do有什么区别?
答:前一个循环一遍再判断,后一个判断以后再循环
6、请写出下列代码的输出内容
#include
main()
{
int a,b,c,d;
a=10;
b=a++;
c=++a;
d=10*a++;
printf( "b,c,d:%d,%d,%d ",b,c,d);
{
INCp= &inc;
int temp =p(arg1);
fun( &temp,&arg1, arg2);
printf( "%d\n ",*arg2);
}
main()
{
int a;
show(multi,10, &a);
return 0;
}
答:110
11、请找出下面代码中的所以错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
10、while(len--!=0)
11、d++=s--;
12、printf( "%s ",dest);
13、return 0;
14、}
答:
方法1:
int main()
{
char* src = "hello,world ";
int len = strlen(src);
char* dest = (char*)malloc(len+1);//要为\0分配一个空间
return 0;
}
12。对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
答案:c用宏定义,c++用inline
13。软件测试都有那些种类?
答案:黑盒:针对系统功能的测试白合:测试函数功能,各函数接口
14。确定模块的功能和模块的接口是在软件设计的那个队段完成的?
答案:概要设计阶段
3。typedef unsigned char BYTE
int examply_fun(BYTE gt_len; BYTE *gt_code)
{
BYTE *gt_buf;
gt_buf=(BYTE *)MALLOC(Max_GT_Length);
......
if(gt_len>Max_GT_Length)
C语言笔试题及参考答案-东软集团
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用":: "
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。
DATE max;
则语句printf( "%d ",sizeof(struct date)+sizeof(max));的执行结果是:___52____
答:DATE是一个union,变量公用空间.里面最大的变量类型是int[5],占用20个字节.所以它的大小是20
data是一个struct,每个变量分开占用空间.依次为int4 + DATE20 + double8 = 32.
请问p1+5= ;
p2+20= ;
答案:801005;810014。不要忘记了这个是16进制的数字,p2要加20变为16进制就是14
选择题:
1.Ethternet链接到Internet用到以下那个协议?
A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
2.属于网络层协议的是:
A.TCP;B.IP;C.ICMP;D.X.25
2、如何引用一个已经定义过的全局变量?
答:extern
可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3.Windows消息调度机制是:
A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;
答案:b,a,c
二找错题:
1.请问下面程序有什么错误?
int a[60][250][1000],i,j,k;
for(k=0;k<=1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
答案:把循环语句内外换一下
2。以下是求一个数的平方的程序,请找出错误:
#define SQUARE(a) ((a)*(a))
int a=5;
int b;
b=SQUARE(a++);
答案:这个没有问题,s(a++),就是((a++)×(a++))唯一要注意的就是计算后a=7了
8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
9、设有以下说明和定义:
typedef union {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in);
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?
答:可以,在不同的C文件中以static形式来声明同名全局变量。
可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错
4、语句for(;1;)有什么问题?它是什么意思?
答:和while(1)相同。
1、#include "string.h "
2、main()
3、{
4、char*src= "hello,world ";
5、char* dest=NULL;
6、int len=strlen(src);
7、dest=(char*)malloc(len);
8、char* d=dest;
9、char* s=src[len];
char* d = dest;
char* s = &src[len-1];//指向最后一个字符