当前位置: 首页 > news >正文

C语言基础语法进阶

        今天主要学习了C语言中的一些基础语法点,包括三目运算符、逗号表达式、switch语句、do-while循环,以及二维数组的基本操作。

(一)三目运算符

三目运算符在C语言中仅有一个,它是一个简洁的条件判断表达式。

int main()
{//三目运算符 a < b ? a:b  判断a和b哪个更小int a, b,max;while (scanf("%d %d", &a, &b)) {// 使用三目运算符找出a和b中较小的值,并赋值给maxprintf("%d\n", max = a < b ? a:b);}return 0;
}

(二)逗号表达式

逗号表达式会从左到右依次执行每个子表达式,整个表达式的值是最后一个子表达式的值。

#include<stdio.h>int main()
{int a = 0;int b = 10;int c = 10;// 这是一个逗号表达式:先执行a++,然后判断b==c// if语句的判断条件是逗号表达式的最后一个子表达式b==cif (a++, b == c){// 因为b==c为真,所以会执行这里的代码// a++已经执行,所以a的值是1printf("%d",a);}return 0;
}
#include<stdio.h>int main()
{int a = 0; int c = 9; int b;// 逗号表达式:先执行a++,然后执行c,整个表达式的值为最后一个子表达式c的值// 但赋值运算符=的优先级高于逗号,所以先执行b = a++,b被赋值为a的旧值0b = a++, c;printf("b = %d", b); // 输出b=0,因为先执行了b=a++return 0;
}

(三)switch语句

switch 语句用于根据表达式的值来执行不同的代码块。这里用一个例子展示了如何判断某年2月的天数(考虑闰年)。

#include<stdio.h>int main()
{int year; int mon;while (scanf("%d %d", &year, &mon)){switch (mon){case 2:{// 判断是否为闰年的表达式:(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)// 如果是闰年,该表达式为1,否则为0// 2月的天数为 28 + 0(非闰年)或 28 + 1(闰年)printf("february,%d have %d days\n", year, 28 + (year % 4 == 0 && year % 100 != 0 || year % 400 == 0));break;}case 3: {printf("31\n");break;}default: // 用来处理输入有误的情况printf("error\n");break;}}return 0;
}

(四)do-while 循环

do-while 循环的特点是,无论while内的表达式是否符合条件,都会先执行一次do内的代码,再进行判断。

#include<stdio.h>int main()
{int i = 0;int r = 0;do {// 先执行一次循环体,r被赋值为i的旧值0,然后i自增为1r = i++;} while (i <= 10 && i > 0); // while条件判断:i=1,符合条件,继续循环// ...循环继续,直到i=11,条件不满足,循环结束// 最后一轮循环时,i=10,r=9,i++后i=11// 然后判断while(i<=10 && i>0),条件不满足,循环终止// 所以r的最终值为10printf("%d", r); // 最终输出10
}

(五) 二维数组

二维数组是C语言中用于处理表格数据的常见数据结构。

#include<stdio.h>int main()
{int i = 0; int j = 0;// 声明一个3行4列的二维数组int arr[3][4];// 嵌套循环,用于从标准输入读取数据填充二维数组for (i = 0; i < 3; i++){for (j = 0; j < 4; j++){scanf("%d", &arr[i][j]);}}// 嵌套循环,用于打印二维数组中的所有元素for (i = 0; i < 3; i++){for (j = 0; j < 4; j++){printf("%d ", arr[i][j]); // 打印每个元素后加一个空格}printf("\n"); // 每打印完一行,换行}return 0;
}

http://www.dtcms.com/a/490406.html

相关文章:

  • 池州网站建设公司好的网站你知道
  • 从零起步学习MySQL || 第五章:select语句的执行过程是怎么样的?(结合源码深度解析)
  • 专业的家居网站建设网站单页支付宝支付怎么做的
  • CC10-判断链表中是否有环
  • 【ZEGO即构开发者日报】谷歌推出新款视频生成模型 Veo 3.1;腾讯开源通用文本表示模型Youtu-Embedding;AI 陪伴赛道观察……
  • [Sora] 视频自动编码器(VAE) | `encode_``decode`
  • 算法沉淀第四天(Winner)
  • 西藏地图飞线html
  • 网站建设与管理课程代码做徽章标牌的企业网站
  • selenium实现自动化脚本的常用函数
  • 大语言模型,一个巨大的矩阵
  • 衡阳营养师报考网站大宗贸易交易平台
  • Azure API Management 负载均衡与故障转移策略完整指南
  • TI CCS软件安装
  • 内存映射文件
  • 网站开发开发语言企业网站做seo的优势
  • 资料片:R语言中常见的英文术语及其含义
  • 企业出海的挑战与应对方案
  • 架构术语:什么是东西流量和南北流量
  • 电子电器架构——车载网关转发buffer心得汇总
  • (Python)终端着色进阶:256色基础及色码效果展示
  • 《R for Data Science (2e)》免费中文翻译 (第10章) --- Exploratory data
  • 简述对网站进行评析的几个方面.wordpress 内涵
  • Python自动化从入门到实战(23):Python打地鼠游戏开发
  • (论文速读)ECLIPSE:突破性的轻量级文本到图像生成技术
  • dede 网站入侵新媒体h5是什么
  • 嵌入式系统守护者:复位IC详解与选型指南
  • 实战指南:用Cliproxy实现Reddit多账号安全运营的完整方案
  • Ovi-音视频生成模型
  • MySQL实战篇09:MySQL主从延迟压测-------每秒1000条写入,延迟1秒