C语言-2

定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出 考点:结构体数组,指针,字符串 定义一个结构体student,存储学生的学号、名字、性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出。结构体student的定义如下: struct student { int num; char name[20]; char sex; int age; }; 本题要求使用指向结构体数组的指针进行输入和输出。 注意点(重点):当要连续输入一个字符串和一个字符时,输入前一个字符串后的空格既标识了前一个字符串输入结束,又被后一个字符所吸收,所以要在两者之间加一个getc 阅读详情

自定义类型

基本认识

/*
    引入:
        学生:姓名,学号,年龄,成绩
        请为学生们专门定制一个类型(创造一个类型)


    结构体格式:
        struct 标识符    // 标识符即自定义类型的名称
        {
            成员;    // 自己设置
        };    // 这里要注意不要漏了分号


    struct Students        // 定义一个学生类型
    {
        char name[12];
        int id;
        int age;
        int score;
    };


    我们知道:

        类型    变量名;
        int          x;
           x = 10;        // 赋值操作
        ---初始化操作 int y = 10;



    那么同理:

        结构化类型        结构体变量名;
      struct Students        stu_1;
        stu_1 = {"张三", 52, 18, 616};    // 为4个成员初始化

        其他内容补充:
            1.访问结构体变量的成员
                stu_1.name;
                stu_1.id;
                stu_1.age;
                stu_1.score;

            2.成员赋值
                stu_1.name = "张三";    // 操作错误!!
                正确操作为:
                    1.引入头文件<string.h>
                    2.strcpy(stu_1.name, "张三")    // 作用:将后面字符串"复制到"前面


                stu_1.id = 52;    // 操作正确
                stu_1.age = 18;    // 操作正确
                stu_1.score = 616;    // 操作正确

*/


# include <stdio.h>
# include <string.h>

// 定义一个学生类型,类似于创造int、long...这些类型,只不过学生类型是自定义罢了
struct Students
{
    char name[12];
    int id;
    int age;
    int score;
};

int main()
{
    struct Students    stu_1;
    stu_1.age = 18;
    strcpy(stu_1.name, "张三");
    printf("%s, %d\n", stu_1.name, stu_1.age);

    struct Students    stu_2 = { "李四", 39, 17, 553 };
    printf("%s, %d\n", stu_2.name, stu_2.age);
}

取别名

# include <stdio.h>

struct Human    // 定义一个 (struct)Human 类型
{
    char name[12];
    int age;
};

int main()
{
    typedef int Myint;    // 将int类型“取别名”为 Myint
    int x = 1;
    Myint y = 1;
    printf("%d\n", x + y);

    typedef struct Human hm;    // 将 struct Human 类型取别名hm
    hm obj_1 = { "tomato", 18 };
    printf("%s %d \n", obj_1.name, obj_1.age);

    return 0;
}
/*
    补充:
        在定义一个自定义类型的时候
        往往直接当场取别名,而不是以后才取
    e.g.
        struct Human    // 定义一个 (struct)Human 类型
        {
            char name[12];
            int age;
        }typedef hm;    // 直接当场取别名为hm
*/

结构体数组

# include <stdio.h>

// 定义一个类型
struct Hero
{
    char name[12];
    int level;
}typedef hr;    // 取别名

int main()
{ 
    // 初始化
    hr hero_1 = { "钢铁侠", 8 };
    hr hero_2 = { "蜘蛛侠", 7 };

    // 初始化
    hr hero_arr[9] = {    
        { "惊奇队长", 10 },
        { "美国队长", 7 },
        { "雷神", 8 },
        { "绿巨人", 9 },
        // 剩下的使用默认
    };

    // 修改
    hero_arr[0] = hero_1;

    return 0;
}

联合类型

/*
    union语法形式如下所示:

        union 名字    // union 关键字是用来定义"联合类型"
        {
            成员;    // 见详情
        }


        详情:
            修改一个成员的值,所有成员的值都会相应的产生变化
            原因:所有成员,内存是相同的(---如何理解?)
        ---如何理解?
            如下面代码中,num、d、ch 并不是各自独立占据一块内存,
            而是先看谁最大,因为 double 占8个字节,比 int 占的4个字节
            和 char 占的1个字节都要大,即 double > int > char
            所以,所有的成员,即整体一共被分配了8个字节
            因此,不同成员之间会出现联合占据某块内存空间的情况
            而在本例中,double 占了8/8,int 占了4/8,char 占了1/8
*/

