C语言的基本语法

我突然意识到编程里更重要的是算法,而不是语法,所以这篇文章加急要讲一下常用的语法,后面再更新的就是实操与算法了。

格式输出函数

printf(格式控制字符串,输出项)

格式控制字符串,不规范讲就是包含常量与变量。常量是输入什么就完整输出什么;变量需要用转换控制符再配合后文的输出项(变量名)对应输出。

转换控制符,决定了输出项(变量)输出时的格式。

int%d带符号的十进制整数
unsigned int%u无符号的十进制整数
int%o八进制整数
int%x十六进制整数
float%f十进制小数
float%e科学计数法
float%g不带无效0的小数
char%c单个字符
char[]%s以'\0'结尾的字符串数组

因为C语言的变量里没有字符串格式,所以通常用数组变量来表示“字符串变量”。

上面👆🏻提到的格式控制字符只是最基本的格式,它还能设置各种属性来控制输出的效果,下面直接看例子。

#include<stdio.h>
int main()
{
int x=61;
double y=9.8760000;
printf("1 [%d]\n",x);\\[61]
printf("2 [%o]\n",x);\\[75]
printf("3 [%x]\n",x);\\[3d]
printf("4 [%f]\n",y);\\[9.876000]
printf("5 [%7.2f]\n",y);\\[   9.88]这里设置了格式,%7.2f代表%f格式的变量,保留2位小数(四舍五入),整个数据占7个字符(保留2位小数,小数点占1位,所以整数应该占7-2-1=4位,未占满的在前面补空格。
printf("6 [%07.2f]\n",y);\\[0009.88]前面0表示未占满的前面补0,效果基本与上一条代码一样。
printf("7 [%e]\n",y);\\[9.876000e+000]科学计数法的格式,乘上了10的0次方
printf("8 [%g]\n",y);\\[9.876]无效0被删去
printf("9 [%s]\n","CHINA");\\[CHINA]
printf("10 [%10S]\n","CHINA");\\[     CHINA]五个空格
printf("11 [%-10s]\n","CHINA");\\[CHINA     ]五个空格,负号表示左对齐
printf("12 %1d",x);\\[61]只有当数据的长度小于或等于转换控制符的设置时才决定宽度,否则(这里设置1小于实际2)按实际宽度输出
}

格式输入函数

scanf("格式说明符",地址);

格式说明符表示用户需要输入的字符,依旧不规范讲分为常量和变量。常量就需要完全一模一样地输入,变量依旧以%引出数据类型,并与地址相对应,用户在“变量”的位置才能在同数据类型中自由输入内容。

地址格式为&变量名

从现实的角度出发,声明一个变量后,计算机就自动开辟一个空间供其储存。变量的值可以抑制改变,但是位置是固定的,相当于它的家。

输入的字符同样可以设置格式,下面直接给例子自行体会

#include<stdio.h>
int main()
{
int a;
float b,c;
scanf("%2d%*4f%4f",&a,&b,&c);
printf("a=%d,b=%f,c=%f\n",a,b,c);//最后输出结果a=12,b=9789.000000,中间的%f被虚读,直接忽略相应的宽度不赋给任何变量。最后c因为没被赋值,会显示为任意一个数(严格讲也不是任意,但这涉及到计算机硬件的相关理论,我暂时没学)
}

字符输入函数getchar()

字符输出函数putchar()

括号内只能填单个字符或一个字符变量。

if-else语句

if(条件){条件成立时执行的命令;}

if(条件){条件成立时执行的语句}else{条件不成立时执行的语句;}

switch-case语句

switch(表达式)

{

case 表达式可能的值:命令;break;

default:命令;

}

这其实不算“如果……就”,这是匹配到相应的值,然后直接跳过中间步骤到对应那行代码,再按顺序运行,哪怕下一行代码的值不是表达式的值也会执行。因此通常会在每个case末尾加上break表示跳出整个switch语句,不论下文有多少代码通通不执行。

while语句

while(条件){条件成立时执行的命令;}

命令执行结束后会重新判断条件是否成立,若成立则继续执行命令。为避免程序无休止运行,通常条件是某个变量与某个值比大小;而执行的最后一条命令是改变条件中变量的值(加减乘除余等都可)。

do-while语句

do 命令 while(条件);

for语句

for(初始值;条件;无论条件成立与否都执行的命令通常用来改变循环变量的值){条件成立时执行的命令;}

break;语句

结束循环,不再循环。

continue;语句

结束本次循环,下次循环正常进行。换句话说就是本次循环不进行任何处理。

goto语句

goto 标签名;

标签的设置直接在代码最前面任意取一个名字加冒号即可

 

讲到这里了,后面关于数组、指针、枚举、结构体、文件等内容简单讲跟前面的数据类型基本一样,关键是如何应用。但应用的问题不是一时半会讲得清楚的,因此计划是后期讲案例和我学算法的时候,用到什么就讲什么吧。

这种比较难的东西,还是在应用实践中比较任意掌握好。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值