Advanced-C.02.程序设计

news2024/11/15 19:43:42

C语言概述

C程序的结构

在这里插入图片描述

C语句分类

  • 表达式语句
    • x=y+z;
  • 函数调用语句
    • printf("Hello World!");
  • 控制语句
    • if语句、switch语句、do while语句、while语句、for语句、break语句、goto语句、continue语句、return语句
  • 复合语句
    • {x=y;y=z;z=x;}
  • 空语句
    • while(getchar()!='\n'){;}

输入输出

在C语言中的实现

  • 在C语言中,所有的输入/输出都是由库函数完成,都是函数语句
  • 在使用C语言库函数时,需要使用预编译命令#include <头文件>#include "头文件",将有关"头文件"包括到源文件中
    • stdio即standard input & output
  • 使用printf和scanf函数时,可以不加"stdio.h"

字符数据的输入输出

  • putchar函数,需包含"stdio.h"
  • getchar函数,需包含"stdio.h"
    • getchar函数只能接收单个字符,输入数字也按字符处理,输入多余一个字符时,只接收第一个字符

格式输入输出

  1. 一般形式
  • printf("格式控制字符串",输出表列)
  • "%d"按十进制整型输出,"%ld"按十进制长整型输出,"%c"按字符型输出
  1. 格式字符串
  • [标志][输出最小宽度][.精度][长度]类型
  • 类型:类型字符用以表示输出数据的类型
    • d:输出十进制带符号整数(输出正数不带符号)
    • u:输出十进制无符号整数
    • 0:输出八进制无符号整数(不输出前缀)
    • x、X:输出十六进制无符号整数(不输出前缀)
    • f:输出小数形式单、双精度实数
    • e、E:输出指数形式单、双精度实数
    • g、G:以%f或%e中较短的输出宽度输出单、双精度实数
    • c:输出单个字符
    • s:输出字符串
  • 标志
    • -:结果左对齐,右边填空格
    • +:输出符号(正号或负号)
    • 空格:输出值为正时冠以空格,为负时冠以负号
    • 对c,s,d,u类无影响
    • 对o、x类,在输出时加前缀
    • 对e,g,f类,当结果有小数时才给出小数点
  • 输出最小宽度:用十进制整数来表示输出的最少位数
  • 精度:以"."开头,后接十进制整数
    • 输出数字,则表示小数的位数
    • 输出字符,则表示输出字符的个数
    • 若实际位数大于精度,则截去多余部分
  • 长度
    • h表示按短整型量输出
    • l表示按长整型量输出

顺序结构

#include <stdio.h>
int main(){
	int a = 0;
	int b = 0;
	a = 5;
	b = 4;
	{
		int a = 6;
		printf("%d\n",a);
		a++;
		printf("%d\n",a);
		++b;
	}
	printf("%d\n",a);
	printf("%d\n",b);
	return 0;
}
//程序输出结果:
//6
//7
//5
//5

在这里插入图片描述

选择结构

条件语句

  1. if语句
  • if(条件表达式) 语句1;
if(a==0){
		b--;
		a++;
}
  1. if…else语句
  • if(条件表达式) 语句1;else 语句2;
if(a==0){
	b--;
	a++;
}
else{
	b++;
	a=0;
}
  1. if…else if语句
  • if(条件表达式1) 语句1;else if(条件表达式2) 语句2;...;else 语句n
if(a==0){
	b--;
	a++;
}
else if(a==1){
	b++;
	a++;
}
else if(a==2){
	b+=2;
	a++;
}
else{
	b--;
	a=0;
}
  1. if语句嵌套
  • if(条件表达式) if语句;
  • if(条件表达式) if语句1;else if语句2;
//第一种
if(a==0){
	if(b==0){
		a++;
		b++;
	}
	b++;
}
//第二种
if(a==0){
	if(b==0){
		a++;
		b++;
	}
	else if(b>1){
		a++;
		b--;
	}
}
  1. switch语句
  • 若case后无break语句,则会继续执行随后的所有case语句
  • switch后括号中表达式可以是整型、字符型、枚举型
  • case后各常量表达式值不能相同
switch(表达式)case 常量表达式1:语句1(集合)case 常量表达式2:语句2(集合)...  
case 常量表达式n:语句n(集合)breakdefault:语句n+1;  
}
switch(x){
	case 0: a++;break;
	case 1: b++;break;
	case 2: a--;break;
	case 3: b--;break;
	default: break;
}
  1. 条件运算符和条件运算表达式
  • 表达式1?表达式2:表达式3
  • 表达式1值为真,以表达式2值作为条件表达式的值,否则以表达式3值作为条件表达式的值