# include <stdio.h>

union HUMAN
{
    int num;
    double d;
    char ch;
}typedef hm;    // 取别名

int main()
{ 
    hm u_1;
    u_1.num = 66;
    u_1.d = 10.0;
    u_1.ch = 'A';

    return 0;
}

枚举

/*
    语法:
        
        enum 名称
        {
            枚举元素0,
            枚举元素1,
            枚举元素2,
            枚举元素3,
            枚举元素4,
            枚举元素5
        }


        enum WEEK
        {
            Monday,        // --> 0
            Tuesday,    // --> 1
            Wednesday,    // --> 2
            Thurday,    // --> 3
            Friday = 15,// --> 15
            Saturday,    // --> 16
            Sunday        // --> 17
        };

        枚举元素不能叫同样的名字,即使是不在同一个“枚举集合体”下

*/

# include <stdio.h>

// 创造一个关于星期的枚举类型
enum WEEK
{
    Monday,            // --> 0
    Tuesday,        // --> 1
    Wednesday,        // --> 2
    Thurday,        // --> 3
    Friday,            // --> 4
    Saturday,        // --> 5
    Sunday            // --> 6
};

int main()
{ 
    enum WEEK week;    // 定义变量 week,其类型为 enum WEEK

    week = Friday;

    printf("星期五是>>>%d \n", week);

    // 枚举配合 switch 使用,天生一对
    switch (week)
    {
    case Monday:
        printf("%d \n", week);
        break;

    case Tuesday:
        printf("%d \n", week);
        break;

    case Wednesday:
        printf("%d \n", week);
        break;

    case Thurday:
        printf("%d \n", week);
        break;

    case Friday:
        printf("%d \n", week);
        break;

    case Saturday:
        printf("%d \n", week);
        break;

    case Sunday:
        printf("%d \n", week);
        break;

    default:
        printf("不存在这样的星期");
        break;
    }

    return 0;
}

预处理

基本认识

/*
    ---用 # 号开头的命令是预处理命令
    ---“预处理”即:预先处理,在编译前对代码进行一个预先处理
    
    include <文件.h>    // 这个是文件包含命令

    总上所述, # include <stdio.h>    即是:执行“预处理文件包含stdio.h”
*/

# include

/*
    当 main.c 这个主文件越写越大的时候
    我们可以将它其中的某些部分,通过写到其他文件的方式
    来达到将代码有条理地进行布局分离的目的
    从而实现高效维护和管理的目标
    如下所示:
*/

在这里插入图片描述

# define

/*
    1. # define 宏定义命令:使用一个表示符“表示”(或者说“完全替代”)一个字符串
    2. 语法:
        # define    宏名    字符串
*/

# include <stdio.h>

# define unint    unsigned int    // 宏名的规范写法为“全大写”,即 UNINT。
# define PI        3.14f
# define NAME    "tomato"
# define A        num * 2 + 1
# define B        (num * 2 + 1)

int main()
{    
    unint num = 1;
    printf("圆周率%f \n", PI);
    printf("我的名字%s \n", NAME);
    printf("结果%d \n", 3 * A);        // 结果:7
    printf("结果%d \n", 3 * B);        // 结果:9
    //printf("", );
    return 0;
}
# include <stdio.h>

# define M(x)        x*x+3*x
# define P(a,b)        a + b

int main()
{    
    int res = M(2);
    printf("结果为 %d \n", res);

    res = M(6);
    printf("结果为 %d \n", res);

    res = M(3 + 3);
    printf("结果为 %d \n", res);

    res = M(2 * 3);
    printf("结果为 %d \n", res);

    res = P(1, 2);
    printf("%d \n", res);

    return 0;
}

/*
    运行结果——————

        结果为 10
        结果为 54
        结果为 27
        结果为 54
        3
        请按任意键继续. . .
*/
# include <stdio.h>

# define    N(a,b)    a = a ^ b; b = a ^ b; a = a ^ b;    // ^ 异或,详情见底部
// 当一行内容过多的时候,可以用"\"符号实现“视觉上发生换行但代码本质还是一行”


int main()
{    
    int n = 9, m = 8;
    printf("%d %d \n", n, m);
    N(n, m);
    printf("%d %d \n", n, m);

    return 0;
}

/*
    运行结果——————

        9 8
        8 9
        请按任意键继续. . .
*/

