【C程序设计】01:语言入门基础

1.1语言入门基础


  • 课程内容:

在这里插入图片描述

  • 编程环境:在Linux操作系统的环境下,使用vim编写C/C++程序

  • 学习目标:思维逻辑上的转换(对于问题的思考方式)、自学能力(学习能力)的提升、编码能力提升

1.C语言和汇编的对比:
(1)开发效率:

相对于汇编语言,C语言开发效率更高(集成化程度更高),代码更简洁优雅

(2)程序的可移植性:

汇编语言与计算机硬件强相关,直接与计算机底层沟通,可移植性为0

补充:如何学习一门编程语言?——沿着某种编程范式进行学习、编程范式:该语言支持的编程的一种规范流程、编程姿势

  1. C语言:只支持面一种编程范式——面向过程的编程范式
  2. C++语言:支持至少四种编程范式——面向过程、面向对象、泛型编程、函数式编程
  3. 对时间要求较高:使用C语言进行开发,对上层逻辑进行封装、文件批处理:使用python进行开发
2.输出输入函数:
(1)输出函数printf:
1.头文件:stdio.h
2.原型:int printf(const char *format, ...);
/* 注:
format:格式控制字符串
... :可变参数列表
返回值:输出字符的数量

*/
  • format:格式控制字符串
  • :可变参数列表
  • 返回值:成功输出字符的数量

补充:数据的表现形式(数据类型)与存储形式:printf函数会将所有输出的内容都当作字符进行输出

(2)输入函数scanf:
1.头文件:stdio.h
2.原型:int scanf(const char *format, ...);
/* 注:
format:格式控制字符串
... :可变参数列表
返回值:成功读入的参数个数

(1) scanf返回值可以为0,例如:scanf("hello");
(2) scanf返回值不可以为负数——可用于实现循环读入

*/
  • format:格式控制字符串
  • :可变参数列表
  • 返回值:成功读入的参数个数

补充:循环读入的3种实现方法

  1. 方法1:while(scanf() != EOF){ } ,EOF: end of file
  2. 方法2:while(scanf() != -1 ){ },-1为非法返回值,EOF对应的整型值为-1
  3. 方法3:while(~scanf()){ },~ :按位取反
3.输入输出函数的使用:
(1)随堂练习1:
  • 使用printf函数,求一个十进制数字n的位数
#include <stdio.h>

int main(){
    int n;
    while(scanf("%d", &n) != EOF){
        //利用prinf函数返回值输出数字的位数
        printf("has %d digits!\n",printf("%d",n));	
    }
    return 0;
}

注意:Linux下命令ctrl + c 为结束当前程序的运行

(2)随堂练习2:
  • 请写一个程序,读入一行字符串(可能包含空格),输出这个字符串中字符的数量。
#include <stdio.h>

int main(){
    //字符数组初始化操作
    char str[100] = {0};	
    while(scanf("%[^\n]s", str) != EOF){
        //getchar函数处理输入的\n字符,防止出现死循环
        getchar();
        printf("has %d chars!\n", printf("%s",str));
    }
    /*注:
    (1) %s:一次读入一行字符串,后str为数组首地址
    (2) [^\n]:除了\n,其他符号都将被当作字符读入;[]:正则表达式,字符匹配就集
    
    */
    return 0;
}
4.C/C++文档手册:

在这里插入图片描述

注意:C\CPP参考手册:en.cppreference.com/zh.cppreference.com

5.编码规范:
  • 百度 + 谷歌
  • 阿里 + 谷歌

在这里插入图片描述

6.代码演示:
  • 输入输出函数及其家族函数代码演示:

    #include <stdio.h>
    
    int main(){
        int n; 
        char str[100] = {0};
        scanf("%d", &n);			//文件描述符stdin 0
        printf("n = %d\n", n);		//文件描述符stdout 1、标准错误输出stderr 2
        
        /*
        1.sprintf()函数的使用:将标准输出到字符数组中
        原型:int sprintf(string, const char *format, ...);
        */
        
        sprintf(str, "%d.%d.%d.%d", 192, 168, 1, 2);
        printf("str = %s\n", str);
        
        /*
        2.fprintf()函数的使用:将标准输出到一个文件中
        原型:原型:int fprintf(file, const char *format, ...);
        */
        
    	FILE *fout = fopen("output", "w");	//fout为一个文件指针
        fprintf(fout, "%s\n", str);			//fout为一个文件描述符
        fprintf(stdout, "stdout = %s\n", str);	//stdout文件描述符:标准输出
        fprintf(stderr, "stdout = &s\n", str);	//stdout\stderr区别:标准输出重定向
        
        /*
        3.sscanf()函数、fscanf()函数:自学内容
        */
        
        return 0;
    }
    
    

总结:

  1. int sprintf(string, const char *format, ...);将标准输出到字符数组中
  2. int fprintf(file, const char *format, ...);将标准输出到一个文件中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值