在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → C++程序设计题库(117题).doc

C++程序设计题库(117题).doc

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:0.11M
  • 下载次数:32
  • 浏览次数:327
  • 发布时间:2020-06-25
  • 实例类别:常规C/C++编程
  • 发 布 人:梦想翱翔
  • 文件格式:.doc
  • 所需积分:2
 相关标签: c++ 题库

实例介绍

【实例简介】
【实例截图】

【核心代码】

C 程序设计 117

1.new、delete、 malloc、 free关系?

2. delete与delete []区别 ?

3.C、C 、JAVA共同点,不同之处?

4.继承优缺点?

5. C 有哪些性质(面向对象特点) ?

6.子类析构时要调用父类的析构函数吗?

7.多态,虚函数,纯虚函数

8.求下面函数的返回值(微软)

int

func(x){ int

countx = 0;

while(x) { count

x ;

x = x&(x-1);

}

return countx;

9.什么是“引用”?申明和使用“引用”要注意哪些问题?

10.将“引用”作为函数参数有哪些特点?

11.在什么时候需要使用“常引用”?

12.将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?

13.“引用”与多态的关系?

14.“引用”与指针的区别是什么?

15.什么时候需要“引用”?

16.结构与联合有和区别?

17.下面关于“联合”的题目的输出?

a)

#include <stdio.h>

Union

{

int i;

char x[2];

}a;

void main()

{

a.x[0] = 10;

a.x[1] = 1;

printf("%d",a.i);

}

b)

main()

