C语言二级考试重要知识点总结(二)



以下是本篇文章正文内容,下面案例可供参考

一、字符串处理函数

1.求字符串长度函数strlen()

函数调用的一般形式:
	strlen(str)
【功能】计算并返回字符串中有效字符的个数(不包括字符串结束结束标志符‘\0’)
【说明】str可以是字符数组名,也可以是字符串常量。
例如:strlen("abcd efgh\\\123")的结果为11

2.字符串拷贝函数strcpy()

函数调用的一般形式:
	strcpy(str1,str2)
【功能】将字符串str2的内容连通字符串结束标记符'\0'一起复删到strl中,原str1
中值将被覆盖。
【说明】
①strl必须是字符数组,str2可以是字符串常量、也可以是字符数组。
②strl必须有足够的长度以容纳str2的内容。(足够大)

3.字符串连续函数strcat()

函数调用的一般形式:
	strcat(str1,str2)
【功能】把字符串str2的内容连同字符串结束标记'0'连接到str1中原来字符串的后面。
连接后,原str1的'\0'被自动覆盖,生成的新串存放在strl中。
【说明】
①strl 必须是字符数组、str2可以是字符串常量、也可以是字符数组。
②strl必须有足够的长度以容纳连接后的新串内容。

4.字符串比较函数strcmp()

函数调用的一般形式:
	strcmp(str1,str2)
【功能】比较strl和str2两个字符串的大小。
若相同则返回0,若strl串大于str2串则返回值大于0,若strl串小于str2串则返回值小于0。
字符串的比较规则为:从两个字符串中的第一个字符开始逐个比较字符的ASCII码值,
直至遇到不同的字符或‘\0’停止,字符ASCI码值大者字符串大,
如果全部字符相同,则两个字符串相等。
【说明】str1、str2可以是字符数组,也可以是字符串常量。

【注意】:不能使用关系运算符“==”来比较两个字符串是否相同,也不能用关系运算符“>”、“<”来比较字符串的大小。

5.字符串小写转大写函数strupr()

函数调用的一般形式:
	strupr(str)
【功能】将字符串str中的小写字母全部转换成大写学母,不改变其他字符。
【说明】str是字符数组名。

6.字符串大写转小写函数strlwr()

函数调用的一般形式:
	striwr(str)
【功能】将字符串str中的大写字母全部转换成小写字母,不改变其他字符。
【说明】str 是字符数组名。

如题:在这里插入图片描述

二、系统默认全局变量

在 C 语言中,全局变量的作用域是整个源程序,从定义位置开始,到程序结束。如果没有在函数内部定义,则系统默认所有的函数内部都可以使用该全局变量。

如果在函数内部定义了同名的局部变量,则局部变量的作用域会覆盖全局变量。这意味着在该函数内部,如果使用该变量名,则编译器会优先使用局部变量,而不是全局变量。

为了在函数内部也能使用全局变量,可以使用关键字 extern 来声明全局变量。这样可以在函数内部告诉编译器,该变量是一个在别处定义的外部变量,可以引用它。通常是在头文件中用 extern 声明全局变量,然后在一个源文件中定义该变量。例如:

// 在头文件中声明全局变量  
extern int global_var;  
  
// 在源文件中定义全局变量  
int global_var = 10;  
  
int main() {  
    // 使用全局变量  
    printf("Global variable: %d\n", global_var);  
    return 0;  
}

如题:在这里插入图片描述

三、枚举类型

enum 枚举名 {枚举元素名1,枚举元素名2,...,枚举元素名n};

如题:在这里插入图片描述

四、易错题

在这里插入图片描述

#include <stdio.h>

// 函数声明
void fun(int *a, int *b);

void main() {
    int x = 3, y = 4;
    // 传递变量地址作为参数
    fun(&x, &y);
    // 输出修改后的结果
    printf("%d, %d\n", x, y);
}

// 函数定义
void fun(int *a, int *b) {
    int *t;
    // 交换指针所指向的变量的值
    t = a;
    a = b;
    b = t;
}

这段代码的输出结果应该是 “3, 4”。在 main 函数中,我们定义了两个整型变量 x 和 y,分别赋值为 3 和 4。然后我们调用了 fun 函数,将 x 和 y 的地址传递给它。在 fun 函数中,我们定义了一个指针变量 t,将 a 的值赋给 t,将 b 的值赋给 a,将 t 的值赋给 b。这样就实现了交换 a 和 b 的值。
然而,由于在 fun 函数中我们交换的是指针变量 a 和 b 的值,而不是它们所指向的变量的值,因此实际上并没有交换 x 和 y 的值。最后在 main 函数中,我们使用 printf 函数输出 x 和 y 的值,得到的结果是 “3, 4” 。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小伍_Five

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值