77范文网 - 专业文章范例文档资料分享平台

部分c、c++笔试题集锦(13)

来源:网络收集 时间:2021-01-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

网上收集的c/c++的笔试题,将部分整理成节,上传后大家方便。不是很全,但是可以作为笔试的参考吧。

//结点指针成员 }PATH,*pPath;

初始化树的结点栈: void init_path( pPath* L ) { *L = ( pPath )malloc( sizeof( PATH ) ); //创建空树 ( *L )->next = NULL; } 树结点入栈函数: void push_path(pPath H, pBTree T) { pPath p = H->next; pPath q = H; while( NULL != p ) 20

{ q = p; p = p->next; } p = ( pPath )malloc( sizeof( PATH ) ); //申请新结点 p->next = NULL; //初始化新结点 p->tree = T; q->next = p; //新结点入栈 }

树结点打印函数: void print_path( pPath L ) { pPath p = L->next; while( NULL != p ) //打印当前栈中所有数据 { printf(“%d, “, p->tree->data); p = p->next; } } 树结点出栈函数: void pop_path( pPath H ) { pPath p = H->next; pPath q = H; if( NULL == p ) //检验当前栈是否为空 { printf(“Stack is null!\n”); return; } p = p->next; while( NULL != p ) //出栈 { q = q->next; p = p->next; } free( q->next ); //释放出栈结点空间 q->next = NULL; }

判断结点是否为叶子结点: int IsLeaf(pBTree T) { return ( T->lchild == NULL )&&( T->rchild==NULL ); }

查找符合条件的路径: int find_path(pBTree T, int sum, pPath L) 21

{ push_path( L, T); record += T->data; if( ( record == sum ) && ( IsLeaf( T ) ) ) //打印符合条件的当前路径 { print_path( L ); printf( “\n” ); } if( T->lchild != NULL ) //递归查找当前节点的左孩子 { find_path( T->lchild, sum, L); } if( T->rchild != NULL ) //递归查找当前节点的右孩子 { find_path( T->rchild, sum, L); } record -= T->data; pop_path(L); return 0; } 注意:数据结构一定要活学活用,例如本题,把所有的结点都压入栈,而不符合条件的结点弹出栈,很容易实现了有效路径的查找。虽然用链表也可以实现,但是用栈更利于理解这个问题,即适当的数据结构为更好的算法设计提供了有利的条件。

面试题34:写一个“标准”宏MIN

写一个“标准”宏MIN,这个宏输入两个参数并且返回较小的一个。 【答案】 #define min(a,b)((a)<=(b)?(a):(b)) 注意:在调用时一定要注意这个宏定义的副作用,如下调用: ((++*p)<=(x)?(++*p):(x)。

p指针就自加了两次,违背了MIN的本意。 面试题35:typedef和define有什么区别 (1)用法不同:typedef用来定义一种数据类型的别名,增强程序的可读性。define主要用来定义常量,以及书写复杂使用频繁的宏。 (2)执行时间不同:typedef是编译过程的一部分,有类型检查的功能。define是宏定义,是预编译的部分,其发生在编译之前,只是简单的进行字符串的替换,不进行类型的检查。

(3)作用域不同:typedef有作用域限定。define不受作用域约束,只要是在define声明后的引用都是正确的。 (4)对指针的操作不同:typedef和define定义的指针时有很大的区别。

注意:typedef定义是语句,因为句尾要加上分号。而define不是语句,千万不能在句尾加分号。 22

面试题36:关键字const是什么

const用来定义一个只读的变量或对象。主要优点:便于类型检查、同宏定义一样可以方便地进行参数的修改和调整、节省空间,避免不必要的内存分配、可为函数重载提供参考。

说明:const修饰函数参数,是一种编程规范的要求,便于阅读,一看即知这个参数不能被改变,实现时不易出错。 面试题37:static有什么作用

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库部分c、c++笔试题集锦(13)在线全文阅读。

部分c、c++笔试题集锦(13).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1180763.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: