下列程序执行后,n的值等于( )。 char a[20];char * p1 = (char *)a;char * p2 = (char*)(a+5);int n= p2-p1;
A: 4
B: 5
C: 10
D: 20
A: 4
B: 5
C: 10
D: 20
举一反三
- 如果函数声明形式为 void fun( char* a, int n, int&m );以下函数正确的调用的为( ) A: char str[10]; int *p, m; fun( str, m, p ); B: char *p = new char[10]; int n, m; fun( p, m, &n ); C: char *p = new char[10]; int n, m; fun( p, m, n ); D: char *p = new char[10]; fun( p, 5, 6 );
- 有以下程序: point( char木p) p+=3; main() char a[4]='1','2','3','4',*p=a; point(p); printf("%c\n",*p); 程序运行后的输出结果是 A: A) 1 B: B) 2 C: C) 3 D: D) 4
- 下面小段程序,哪个是正确的:() A: char * p = new char[10];p[0] = 'K'; delete [] p; B: int *p = new int[25]; p[10] = 100; delete p C: char * p = new int; p = 'a'; delete p; D: int * p = new char[20];p = 'a'; delete p;
- 调用下列哪个函数,能交换两个指针的指向()。 char str[]="China"; char *p1 = str, *p2 = “加油”; Swap (p1, p2); cout<< p1 << p2; // 加油China A: void Swap(char *p, char *q){ char *t = 0; t=p; p=q; q=t;} B: void Swap(char* p, char *q){ char t; t=*p;*p=*q;*q=t;} C: void Swap(char * *p, char * *q){ char* t = 0; t=*p;*p=*q;*q=t;} D: void Swap(char* &p, char * &q){ char* t = 0; t=p; p=q; q=t;}
- 下面语句错误的是( )。 A: int *p; *p=20; B: char *s="abcdef"; printf("%s\n",s); C: char *str="abcdef"; char *p;p=str D: char *str;str="abcdef";