C语言复习——一些不常用的函数及数据类型、题型总结

目录

1.数学函数

2.输入输出函数

3.字符串相关函数

4.堆区动态开辟内存

5.共用体类型

6.枚举类型

7.函数指针

8.位运算符

9.一些题型


1.数学函数

#include<math.h>
​
sqrt(n);  // 开平方根
pow(a, n);  // a的n次方
abs(n);  // 求整型的绝对值
fabs(n);  // 求浮点数的绝对值

2.输入输出函数

// 字符
getchar();  // 返回输入的单个字符,可以为通过ASCII转换的整数、各种控制/转义字符
putchar();
​
// 字符串
gets();  // 返回输入的字符串,可包括空格
puts();

3.字符串相关函数

#include<string.h>
​
strlen(str);  // 获取str长度
​
strcmp(str1, str2);  // 从字符串首元素开始比较大小,大于返回正数,小于返回负数,等于则往后一位元素进行比较直到最后
​
strcpy(str1, str2);  // 将str2复制到str1(完全覆盖)
strncpy(str1, str2, n);  // 将str2的前n个字符复制到str1(只覆盖前n个元素,str1后面的不动)
​
strcat(str1, str2);  // 将str2接到str1后面
​
strlwr(str);  // lower case-将所有大写转换为小写
strupr(str);  // upper case-将所有小写转换为大写

4.堆区动态开辟内存

T p = (T)malloc(size);  // 在堆区开辟T(指针)类型的 大小为size的空间
​
T p = calloc(n, size);  // 开辟n个连续的大小为size的空间,可用于对数组的开辟
​
realloc(p, size);  // 对p重新开辟大小为size的空间,开辟失败返回NULL

5.共用体类型

// 同时只能保存一个类型的值,占用空间为最大成员类型的占用空间
union Uni
{
    int num;
    String name;
};
​
union Uni info;
info.num = 123;
info.name = 'a';  // 后面赋值的内容会对前面的进行覆盖

6.枚举类型

// enumeration-枚举
enum Color
{
    blue,
    green = 3,
    red
};  // 对枚举元素,无初始值时 默认依次为0,1,2,……, 对有初始值往后的元素 值为前一个元素的值+1 (red=4)
​
enum Color one = red;
enum Color two = 0;

7.函数指针

int sum(int a, int b)
{
	return a + b;
}

int main()
{
	int (*p)(int a, int b);  // p为指向 返回值为int、参数列表为(int a, int b)的函数 的指针

	p = sum;  // 函数指针指向sum()函数

	int result = (*p)(5, 6);  // 解引用使用

	printf("%d", result);

	system("pause");
	return 0;
}

8.位运算符

& 按位与  --> 对应二进制位均为1,则为1

| 按位或  --> 对应位至少有一个1,则为1

^ 按位异或  --> 有且只有一个1,则为1

~ 取反  --> 对二进制位取反,0变1,1变0

<< 左移  --> 每个bit向左移动一位,缺位补0

>>右移  --> 每个bit向右移动一位,缺位补0

9.一些题型

打印菱形

输出杨辉三角

打印素数

输出斐波那契数列(递归)

汉诺塔问题(递归)

基本排序的使用

判断是否为闰年

根据ASCII编码进行字符转换

统计单词、数字、符号

……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值