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