计协编程组C语言第一次培训(1.17)

2023-10-29 06:30

本文主要是介绍计协编程组C语言第一次培训(1.17),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

目录

初识C语言

一、字符类型

1、char字符类型

2、int字符类型

3、float单精度浮点型

4、double双精度浮点型

5、short短整型

6、long长整型

二、变量的初始化和赋值

1、赋值

2、初始化

2、变量的类型

练习:交换变量a,b

三、变量知识点补充

1、数据类型bool

2、常用的数据类型表示范围

3、浮点数的几个注意事项

4、强制类型转换

5、宏常量和const常量

练习2: 

四、运算表达式

五、判断

1、如果if

2、否则else

3、逻辑判断符优先级

练习3:




初识C语言

Hello world!

一、字符类型

1、char字符类型

a,b,c,@,#,$

2、int字符类型

1,2,3,4

3、float单精度浮点型

1.1,1.3

(1)浮点数的打印方式
ctrl + /:注释
1.直接打印(默认小数点后六位)

2.指定打印的位数   %.?f

 

4、double双精度浮点型

5、short短整型

表示值小的

6、long长整型

表示更大的值

 

m确定位宽,n显示输出小数

 

 

二、变量的初始化和赋值

1、赋值

在这里插入图片描述

不是每定义了一个变量都要给他赋初始值。
有些中间变量,只需要当成存储器就好了,不需要赋值。
C语言中,变量必须满足先定义,再使用。

int x,y;
scanf("%d",&x,&y);

注意“=”与“==”的差别!!!

如果写成if (x=0)那所有输出都是0

所以一定要注意!!== 才是真正的等于= 是从右向左

2、初始化
 

1、赋值的三种方式
(1)变量

int a=3,b=4,c;c=b;

(2)表达式赋值

int a=6,b=7,c;c=9+14;

(3)值

int a=6,b=7,c;c=9;

2、变量的类型

(1)局部变量
局部变量和全局变量重名时,局部变量的优先级高于全局变量

(2)全局变量

全局变量能在函数中直接被改变

全局变量必须定义在我们需要用它的函数体之前

 

  

#include <stdio.h>
int a=10 //全局变量
int main(){int b,c=10;b=a+c;//b局部变量

练习:交换变量a,b

#include <stdio.h>
int main()
{int a,b,c;a=10;b=4;printf("交换前a的值%d,b的值%d\n",a,b);c=a;a=b;b=c; printf("交换后a的值%d,b的值%d\n",a,b);return 0;
}

三、变量知识点补充

1、数据类型bool

C语言用0表示假,用非零(不一定是1)来表示真

2、常用的数据类型表示范围

int :10^9

long:10^9

long long:10^18

float:可以精确表示小数点后六位数字,但是六位过后就可能出现错误(举个例子)
double:可以精确到小数点后15位数字

 

 

 

 

3、浮点数的几个注意事项

1)比较两个浮点数

如果两个浮点数都是由常数直接赋值,这样比较不会出现错误(因为机器识别可能与人不同)

2)浮点数的精度问题

%f默认就是%.6f

3)浮点数的除法

两个数进行除运算
如果其中全是整数,除法相当于整除
只要其中有浮点数,结果就是准确的

#include <stdio.h>
int a=10;
int main(){int  a=5;float b=2;//换成2.0,结果就是2.500000float c=a/b;printf("%f",c);
}

4)自动类型转换

计算中,要求操作数必须有相同的大小和存储方式,

例如,由于各操作数大小不同,硬件不能将== char 型( 1 字节)数据与 int 型( 2 或 4 字节)==数据直接参与运算;

由于存储方式的不同(整型使用的是原,反,补,码进行存储,浮点型使用的是IEEE754标准进行存储),也不能将 int 型数据与 float 型数据直接参与运算。
(char和int),(整数:原反补)(小数:IEEE754标准),这些不能进行运算。

C语言,表达式中如果出现不同的类型进行运算,较低类型将向较高类型转换(较低类型就是所占字节数少的类型,反之。)

