OneNote防丢失。
海哥牛逼。
目录
- 一、ASCII编码
- 二、GB2312-80编码
- 三、全局变量和局部变量
- 四、分支结构
- 五、数组
- 作业
- 1
- 2
- 3
- 4
- 5
一、ASCII编码
1、ASCII 码使用指定的 7 位或 8 位二进制数组合来表示128或 256 种可能的字符。
2、标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。
3、扩展 ASCII 码允许将每个字符的第 8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
二、GB2312-80编码
将扩展的ASCII表去除,两个大于127的字符连接在一起,就表示为一个汉字(即一个汉字两个字节宽度),前一个字节为高字节,从0xA1到0xA7,后一个字节为低字节,从0xA1到0xFE。
三、全局变量和局部变量
1、全局变量的特点(全局变量就是所谓的基址):
• 在程序编译完以后就已经预留了空间,预留的大小由类型决定,且位置不会发生变化;
• 全局变量如果没有初始值,默认为0;
• 全局变量可以在任何其他函数里进行读写;
• 多个函数使用同一个全局变量,只要程序未停止,里面将一直存储最后一次修改的值。
• MOV 寄存器,byte/word/dword ptr ds:[0x12345678]
2、局部变量的特点:
• 只有当函数调用时才分配空间,且一定有初始值;
• 局部变量的作用范围仅限于当前函数自己,其他函数无法使用;
• 当函数执行完毕之后,局部变量成为垃圾数据,可以随时被其他数据或函数使用的数据覆盖。
四、分支结构
(略)
五、数组
(略)
作业
1
void Max(){
int max = 0;
if(max < g_x){
max = g_x;
}
if(max < g_y){
max = g_y;
}
if(max < g_z){
max = g_z;
}
g_r = max;
}
2
void ArrMax(){
int max = 0;
if(max < arr[0]){
max = arr[0];
}
if(max < arr[1]){
max = arr[1];
}
if(max < arr[2]){
max = arr[2];
}
if(max < arr[3]){
max = arr[3];
}
g_r = max;
}
3
void Max(){
for(int i = 0; i < 10; i++){
g_r += arr[i];
}
}
4
void Max(){
for(int i = 0; i < 10-1; i++){
if(arr[i] >= arr[i+1]){
g_r = arr[i];
arr[i] = arr[i+1];
arr[i+1] = g_r;
}
}
}
5
第一个:
网上的:
#include <stdio.h>
#include <string.h>
void fun(int m){
char a[100]="china中国verygood天朝nice";
int len=strlen(a);
int i=0;
int n=0,j=0;
int num[1000];
for(i=0;i<len;i++){
if(a[i]>>7&1){
num[n++]=i+2;
i++;
}
else{
num[n++]=i+1;
}
}
for(i=0;i<num[m-1];i++){
a[j++]=a[i];
}
a[j]='\0';
printf("%s\n",a);
}
int main(){
fun(5);
fun(6);
fun(7);
fun(8);
return 0;
}
我自己写的:
#include <stdio.h>
#include <string.h>
void fun(int n){
char str[128] = "china中国verygood天朝nice";
char result[128] = {};
int len = strlen(str);
int i = 0;
int j = 0;
while (j<n+1)
{
if(str[i]>>7&1){
result[j++] = str[i++];
result[j++] = str[i++];
n++;
}else{
result[j++] = str[i++];
}
}
result[j] = '\0';
printf("%s\n", result);
}
int main()
{
fun(5);
fun(6);
fun(7);
fun(8);
fun(9);
return 0;
}
海哥牛逼。