作业1
编写strlen函数
#include<stdio.h>
#include<string.h>
int my_streln(char *s)
{
int len=0;
while(*s!='\0')
{
len++;
s++;
}
return len;
}
int main(int argc, const char *argv[])
{
char arr[30]="";
gets(arr);
int len=my_streln(arr);
printf("len=%d\n",len);
return 0;
}
作业2
编写strcpy函数
#include<stdio.h>
#include<string.h>
char *mystrcpy(char *dest,const char *src)
{
char *p=dest;
while(*src!='\0')
{
*p=*src;
p++;
src++;
}
*p=*src;
return dest;
}
int main(int argc, const char *argv[])
{
char arr[30]="";
char brr[30]="";
printf("请输入要复制的一串字符>>");
gets(brr);
char *p=NULL;
p=mystrcpy(arr,brr);
//puts(arr);
printf("%s\n",p);
return 0;
}
作业3
测试卷
1-5 AACBA
6-10 DABDD
11-15 DACBC
16-20 DBDCC
21-25 ABBDD
1.#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int arr[10]={0};
int *p=arr;
int i=0;
int j=0;
for(i=0;i<10;i++,p++)
{
printf("请输入一个数>>");
scanf("%d",p);
}
for(i=0,p=arr;i<9;i++)
{
for(j=0;j<10-i-1;j++)
{
if(*(p+j)>*(p+j+1))
{
*(p+j)=*(p+j)^*(p+j+1);
*(p+j+1)=*(p+j)^*(p+j+1);
*(p+j)=*(p+j)^*(p+j+1);
}
}
}
for(i=0;i<10;i++)
{
printf("%d\t",*(p+i));
}
printf("\n");
return 0;
}
2.
#include<stdio.h>
#include<string.h>
char *mystrcpy(char *dest,const char *src)
{
char *p=dest;
while(*src!='\0')
{
*p=*src;
p++;
src++;
}
*p=*src;
return dest;
}
int main(int argc, const char *argv[])
{
char arr[30]="";
char brr[30]="";
printf("请输入要复制的一串字符>>");
gets(brr);
char *p=NULL;
p=mystrcpy(arr,brr);
//puts(arr);
printf("%s\n",p);
return 0;
}
3.
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int a[3][4]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
int row=0,column=0;
int i=0,j=0;
int (*p)[4]=a;
int max=*p;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(*(*(p+i)+j)>max)
{
max=*(*(p+i)+j);
row=i;
column=j;
}
}
}
printf("最大值为%d\n",max);
printf("行号为%d\t列号为%d\n",row,column);
return 0;
}
4.
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(int argc, const char *argv[])
{
unsigned int a=0;
int count=0;
int i=0;
printf("请输入一个数>>");
scanf("%d",&a);
for(i=31;i>=0;i--)
{
if((int)(a/pow(2,i))>0)
{
count++;
a-=pow(2,i);
}
}
printf("count_1=%d\n",count);
return 0;
}
5.
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
char arr[30]="";
printf("请输入一串字符>>");
gets(arr);
char *pa=arr;
int len=strlen(arr);
int i=0;
int j=len-1;
char temp=0;
while(i<j)
{
temp=*(pa+i);
*(pa+i)=*(pa+j);
*(pa+j)=temp;
i++;
j--;
}
// printf("第一次逆置:\n");
// puts(arr);
i=0;
pa=arr;
int start_index=0;
while(*(pa+i)==' ')
{
start_index++;
i++;
}
while(*(pa+i)!='\0')
{
if(*(pa+i)==' ')
{
j=i;
while(start_index<i-1)
{
temp=*(pa+start_index);
*(pa+start_index)=*(pa+i-1);
*(pa+i-1)=temp;
start_index++;
i--;
}
while(*(pa+j)==' ')
{
j++;
}
i=j;
start_index=j;
}
else
{
i++;
}
}
while(start_index<i-1)
{
temp=*(pa+start_index);
*(pa+start_index)=*(pa+i-1);
*(pa+i-1)=temp;
start_index++;
i--;
}
// printf("第二次逆置:\n");
puts(arr);
return 0;
}