a==0?b=1:b=2;

//等同于if else语句
if(a==0)
	b=1;
else
	b=2;

循环结构

三种循环语句

  1. while语句
  • while(循环表达式){循环体语句;}
//输入多组数据
while(~scanf("%d",&a))
while(scanf("%d",&a)!=EOF)
//scanf的返回值等于输入整数的个数,没有整数输入,返回0
//EOF是预定义的常量-1
  1. do…while语句
  • do{循环体语句;} while(循环表达式)
  1. for语句
  • for(表达式1;表达式2;表达式3){循环体语句;}
  • for语句三个表达式不是必须的
  • 可在循环体中执行break,continue,goto语句
  • 表达式2为空,即死循环

中断语句

  1. break语句
  • 跳出本层循环,执行循环后的语句
  1. continue语句
  • 只用于结束本次循环,即直接去执行表达式3,进行下一次循环
  1. goto语句(了解)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构-各种树(二叉树、二叉查找树、平衡二叉树、红黑树、B树、B+树)

文章目录 二叉树二叉查找树平衡二叉树红黑树B树B树 二叉树 概念&#xff1a;二叉树&#xff08;binary tree&#xff09;是指树中节点的度不大于2的有序树&#xff0c;它是一种最简单且最重要的树。二叉树的递归定义为&#xff1a;二叉树是一棵空树&#xff0c;或者是一棵由一…

【FPGA入门】第三篇、modelsim软件的仿真与应用

目录 第一部分、写在前面 第二部分、关于modelsim软件的相关使用 1、modesim软件新建工程 2、文件报错的解决办法 3、仿真的办法 4、仿真的软件上面的功能按键丢失 5、不同波形颜色的仿真代表的问题 5.1、红色的波形&#xff1a;不定态信号&#xff08;X态&#xff09…

【前端 - CSS】第 18 课 - 背景属性

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 ​​​​​​​ 目录 1、缘起 2、背景属性 2.1、背景图 2.2、背景图平铺方式 2.3、背景图位置 2.4、背景图缩放 2.5、背景图…

软件开发人员必须阅读的20本书

本文翻译自国外论坛 medium&#xff0c;原文地址&#xff1a;https://irina-seng.medium.com/top-20-books-a-software-developer-must-read-updated-b24bcc9ee3d 持续学习的心态是软件开发人员想要保持专业相关性并增长自身价值的关键品质。 在这篇博文中&#xff0c;我将推荐…

dp算法篇Day6

