当前位置:网站首页>【HNUMSC】C语言第二讲
【HNUMSC】C语言第二讲
2022-08-09 01:51:00 【仿生程序员会梦见电子羊吗】
C语言第二课
循环
循环是重复执行其他语句(循环体)的语句。
C语言提供了三种重复语句:
- while
- do
- for
while语句
while(i<n){
i=i+2;
}
int i=5;
while(i>=1){
printf("%d\n",i);
i--;
}
do语句
do语句本质上就是while语句,只是控制表达式是在每次执行完循环体之后进行判定。
do语句while(表达式);
int i =10;
do{
printf("%d\n",i);
i--;
}while(i>0);
for语句
for语句非常适合应用在使用“计数”变量的循环中。
for语句格式:
for(表达式1;表达式2;表达式3)语句
从0向上加到n-1:
int i;
for(i=0;i<10;i++)
printf("i=%d\n",i);
执行for语句时,变量i先初始化为0,接着判定i是否小于10。因为判定的结果为真,所以打印i=0,然后对变量i进行自增操作。随后再次对条件i>0进行判定,直到不满足条件(判定为false)为止。
for的省略表达式
C语言允许省略任意或者全部的表达式:
int i=0;
for(;i<10;i++)
printf("i=%d\n",i);
int i;
for(i=0;i<=10;){
printf("i=%d\n",i);
i++;
}
如果省略表达式2,那么它默认为真值,for语句不会终止,会无限循环。
for语句声明
int i=2;
for(int i=0;i<10;i++)
printf("i=%d\n",i);
printf("%d",i);
for语句声明的变量不可以在循环外访问。
循环中的break语句
int main(void)
{
int i=0;
for(;;i++){
printf("i=%d\n",i);
if(i==5){
break;
}
}
return 0;
}
continue语句
break语句会使程序跳出循环,而continue语句会把程序控制留在循环内。
//读入十个非零数后循环中止
int n=0;
int sum=0;
while(n<0){
scanf("%d",&i);
if(i==0)
continue;//跳过读入的0
sum +=1;
n++;
}
基本类型
整数类型
- int
- long int
整数溢出
对整数进行算数运算时,其结果可能因为太大而无法表示。
例如,对两个int值进行算术运算时,结果必须仍然能用int类型来表示,否则会发生溢出。
long l;
scanf("%ld",&l);
printf("%ld",l);
浮点类型
C语言提供3种浮点类型,对应三种不同的浮点格式
- float:单精度浮点数
- double:双精度浮点数
- long double:扩展精度浮点数
double d;
scanf("%lf",&d);
//printf函数格式中f可以用来写double类型(不能用lf)
字符类型
char类型,即字符类型
ASCII码
char类型的变量可以用任意单字符赋值:
char ch;
ch ='a';
ch ='A';
ch ='0';
ch =' ';//空格
ch =ch+1;
可以像比较数那样对字符进行比较
下面的if语句测试ch中是否含有小写字母,如果有,那么它会把ch转化成相应的大写字母。
int main(void)
{
char ch;
ch='f';
if ('a'<=ch && ch<='z')
ch =ch -'a'+'A';
printf("%c",ch);
return 0;
}
getchar
可以使用getchar函数和putchar函数来读写字符。
putchar函数用于写单个字符
每次调用getchar函数时,它会读入一个字符并将其返回。
ch=getchar();//为保存这个字符,必须使用赋值操作将其储存到变量中
数组
一维数组
声明数组a有10个int类型的元素:
int a[10];
或者用宏定义:
#define N 10
int a[N];
数组下标
为了存取特定的数组元素,可以在写数组名的同时在后面加上一个用方括号围绕的整数值(对数组取下标或进行索引)
如果a是含有10个元素的数组,可以依此标记为a[0],a[1]…a[9]
数组索引从0开始
数列反向
数组初始化
对数组使用sizeof运算符
多维数组
二维数组m有5行9列:
int m[5][9];
结构体
边栏推荐
猜你喜欢

软件测试的调用接口怎么调用,逻辑是什么?

torchversion.transforms的使用

猿辅导联合多方专家共议新课标:语文将更强调“实践性”

观察者模式

全文翻译:EDPB 基于设计和默认的数据保护指南

LeetCode每日两题02:第一个错误的版本 (均1200道)方法:二分查找

Image denoising based on edge enhancement Diffusion 】 (cEED) and Coherence Enhancing coursing together (cCED) filter to realize image denoising matlab code

makefile file compilation

考研人总结的时间管理7大忌,你中了几条?

【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
随机推荐
在 ASP.NET Core 中上传文件
谷歌翻译下载-免费谷歌翻译软件下载
最新豆瓣top250爬虫案例代码分析[注释齐全]
PMP有什么答题技巧?
Introduction to LVGL (based on v8.1-8.2)
VOIP使用单端口替换动态端口池进行UDP通信
[Signal denoising] Based on Sage-Husa adaptive Kalman filter to realize the suppression of ocean wave magnetic field noise and the generation of ocean wave magnetic field noise with matlab code
Codeforces Round #809 (Div. 2)A~D1
等到中心化的平台不再,衍生于这个平台的一切都将化作泡影
JDBC technology (3) - use Druid database connection pool test
史上最猛“员工”,疯狂吐槽亿万富翁老板小扎:那么有钱,还总穿着同样的衣服!
Go - 9 - data type - function
TP测试查询数据库字段为null或空的字段
LeetCode每日一题:搜索插入位置 (均1200道)方法:二分查找
class path resource [bean.xml] cannot be opened because it does not 错误解决方案
数字孪生+燃气管理,开启智慧燃气管理新模式
设计师设计相关图表时,如何运用设计技巧与合理的用户体验?【大屏可视化(PC端、移动端)】
猿辅导联合多方专家共议新课标:语文将更强调“实践性”
Educational Codeforces Round 132 (Rated for Div. 2)
Latex example reference