c语言突击

news2024/11/26 19:20:04

一:前序

1.一个c语言程序有且只有一个main函数,是程序运行的起点!

        每个c语言程序写完后,都是先编译(.c---),后链接(.obj---),最后运行(.exe);

注意.c与.obj文件是无法运行的,只有.exe文件才可以运行

2.标识符的概念:

标识符是由字符、数字、下划线组成,并且第一个必须是字母或下划线

标识符分为关键字、预定义标识符、用户标识符

严格区分大小写,尽量采用能说明程序对象意义的标识符!

3.进制转换

十进制转换二进制、八进制、十六进制;

二进制、八进制、十六进制转成十进制;

1)c语言中只有八、十、十六进制,没有二进制

但是在运行时候,所有进制都要转成二进制来进行处理

八进制规定要以0开头,没有8,逢8进1;十六进制规定以0x开头;

2)小数的合法写法:c语言小数点两边有一个零的话,可以不用写;

3)实型数据的合法形式

  • 2.333e-1是合法的,且数据是2.333*10\frac{}{}的负一次方
  • 口诀:e前e后必有数,e后必为整数

4)整型一般是4个字节,字符型是1个字节,双精度型一般是8个字节

4.算术表达式和赋值表达式

1)算术表达式:+ - * / %

“/”两边都是整型的话,结果就是一个整型;如:3/2=1;

“/”若有一边为小数,那么结果为小数;如:3/2.0=1.5

“%”符号请一定要注意是余数,%符号两边要求是整数

8%5=3        8/5=1

在c程序中,两个整数相除(整除),会自动舍去小数部分!

2)赋值表达式

表达式数值2是最右边的数值,a=b=5;该表达式为5,常量不可以赋值;赋值的左边只能是一个变量!

3)复合的赋值表达式:

int a=2;
a*=2+3; //a=10,相同于a=2*(2+3);

算术运算符与“=”结合在一起,形成的复合赋值运算符

4)自加表达式:

自加、自减表达式:假设a=5;++a(是为6),a++(为5);

运行的机理:++a是先八变量的数值加上1,然后吧得到的数值放到变量a中,然后再用这个++

a表达式的数值为6;

                      a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中,进行了++a和a++后,在下面的程序中再用到a的话都是变量a中的6了;

口诀:++在前,先加后用;++在后,先用后加

           ++a,先取值,后执行;a++,先执行,后取值; 

5)逗号表达式:优先级最低,表达式的数值是逗号最右边的那个表达式的数值

                        如:(2,3,4)的表达式的数值就是4;

                        z=(2,3,4) (整个是赋值表达式)这个时候z的值是4;

                        z=2,3,4        (整个逗号表达式)这个时候的z值是2;

 x=(a=3,6*a);                //a=3,x=18;
 x=(a=3*5,a*4),a+15;        // 表达式值30,x=60 

运算次序,将3*5结果15赋值给变量a,再计算括号内第二个表达式的值,结果为60。

60是运算至此括号所构成表达式的值,此时a的值仍为15,最后计算整个表达式的值为30。 

 补充:

  1. 空语句不可以随意执行,会导致逻辑错误!
  2. 注释不是c语言,不占运行时间,没有分号,不可以嵌套!
  3. 强制类型转换:一定是(int)a不是int(a)注意类型上一定要有括号的!但要注意(int)(a+b)和(int) a+b的区别,前是吧a+b转变,后是吧a转型后再加b
  4. 三种取整去小数的情况:1.int a=1.6;   2. b=(int) a;  3.1/2; 3/2;

5.字符

1)字符数据的合法形式

‘1’是字符占一个字节;“1”是字符串占两个字节(含有一个结束符号);

‘0’的ASCII数值表示为48,‘a’的ASCII的数值是97,‘A'的ASCII数值为65;

一般考试表示单个字符错误的形式:’65‘,“1”;

字符是可以进行算数运算的:’0‘-0=48;

大写字母和小写字母转换方法:’A'+32=‘a'    相互之间差32;

2)转义字符:分为一般转义字符,八进制转义字符,十六进制的转义字符

1.一般转义字符:\t        \n        \'        \"        \\

2.八进制转义字符:’\141‘是合法的,前导0是不能写的

3.十六进制转义字符:'\x6d'是合法的,前导0不能写且x为小写

3)字符型和整数是近亲:两个有很大的相似之处

char a=65;    
printf("%c",a);    //输出结果:A
printf("%d",a);    //输出结果:65
字符形式含义ASCII码
\n换行   10
\t        水平制表(下一个Tab)9
\b退格8
\r回车13
\f换页12
\\反斜杠\92
\'单引号(撇)39
\"双引号34
\ddd1到3位八进制代表的字符
\xhh1到2位十六进制代表的字符

