1.使用数组作为参数传递,完成一维数组的输入和输出,写出两个函数,一个输入一个输出。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int arr1(int *p, int len)
{
int i;
for(i=0; i<len; i++)
scanf("%d", p+i);
}int arr2(int *p, int len)
{
int i;
for(i=0; i<len; i++)
printf("%d ", *(p+i));
putchar(10);
}int main(int argc, const char *argv[])
{
int s[5] = {0};
arr1(s, 5);
arr2(s, 5);
return 0;
}
2.定义一个字符数组,作为参数传递,完成strlen函数的功能,定义一个int my_strlen(const char *p){}。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char my_strlen(const char *p)
{
int num = 0;
while(*p)
{
num++;
p++;
}
return num;
}
int main(int argc, const char *argv[])
{
char s[32] = "hello world";
printf("%d\n", my_strlen(s));
return 0;
}
3.使用指针指向字符串的方式,写一个函数完成删除字符串中的空格。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char skg(char *p)
{
char c = ' ';
int len = strlen(p);while(*p)
{
if(*p==c)
{
char *p1 = p;
while(*p1)
{
*p1 = *(p1+1);
p1++;
}
}else
p++;
}
}
int main(int argc, const char *argv[])
{
char s[32] = {0};
gets(s);
skg(s);
puts(s);return 0;
}
4.猴子吃桃
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 9;
int taozi = 1;
while(i>=1)
{
taozi = (taozi + 1) * 2;
i--;
}
printf("第一天摘了%d个桃子\n", taozi);
return 0;
}
5.实现atoi函数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int arr(char *p)
{
int n = 0;while(*p)
{
n = n * 10 + (*p - '0');
p++;
}return n;
}
int main(int argc, const char *argv[])
{
char s[32] = {0};
gets(s);
printf("%d\n", arr(s));
return 0;
}