#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int main1()
{
int a = 1;
int b = 32;
printf("%d,%d\n",a<<b, 1<< 32);
return 0;
}
int main2()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int *)(&a + 1);
printf("%d,%d\n",*(a + 1),*(ptr - 1));
return 0;
}
#if 0
void foo(int *a,int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main()
{
int a = 1,b = 2,c = 3;
foo(&a,&b);
foo(&b,&c);
foo(&c,&a);
printf("%d,%d,%d\n",a,b,c);
return 0;
}
#endif
int main3()
{
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",a[1][1]);
printf("%d\n",*(&a[0][0]+5)); //a[0][0] = 1,&a[0][0] + 5 = &a[1][1] 6
printf("%d\n",*(*(a+1)+1)); //a+1下一行,*(a+1) = a[1] = a[1][0]
printf("%d\n",*(a[1]+1)); //二维数组中a[1]表示a[1][0],数组是连续存储空间,所以a[1]+1 = a[1][1]
return 0;
}
int func(int x)
{
int count = 0;
while(x)
{
count ++;
x = x & (x - 1);
}
return count;
}
int main4()
{
cout << func(9999) << endl;
return 0;
}
int main5()
{
char array[12] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
short *pshort = (short *)array;
int *pint = (int *)array;
//int64 *pint64 = (int64 *)array;
printf("0x%x,0x%x,0x%llx",*pshort,*(pshort+2),*(pint+2));
return 0;
}
class Parent
{
public:
virtual void Intro()
{
printf("Parent\n");
Hobby();
}
virtual void Hobby()
{
printf("football\n");
}
};
class Child:public Parent
{
public:
virtual void Intro()
{
printf("Child\n");
Hobby();
}
virtual void Hobby()
{
printf("basketball\n");
}
};
int main6()
{
Child *pchild = new Child;
Parent *parent = (Parent *)pchild;
parent->Intro();
return 0;
}
int main7()
{
char str[1024];
printf("input : \n");
gets(str);
int len = strlen(str);
for(int i = 0;i < len;i++)
{
if(str[i] >= 'a' && str[i] <= 'z')
{
str[i] = str[i] - 32;
}
else if (str[i] >= 'A' && str[i] <= 'Z')
{
str[i] = str[i] + 32;
}
}
printf("%s\n",str);
return 0;
}
class Base
{
public:
Base(char * p_szName):m_szName(p_szName)
{
cout << m_szName << ",";
}
virtual ~Base()
{
cout << "~"<<m_szName << ",";
}
private:
char* m_szName;
};
class DErivice:public Base
{
public:
DErivice(char *p_szName):m_szName(p_szName),m_objA((char *)"A"),m_objB((char *)"B"),Base((char *)"C")
{
cout << m_szName << ",";
}
virtual ~DErivice()
{
cout << "~" << m_szName << ",";
}
private:
char *m_szName;
Base m_objB;
Base m_objA;
};
int main8()
{
// 构造函数调用顺序:基类->对象->派生类
//构造函数初始化列表初始化顺序是由成员变量声明顺序决定
Base *p = new DErivice("D");
delete p;
return 0;
}
int main9()
{
char str[] = "glad to test something";
char *p = str;
int *p1 = reinterpret_cast<int *>(p); // 指针间的转换
p1++;
// p = reinterpret_cast<char *>(p1);
printf("%s\n",p1);
return 0;
}
牛客笔试整理 一
最新推荐文章于 2024-08-23 22:46:08 发布