常见面试题一

2 篇文章 0 订阅

1.下列程序在 32 linux unix 中的结果是什么? 
func(char *str)
{
printf("%d",sizeof(str));
printf("%d",strlen(str));

main()
{
char a[]="123456789";

printf("%d",sizeof(a));

func(a);
}

: 10 4 9

这个也就是说sizeof 来计算的时候,要在字符串后面加一个 /0 ,而 strlen ()不加。

其他str 为一个指针,故 sizeof(str) 4;

2、在 C++ 的内中定义访问函数,即是在这个函数中不能修改相应的成员变量。

如:int read() const

{}在函数名后加 const

3、 参数传递项总结:按值调用适用于不被函数更改的小对象;按常量引用调用用于不被函数更改的大对象;引址调用适用于所有可以被函数更改的对象;

4、 交换二个数,不使用其他的变量:

方法一:A = A + B; B = A - B; A = A-B;

方法二:a = a^b; b = a^b; a = a^b;

5、 反转字符串:

 14 char * revese(char *str)

     15 {

     16     if (str == NULL)

     17     {

     18         return str;

     19     }

     20     int n = strlen(str);

     21     int i = 0;

     22     if ((n == 0) || (n == 1))

     23     {

     24         return str;

     25     }

     26     char * temp = (char *)malloc(sizeof(char) * n + 1);

     27 

     28     for (i = 0; i < n; i++)

     29     {

     30         temp[i] = str[n - i - 1];

     31 

     32     }

     33 

     34     temp[i] = '/0';

     35     return temp;

     36 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值