c++试题

一、写一个函数找一个字符串中出现频率最高的字符(若最高的相同,取先出现的)

char finchar(const char *str)
{
    if (!str||!*str)    {        return -1;        }
    char ch = str[0];
    int  maxn = 1, n = 1;
    for(int i = 0; str[i]!=0; i++)
    {
        for (int j = 0; j<i; j++)
        {
            if(str[j] == str[i]) n++; 
        }
        if(n > maxn) {ch = str[i]; maxn = n;}
        n=1;
    }
    return ch;
}

void main()
{
    char * p="11111111111111111" ;
    char a = finchar(p);

}

 写出e的值

int func(int i)
{
    return i<10?i:func(i/10)+i%10;
}
void main()
{
    //int e=(-1)&12345;  //12345    -1的二进制全是    1
    //int e=0x4321>>4<<4;  //17185
    //char*mystr="123";int e=sizeof(mystr);  //指针的长度4
    //char mystr[]="1235555";int e=sizeof(mystr); //8
    //int*a[6][3];     int e=a[5]-a[2];  //9
    //int a=1,b=2;int*p1=&a,*p2=&b;p1=p2;int e=a;//1
    //int e = sizeof(char); //1
    //int e =sizeof (int ); //4
    //int e=func(123456);//21
}

2、 假定AB为一个类,则执行”AB  a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为 4  。

3、这段代码编译通过运行出错。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
   char*s1="123456789";
  char*s2="123456";
  strncpy(s1,s2,6);
  printf("%s %s
",s1,s2);
  return0;
}
原文地址:https://www.cnblogs.com/lwngreat/p/4357864.html