/*
    上面的异或原理:

        打个比方a=11011,b=10101a和b做异或得到 01110
        将他赋值给a,则a=01110(a=a^b,a承载着a和b的不同),接着将a(01110)和b(10101)做异或得 11011
        发现就是原来a的值
        于是将它赋值给b,b=11011,则b现在就是a原来的值了(b=a^b),再将a(01110)和b(11011)异或得10101
        发现就是原来b的值,将它赋值给a,a=10101,则a现在就是b原来的值(a=a^b)
        这样就实现了互换a和b的值
*/
# include <stdio.h>

# define    STR(s)    #s
# define    NUM1(a,b)    a##e##b        // 连接成aeb
# define    NUM2(a,b)    a##b##99    // 连接成ab99


int main()
{    
    printf("%s \n", "abc123");
    printf("%s \n", STR("abc123"));
    printf("%s \n", STR(abc123));

    printf("%f \n", NUM1(1.23, 3));        // 连接成aeb,即 1.23e3 => 1.23 * 1000
    printf("%d \n", NUM2(12, 5));        // 连接成ab99,即 12599

    return 0;
}

/*
    运行结果——————

        abc123
        "abc123"
        abc123
        1230.000000
        12599
        请按任意键继续. . .
*/


/*
    上面的异或原理:

        打个比方a=11011,b=10101a和b做异或得到 01110
        将他赋值给a,则a=01110(a=a^b,a承载着a和b的不同),接着将a(01110)和b(10101)做异或得 11011
        发现就是原来a的值
        于是将它赋值给b,b=11011,则b现在就是a原来的值了(b=a^b),再将a(01110)和b(11011)异或得10101
        发现就是原来b的值,将它赋值给a,a=10101,则a现在就是b原来的值(a=a^b)
        这样就实现了互换a和b的值
*/

条件编译

# include <stdio.h>
/*
    条件编译(多种类型)
    1.    #if ... #endif        (可以穿插 #elif、#else)
    2.    #ifdef ... #endif    (可以穿插 #else)    
    3.    #ifndef ... #endif    (可以穿插 #else)
*/

# define NAME    // 对 NAME 进行宏定义,定义完成后,NAME就是宏名

int main()
{    
# if 1 - 1
    printf("My name is %s.\n", "tomato");
# elif 0
    printf("My name is %s.\n", "banana");
# else
    printf("My name is %s.\n", "apple");
# endif


# ifdef NAME        // 判断 NAME 是否为宏名,即是否进行了宏定义
    printf("111 \n");
# endif


# ifndef NAME        // if-not-def
    printf("222 \n");
# endif


    return 0;
}
/*
    使用场景:
        我们在 main.c 文件中编写代码时,
        有可能因为精神疲劳,而不小心造成错误
        例如:
        不小心引入了多次头文件<xxx.h>而导致出现“重定义”的情况
        我们如何解决这个问题?(下面有两个解决方案)
        方案1-----删除多余“引入头文件”的代码
        方案2-----我们能否在头文件上面做些手脚?使得它不论引入多少次,都只会执行一次。
*/



// 下面是头文件里面的代码
// 我们通过“条件编译”的知识来实现“方案2”

#ifndef MYFILE_H    // 判断:MYFILE_H 没有被定义?(ifndef => if-not-def)
#define MYFILE_H
struct Mystruct
{
    int num;
};
#endif                // 如果 #ifndef 的判断结果为‘错’,将跳到这行,直接结束

文件操作

/*
    1.文件路径:相对路径/绝对路径

    2.根目录---如:C盘、D盘、E盘

    3.操作文件:
        1.单个字符读写
        2.字符串读写
        3.格式化读写
        4.二进制形式读写
        5.指定位置读写
*/
# include <stdio.h>

int func_1();    // 声明

int main()
{
    FILE file;

    func_1();

    return 0;
}

