C#基础题及答案.docx
- 文档编号:23859356
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:21
- 大小:21.03KB
C#基础题及答案.docx
《C#基础题及答案.docx》由会员分享,可在线阅读,更多相关《C#基础题及答案.docx(21页珍藏版)》请在冰豆网上搜索。
C#基础题及答案
一简答题
1.static有什么用途?
(请至少说明两种)
2.引用与指针有什么区别?
3.描述实时系统的基本特性
4.全局变量和局部变量在内存中是否有区别?
如果有,是什么区别?
5.什么是平衡二叉树?
6.堆栈溢出一般是由什么原因导致的?
7.什么函数不能声明为虚函数?
8.冒泡排序算法的时间复杂度是什么?
9.写出floatx与“零值”比较的if语句。
10.Internet采用哪种网络协议?
该协议的主要层次结构?
11.Internet物理地址和IP地址转换采用什么协议?
12.IP地址的编码分为哪俩部分?
13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。
写出C程序。
循环链表,用取余操作做
14.写出判断ABCD四个表达式的是否正确,若正确,写出经过表达式中a的值(3分)
inta=4;
(A)a+=(a++);(B)a+=(++a);(C)(a++)+=a;(D)(++a)+=(a++);
a=?
15.某32位系统下,C++程序,请计算sizeof的值(5分).
charstr[]=“
char*p=str;
intn=10;
请计算
sizeof(str)=?
(1)
sizeof(p)=?
(2)
sizeof(n)=?
(3)
voidFoo(charstr[100])
{
请计算
sizeof(str)=?
(4)
}
void*p=malloc(100);
请计算
sizeof(p)=?
(5)
16.头文件中的ifndef/define/endif干什么用?
17.#include
18.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明?
19.switch()中不允许的数据类型是?
20.VoidGetMemory(char**p,intnum){
*p=(char*)malloc(num);
}
voidTest(void){
char*str=NULL;
GetMemory(&str,100);
strcpy(str,"hello");
printf(str);
}
请问运行Test函数会有什么样的结果?
21.voidTest(void){
char*str=(char*)malloc(100);
strcpy(str,“hello”);
free(str);
if(str!
=NULL){
strcpy(str,“world”);
printf(str);
}
}
请问运行Test函数会有什么样的结果?
22.char*GetMemory(void){
charp[]="helloworld";
returnp;
}
voidTest(void){
char*str=NULL;
str=GetMemory();
printf(str);
}
23.编写strcat函数
已知strcat函数的原型是char*strcat(char*strDest,constchar*strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数strcat
(2)strcat能把strSrc的内容连接到strDest,为什么还要char*类型的返回值?
24.MFC中CString是类型安全类么?
25.C++中为什么用模板类。
26.CSingleLock是干什么的。
27.NEWTEXTMETRIC是什么。
28.程序什么时候应该使用线程,什么时候单线程效率高。
29.Windows是内核级线程么。
30.Linux有内核级线程么。
31.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中?
32.使用线程是如何防止出现大的波峰。
33.函数模板与类模板有什么区别?
34.一般数据库若出现日志满了,会出现什么情况,是否还能使用?
35.如果数据库满了会出现什么情况,是否还能使用?
36.SQLServer是否支持行级锁,有什么好处?
37.关于内存对齐的问题以及sizof()的输出
38.inti=20,j=10,k=2;k*=i+j;k最后的值是?
39.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现?
40.TCP/IP建立连接的过程?
(3-wayshake)
41.ICMP是什么协议,处于哪一层?
42.触发器怎么工作的?
43.winsock建立连接的主要实现步骤?
44.动态连接库的两种方式?
45.IP组播有那些好处?
46.软件的开发流程?
47.charstr[]=“hello”,sizeof(str)=________strlen(str)=__________
48.类和结构的区别?
49.简述下虚拟函数的含义?
50.类中访问权限private,protested,prublic,可以被何种访问?
51.解释下面的含义:
int*pTemp=newint(5);
int*pTemp=newint[5];
二编程题
题目:
有n个人,他们围成一个圈,从第一个人开始数数(第一个人默认为1号,一直到n号),数1,2,3,当数到3的人则退出这个圈,后面的继续数,一直进行,问到最后是否只剩一个人,如果是,这个人的编号是多少?
题目:
写一个memcpy函数。
题目:
写一个双向链表的插入函数。
原型如下:
structnode
{
node*head;
node*end;
intvalue;
}
voidcreatenode(node**head,node**end,intval);
intmain()
{
node*head=NULL;
node*end=NULL;
createnode(head,end,1);
createnode(head,end,1);
createnode(head,end,1);
return0;
}
答案111===============================================================
1.static有什么用途?
(请至少说明两种)
====================================
对于变量:
具有程序生命周期,具有文件作用域
对于函数:
对于函数中的成员:
2.引用与指针有什么区别?
========================
引用是一特别的指针,必须在声明的时候初始化。
3.描述实时系统的基本特性
========================
响应快,可靠
4.全局变量和局部变量在内存中是否有区别?
如果有,是什么区别?
==========================================================
全局变量又分初始化的和未初始化的。
未初始化的一般在.bss段
初始化的在.data段,局部变量在函数栈中
5.什么是平衡二叉树?
=======================
二叉树层数比较平衡
6.堆栈溢出一般是由什么原因导致的?
=================================
实参缓存数组过大。
也可直接改esp
7.什么函数不能声明为虚函数?
============================
?
?
?
?
?
虚函数必须依附于类。
这个问题有点NC了吧。
8.冒泡排序算法的时间复杂度是什么?
===============================
O(N2)
9.写出floatx与“零值”比较的if语句。
====================================
if(-0.00000001 10.Internet采用哪种网络协议? 该协议的主要层次结构? ================================================== TCP/IPAllpeopleseemsneedtodataprocess Applicationpresentationsessionsnetworktransformdatalinkphysical 11.Internet物理地址和IP地址转换采用什么协议? ============================================ arprarp 12.IP地址的编码分为哪俩部分? =============================== 网络号,主机号 13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。 写出C程序。 循环链表,用取余操作做 14.写出判断ABCD四个表达式的是否正确,若正确,写出经过表达式中a的值(3分) inta=4; (A)a+=(a++);(B)a+=(++a);(C)(a++)+=a;(D)(++a)+=(a++); a=? 898? 不正确 15.某32位系统下,C++程序,请计算sizeof的值(5分). charstr[]=“ char*p=str; intn=10; 请计算 sizeof(str)=? (1)//数出长度然后加1 sizeof(p)=? (2)//4 sizeof(n)=? (3)//4 voidFoo(charstr[100]) { 请计算 sizeof(str)=? (4)//4 } void*p=malloc(100); 请计算 sizeof(p)=? (5)//4 16.头文件中的ifndef/define/endif干什么用? 防止头文件重复包含,条件编译等 17.#include 寻找路径不同一个是先在指定的环境变量的目录中找,另一个是先在当前项目文件中找 18.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明? ============================================================================== 若不加编译器会以C++的函数namemangling和C的namemangling不相同 19.switch()中不允许的数据类型是? 应该是说允许的类型吧,不允许的太多了。 只允许整型(enum也算) 20.VoidGetMemory(char**p,intnum){ *p=(char*)malloc(num); } voidTest(void){ char*str=NULL; GetMemory(&str,100); strcpy(str,"hello"); printf(str); } 请问运行Test函数会有什么样的结果? 内存泄漏外加输出的hello(hello后内容不确定) 21.voidTest(void){ char*str=(char*)malloc(100); strcpy(str,“hello”); free(str); if(str! =NULL){ strcpy(str,“world”); printf(str); } } 请问运行Test函数会有什么样的结果? 输出world(后面内容不确定) 22.char*GetMemory(void){ charp[]="helloworld"; returnp; } voidTest(void){ char*str=NULL; str=GetMemory(); printf(str); } 输出helloworld 23.编写strcat函数 已知strcat函数的原型是char*strcat(char*strDest,constchar*strSrc); 其中strDest是目的字符串,strSrc是源字符串。 (1)不调用C++/C的字符串库函数,请编写函数strcat (2)strcat能把strSrc的内容连接到strDest,为什么还要char*类型的返回值? 24.MFC中CString是类型安全类么? ============================= 不是 25.C++中为什么用模板类。 26.CSingleLock是干什么的。 27.NEWTEXTMETRIC是什么。 28.程序什么时候应该使用线程,什么时候单线程效率高。 29.Windows是内核级线程么。 30.Linux有内核级线程么。 31.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中? 32.使用线程是如何防止出现大的波峰。 33.函数模板与类模板有什么区别? 34.一般数据库若出现日志满了,会出现什么情况,是否还能使用? 35.如果数据库满了会出现什么情况,是否还能使用? 36.SQLServer是否支持行级锁,有什么好处? 37.关于内存对齐的问题以及sizof()的输出 38.inti=20,j=10,k=2;k*=i+j;k最后的值是? 39.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现? 40.TCP/IP建立连接的过程? (3-wayshake) 41.ICMP是什么协议,处于哪一层? 42.触发器怎么工作的? 43.winsock建立连接的主要实现步骤? 44.动态连接库的两种方式? 45.IP组播有那些好处? 46.软件的开发流程? 47.charstr[]=“hello”,sizeof(str)=________strlen(str)=__________ 48.类和结构的区别? 49.简述下虚拟函数的含义? 50.类中访问权限private,protested,prublic,可以被何种访问? 51.解释下面的含义: int*pTemp=newint(5); int*pTemp=newint[5]; 二编程题 题目: 有n个人,他们围成一个圈,从第一个人开始数数(第一个人默认为1号,一直到n号),数1,2,3,当数到3的人则退出这个圈,后面的继续数,一直进行,问到最后是否只剩一个人,如果是,这个人的编号是多少? 题目: 写一个memcpy函数。 题目: 写一个双向链表的插入函数。 原型如下: structnode { node*head; node*end; intvalue; } voidcreatenode(node**head,node**end,intval); intmain() { node*head=NULL; node*end=NULL; createnode(head,end,1); createnode(head,end,1); createnode(head,end,1); return0; } 2.答案22222222=============================================== 一简答题 1.static有什么用途? (请至少说明两种) 在函数中,一个声明为静态的变量在函数调用的过程中其值不变。 在模块中(函数外),一个声明为静态的变量只能由模块中的函数访问,也就是一个本地的全局变量 在模块中,一个声明为静态的函数只能由模块内的其他函数调用,这个函数被限制在了声明它的模块的本地范围使用。 2.引用与指针有什么区别? 引用要初始化,指针可以不用。 引用不能初始化为空,指针可以。 引用和指针的自增运算意义不同。 引用初始化后不能改变指向的地址,指针可以。 sizeof引用得到的是引用指向对象的大小,sizeof指针得到的是指针本身的大小。 3.描述实时系统的基本特性 在特定的时间完成特定的任务,具有实时性和可靠性。 4.全局变量和局部变量在内存中是否有区别? 如果有,是什么区别? 有区别,全局变量的存储区域是静态存储区,局部变量的存储区域是栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树,并且左右子树的深度差值的绝对值不大于1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? 构造函数。 8.冒泡排序算法的时间复杂度是什么? 0(n^2)。 9.写出floatx与“零值”比较的if语句。 if(x>0.00001&&x<0.00001)。 10.Internet采用哪种网络协议? 该协议的主要层次结构? Tcp/Ip协议,网络层、会话层、表示层、传输层、物理层、数据链层、应用层。 11.Internet物理地址和IP地址转换采用什么协议? ARP地址解析协议。 12.IP地址的编码分为哪俩部分? 主机号和网络号 16.头文件中的ifndef/define/endif干什么用? 预处理,防止头文件被反复包含。 17.#include #include 18.在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明? C++不能直接调用C函数,因为函数在C++中编译后的函数名在符号库中名字与C中不同,所以使用extern"C"修饰函数按照C语言的方式编译和连接。 19.switch()中不允许的数据类型是? 实型。 24.MFC中CString是类型安全类么? 不是,其他类型的变量可以通过CString中的Format来转换为CString类型。 25.C++中为什么用模板类。 与类型无关,具有很高的复用性。 与平台无关,具有可移植性。 可以创建一个动态增长或者减小的数据结构。 在编译时而不是运行时检查数据类型,保证了类型的安全。 适用基本数据类型。 26.CSingleLock是干什么的。 一种访问机制,在多线程程序中并发的访问一个资源。 27.NEWTEXTMETRIC是什么。 物理字体结构,设置字体的高宽大小。 28.程序什么时候应该使用线程,什么时候单线程效率高。 耗时的程序中使用多线程,提高程序的响应。 多CPU系统使用多线程,提高CPU的使用率。 改善程序结构时,一个即长有复杂的进程可以考虑分解为多线程,成为一个独立或者半独立的运行部分,便于程序的理解和修改 并发操作时,如C/S中服务端并发响应客户端的请求。 其他情况使用单线程。 29.Windows是内核级线程么。 30.Linux有内核级线程么。 31.C++中什么数据分配在栈或堆中,new分配数据是在近堆还是远堆中? 局部变量、函数的返回值、函数调用的参数、函数的返回地址存储在栈区。 new和malloc申请的内存存储在堆区。 32.使用线程是如何防止出现大的波峰。 使用线程池,可以提高线程同时调用的效率和限制资源使用的好处,当线程池中的线程达到最大数时,其他线程就会排队等候。 33.函数模板与类模板有什么区别? 函数模板的实例化是编译程序在处理函数调用时自动完成,类模板的实例化需要程序员在程序中显实指定。 34.一般数据库若出现日志满了,会出现什么情况,是否还能使用? 只能进行查询等读操作,不能进行更改、备份等写操作,因为任何操作会记录到数据库的日志中。 也就是数据库基本属于不能使用的状态。 35.如果数据库满了会出现什么情况,是否还能使用? 只能进行查询等读操作,不能进行更改、备份等写操作,因为任何操作会记录到数据库的日志中。 也就是数据库基本属于不能使用的状态。 36.SQLServer是否支持行级锁,有什么好处? 支持,锁机制是为了对并发操作进行控制,对干扰操作进行了封锁,保证了数据的一致性和准确性。 行级锁确保用户取得被更新的行到该行进行更新这段时间不会被其他用户所修改。 因而行级锁保证了数据的一致性又能提高数据操作的并发性。 37.关于内存对齐的问题以及sizof()的输出 内存自动对齐的是为了提高程序的性能,数据结构应该尽量在自然边界上,原因在于处理器访问未对齐的内存需要做两次内存访问,访问对齐的内存只需要访问一次。 39.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现? 将多个表的操作放到事物中处理。 40.TCP/IP建立连接的过程? (3-wayshake) 采用三次握手建立一个连接。 第一次握手: 建立连接时,客户端发送SYN(ack=j+1)到服务端,并进入到SYN_SEND状态,等待服务端确认。 第二次握手: 服务端收到SYN(ack
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 基础 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)