C/C++教程

C++面试——程序篇

本文主要是介绍C++面试——程序篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.求下面函数的返回值

int func(x) 
{ 
	int countx = 0; 
	while(x) 
	{ 

		countx ++; 
		x = x&(x-1);
	} 
	return countx;
} 

假定x = 9999。 答案:8

思路:将x转化为2进制,看含有的1的个数。

2:复杂声明

以下代码分别表示什么意思?

void * ( * (*fp1)(int))[10];

float (*(* fp2)(int,int,int))(int);

int (* ( * fp3)())[10]();
  1.  void * ( * (*fp1)(int))[10];   fp1是一个指针,指向一个函数,这个函数的参数为int型,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个void*型指针。
  2. float (*(* fp2)(int,int,int))(int);   fp2是一个指针,指向一个函数,这个函数的参数为3个int型,函数的返回值是一个指针,这个指针指向一个函数,这个函数的参数为int型,函数的返回值是float型。
  3. int (* ( * fp3)())[10]();   fp3是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是int型。

未完,不定时补充。。。。。。。。 

这篇关于C++面试——程序篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!