文档介绍:C++基础笔试题及答案
在C++中函数可以使用缺省参数。下面就由为大家介绍一下
C++基础笔试题及答案的文章,欢迎阅读。
C++基础笔试题及答案篇1
.编写my_strcpy函数,实现与库函数strcpy类似的功能,?
答:声明变量不分配空间,定义变量要分配空间。声明主要是告
诉编译器,后面的引用都按声明的格式。定义其实包含了声明的意思同时要分配内存空间。
.解释堆和栈的区别。
答:堆(heap);;一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。速度比较慢,而且容易产生内存碎片,不过用起
来最方便。
栈(stack);;由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。由系统自动分配,速度较快。但程序员是无法控制的。
.const的作用是什么?
答:(1)可以定义const常量
(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
.下列哪两个是等同的
intb;
Aconstint*a=&b;〃指向常量的指针,不能通过指针改变b,但指针的地址可以改变。
Bconst*inta=&b;//指针的地址不可以改变,但可以
通过指针改变b的值
Cconstint*consta=&b;//指针指向的值,和指针本身
的地址都不能改变
Dintconst*consta=&b;〃与c相同
.完成程序,实现对数组的降序排序
#include
voidsort(intarray口);
intmain()
{
intarray[尸{45,56,76,234,1,34,23,2,3};〃数字任
//意给出
sort(array);
return0;
}
voidsort(intarray口)
{
inti,j,k;
for(i=1;i<=7;i++){if(array[i]>array[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;
}
}
;;;;;;;;;;;;;;;;;–
}
.inti=(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;
.请简述以下两个for循环的优缺点(5分)
1)for(i=0;i{
if(condition)
DoSomething();
else
DoOtherthing();
}
2)if(condition)
{
for(i=0;iDoSomething();
}
else
{
for(i=0;i0)
{
*psTo++=*psFrom++;
}
returnpvTo;
}
.C++里面如何声明constvoidf(void)函数为C程序中的库函数?
答:在该函数前添加extern"C”声明。由于编译后的名字不
同,C++程序不能直接调用C函数。
.请写出下面代码在32位平台上的运行结果,并说明sizeof的性质:
#include
#include
intmain(void)
{
chara[30];
char*b=(char*)malloc(20*sizeof(char));
printf("%d\n”,sizeof(a));
printf("%d\n”,sizeof(b));
printf("%d\n",sizeof(a[3]));
printf( %d\n
,sizeof(b+3));
printf("%d\n”,sizeof(*(b+4)));
return0;
}
答:在32位系统下(如WIN32),指针长度为32位。a是一个有30个元素的字符型数组;b是一个字符串指针同3]是字符型;b+3是指针;*(b+4)是字符型。
因此输出:30、4、1、4、1
C++基础笔试题及答案篇3
.C++中,关键字struct和class的区别仅仅在于:
struct定义的类的缺省成员为公有的,而class定义的类的缺省成员为私有的;
.头文件的作用是什么?
答:1)通过头文件来调用库功能。2)头文件能加强类型安全检查。
.C++函数中