笔试题一

递归终会结束,那么该函数一定?
2有一个分支不调用自身
3使用了全局变量或使用一个或多个参数

局部静态变量或异常(如内存空间不足,除零异常)也可让递归终止,故选2
——————/
使用shortest remaining time调度机制(减少进程切换)可减少换页错误(缺页异常)
——————/
class A
{
public:
	A()
	{
		cout<<"A"<
若改为B(A&a),结果AAB~B ~A~A
本题结果AB~B ~A~A
——————/
int main()
{
	int*p=(int*)0x1000;
	int*q=(int*)0x2000;
	printf("%d\n",p-q);
	return 0;
}
结果:-0x1000/4= -1024
——————/
不能重载的运算符是. :: ?: sizeof
——————/
运算对象必须是整型的运算符是:% //错选成==
——————/
struct person
{
	char name[9];
	int age;
};
struct person cls[10]={
	"john",17,"paul",19,"mary",18,"adam",16 };
——————/
快速排序、希尔排序、堆排序、选择排序 不稳定,其它均稳定
——————/
下列四种排序中(快速)空间复杂度最大:
快速、希尔、堆、冒泡
——————/
已知二叉树后序遍历序列是bfegcda,中序遍历序列badefcg,问前序遍历序列是:abdcefg
——————/
char c=128; printf("%d\n",c); //-取反加1=-128
——————/
main函数执行前会做什么?
①设置栈指针
②初始化static和global变量,即data段
②将未初始化的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL等,即.bss段
④将argc,argv传给main并调用
——————/
注册main退出后执行的代码
void fn()
{
	cout<<"hello world"<
——————/递归求n阶层
int fun(int n)
{
	if(n==1||n==0)
  		return 1;
 	else 
  		return n*fun(n-1);
}

int main()
{
	cout<
——————/
平均时间复杂度最差的排序是:选择排序O(n^2)
——————/
结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是?
软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段,其中需求分析阶段常用工具是数据流程图和数据字典。
——————/
数据库系统一般由数据库、数据库管理系统(DBMS)、应用系统、数据库管理员和用户构成。DBMS是数据库系统的基础和核心。
外模式是用户模式
c规定各函数间,即允许直接递归调用,也允许间接递归调用
c中不正确的int类型常数是32768 //2^15-1=32767
结构化程序设计主要强调的是 程序的易读性
关系表中的每一横行称为一个 元组
用树形结构来表示实体之间联系的模型称为 层次模型
关系数据库管理系统能实现的专门关系运算包括 选择、投影、连接
希尔排序属于插入类型的排序法
——————/
不能够从循环体中跳到循环体外的关键字是:continue
int main()
{
	for(int i=0;i<5;i++)
	{
		goto sym;
		cout<<"hello"<
输出:world
——————/
c中构造类型有以下几种:数组类型、结构体类型、共用体类型(枚举类型不是)
算法五个特性:有穷性、确切性、输入(0(有初始条件)或多个)、输出、可行性
a以附加方式打开只写文件,若不存在则新建,如存在则写入数据加到文件尾
fopen打开失败,返回NULL,并将错误代码存于errno
最坏情况下比较次数最少的排序是堆排序
数据库应用系统中的核心问题是:数据库系统设计
——————/
运算结果类型:
int main()
{
	char w;  int x;  float y,z;
	cout<
结果:444
因121是整型常量,故sizeof(a)等价sizeof(int)
sizeof(c)同理
——————/
printf("%f\n",(2+4)/2);
printf("%f\n",(float)(2+4)/2);
结果:0.000000 3.000000
——————/
int main()
{
	int a[5]={2,4,6,8,10};
	int*p=a,**q=&p;
	printf("%d\n",*(p++));
	printf("%d",**q);
	return 0;
}  //2  4
——————/
if(i++==1&&(++j==3||k++==3))
	printf("%d%d%d\n",i,j,k);  //233
——————/
char s[8];  s={"beijing"};  //错误
——————/
int a[3][3]={1,2,3,4,5,6,7,8,9};
int(*ptr)[3]=a,*p=a[0];
能正确表示数组元素a[1][2]的表达式是*(*(a+1)+2)

a类型是int(*)[3],即指向int[3]数组的指针
p[i]等价于*(p+i)
int(*ptr)[3]=a导致ptr与a效果同
a[1][2]=*(a[1]+2)=*(*(a+1)+2)
——————/
double x,y,*px,*py;
px=&x; py=&y;
scanf("%f%f",&x,&y);
输入1.1 2.2结果5.26769e-315 5.30913e-315
scanf("%lf%lf",px,py); //ok
——————/
fopen以w打开,文件长度清0,若不存在则新建
float x=1234.6789;
printf("%2.1f",x); //1234.7
——————/
定义宏,算出n月份的天数
答案:#define DAYS_OF_MONTH(N) ((((N)%2)==1)?31:30)
——————/
inverse the bit2:
答案:a^(0x4)
——————/
void e(int n)
{
	if(n<3)
	{
		e(++n);
		cout<
答案:3 2 1 3
——————/
void(*fun[6])();  //定义函数指针数组 

void call(int N)
{
	fun[N]();	//据N调相应函数 
}

int main()
{
	fun[0]=fun0;  //初始化函数指针数组 
	......; 
	call(0);
	return 0;
}

你可能感兴趣的:(c开发,笔试题,c,c++)