C++面试题(十)

1、
cout和多数C++表达式中,char数组名,char指针以及用双引号括起的字符串常量都被解释为字符串第一个字符的地址。题中,p是包括字符s的char元素地址。cout对象认为char的地址是字符串的地址,因此打印改地址处的字符,然后继续打印后面的字符,直到遇到空字符位置,所以会打印string。依次类推,p+3 则会打印ing.

3、友元函数和友元类是不能直接访问类的私有成员的,只能通过类的对象间接访问和修改
4、

以下程序调用fun 函数求数组中最大值所在元素的下标。


#include <stdio.h>
void fun ( int ﹡s,int n,int ﹡k )
{
    int i;
    for ( i  0 ,﹡k  i;i < n;i + + )
    if( s [i] > s [﹡k] )   
        ________ ;
}
main ( )
{
    int a [5]  {1,6,2,8,0 , k;
    fun ( a,5,&k );
    printf ("%d %d\n",k,a [k] );
}

在横线处应填入的内容是?

 
  • ﹡k = i
  •   k = i
  • ﹡k = i - s
  •   k = i - s
解答:
第一次 i=0  *k =0  s[i]=1  s[*k]=1  *k不变
第二次 i=1  *k =0  s[i]=6  s[*k] =1  *k=1
第三次 i=2  *k =1  s[i]=2  s[*k]=6  *k不变
第三次 i=3  *k =1  s[i]=8  s[*k]=6  *k=3
第四次 i=4  *k =3  s[i]=0  s[*k]=8  *k不变
最大值的下标为*k=3, 最大值为s[*k]=8






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值