二:输入输出函数 

1.数据输出printf()

1)使用printf和scanf函数,在最前面加上#include<stdio.h>

2)  pirntf可以只有一个参数,也可以有两个参数

格式说明表示内容格式说明表示内容
%d

整型int

%c        字符char
%ld长整型long int%s字符串
%f浮点型float%o八进制
%lfdouble%#o带前导的八进制
%%输出一个百分号%x十六进制
%5d%#x带前导的十六进制
转换描述对应参数类型实现的转换
%mdint

输出十进制整数,m为输出最小宽度

(如数据的位数小于m,则左端补空;若数据位数大于m,则按实际长度输出)

%m.nf

float,double按带小数形式输出实数,m为输出最小宽度,n为小数点后位数。(如数据的位数小于m,则左端补空;若数据位数大于m,按实际长度输出。小数位数被截断时按四舍五入输出)
printf("%2d",123);    //第二部分有三位,大于指定的两位,原样输出123

printf("%5d",123);    //第二部分有三位,小于指定的五位,左边补两个空格  123

printf("%10.6f",1.25);//小数要求补足6位的,没有6位的补0,结果位1.250000

printf("%5.3f",1.25); //小数三位,整个五位,结果1.250(小数点算一位)

printf("%3.1f",1.25); //小数一位,整个三位,结果为1.3(要进行四舍五入)

 2.数据输入scanf()

1)scanf(”a=%d,b=%d“,&a,&b);    重点