"垂死坚持啊" 26、环绕字符串中唯一的子字符串 (1) 题目解析 (2) 算法原理 class Solution { public:int findSubstringInWraproundString(string s) {int n s.size();vector<int> dp(n,1);for(int i1; i<n; i){if(s[i-1]1 s[i] || (s[i-1]z && …

JS 刷新保持iframe页面并支持浏览器前进后退

参考资料 html5新特性&#xff1a;利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题击按钮切换iframe的src&#xff0c;这个路径如何不会被记录到history中&#xff1f;iframe 后退 浏览器history 问题ajax与HTML5 history pushState/replaceState实例 目…

Matlab论文插图绘制模板第104期—带缺口的分组箱线图

在之前的文章中&#xff0c;分享了Matlab分组箱线图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下带缺口的分组箱线图的绘制模板。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需…

PyQT5介绍及基本使用

文章目录 PyQt51. PyQt5的下载与安装1.1 PyQt5介绍1.2 windows PyQt5的安装 2.PyQt5基本UI2.1 第一个PyQt程序2.2 argv2.3 模块介绍 3.基本UI3.1 按钮QPushButton3.2 文本QLabel3.3 输入框3.4 调整窗口大小3.5 调整窗口显示屏幕中间3.6 设置窗口icon 4.布局4.1 QBoxLayout4.1.1…

Spring Security系列之授权(Authorization)架构

文章目录 AuthorizationManagerAuthorizationFilterRequest Matcher AuthorizationManager AuthorizationManager 被授 AuthorizationFilter 调用&#xff0c;负责做出最终的访问控制决定。AuthorizationManager 接口包含两个方法。 default void verify(Supplier<Authent…

ABBYY FineReader15最新版图片文字识别转换软件

在日常生活中&#xff0c;我们会遇到需要将各种文字、图片、扫描图片等转换为文字的情况。想要轻松解决这些问题&#xff0c;需要使用到OCR文字识别。但对于许多新手来说&#xff0c;OCR文字识别是陌生的。今天小编就给大家介绍一下&#xff0c;OCR文字识别怎么使用&#xff0c…

RabbitMQ如何保证消息幂等性

用户对于同一操作发起的一次请求或者多次请求的结果是一致的&#xff0c;不会因为多次点击而产生副作用。 举个简单的例子&#xff0c;那就是支付&#xff0c;用户购买商品后支付&#xff0c;支付扣款成功&#xff0c;但是返回结果的时候网络异常&#xff0c;此时钱已经扣了&am…

DJ8-4 shell 语句的分类、shell 的结构性语句

目录 8.7 shell 编程 8.7.1 shell 编程的基本过程 8.7.2 实例 8.7.3 shell 程序和语句 8.8 说明性语句和功能性语句 8.8.1 说明性语句&#xff08;注释行&#xff09; 8.8.2 常用的功能性语句 8.9 结构性语句 8.9.1 条件语句 if 8.9.2 测试语句 test 8.9.…

什么牌子的电容笔质量好耐用?平板第三方电容笔了解下

苹果的电容笔和普通的电容笔有何区别&#xff1f;其实&#xff0c;就书写情况而言&#xff0c;两者相差不多。只是苹果电容笔生在重量上&#xff0c;更加的沉重&#xff0c;而且还配备了一个特殊的重力传感器&#xff0c;能够准确的感觉到重力对线条的粗细变化。由于苹果这款产…

手机操作系统的沉浮往事(上)

移动终端操作系统&#xff0c;也就是指手机、平板电脑等设备所使用的操作系统。 在移动互联网高度发达的今天&#xff0c;我们使用移动终端操作系统的时长&#xff0c;可能已经远远超过了Windows等桌面操作系统。 那么&#xff0c;你真正了解这些移动终端操作系统吗&#xff1f…

抖音seo源码开发部署技术解析

抖音seo源码开发是一项非常重要的技术&#xff0c;开发需要深入了解抖音平台的特点和用户需求&#xff0c;积累丰富的SEO经验&#xff0c;并不断学习和更新SEO技能&#xff0c;才能不断提高视频在搜索引擎中的曝光率和播放量。 抖音seo开发需要哪些技术 了解抖音的算法和规则&…

浏览器被2345劫持了怎么搞

起因我下载了某些修改东西&#xff0c;然后就被2345篡改了浏览器的数据。我是在虚拟机里下载的&#xff0c;但是虚拟机其实也是物理机的一部分&#xff0c;实际上下载的还是到了物理机里面&#xff0c;于是浏览器打开就变成了2345的导航页面 1 解决方案&#xff1a; 浏览器主页…

DJ8-2 shell 的命令形式、shell 的变量、shell 的内部命令

目录 8.3 shell 可识别的命令形式 8.3.1 单条命令 8.3.2 多条命令 8.3.3 复合命令 8.3.4 后台命令 8.4 shell 变量和引用符 8.4.1 环境变量 plus. echo 命令的使用 8.4.2 系统变量 8.4.3 局部变量&#xff08;用户变量&#xff09; 8.4.4 单引号、双引号、…

跨境电商领域的ChatGPT使用攻略

今天分享一个电商领域的ChatGPT应用指南! 一、写谷歌广告词 提示词: 现在你是一名谷歌广告的编写人员&#xff0c;你需要为xxx产品写10条谷歌广告标题和谷歌广告描述。要求是: 1.用英文输出你的答案 2.广告的标题和广告描述的字数等要符合谷歌的标准 3.广告要引人入胜&#xf…

OceanBase—01(入门篇——使用docker安装OceanBase以及介绍连接OB的几种方式)

OceanBase—01&#xff08;入门篇——使用docker安装OceanBase以及介绍连接OB的几种方式&#xff09; 1. 前言1.1 安装部署参考1.1.1 安装前提1.1.2 参考 1.1 修改数据库用户名密码1.2 总结常见连接命令 2. 安装部署OceanBase2.1 启动 OceanBase 数据库实例2.1.1 默认拉取最新版…

代码审计——XSS详解

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 漏洞描述02 审计要点03 漏洞特征04 漏洞案例05 修复方案 01 漏洞描述 跨站脚本攻击&#xff08;Cross Site Script&#xff09;是一种将恶意JavaScript代码插入到其他Web用户页面里执行以达到攻击…