// 1.单个字符读写
int func_1()
{
    // 打开文件 ==》 (读)操作文件 ==》 关闭文件 ==> 打开文件 ==》 (写)操作文件 ==> 关闭文件

    // 定义变量:文件
    FILE* file = NULL;

    // 打开文件:路径,打开方式
    file = fopen("/test.txt", "r");

    // (读)操作文件:
    char ch = 0;
    ch = fgetc(file);
    printf("%c \n", ch);    // 输出ch的内容
    putchar(ch);    // 也是输出ch的内容

    // 关闭文件:
    fclose(file);
    file = NULL;

    // 打开文件:注意!以 w 操作文件时,文件由"关闭状态"转为"打开状态"会清空文件里面的内容
    file = fopen("test.txt", 'w');

    // (写)操作文件:
    fputc('M', file);

    // 关闭文件:
    fclose(file);
    file = NULL;
}
v2c - 从Verilog 转换到 C语言的工具 用于将 Verilog RTL 中给出的硬件电路转换为的工具流程 C语言的软件程序 阅读详情

相关推荐

C语言 2-3树

2-3树简介 实现过程 代码实现 2-3树简介 2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。 2-3树的模拟过程可以看链接:InsertSortion 实现过程 在2-3树中,一个结点只有一个值的我们称为2-结点,有两个值的称为3-结点,在2-3树中,一个结点最多只有两个值,即3-结点。 ...

fpk2014的博客 3084

struct 基本应用方法 及 题目常用使用形式详解

结构体的定义:结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存区间的大小及解释意义。 我们在解决实际问题的时候,经常会遇见用几个数据类型来表示某个变量。 例如我们在用变量来表示一个学生的时候,会用到他的(字符串)姓名,(字符串)性别,(整型)学号 那我们要怎么集合这些学生的信息 形成一个整体学生呢 这个时候就用到了结构体struct struct可以将你需要来表示某个变量的信息集合在一起 将结构体封装好以后就可以重复使用

weixin_60536621的博客 2506

用 C 语言进行大模型推理:探索 llama2.c 仓库(一)

直接使用Meta发布的llama2来对程序进行运行分析的话,我的计算机因为配置问题运行不了,所以我们在huggingface社区中找一个和llama2有相同结构的模型,但是decode的层数要少很多的模型进行运行。是一个参数量115M左右的超微型小模型,采用Llama2架构,我们选择这个模型替代Meta的llama2对llama2.c仓库中的代码进行分析。注意:在本文中,我们只关心推理代码的架构,以及代码是怎么写的,不关心llm的输出结果是否正确、是否合理。模型的权重文件是huggingface的格式。

qq_41596730的博客 1899

结构体

结构体 结构体的出现是为了简化用户处理不同的数据类型。一个对象可能有多个属性,为了解决每次定义一个新的对象就要重新定义多个数据类型,结构体就应用而生。 结构体是将不同类型的数据按照一定的功能需求进行整体封装,封装的数据类型与大小均可以由用户指定。 用户可以对结构体进行自定义,并且允许存储不同的数据类型。 声明结构体类型: struct 结构体名{ 成员列表 }; 注意最后一定...

weixin_42542290的博客 707

Silvaco 学习笔记——物理模型:载流子产生复合模型

对载流子的复合机制进行总结

reactortiger的博客 1万+

【物理模拟】PBD算法详解

参考MatthiaMuller的十分钟物理(他就是PBD算法的发明者)

beidou111的博客 9499

