C++实训题目

更新时间:2024-03-21 07:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C++试题

1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分) int a = 4;

(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); A a =10

2.某32位系统下, C++程序,请计算sizeof 的值(5分). char str[] = “http://www.ibegroup.com/” char *p = str ; int n = 10; 请计算

sizeof (str ) = 25(1) sizeof ( p ) = 4(2) sizeof ( n ) = 4(3)

void Foo ( char str[100]){ 请计算

sizeof( str ) = 4(4) }

void *p = malloc( 100 ); 请计算

sizeof ( p ) = 4(5) 答:

3. 回答下面的问题. (4分)

(1).头文件中的 ifndef/define/endif 干什么用?预处理

答:ifndef:宏定义的一种,可以根据是否已经定义了一个变量来进行分支选择 Define:用来定义参数 Endif:选择语句

(2). #i nclude 和 #i nclude “filename.h” 有什么区别?

答:前者系统检索头文件时先从系统文件离开时找,再找其他地方。用于系统文件速度较快 后者系统检索头文件时先从程序所在目录开始查找,用于自定义文件速度较快。 (3).在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明? 答:表示此函数在c里已经定义过 (4). switch()中不允许的数据类型是? 答:float double

4. 回答下面的问题(6分)

(1).Void GetMemory(char **p, intnum){ *p = (char *)malloc(num); }

void Test(void){ char *str = NULL;

GetMemory(&str, 100);

strcpy(str, \

printf(str); }

请问运行Test 函数会有什么样的结果? 答:hello

(2). void Test(void){

char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL){ strcpy(str, “world”); printf(str); } }

请问运行Test 函数会有什么样的结果? 答:world

(3). char *GetMemory(void){ char p[] = \return p; }

void Test(void){ char *str = NULL; str = GetMemory(); printf(str); }

请问运行Test 函数会有什么样的结果? 答:hello

5. 编写strcat函数(6分)

已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。

(1)不调用C++/C 的字符串库函数,请编写函数 strcat

答: void char*strcat(char *srdest, const char *strsrc) {char *srdest=null; Char *strsrc=null;

Cout<<“请输入字符:”<

(2)strcat能把strSrc 的内容连接到strDest,为什么还要char * 类型的返回值? 答:char*指针指向新连接好的字符串的首地址,便于实现链式访问。 6.MFC中CString是类型安全类么? 答:不是

7.C++中为什么用模板类。 答:

可以通过模板类来处理多种类型的数据,而不必为每一种类型分别创建类。

8.程序什么时候应该使用线程,什么时候单线程效率高。 答:1,在任何程序运行时至少有一个主线程。

2,用于处理时间短的服务或者启动频率高的要用单线程。

9.++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中? 答:栈:局部变量,函数参数等

堆:

10.使用线程是如何防止出现大的波峰。

答:使用线程池,线程池具有可以同时提高调度效率和限制资源使用的好处,线程池中的线

程达到最大数时,其他线程就会排队等候。

11函数模板与类模板有什么区别?

答:函数模板定义了一组函数,类模板定义了一组类

12 关于内存对齐的问题以及sizof()的输出 答:

13int i=10, j=10, k=3; k*=i+j; k最后的值是? 答:60

14.TCP/IP 建立连接的过程?(3-way shake)

答:

15.ICMP是什么协议,处于哪一层?

答:ICMP协议时TCP/IP协议的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,它是一种差错和控制报文协议。处于网络层。 15.触发器怎么工作的?

答:触发器是个特殊的存储过程,它的的执行是由事件来触发比如一个表进行inset,delete

操作时,就会激活它执行。

25.winsock建立连接的主要实现步骤?

答:。服务器端:socket()建立套接字,绑定bing()并监听listen(),用accept()等待

客户端连接 客户端:socket()建立套接字,连接connect()服务器,连接上后使用send()和recv(),

在套接字上读取数据,直至数据交换完毕,closesocket()关闭套接字。 服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接,

该新产生的套接字使用send()和recv()读写数据,直至数据交换完毕,closesocket()关闭套接字

27.IP组播有那些好处? 答:

IP组播是一种允许一个或多个发送者发送单一的数据包到多个接受者的网络技术,组波可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只

传送单一的数据包。其核心技术就是如何在节约网络资源的前提下保证服务质量。

本文来源:https://www.bwwdw.com/article/hvw8.html

Top