2)指针在scanf         int x=2;          int *p;          p=&x;        scanf("%d”,p);

星号取数值,&取地址!

3.指定输入的长度(重点)

//终端输入:1234567
scanf(“%2d%4d%d”,&x,&y,&z);
//x为12,y为3456,z为7
//终端输入1 234567      1 2中间有空格,所有只有1给了x
scanf(“%2d%4d%d”,&x,&y,&z);
//x为1, y为2345,z为67

 4.输入时候字符和整数的区别(重点)

scanf("%d", &x);	//输入1,表示整数1
scanf("%c", &x);	//输入字符’1‘,为整数49;

putchar,getchar函数的考点 

 char a=getchar()没有参数的,从键盘得到你输入的一个字符给变量a;

putchar(”y“)吧字符y输出到屏幕!

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

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

相关文章

ROS-分布式通信

ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式&#xff0c;任何节点可能随时需要与任何其他节点进行通信。 因此&#xff0c;ROS对网络配置有某些要求&#xff1a; 所有端口上的所有机器之间必须有完整的双向连接。每…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文&#xff0c;为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文&#xff0c;restart即可&#xff08;首次会有install安装过程&#xff0c;等待安装成功后重启即可&am…

反爬虫介绍及其处理方法

反爬虫机制 封IP&#xff1a;监控短时间内同一地址的请求次数过大登录及验证码&#xff1a;对于监控后封IP之后短时间内继续的大量请求&#xff0c;要求登陆或验证码通过验证之后才能继续进行。健全账号体制&#xff1a;即核心数据只能通过账号登录后才能进行访问。动态加载数…

【.NET】控制台应用程序的各种交互玩法

关于控制台交互&#xff0c;大伙伴们也许见得最多的是进度条&#xff0c;就是输出一行但末尾不加 \n&#xff0c;而是用 \r 回到行首&#xff0c;然后输出新的内容&#xff0c;这样就做出进度条了。不过这种方法永远只能修改最后一行文本。 于是&#xff0c;有人想出了第二种方…

【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 基于高斯核回归的拟合算法是一种处理回归问题的机器学习方法。以下是该算法的简单介绍&#xff1a; 核心思想&#xff1a;高斯核回归的核心思想是利用高斯核函数对数据点进行非线性映射&a…

AudioGPT 语音技术全覆盖:语音识别、增强、分离、风格迁移等 | 开源日报 No.114

stevearc/oil.nvim Stars: 1.7k License: MIT oil.nvim 是一个类似于 vim-vinegar 的文件浏览器&#xff0c;允许您像普通 Neovim 缓冲区一样编辑文件系统。其主要功能包括支持常见插件管理器、通过适配器抽象进行所有文件系统交互以及提供 API 来执行各种操作。该项目的关键…

RNN梯度爆炸实验

前情回顾 from torch.utils.data import Dataset import torch.nn as nn import torch.nn.functional as F import os import random import torch from nndl import Accuracy from nndl import RunnerV3 from torch.utils.data import DataLoader import matplotlib.pyplot a…

零基础自学C语言|字符函数和字符串函数

在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;C语言标准库中提供了一系列库函数&#xff0c;接下来我们就学习一下这些函数。 &#x1f4cc;字符分类函数 C语言中有一系列的函数是专门做字符分类的&#xff0c;也就…

06_Web框架之Django三

Web框架之Django三 学习目标和内容 1、能够通过ORM模型创建数据表 2、能够通过ORM模型对数据进行操作 3、能够理解ORM模型对应关系 一、ORM概念 1、ORM介绍 对象关系映射 用于实现面向对象编程语言里不同类型系统数据之间的转换。 其就是使用面向对象的方式&#xff0c;操作…

风速预测(六)基于Pytorch的EMD-CNN-GRU并行模型

目录 前言 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集&#xff0c;按照8&#xff1a;2划分训练集和测试集 2.2 设置滑动窗口大小为96&#xff0c;制作数据集 3 基于Pytorch的EMD-CNN-GRU并行模型预测 3.1 数据加载&a…

得帆信息创始人-张桐,受邀出席 BV百度风投AIGC主题论坛

近日&#xff0c;得帆信息创始人兼CEO张桐&#xff0c;作为百度风投被投代表企业创始人受邀出席“向未来&#xff0c;共成长” BV百度风投AIGC主题论坛。 与包括上海市徐汇区相关部门领导、百度集团相关事业部负责人及代表&#xff0c;以及来自国寿资本、中网投、麦顿投资的投资…

IDEA运行JSP启动后页面中文乱码

源代码截图&#xff1a; 运行结果截图&#xff1a; 在<head>标签内加入代码 <% page contentType"text/html; charsetgb2312"%> 重启服务器&#xff0c;问题已改善 ————————————————— 该文仅供学习以及参考&#xff0c;可做笔记收藏…

SQL语句整理二--Mysql

文章目录 知识点梳理&#xff1a;1. mysql 中 in 和 exists 区别2. varchar 与 char 的区别 查看表结构&#xff1a;获取当前时间&#xff1a;查看建表语句&#xff1a;修改用户密码&#xff1a;查看所有用户&#xff1a;grant命令&#xff1a;判断当前数据库有多少连接数&…

部署promethues采集kubelet数据报错:server returned HTTP status 403 Forbidden

背景 笔者尝试部署手动部署promethues去采集kubelet的node节点数据信息时报错 笔者的promethus的配置文件和promthues的clusterrole配置如下所示&#xff1a; apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: prometheus rules: - apiGroups: […

钡铼无线R10A工业级路由器在工业机器人领域的创新应用

随着工业机器人的普及&#xff0c;对于高可靠性和高稳定性的网络接入设备的需求也越来越大。传统的有线网络虽然稳定&#xff0c;但在现场布置和维护上面临很多困难&#xff0c;而无线网络虽然方便&#xff0c;但受到信号干扰和传输距离限制等问题的影响。如何解决这些问题&…

在centos7上安装docker

1.CentOS安装Docker Docker CE 支持 64 位版本 CentOS 7&#xff0c;并且要求内核版本不低于 3.10&#xff0c; CentOS 7 满足最低内核的要求&#xff0c;所以我们在CentOS 7安装Docker。 1.1.卸载&#xff08;可选&#xff09; 如果之前安装过旧版本的Docker&#xff0c;可…

Python tkinter控件全集之组合选择框 ttk.ComboBox

Tkinter标准库 Tkinter是Python的标准GUI库&#xff0c;也是最常用的Python GUI库之一&#xff0c;提供了丰富的组件和功能&#xff0c;包括窗口、按钮、标签、文本框、列表框、滚动条、画布、菜单等&#xff0c;方便开发者进行图形界面的开发。Tkinter库基于Tk for Unix/Wind…

DC-5靶场

目录 DC-5靶机&#xff1a; 先进行主机发现&#xff1a; 发现文件包含&#xff1a; 上传一句话木马&#xff1a; 反弹shell&#xff1a; 提权漏洞利用&#xff1a; 下载exp&#xff1a; 第一个文件 libhax.c 第二个文件r…

Ubuntu 常用命令之 rm 命令用法介绍

rm是一个在Unix和Unix-like操作系统中的基本命令&#xff0c;用于删除文件或目录。rm的全称是“remove”。 rm命令的基本语法是 rm [options] [-r|-R] [--] file...其中&#xff0c;[options]是可选的命令行选项&#xff0c;[-r|-R]是递归删除目录和其内容&#xff0c;[--]表…

Eclipse 一直提示 loading descriptor for 的解决方法

启动eclipse之后&#xff0c;进行相关操作时&#xff0c;弹出界面&#xff0c;提示&#xff1a;loading descriptor for xxx 解决方法&#xff1a; 在Eclipse左侧的Project Explorer 最右上角有一个小钮,鼠标移上去时提示"View Menu". 你点一下,在弹出的上下文菜单中…