{

union{    /*定义 一个联合*/

int i;

struct{    /*在联合中定义个结构*/

char first;

char second;

}half;

}number;

number. i=0x4241;   /*联合成员赋值*/

printf ("%c%cn", number .half. first,numbe.half.second);

number .half.first='a';  /*联合中结构成员

number .half. second='b';

printf("%xn", number.i);

getch();

}

18. 关联、聚合(Aggregation)以及组合Composition)的区别?

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

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

21.多态的作用?

22. Ado与Ado. net的相同与不同?

23. New delete与malloc free的联系与区别?

24 . #define DOUBLE(x) x x,i = 5*DOUBLE(5); i是多少?

25 有哪几种情况只能用intialization list而不能用assignment?

26. C 是不是类型安全的?

27. main 函数执行以前,还会执行什么代码?

28.描述内存分配方式以及它们的区别?

29. struct和class的区别?

30.当一个类A中没有任何成员变量与成员函数,这时sizeof(A)的值是多少?

31.在8086汇编下,逻辑地址和物理地址是怎样转换的? (Intel)

32.比较C 中的 4种类型转换方式?

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

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

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

36.类成员函数的重载、覆盖和隐藏区别?

37.求出两个数中的较大者.

38.如何打印出当前源文件的文件名以及源文件的当前行号?

39. main 主函数执行完毕后,是否可能会再执行一段代码, 给出说明?

40.如何判断一段程序是由c编译程序还是由C 编译程序编译的?

41.文件中有一组整数,要求排序后输出到另一个文件中

42.链表题:一个链表的结点结构

struct Node

{

int data ; Node *next;

};

typedef struct Node Node ;

1) 己知链表的头结点head,写一个函数把这个链表逆序(Intel) Node *

ReverseList (Node *head)  //链表逆序

if ( head == NULL ||  head->next == NULL )

return head;

Node *p1=head; Node *p2 = p1->next ; Node *p3=p2->next ;

P1->next = NULL ; while ( p3 != NULL )

{

p2->next =p1 ;

p1 =p2 ;

p2 =p3 ;

P3 = p3->next ;

}

p2->next =p1 ; head= p2 ; return head ;

}

2)已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序。

(保留所有结点,即使大小相同)

Node *Merge (Node *head1 ,Node *head2)

{

if ( head1 == NULL)

return head2 ;

if ( head2 = NULL)

return head1 ;

Node *head = NULL ; Node *P1=NULL; Node *p2 = NULL;

p1 = head1->next;

p2 = head2 ;

}

else

{

head = head2 ;

p2 =head2->next ;

p1 = head1 ;

}

Node *pcurrent = head;

while ( p1 != NULL && p2 != NULL)

{

if ( p1->data <= p2->data )

{

pcurrent->next = p1 ;

pcurrent= p1;

P1 = p1->next ;

}

else

{

pcurrent->next =p2 ;

pcurrent =p2 ;

p2=p2->next ;

}

}

if(p1!=NULL)

pcurrent->next = p1 ;

if(p2!=NULL)

pcurrent->next= p2 ;

return head ;

}

(3)已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk)

43.分析一下这段程序的输出 (Autodesk)

class B

{

 public: B()

{

cout<<"default constructor"<<endl;

}

~B()

{

cout<<"destructed"<<endl;

}

B(int i) :data(i)

//B(int) works as a converter( int ->instanceint of B)

{

cout<< "constructed by parameter}

 private: int data;

};

B Play( B b)

{

return b ;

}

44. 写一个函数找出一个整数数组中,第二大的数(microsoft)

45.写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。

46.多重继承的内存分配问题

47.如何判断一个单链表是有环的? (注意不能用标志位,最多只能用两个额外指针)

48.指针找错题

分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进步增强自身的内功。

试题1:以 下是引用片段:

void test1() / /数组越界

{

char string[10];

char* strl = "0123456789";

strcpy( string, str1 );

}

试题2:以下是引用片段:

void test2()

{

char string[10], str1[10];

int i;

for(i=0; i<10; i )

{

str1= 'a';

}

strcpy( string, str1 );

}

试题3:以下是引用片段:

void test3 (char* str1)

{

char string[10];

if( strlen(str1)<=10)

{

strcpy( string, str1 );

}

}

49.如果编写一个标准strcpy函数

总分值为10,下面给出几个不同得分的答案: 2分 以下是引用片段:

void strcpy(char *strDest, char *strSrc )

{

while( (*strDest = * strSrc ) != '\0’);

}

4分,以下是引用片段:

void strcpy( char *strDest, const char *strSrc )

//将源字符串加const, 表明其为输入参数,加2分

{

while (*strDest = *strsrc ) != '\0’);

}

7分以下是引用片段:

void strcpy(char *strDest, const char *strSrc)

{

//源地址和目的地址加非0断言,加3分

assert( (strDest != NULL)&& (strSrc != NULL) );

while( (*strDest = * strSrc ) != ’\0’);

}

10分以下是引用片段:

为了实现链表操作,将目的地址返同,加3分!

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

{

assert ((strDest != NULL) && (strSrc != NULL))

char *address =strDest;

while(*strDest = *strSrc )

return address;

}

2分到10分的这几个案例我们可以清楚的看到,小小的strcpy竟然暗藏这么多玄机,真不是盖得,需要多么扎实的基本功才可以写一个完美的strcpy啊!(4)对strlen的掌握,它没有包括字符串末尾的’\0‘。

读者看了不同分值的strcpy版本,应该也可以写出一个10分的strlen函数了,完美的版本为int strlen(const char *str)//输入参数const

以下是引用片段:

{

assert( strt !- xULL ); //断盲字符串地址非0

int len=0; //注,一定要初始化。

while( (*strt) != '\0' )

{

len ;

}

return len;

}

试题4:以下是引用片段:

void GetMemory( char *p )

{

p = (char *) malloc( 100 );

void Test( void )

char *str = NULL; GetMemory(str );

strcpy( str, "hello world" );

printf( str );

}

试题5:以下是引用片段:

char *GetMemory (void )

{

char p[] = "hello world";

return p;

}

void Test( void )

{

char *str= NULL; str = GetMemory(); ptintf (str);

}

试题6:以下是引用片段:

void GetMemory( char **p, int num )

{

*P = (char *) malloc( num );

void Test( void )

{

char *str = NULL;

GetMemory( &str, 100 );

strcpy( str, "hello" ); printf(str);

}

试题7:以下是引用片段:

void Test( void )

{

char *str =(char *) malloc( 100 );

strcpy( str, "hello" ) ;

free( str );

... //省略的其它语句

}

50. String的具体实现已知String类定义如下:

class String

{

public:

String(const char *str =NULL); //通用构造函数

String (const String &another); // 拷贝构造函数

~ String(); //析构函数

String & operater =(const String &rhs); //赋值函数private:

char *m_data; // 用于保存字符串};

};

试写出类的成员函数实现。

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

52. # include<file.h>与#include "file. h"的区别?

53.在C 程序中调用被c编译器编译后的函数,为什么要加extern“C” ?

54请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

56. 请问交换机和路由器各自的实现原理是什么?分别在哪个

57.全局变量和局部交量有什么区别?是怎么实现的?, 操作系统和编译器是怎么知道的?

58.8086是多少位的系统?在数据总线上是怎么实现的?

59.static有什么用途? (请至少说明两种)

60.引用与指针有什么区别?

61.描述实时系统的基本特性

62全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

63.什么是平衡二叉树?

64.堆栈溢出一般是由什么原因导致的?

65.什么函数不能声明为虚函数?

66.冒泡排序算法的时间复杂度是什么?

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

68. Internet采用哪种网络协议? 该协议的主要层次结构?

69. Internet物理地址和IP地址转换采用什么协议?

70. IP地址的编码分为哪俩部分?

71.用户输入M,N值,从1至N开始顺序循环数数,每数到输出该数值,直至全部输出。写出C程序。

72.不能做switch()的参数类型是()

73.局部变量能否和全局变量重名?

74.如何引用一个已经定义过的全局变量?

75.全局变量可不可以定义在可被多个.C文件包含的头文件中? 为什么?

76.语句for( ; 1 ; )有什么问题?它是什么意思?

77. do.......while和while.....do有什么区别?

78.请写出下列代码的输出内容

#include main()

{

int a,b,c,d; a=10; b=a ; C= a; d-10*a ;

printf("b, c, d: %d, %d, %d”,b,c, d) ;

return 0

}

79. statac全局变量、局部变量、函数与普通全局变量、局部变量、函数static全局变量与普通的全局变量有什么区别? static 局部变量和普通局部变量有什么区别? static函数与普通函数有什么区别?

80.设有以下说明和定义:

typedef union {long i; int k[5]; char c;} DATE;

struct data { int cat; DATE cow; double dog;} too;

DATE max;

则语句pintf("%d",sizeof(struct date) sizeof(max));的执行结果是?

81. -1,2,7,28,126 请问28和126中间那个数是什么?为什么?

82.用两个栈实现一个队列的功能?要求给出算法和思路!

83.在c语言库函数中将一个字符转换成整型的函数是atool数的原型是什么?

84.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C 中应用什么实现?

85.用预处理指令#define声明一个常数, 用以表明1年中有多少秒(忽略闰年问题)

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

87.预处理器标识#error的目 的是什么?

88.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?

89.用变量a给出下面的定义

a)一个整型数(An integer)

b)一个指向整型数的指针(A pointer to an iteger)

c)一个指向指针的的指针,它指向的指针是指向一个整型数(A pointert to a pointerto an integer)

d)一个有 10个整型数的数组(An aray of 10 inegers)

e) 一个有10 个指针的数组,该指针是指向“个整型数的(An rray of10pointers to integers)

f)一个指向有 10个整型数数组的指针(A pointet to an rray of 10 integers)

g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a fuction that takes an integer as an argument and returns an integer)

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( Aarrayof ten pintes to unction that take an integerargument and returm an integer )

答案是:

a) int a; // An integer

b) int *a; // A pointer to an integer

c)int **a;//A pointer to pointer to an integer

d)int a[10];// an array of 10 integers

e) int *a{10]:// An array of 10 pointers to integers

f) int (*a)[10]; // A pointer to an aray of 10 integers

g) int (*a)(int);// A pinter to a function that takes an integer argument and returns an integer

h) int (*a[10])(int)); // An aray of 10 pointers to functionsargument and return an integer

人们经常称这里有几个问题是那种要翻下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性, 我的确查了一下书,但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道所有的答案(或至少大部分答案) 那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢?

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

91.关键字const是什么含义?

92.关键字volatile有什么含意并给出三个不同的例子。

93.下面的代码输出是什么,为什么?

void Eoo (void)

{

unsigned int a = 6;

int b = -20;

(a b > 6) puts("> 6") : puts("<= 6");

}

94.C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?

95.线形表a、b为两个有序升序的线形表,编写-程序,使两个有序线形表合并成一个有序升序线形表h;

96.用递归算法判断数组a[N]是否为一个递增数组。递归的方法, 记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false 结束:

97.编写算法, 从10亿个浮点数当中, 选出其中最大的10000个。

98.编写一unix程序,防止僵尸进程的出现

99.可怕的题目终于来了

想象搜索的输入信息是一个字符中, 统计300万输入信息中最热门的前十条,我们每次输入的一个字节不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度。100.判断字符串是否为回文

101. ASDL使用的是什么 协议?并进行简单描述?

102. Static作用是什么

103.什么是预编译,何时需要预编译?

104.进程和线程的区别什么是进程(Process) ?105.插入排序和插入排序基本思想:106.运算符优先级问题

107.字符串倒序

写一个函数将"tomis cat'倒序打印出来,印"cat is tom”"

-----------------------------------------------------------

1) 写一个递归函数将内存中的字符串翻转"abe*->"cba"

2) 写一个函数将"tom is cat"将内存中的字符串翻转,即"cat is tomm"

-----------------------------------------------------------

今天同学又问一道题,和上面有些类似,但是要求更严格了一些:写一个递归函数将内存中的字符中翻转"abc"->"cba",并且函数原型已确定:

void everse(char*p)其实,要求越多,思路越确定,

108.交换两个数的宏定义

109. tearator各指针的区别

110. C 中的class和struct的区别

111.有关重载函数

返同值类型不同构不成重载 参数参数顺序不同能构成重载。c 函数同名不同返回值不算重载!函数重载是忽略返回值类型的。

112.数据库与T-SQL语言

113.关系模型的基本概念

114. SQL语言概述

115.C语言中结构化程序 设计的三种基本控制结构

116. CVS是什么

117.三种基本的数据模型

 

 

 

 

标签: c++ 题库

实例下载地址

C++程序设计题库(117题).doc

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警