5)当操作数重没有double类型时

当 char、short 出现在表达式中参与运算时,一般将其自动转换为 int 类型。
(注意char要加‘ ’)

#include <stdio.h>
int a=10;
int main(){int a;short b=1;a='a'+b+10;printf("%d",a);
}

char 引入字符串

6)当操作数中含有浮点型数据(float 或 double)时

所有操作数都将转换为 double 型。(选择题)

7)如果赋值的时候,两侧的变量类型不一致

精度改变会将右边的类型转换为左边的类型,可能使右边的数据精度增加,也可能使精度降低

比如增大精度

double a;
a=5.0

 降低精度

int a;
a=1.123456

程序出错

右值超出了左值的类型范围,结果可能无意义

#include <stdio.h>
int a=10;
int main(){char  a='a';int b=1234567890;short c=b;printf("%d",c);}

4、强制类型转换

格式

(目标类型)表达式

	float a;a=1.235;printf("%d",(int)a);

//(int)a

5、宏常量和const常量

1)宏常量

#include <stdio.h>
#define PI 3.14159  //后面千万不可以加分号
#define R 5.3  //用大写表示
int main(){printf("S=%f\n",PI*R*R);printf("L=%f\n",2*PI*R);return 0;
}

格式为:#define 标识符 字符串

标识符一般全大写,字符串不分数据类型

                                     一定注意不要加分号在后面,会引起语法错误

2)const常量

可以显示出引入常量的数据类型

const double pi=3.14159;
const double r=5.3;

练习2: 

#include <stdio.h>
int main()
{int a=11;float x=2.8,y=5.7;int b,c,e,f,g,h;b=(int)(x+y);c=a%3;printf("%d\n",c);e=c*b;printf("%d\n",e);f=e%2;printf("%d\n",f);g=f/4;printf("%d\n",g);h=x+g;printf("%d\n",h);return 0;
}

我输出的答案是2,不知道答案对不对。

四、运算表达式

自增自减运算符:

a++;(a=a-1)                            a--;(a=a+1)

二元运算符:

a+=1;(a=a+1)                       a*=2;(a=a*2)其他的符号类比

逻辑运算符(二元运算符)
&&(逻辑与)、||(逻辑或)

C语言中, 0为假, 1为真

 

 

//判断是否是闰年(能被四整除,不能被一百整除,能被400整除) 
#include <stdio.h>
int main()
{int y;int n=0;n=scanf("%d",&y);if(n==1){if(y<=0){printf("不是闰年!\n");}else if(y%4==0 && y%100!=0 || y%400 == 0){printf("%d 是闰年!\n",y);}else{printf("不是闰年!\n");}}else{printf("不是闰年!\n");}return 0; 
}

 

五、判断

(详见第二篇博客)

1、如果if

if(判断条件){

条件成立:执行语句

}

判断条件非零就是成立,为零则不成立

2、否则else

3、逻辑判断符优先级

1)从左向右进行判断

2)==和!=优先级比其他符号低

练习3:

输入三个数a,b,c,比较输出其中的最大值

#include <stdio.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);if(a>b){if(a<c){printf("%d",c);}else{printf("%d",a);}}else{if(b<c){printf("%d",c);}else{printf("%d",b);}}
return 0;
}

想不到更简单的办法了

思考题:数的倒置

输入一个数(12345678),输出这个数的倒置(87654321

#include <stdio.h>
int main()
{int n,i;scanf("%d",&n);int b=0;while(n>0){i=n%10;b=b*10+i;n=n/10;}printf("倒置后为:%d\n",b);return 0;
}

这道题还是要思考一下,怎么表示出来那个倒置的数吧,因为我也想到取余这个方法,但是就是一直卡在怎么才能让它完全表示出来,b=b*10+i就很巧妙

写程序就是要逻辑通,然后自己不停的试

这篇关于计协编程组C语言第一次培训(1.17)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298853

相关文章

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块