首页 > 其他分享 >C语言基础(三)

C语言基础(三)

时间:2025-01-11 21:02:36浏览次数:3  
标签:输出 putchar 函数 字符 基础 C语言 数据 输入

C程序的组成包括以下部分(main.c文件只能有一个)

c语句分为五类:


赋值语句

赋值语句就是赋值表达式加上一个分号构成

而“=”的左右即分为左值和右值,以下是左值和右值的两个解释

locatable   可定位,左值(变量),在RAM中可以通过其地址定位到;

readable   可读,右值(常量),只能读取,在RAM中没有地址,


数据的输入输出

输入输出是以计算机中RAM为主体而言,当计算机向外部输出设备(如显示屏,打印机等)输出数据称为输出,从外部输入设备(如键盘,鼠标,扫描仪等)向计算机输入数据称为输入。

C语言本身不提供输入输出语句,这些操作都是由C函数库中的函数来实现的

C标准I/O函数库(stdio.h)中std表示“标准”,io表示“输入输出”,h表示“head”,#include命令都是放在程序的开头,因此这类文件被称为“头文件”

计算机为提高cpu使用效率,会有一个缓冲区FIFO,专门放置输入输出的数据,如下图

在缓冲区中,数据遵循先进先出的原则,例如先输入的数据先输出


字符数据输入输出

putchar 函数,作用是向终端输出单个字符,一般形式为putchar(r),c可以是字符型变量也可以是整型变量,如果是整型变量,则输出该数据对应的ASCII码表中对应的字符

putchar函数也可以输出控制字符,如putchar("\n")的作用是输出一个换行符,使输出的当前位置移到下一行的开头。

putchar的返回值为字符的ASCII码值

getchar 函数,作用是从终端输入单个字符,其一般形式为 getchar()

注意:getchar和putchar都只能输出或输入单个字符,getchar函数得到的字符可以赋值给一个字符变量或整型变量,也可不赋值给任何变量,仅作为表达式的一部分,另外,getchar函数也会将功能字符(如回车)当成一个字符输入。


格式输入输出

printf 函数,一般格式为printf("格式控制(占位符),输出表列(实参)")

%d以十进制有符号数据输出
%u以十进制无符号数据输出
%o以八进制无符号数据输出
%x/%X以十六进制无符号数据输出
%e/%E以科学计数法输出
%f/%F以十进制浮点型输出(存在精度丢失现象)
%m.nfm表示数据宽度,n表示保留小数点后n位有效数字
%g/%G以最简短的形式输出%e或%f
%s

以字符串形式输出

%p以指针地址形式输出
%%表示一个%(类似转义字符中的\\)

注意:在用printf函数输出时,一定注意数据类型应与上述格式说明匹配,否则将会出现错误。


scanf 函数,一般形式为scanf(格式控制,地址表列)

scanf函数传递的数据为地址,所以需要用&(取地址运算符)获取变量的地址,因为常量并没有具体的地址,所以不能为“&常量”这样的形式。

在输入多个数据时,在两个数据之间以一个或多个空格间隔,也可以用Enter键、Tab键。

scanf函数的格式控制字符与printf函数一样

在输入字符时,空格字符与转义字符都作为有效字符输入

注意:在scanf函数中,数据类型一定要匹配,例如当数据类型为double时,占位符用%lf


#include <stdio.h>
#include <math.h>
int main(void)
{
    printf("请输入三角形三边长:");
    float a,b,c;
    int ret;
    ret = scanf("%f%f%f",&a,&b,&c);
    
    while(ret !=3||(a + b) <= c || (a + c) <= b || (b + c) <= a)
    {
        printf("error! please input again!");
        while(getchar() !='\n')
        {
        }
        ret = scanf("%f%f%f",&a,&b,&c);
    }
    float s;
    s = (a + b + c) / 2;
    float area;
    area = sqrt(s * (s - a) * (s - b) * (s - c));
    printf("三角形的面积为:%f\n",area);
    return 0;
}

标签:输出,putchar,函数,字符,基础,C语言,数据,输入
From: https://blog.csdn.net/2301_80729373/article/details/145040086

相关文章

  • 从PyTorch入门到项目实战 | 基础知识篇 | 工欲善其事,必先利其器!详解PyTorch安装与环境
    从PyTorch入门到项目实战......
  • C语言基础(二)
    变量初始化在定义变量的同时使变量初始化,例如:inta=3;此时,a被初始化为3,比定义变量后再赋值的效率高各种数据类型间的混合运算整型(int)、浮点型(float)、字符型(char)之间可以混合运算,在运算时,不同的数据先转换为同一类型,再进行运算,右图为转换时的规则。向左的箭头表示必定的转......
  • 让 LLM 来评判 | 基础概念
    基础概念这是让LLM来评判系列文章的第一篇,敬请关注系列文章:基础概念选择LLM评估模型设计你自己的评估prompt评估你的评估结果奖励模型相关内容技巧与提示什么是评估模型?评估模型(Judgemodels)是一种用于评估其他神经网络的神经网络。大多数情况下它们用......
  • C语言基础
    1、运算符:    1、算数运算符:        +    -    *    /(后面不可以除0)    %(不可以对浮点数取余)        ++ --的两种形式:            i++:先用后加         ++......
  • Dreamweaver修改织梦网站源码全攻略:从基础操作到高级定制
    Dreamweaver是一款强大的可视化网页编辑工具,非常适合用来修改基于织梦CMS构建的网站源码。以下是几个实用技巧,帮助开发者更高效地完成这项任务:项目结构理解:熟悉织梦网站的整体目录结构,了解各个文件夹和文件的作用。特别是data、include、templets等关键路径下的内容,对于后续开发......
  • Jmeter 的常用基础配置,看这一篇就够了 ~
    ......
  • 用C语言写一个简单的五子棋游戏,新手刚上路做的第一个小项目
    1/*23451.制作15*15的棋盘,放到二维数组中,制作成一个函数;62.for循环,输入坐标,结构分两部分,第一部分为甲,第二部分为乙7(1)根据坐标,指向棋盘的某个位置,更改常量,并刷新棋盘8(2)判断是否有重复下子,有刷新棋盘,并提示重新下子9(3)根据输入的坐标,判断横竖......
  • 指针(全解)—C语言进阶
    目录字符指针例题指针数组(数组)数组指针再次讨论数组名数组指针来源理解练习:数组传参4.数组参数和指针参数4.1 一维数组传参4.2二维数组传参4.3 一级指针传参4.4 二级指针传参5.函数指针例子函数指针的用法函数指针数组函数指针数组的用法:指向函数指......
  • 【MySQL基础篇重点】十一、事务管理(超级干货,你需要的都在这!)
    文章目录Ⅰ.初识事务1、问题引入2、什么是事务3、为什么会出现事务4、事务的版本支持5、事务的提交方式Ⅱ.事务常见操作方式1、准备工作2、正常情况:证明事务的开始与回滚3、异常情况一:证明未`commit`,客户端崩溃,`MySQL`自动会回滚(隔离级别设置为==读未提交==)4、异常情......
  • 2025毕设ssm计算机基础课程app程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在当今信息化社会,计算机基础课程已成为高等教育不可或缺的一部分。随着信息技术的飞速发展,计算机技术在各个领域的广泛应用,使得计算机基础课程的......