C语言入门之自定义结构体数据struct Student { int num; char name[20]; char sex; int age; 类型

用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体 例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系 struct Student { int num; char name[20]; char sex; int age; f...

mygod2008ok的专栏 5万+

我用两个月时间,终于把优快云付费资源项目玩明白了!

关于项目的定位,这是一个知识付费项目,根据市场研究机构的数据显示,到2023年,全球知识付费市场规模将达到2000亿美元,所以说知识付费的前景是十分广阔的,当下互联网时代信息大爆炸,80后、90后、00后群体对知识付费的认可度也大幅提升,同时这群作为知识付费的主流人群已经具备了更强的消费能力,而且对于知识付费的需求更高。目前整个知识付费领域仍然在发展起步的初期,尽快在知识付费领域布局可以帮助我们在这波红利中获得一份不错的收益。而且个人认为,

白话机器学习 2万+

c语言使用结构体实现学生管理系统

使用“结构”编写学生管理系统。需要以下功能: · 添加学生。学生应掌握学生证、姓名、性别等基本信息。确保每个学生 ID 都是唯一的。 · 查找学生。通过学生 ID 查找学生的信息。 · 修改学生。首先找到学生,然后修改他们的信息。请注意,学生 ID 无法修改。 · 删除学生。首先找到学生,然后删除他们的信息。 · 显示所有学生。一次显示所有学生的信息。

Troy Euan 5938

采购订单定价策略 超详细

‘需求’字段里填写的是一个例程编号(例程是一段判断程序),如果我们在需求中维护了例程编号,那只有这个例程条件被满足时,这个条件表才会被系统自动读取。一部分的条件表只有在凭证项目满足一定的条件时才会被读取。 ‘排斥的’字段如果别勾中的话,那表明如果这个条件表被系统成功读取到数据后,系统将停止这个存取顺序的执行,否则,系统将继续执行下去。 注意:a、如果我们给某个条件类型设定了有效期的话,那我们必须给这个条件类型分配一个存取顺序。 b、不能给一个抬头条件分配存取顺序。 是...

竹大的博客 1万+

网络安全隔离技术解析:单向网闸与双向网闸的核心差异与应用场景

本文深入解析网络安全隔离技术中的单向网闸与双向网闸,详细比较两者的核心差异与应用场景。单向网闸通过物理隔离确保数据单向流动,适用于金融交易等高风险场景;双向网闸则支持严格安检的双向数据交互,常见于医疗、政务等领域。文章还提供了选型建议和技术发展趋势,帮助读者根据安全需求和业务场景选择最适合的网闸解决方案。

weixin_29323365的博客 527

c语言中i%2,c语言中i%2是什么意思

a%b是a除以b的余数,i%2就是i除以2的余数,当除以2的时候一般用来判断前面那个数的奇偶性,i%2==0就说明i是偶数,==1就说明i是奇数C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,...

weixin_30336075的博客 1万+

手把手教你学Simulink--单相逆变器模糊逻辑控制策略仿真

本文介绍了在Simulink中设计单相逆变器模糊逻辑控制策略的完整流程。主要包括:1)构建单相逆变器模型;2)使用FuzzyLogicToolbox设计模糊控制器,定义输入输出变量和模糊规则;3)将控制器集成到Simulink模型;4)添加干扰源和示波器;5)配置仿真参数并分析结果。该方法利用模糊控制处理非线性系统的优势,可实现输出电压的精确跟踪,具有良好的鲁棒性。文中提供了详细的步骤说明和示例代码,强调准确设计隶属函数和规则库对控制性能的关键作用。该仿真设计为电力电子控制系统的开发提供了有效支持。

MHD0815的博客 200

c语言中 %.2s,C2S是什么意思

1. The testing result indicates that TiO_2 has mineralized effect on C_2S, at the same time flux effect on reducing low general melting point of CaO-SiO_2 system and yielding much liquid phase, TiO_2 ...

weixin_32187691的博客 2826

24届数字IC验证——SV+UVM基础知识汇总(一)

汇总整理在面试过程中常见的问题,如果都能回答下来,那么面试肯定不成问题的分别构建不同抽象级的transaction,来实现复杂的激励。(以前是单一层次的sequence,对激励复用、上层复用不塌友好)不同层级之间的sequence没有继承关系,相互之间进行转换低层次的sequence从高层次的sequencer中获取高层次的sequence,并将其转换为低层次的sequence,再通过低层次的sequencer发送出去如何连接:低层次的sequencer包含高层次sequencer的句柄。

qq_42135020的博客 3147

基于 ESP32 的智能药盒提醒装置设计与实现

本装置基于 ESP32 实现了智能药盒的核心功能,硬件选型兼顾成本与实用性,软件设计模块化、易拓展。后续可通过 ESP32 的 WiFi 模块接入物联网平台(如阿里云、OneNet),实现远程设置提醒、服药状态反馈等功能,进一步提升智能化水平。该装置能有效解决老人忘服药问题,具有较高的实用价值与推广潜力。

weixin_42300449的博客 1043

c语言中2.2f什么意思,c语言中%2f和%.2f有什么区别?谢谢大神

