为力新国际

发布 2022-09-18 21:19:28 阅读 8331

1. const int a,const int* a,int const* a多代表什么意义?

const int a; /常量,a的值不可以修改。

const int* a; /a是一个指向常量整形的指针,整形数不可以修改,指针可以改。

int *const a; /指向整形数的常指针,指针不可以修改,指针指向的整形数可以修改。

2. 关键字static的作用是什么?

在c语言中,关键字static有三个明显的作用:

1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

3. 几种排序算法的时间复杂度的比较:最坏情况和平均情况

冒泡排序 快速排序

选择排序 归并排序

希尔排序 堆排序。

快速排序在平均情况下复杂性为o(nlogn),最坏情况 o(n2),最好o(nlogn)

选择排序最好是 o(n2),最坏情况 o(n2)

堆排序和合并排序在最坏情况下复杂性为o(nlogn)。

冒泡排序、插入排序的比较次数为o(n2),最坏情况 o(n2),最好o(n)

4. 写出float x 与“零值”比较的if语句。

if(x>0.000001&&x<-0.000001)

5. 确定模块的功能和模块的接口是在软件设计的那个队段完成的?

概要设计阶段。

6. heap与stack的差别。

heap是堆,stack是栈。

stack的空间由操作系统自动分配/释放,heap上的空间手动分配/释放。

stack空间有限,heap是很大的自由存储区。

c中的malloc函数分配的内存空间即在堆上,c++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。

7. 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。

#define min(x, y) (x)>(y)?(y):(x))

8. void class::function() const中const的用途。

该函数中不能对成员变量的值作修改。

8. char a1 abcd";

sizeof( a1结果为5,字符串末尾还存在一个null终止符。

int a2[3];

sizeof( a2结果为3*4=12(依赖于int)

char* pc = abcd";

sizeof( pc结果为4,指针在32位系统中占4个字节。

9. 已知类string的原型为:

class string

else/ 拷贝构造函数。

string::string(const string &other)

int length = strlen(

m_data = new char[length+1]; 若能加null 判断则更好。

strcpy(m_data,

/ 赋值函数。

string & string:operate =(const string &other)

// 1) 检查自赋值。

if(this ==other)

return *this;

// 2) 释放原有的内存资源。

delete m_data;

// 3)分配新的内存资源,并复制内容。

int length = strlen(

m_data = new char[length+1]; 若能加null 判断则更好。

strcpy(m_data,

// 4)返回本对象的引用。

return *this;

10. 排序二叉树插入一个节点,其节点定义如下:

typedef struct node

bstnode;

bstnode *bstsearch(bstnode *t,int k)

if (t==null) else

12. 编写一个标准strcpy函数。

void *strcpy(char *strdest, const char *strsrc)

13. 编写单向链表的删除操作,链表节点定义如下:

int sll_remove(struct node **rootp, struct node *node);

函数的第一个参数是指向链表根指针的指针,第二个参数是一个指向欲删除的。

节点的指针。如果链表并不包含欲删除的节点,函数就返回假,否则它就移除。

这个节点并返回真。把一个指向欲移除的节点的指针而不是欲移除节点的值作。

为参数传递给函数有哪些优点?

#include <>

#include <>

#define false 0;

#define true 1;

typedef struct node

struct node *link;

int value;

node;

node *create()

node *head, *tail, *p;

int x;

char str;

head = tail = null;

printf("input data.");

while(1 ==scanf("%d", x))

scanf("%c", str);

return head;

int all_remove(node **linkp, node *deleted)

node *current;

while((current = linkp)!=null &¤t !=deleted)

linkp = t->link;

if(current ==deleted)

else return false;

14.二叉树查找。

#include <>

#include <>

#define max 10

int data[max] =

为力新国际

stack空间有限,heap是很大的自由存储区。c中的malloc函数分配的内存空间即在堆上,c 中对应的是new操作符。程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行。7.写一个 标准 宏,这个宏输入两个参数并返回较小的一个。define min x...

为力新国际

一 选择题 每小题2分,共30分 1.下面对于指针的描述不正确的是 a.指针是地址变量 b.指针不能用除0以外的常量赋值 c.两个指针变量的加减法无意义 d.指针指向不同基类型的变量长度不同 2.下面对于析构函数的描述中不正确的是 a.析构函数是内置函数b.析构函数与类名相同 c.析构函数不能有参数...

新国际结算

单项选择。第一章。1.实现货物或代表货物所有权的单据与货款对流的形式是 b a支付条件 b支付方式 c支付程序 d支付原则。2.在光票汇票结算阶段出现了以汇票结算为基础的 a a商人信用证 b银行信用证 c跟单信用证 d议付信用证。3.英国放弃英国惯例采用 跟单信用证统一惯例 的时期是 d a光票汇...