1.改写strcmp函数
#include<stdio.h>
int StrCmp(char* a,char *b){
char *p1 = a;
char *p2 = b;
while(*p2 == *p2){
if(!*p1){
return 0;
}
p1++;
p2++;
}
if(*p1 != *p2){
return *p1-*p2;
}
}
int main(){
}
2.改写strcat函数
#include<stdio.h>
#include<string.h>
char* StrCat(char*a,char*b){
char*p1 = a;
char*p2 = b;
for(;*p2 !='\0';p1++,p2++){
*(p1+strlen(a)) = *p2;
}
return a;
}
int main(){
}
3.用指针输出杨辉三角形
代码:
#include<stdio.h>
int main(){
int a[10][10];
int (*p)[10] = a;
for(int i = 0; i<10;i++){
for(int j =0;j<=i;j++){
if(j=i || j==0){
*(*(p+i)+j) = 1;
}else{
*(*(p+i)+j) = (*(*(p+i-1)+j-1)) + (*(*(p+i-1)+j));
}
}
}
for(int i = 0;i<10;i++){
for(int j =0;j<=i;j++){
printf("%d",*(*(p+i)+j));
}
printf("\n");
}
return 0;
}
4. 以下与库函数strcmp(char *s,char *t)功能相等的程序段是 D 。
A)strcmp1(char *s,char *t)
{ for ( ; *s++=*t++; )
if (*s= =’\0’)
return 0 ;
return (*s-*t) ;
}
B)strcmp2(char *s,char *t)
{ for ( ; *s++=*t++; )
if (!*s) return 0 ;
return (*s-*t) ;
}
C)strcmp3(char *s,char *t)
{ for ( ; *t= =*s; )
{ if (!*t) return 0 ; t++ ; s++ ; }
return (*s-*t) ;
}
D)strcmp4(char *s,char *t)
{ for ( ; *s==*t; s++, t++ )
if (!*s) return 0 ;
return (*t-*s) ;
}
5.以下说明不正确的是 B 。
A)char a[10]=”china” ;
B)char a[10],*p=a; p=”china”;
C)char *a; a=”china” ;
D)char a[10]; a=”china”;
6.设有说明语句:char a[]=”It is mine”;char *p=”It is mine”;则以下不正确的叙述是 D 。
A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制
C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
19-23 CDDAA 24-28DCCCC 29-33BADBC 34-41CDCBDBA