1.以下三条输出语句分别输出什么?
char str1[] = "abc";
char str2[] = "abc";
string str3[] = "abc";
string str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?
2.写一个函数,完成内存之间的拷贝。
void* mymemcpy( void *dest, const void *src, size_t count )
3.冒泡排序算法的时间复杂度是什么?
4.设有以下说明和定义:
typedefunion {long i; int k[5]; char c;} DATE;
struct data { int cat; DATE cow; double dog;} too;
DATE max;
则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:
5.假设有如下一个类
class String{
public:
String(constchar *value);
~String();
char* strcpy(char* dest, constchar* source);
size t strlen( constchar *string );
…
private:
char *data;
};
要求利用类中的已知函数实现该类的赋值运算符“operator=”。
6.函数palindrome(chars[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,
否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LE VEL”是回文字符串,而“LEV AL”不是。
[函数2.1]
int palindrome(char S[])
{ char*pi,*pj;
pi=S;pj=s+strlen(S)-1:
while ( pi pi++;pj--; } if(__ (2)__)return-1; else return 0; } 7.函数f(char *str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出, del表示分割时的标志字符。 例如若str的值为“33123333435”,del的值为…3?,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。 void f(char*str,char del) { int i,j,len; len = strlen(str); i = 0; while(i while(__(3)__)i++;/*忽略连续的标志字符*/ /*寻找从str[i]开始直到标志字符出现的一个子字符串*/ j = i + 1; while (str[j] !=del && str[j] !='\0') j++; __ (4)__="\0";/*给找到的字符序列置字符串结束标志*/ printf(" %s\t",&str[i]):? __ (5)__; } } 8.设计函数int atoi(char *s)。 9.类成员函数的重载、覆盖和隐藏区别? 10.101个硬币100真、1假,真假区别在于重量。请用无砝码天平称两次给出真币重还 是假币重的结论