爱佳佳的恐龙的回答%2f是把float的所有位数输出2位,包括小数点,如果不组2位,补0,如果超过2位,按照实际输出%.2f是float后的小数只输出两位。例如:printf("%2f, %2f, %.2f",123.1, 123.123, 123.123);VS的输出就是:123.100000, 123.123000,123.12拓展资料:特有特点C语言是一个有结构化程序设计、具有变量作用域(v...

weixin_39867212的博客 4万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C2语言

C2语言 &nbsp;&nbsp;&nbsp;&nbsp;C语言以其独特的特性发挥着它的作用,但是C语言没有包和类的概念,导致所有的函数和全局变量都在一个命名空间下,极不方便。如果能利用java包的特性,而又不丢失其原本的语言特性,就很极大方便开发者定义和查找变量以及函数。就像导入包一样import cn.abc.Student而不用#include"student.h";使用Student.sa...

星星9 1337

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

c语言 指数 2 n,c语言中指数函数中求2的N次方输出2^n中n为常数

求C语言 编写程序 1的1次方加2的2次方加3的3次方……一直加到n的n次方.程序如下:#include#includevoidmain(){inti,n,sum=0;scanf("%d",&n);for(i=1;i{sum+=pow(i,i);}printf("%d",sumC语言中n目测这种句子无法通过编译再问:但是国二二级C的考试中确实出现了这种题目。。怎么解释?再答:能具体发下题目...

weixin_30538955的博客 1757

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C语言 模2除法

C语言中的模2除法: 模2除做法与算术除法类似,但每一位除(减)的结果不影响其它位,即不向上一位借位。所以实际上就是异或。然后再移位移位做下一位的模2减。 步骤如下: a、用除数对被除数最高n位做模2减,没有借位。 (模2减规则:0-0=0 0-1=1 1-0=1 1-1=0) b、除数右移一位,若余数最高位为1,商为1,并对余数做模2减。若余数最高位为0,商为0,...

weixin_30614109的博客 2512

欧洲语言参照标准C2,从A1到C2,欧洲语言的共同参照标准

去欧洲留学有太多的相似之处了。连欧洲语言测试的共同参照标准都一样。那么具体如何划分乃知道多少呢?【基础的语言应用】A1级:能够理解并使用日常用语和非常简单的句子,表达具体要求。能够自我介绍,介绍他人,向他人询问个人情况并能回答这类问题,例如,住在哪儿,认识哪些人,有哪些东西等。如果谈话伙伴说话缓慢、清楚而且乐于帮助,能够进行简单交流。A2级:能够理解直接关及身边事物的句子和常用语(例如关于个人、家...

weixin_36053398的博客 475

关于ST语言转C语言,matiec中iec2c编译器的使用

最近公司有一个需求,就是想要找一个ST语言转换成C语言的工具。基于这个需求,忙活了几天,在网上找了很多方法,下面记录一下这次的过程。目前能找到的方法主要有两种:1.利用eclipse DSL的xtext,需要学习xtext语法生成语言,制作一个对应的IDE,这种方法感觉太麻烦了,所以没有采用。2.利用一些开源项目里面的matiec编译器,例如开源项目Openplc里面就有,matiec会生成两个可执行程序,iec2c和iec2iec。关于ST语言转换成C语言,使用的是iec2c。

weixin_51819969的博客 1685

欧洲语言参照标准C2,[转载]从A1到C2,欧洲语言的共同参照标准

童鞋们,你有木有酱紫的敢嚼?去欧洲留学有太多的相似之处了。连欧洲语言测试的共同参照标准都一样。那么具体如何划分乃知道多少呢?看完标准,不妨一起晒晒自己的语言水平吧!【基础的语言应用】A1级:能够理解并使用日常用语和非常简单的句子,表达具体要求。能够自我介绍,介绍他人,向他人询问个人情况并能回答这类问题,例如,住在哪儿,认识哪些人,有哪些东西等。如果谈话伙伴说话缓慢、清楚而且乐于帮助,能够进行简单交...

weixin_42511177的博客 282

c语言 proteus 延迟2秒_周周练 | 专升本C语言

回复【英语】获取历年英语试题汇编回复【领书】获取专升本备考图书回复【三级】获取英语三级模拟卷进社群领资料:1128172173同学们好,本周我们开始进行专业课习题练习~单选题1、在C语言中,以下正确的说法是( )。A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对应的形参同名时才共占用相同的存储单元D.形参是虚拟的,不占用存...

weixin_39733805的博客 174

C语言实现matlab的interp2()函数

  项目要用到matlab中的Vq = interp2(X,Y,V,Xq,Yq)函数,即把一个已知经纬度和对应值的矩阵,插值变换到一个给定经纬度网格中,也就是对给定网格填值,需要用到插值,这里使用双线性内插法。 *(这只是一个初步完成代码,仅供参考) 以下是对应C代码和测试程序: 1 //************************************ 2 ...

weixin_38168760的博客 1368
上一篇: C语言-1
下一篇: C语言-3
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值