memsetvoid * memset ( void * ptr , int value , size_t num );
#include
#include
int main()
{
//利用英文文档学习memset
//
//设置内存的时候是以字节为单位的
//每个字节的内容都是一样的value
char arr[] = "hello world";
memset(arr , 'x', 5);
printf("%s", arr);
return 0;
}
ret_type fun_name ( para1 , * ){statement ; // 语句项}ret_type 返回类型fun_name 函数名para1 函数参数
自定义函数练习:
#include
//写一个函数可以找出两个数的最大值
int get_max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//使用函数求a和b的较大值
//Max();
int m = get_max(a, b);
printf("%d\n", m);
return 0;
}
#include
//写一个函数可以交换两个整形变量的内容
void swap(int *pa, int *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("交换前:a=%d,b=%d\n", a, b);
swap(&a, &b);
printf("交换后:a=%d,b=%d\n", a, b);
return 0;
}
#include
#include
//写一个函数求素数
int is_prime(int n)
{
int j = 0;
for (j = 2; j <= sqrt(n); j++)
if (n % j == 0)
return 0;
return 1;
}
int main()
{
//打印100~200之间的素数
int i = 0;
for (int i = 100; i <= 200; i++)
if (is_prime(i) == 1)
printf("%d ", i);
return 0;
}
#include
//写一个函数判断一年是不是闰年
int is_leap_year(int y)
{
return (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0));
}
int main()
{
//1000~2000年的闰年
int y = 0;
for (y = 1000; y <= 2000; y++)
if (is_leap_year(y) == 1)
printf("%d ", y);
return 0;
return 0;
}
#include
//二分查找
int binary_search(int arr[], int k, int sz)
{
int left = 0;
int right = sz - 1;
while (left <= right) {
int mid = left + (right - left) >> 1;
if (arr[mid] < k)
left = mid + 1;
else if (arr[mid] > k)
right = mid - 1;
else
return mid;
}
return -1;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int k = 0;
scanf("%d", &k);//要查找的元素
int sz = sizeof(arr) / sizeof(arr[0]);
int ret = binary_search(arr, k, sz);
if (ret == -1)
printf("找不到\n");
else
printf("找到了,下标是:%d\n", ret);
return 0;
}
#include
//写一个函数,每调用一次这个函数,就会将 num 的值增加1。
void test(int* p)
{
*p = *p + 1;
}
int main()
{
int num = 0;
test(&num);
printf("%d\n", num);
return 0;
}
#include
void new_line()
{
printf("hehe\n");
}
void three_line()
{
int i = 0;
for (i = 0; i < 3; i++)
{
new_line();
}
}
int main()
{
three_line();
return 0;
}
把一个函数的返回值作为另外一个函数的参数。
#include
#include
//int main()
//{
// char arr[20] = "hello";
// int ret = strlen(strcat(arr, "bit"));//这里介绍一下strlen函数
// printf("%d\n", ret);
// return 0;
//}
#include
int main()
{
printf("%d", printf("%d", printf("%d", 43)));
//结果是啥?
//注:printf函数的返回值是打印在屏幕上字符的个数
return 0;
}
注意:
函数可以嵌套调用,但是不能嵌套定义。
放置函数的声明#ifndef __TEST_H__#define __TEST_H__// 函数的声明int Add ( int x , int y );#endif //__TEST_H__
放置函数的实现#include "test.h"// 函数 Add 的实现int Add ( int x , int y ){return x + y ;}
#include
//接受一个整型值(无符号),按照顺序打印它的每一位。
void print(int n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d ", n % 10);
}
int main()
{
int num = 1234;
print(num);
return 0;
}
#include
//编写函数不允许创建临时变量,求字符串的长度。
int Strlen(const char* str)
{
if (*str == '\0')
return 0;
else
return 1 + Strlen(str + 1);
}
int main()
{
const char* p = "abcd";
int len = Strlen(p);
printf("%d\n", len);
return 0;
}
#include
//求n的阶乘
int factorial(int n)
{
if (n <= 1)
return 1;
else
return n * factorial(n - 1);
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = factorial(n);
printf("%d\n", ret);
return 0;
}
#include
//求第n个斐波那契数。
int fib(int n)
{
if (n <= 2)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = fib(n);
printf("%d\n", ret);
return 0;
}