计协编程组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

相关文章

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换