出门旅了三天游 补一下学习和笔记
上次笔记后的测试作业:
作业一:实现1+2+3+4+5+...+n
作业二:从键盘输入一行字符,统计一行字符中的数字字符、英文字符、大写字符的个数
作业代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
//实现1+2+3+4+5+...+n
void test01()
{
int n = 0, sum = 0;
cout << "请输入n的值 以便于计算1+2+3+4+5+...+n的值" << endl;
cin >> n;
for (int i = 1; i <= n; i++)
{
sum += i;
}
cout << "当n为" << n << "时,1+2+3+4+5+...+n的值为:" << sum << endl;
}
//从键盘输入一行字符,统计一行字符中的数字字符、英文字符、大写字符的个数
void test02()
{
char arr[100];
int sum_lowercase = 0, sum_uppercase = 0, sum_digit = 0;
cout << "请输入一行字符 以便于统计其中的数字字符、英文字符、大写字符的个数:" << endl;
cin >> arr;
for (int i = 0; arr[i] != '\0'; i++) // 遍历整个字符串直到结束符'\0'
{
if (arr[i] >= 'a' && arr[i] <= 'z')
sum_lowercase++;
else if (arr[i] >= 'A' && arr[i] <= 'Z')
sum_uppercase++;
else if (arr[i] >= '0' && arr[i] <= '9')
sum_digit++;
}
cout << "小写字母总计:" << sum_lowercase << endl;
cout << "大写字母总计:" << sum_uppercase << endl;
cout << "数字总计:" << sum_digit << endl;
}
int main()
{
test01();
system("pause");
system("cls");
test02();
system("pause");
system("cls");
cout << "*****请按ENTER键退出进程*****" << endl;
return 0;
}
不足:
①写的代码像大奋,C不是C,C++不是C++,被老师调侃为“四不像”。
②本推文后面学习了相关ctype.h库的使用,test02可以进行优化:
关于程序运行窗口的退出代码:
之前的一个误区:程序正常运行后的 窗口,有时候退出代码为非零,此时程序并不能正常运行到‘’终止退出行‘’,即在改代码中,程序运行后于第四行戛然而止。错误运行图片如下:
而正确运行的程序,其正常退出代码应该为0:
关于函数的作用域和生存周期(简单一提及):
int g_val = 0;加上一个static后变成静态全局变量:static int g_val = 0;
关于C语言中运算符的优先级和结合性:
通过运算符优先级和结合顺序可知:该示例自左向右结合。d=1 。
逻辑运算符和其他运算符优先级:
if_else语句分支图:
①单分支语句:
②双分支语句:
③多分支语句;
关于for循环内定义的有效生存期:
for内初始化的i值存放在栈区,系统(编译器)会在for循环结束后将其销毁回收
想要将i的生存期拉长,可将i提出for内初始化,程序运行结束后系统将其销毁收回:
for循环和while循环的格式:
①for循环
for(初始化语句;条件判断;迭代)
{
循环体;
}
②while循环
while(条件判断)
{
循环体;
}
关于跳出循环
①需要注意的是break只能跳出一层循环:
同理 在下面伪代码中,break只跳出了第一层内for循环
②continue则是跳出本轮循环(一下跳多次):
for循环和while循环的区别,现在不做考究,chat了一下:
**C语言头文件库:#include<ctype.h>
ctype.h库包含:
- isalpha 字母判断函数
- islower 小写字母判断函数
- isupper 大写字母判断函数
- tolower 大写字母转小写字母函数
- toupper 小写字母转大写字母函数
- isdigit 十进制数字判断函数
- isxdigit 十六进制数字判断函数
- isalnum 字母或数字判断函数
(
详见CSDN推文:【C语言】<ctype.h> 字符操作函数(详解+用法+模拟实现)_#include <ctype.h>-CSDN博客
)
笔记时间24/1/27