网站首页 / 简历职场 / 求职简历 / 笔试题目 / 全文

笔试题目C基础笔试题及答案

💡 阅读提示:本文仅供参考学习,建议您结合个人实际情况进行修改和完善,写出符合自身特点的文书材料。

笔试题目C基础笔试题及答案.doc Word文档下载
《笔试题目C基础笔试题及答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 5星推荐 5星推荐 5星推荐 5星推荐 5星推荐 本篇共1889个文字
点击下载文档

在C++中函数可以使用缺省参数。下面就由本站小编为大家介绍一下C++基础笔试题及答案的文章,欢迎阅读。

C++基础笔试题及答案篇1

1.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数;

答:char *strcpy(char *strDest, const char *strSrc)

{

if ( strDest == NULL || strSrc == NULL)

return NULL ;

if ( strDest == strSrc)

returnstrDest ;

char *tempptr = strDest ;

while( (*strDest++ = *strSrc++) != ‘’);

returntempptr ;

}

2. 头文件中的ifndef/define/endif的作用?

答:防止该头文件被重复引用。

3. #i nclude与#i nclude "file.h"的区别?

答:前者编译器从标准库路径开始搜索file.h,而后者编译器从用户的工作路径开始搜索file.h。

4. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern"C"?

答:extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,其声明的函数和变量可以在本模块或其它模块中使用。

通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。

5. 面向对象的三个基本特征,并简单叙述之?

答:1)封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public)

2)继承:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。

3)多态:允许将子类类型的指针赋值给父类类型的指针。

6. 重载(overload)和重写(overried,有的书也叫做"覆盖")的区别?

答:从定义上来说:

重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

重写:是指子类重新定义复类虚函数的方法。

从实现原理上来说:

重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。

重写:当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。

7. 多态的作用?

答:主要是两个:1)隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用;2)接口重用,为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

8. 分别写出BOOL,int,float,指针类型的变量a 与"零"的比较语句。

答:BOOL :if ( !a ) or if(a)

int :if ( a ==0)

float :const EXPRESSION EXP = 0.000001

if ( a -EXP)

pointer : if ( a != NULL) or if(a == NULL)

9. 请说出const与#define 相比,有何优点?

答案:1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。

2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。

10.简述数组与指针的区别?

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。

(1)修改内容上的差别

char a = "hello";

a[0] = ‘X’;

char *p = "world"; // 注意p 指向常量字符串

p[0] = ‘X’; // 编译器不能发现该错误,运行时错误

(2) 用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

char a = "hello world";

char *p = a;

cout

voidFunc(char a[100])

{

cout

C++基础笔试题及答案篇2

1.变量的声明和定义有什么区别?

答:声明变量不分配空间,定义变量要分配空间。声明主要是告诉编译器,后面的引用都按声明的格式。定义其实包含了声明的意思,同时要分配内存空间。

2. 解释堆和栈的区别。

答:堆(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。速度比较慢,而且容易产生内存碎片,不过用起来最方便。

栈(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。由系统自动分配,速度较快。但程序员是无法控制的。

3. const的作用是什么?

答:(1)可以定义const常量

(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

4. 下列哪两个是等同的

int b;

A constint* a = &b; //指向常量的指针,不能通过指针改变b,但指针的地址可以改变。

B const* int a = &b;// 指针的地址不可以改变,但可以通过指针改变b的值

C constint* const a = &b; //指针指向的值,和指针本身的地址都不能改变

D intconst* const a = &b;//与c相同

5. 完成程序,实现对数组的降序排序

#include

void sort(int array );

int main

{

int array={45,56,76,234,1,34,23,2,3}; //数字任//意给出

sort( array );

return 0;

}

void sort( int array )

{____________________________________

inti,j,k;

for(i=1;iarray[i-1])

{

k=ARRAY[i];

j=i-1;

do

{

array[j+1]=array[j];

j– ;

}

while(k>array[j]&&j>=0);

array[j+1]=k;

}

}

—————————————————–

}

6. int i=(j=4,k=8,l=16,m=32); printf("%d", i); 输出是多少?

答:相当于 i=j=4;i=k=8;i=l=16;i=m=32; 故最后i=32;

7. 请简述以下两个for循环的优缺点(5分)

1)for (i=0; i {

if (condition)

DoSomething;

else

DoOtherthing;

}

2)if (condition)

{

for (i=0; i DoSomething;

}

else

{

for (i=0; i 0)

{

*psTo++ = *psFrom++;

}

returnpvTo;

}

8 .C++里面如何声明const void f(void)函数为C程序中的库函数?

答:在该函数前添加extern "C"声明。由于编译后的名字不同,C++程序不能直接调用C 函数。

9. 请写出下面代码在 32 位平台上的运行结果,并说明sizeof的性质:

#include

#include

int main(void)

{

char a[30];

char *b = (char *)malloc(20 * sizeof(char));

printf("%dn", sizeof(a));

printf("%dn", sizeof(b));

printf("%dn", sizeof(a[3]));

printf("%dn", sizeof(b+3));

printf("%dn", sizeof(*(b+4)));

return 0 ;

}

答:在32位系统下(如WIN32),指针长度为32位。a是一个有30个元素的字符型数组;b是一个字符串指针;a[3]是字符型;b+3是指针;*(b+4)是字符型。

因此输出: 30、4、1、4、1

C++基础笔试题及答案篇3

1. C++中,关键字struct和class的区别仅仅在于:

struct定义的类的缺省成员为公有的,而class定义的类的缺省成员为私有的;

2. 头文件的作用是什么?

答:1)通过头文件来调用库功能。2)头文件能加强类型安全检查。

3. C++函数中值的传递方式有哪几种?

答:C++函数的三种传递方式为:值传递、指针传递和引用传递。

4. 内存的分配方式的分配方式有几种?

答:1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。

2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

5. 设计函数intatoi(char *s)。

答:intatoi (char *s)

{

int i = 0,sum = 0,sign; //输入的数前面可能还有空格或制表符应加判断

while(*s=="||*s==’t’)

{

i++;

}

sign = (*s==’-')?-1:1;

if(*s==’-'|| *s==’+')

{

i++;

}

while(*s!=’

《笔试题目C基础笔试题及答案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 5星推荐 5星推荐 5星推荐 5星推荐 5星推荐 本篇共1889个文字
点击下载文档

📥 下载说明

1、下载的文档为doc格式,下载后可用Word文档或者WPS打开进行编辑;

2、若打开文档排版布局出现错乱,请安装最新版本的Word/WPS软件;

3、下载时请不要更换浏览器或者清理浏览器缓存,否则会导致无法下载成功;

4、如遇下载问题,请清除浏览器缓存后重试,或联系邮箱:[email protected]

⚖️ 版权声明

1、本网站发布的范文《笔试题目C基础笔试题及答案》为范文大全网网友分享或互联网收集整理,版权归原作者所有。

2、本网站内容《笔试题目C基础笔试题及答案》仅代表作者本人的观点,如果您发现侵犯了您的权益,请联系我们进行处理。

3、本网站一直无偿提供大量优秀范文,免费帮用户参考学习。对于不当转载或引用本网内容而引起的民事纷争、行政处理或其他损失,本网不承担责任。

4、如需投诉或举报,请访问:投诉建议页面 或发送邮件至 [email protected]

📚 相关推荐

如果您对笔试题目C基础笔试题及答案感兴趣,可能还会喜欢以下相关内容:

📱 关注公众号
入党啦微信公众号二维码