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

C语言实验1:C程序的运行环境和运行C程序的方法

一、算法原理

这是学C语言的入门,并不需要很高深的知识,一个hello world 或者一个简单的加法即可

二、实验要求

了解所用的计算机系统的基本操作方法,学会独立使用该系统。

了解在该系统上如何编辑、编译、连接和运行一个C程序。

通过运行简单的C程序,初步了解C源程序的特点。

三、实验代码

1.hello world的输出

1.1C语言输出的样例

代码
#include<stdio.h>
int main() {printf("hello,world!");return 0;
}
结果

分析

用到了头文件stdio.h

stdio.h是C语言中的一个标准头文件,它的作用是提供了一系列的输入输出函数,方便程序员在代码中对数据进行读取和输出。这个头文件的名字中的“stdio”是“standard input/output”的缩写,也就是标准输入输出的意思。

可以理解成一个头文件包括一些变量和函数,C语言有很多头文件,不同头文件有着不同的内容,不同的作用,但是最基础的是stdio.h

printf函数就是这个库中的输出函数,printf不仅可以输出字符串,也能输出数字等,但是输出不同类型的数字,所用的类型也不同,如int型数据是%d,float型数据用%f,char型数据用%c

具体可以参考下面这篇博客

[C]C语言基本语句(4/7)→ 用printf语句输出int, float, double, char型数据_c语言输出int-CSDN博客 至于return 0,因为主函数是int型,最后的结果就是返回一个int型数据,默认return 0,当然自己设计函数的时候return多少都行

1.2C++输出的样例

代码
#include<iostream>
using namespace std;
int main() {cout << "hello,world!";return 0;
}
结果

分析

上述代码用到了iostream库

<iostream> 库被认为是 C++ 中最基础和最重要的一个头文件,它定义了输入和输出的流类和函数,可以实现程序与控制台或文件之间的交互操作。掌握 <iostream> 库的知识对于使用 C++ 进行输入输出操作至关重要。
可以发现用iostream中的cout输出,会变得很简单,我的建议是虽然C++很复杂,但是写到C语言时输入输出可以使用C++的cin和cout

using namespace 的意思是使用命名空间

如果把这一行代码给删除,就会报错。

对于这个错误,感兴趣的同学可以看一下这篇文章,不感兴趣的同学只需要知道在用到C++的输入输出要用到这行代码

using namespace std;到底是在干嘛?_using namespace std有什么用-CSDN博客

对于cin和c++的使用可以参考下面这篇文章

C++输入与输出—cout和cin的用法_c++ cout语法-CSDN博客

2.加减乘除的实现

2.1加法的实现

代码
#include<iostream>
using namespace std;
int main() {int a = 3,b = 4;int c;c = a + b;cout << c;return 0;
}
结果

分析

C语言中“+”就是加法,但是只能相同类型数据相加,否则会报错

在计算机组成原理这门课中会学到:计算机中数字大部分都是以补码形式存在的,比如64位的计算机,可以表示的int型数字范围是-(2^63)——(2^63-1),也就是说数字不能无限大,否则会溢出,而且数字越大,处理越慢,对于处理很大的数据,要用到数学思想,拆分。

2.2减法的实现

代码
#include<iostream>
using namespace std;
int main() {int a = 3,b = 4;int c;c = a - b;cout << c;return 0;
}
结果

分析

C语言中减法是“-”,实质是加法,为什么这样说呢?

用上面的例子解释下,相当于3的补码加上 -4 的补码,手算就是3的补码加上4的补码全部取反加一

2.3乘法的实现

代码
#include<iostream>
using namespace std;
int main() {int a = 3,b = 4;int c;c = a * b;cout << c;return 0;
}
结果

分析 

C语言中的乘法就是"*",乘法本质上是加法

例如10*12

可以拆解为10*10+10*2,在CPU中会涉及到移位器

2.4除法的实现
代码

#include<iostream>
using namespace std;
int main() {int a = 8,b = 4;int c;c = a/b;cout << c;return 0;
}
结果

分析

 C语言中除法是"/",注意不是"\","\"是转义字符。

除法原理比较繁琐,int型数据的除法本质上是求商,余数用"%"来求("%"在水仙花数中应用较多)

不能除以0,否则系统会报错。

四、实验总结

这是C语言的入门,往后还会学到很多,望诸君认真学习,在计算机的海洋里遨游 !!!

相关文章:

C语言实验1:C程序的运行环境和运行C程序的方法

一、算法原理 这是学C语言的入门&#xff0c;并不需要很高深的知识&#xff0c;一个hello world 或者一个简单的加法即可 二、实验要求 了解所用的计算机系统的基本操作方法&#xff0c;学会独立使用该系统。 了解在该系统上如何编辑、编译、连接和运行一个C程序。 通过运…...

「微服务」微服务架构中的数据一致性

在微服务中&#xff0c;一个逻辑上原子操作可以经常跨越多个微服务。即使是单片系统也可能使用多个数据库或消息传递解决方案。使用多个独立的数据存储解决方案&#xff0c;如果其中一个分布式流程参与者出现故障&#xff0c;我们就会面临数据不一致的风险 - 例如在未下订单的情…...

ARCGIS PRO SDK 要素空间关系

一、要素与要素查询&#xff0c;返回的是bool值 1、 Touches 判断几何要素是否接触 Touches 如果 geometry1 与 geometry2 接触&#xff0c;则返回 true&#xff0c;否则 false。 touches GeometryEngine.Instance.Touches(Geometry1, Geometry2) 2、…...

Python面向对象高级与Python的异常、模块以及包管理

Python面向对象高级与Python的异常、模块以及包管理 一、Python中的继承 1、什么是继承 我们接下来来聊聊Python代码中的“继承”:类是用来描述现实世界中同一组事务的共有特性的抽象模型,但是类也有上下级和范围之分,比如:生物 => 动物 => 哺乳动物 => 灵长型…...

Python 爬取 哔站视频弹幕 并实现词云图可视化

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境介绍: python 3.8 解释器 pycharm 编辑器 第三方模块: requests >>> pip install requests protobuf >>> pip install protobuf 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入安装命…...

BP神经网络详细原理,BP神经网络训练界面详解,基于BP神经网络的公司财务风险分类

目录 摘要 BP神经网络参数设置及各种函数选择 参数设置 训练函数 传递函数 学习函数 性能函数 显示函数 前向网络创建函数 BP神经网络训练窗口详解 训练窗口例样 训练窗口四部详解 基于BP神经网络的公司财务风险分类 完整代码下载链接:基于BP神经网络的公司财务风险分类(代码…...

C++ DAY1 作业

1.定义自己的命名空间myspace&#xff0c;并在myspace中定义一个字符串&#xff0c;并实现求字符串长度 #include <iostream>using namespace std; namespace myspace {string str;int length_fun(){getline(cin,str);int i 0;while(str[i] ! \0){i;}return i;}} using…...

「微服务模式」七种微服务反模式

什么是微服务 流行语经常为进化的概念提供背景&#xff0c;并且需要一个良好的“标签”来促进对话。微服务是一个新的“标签”&#xff0c;它定义了我个人一直在发现和使用的领域。文章和会议描述了一些事情&#xff0c;我慢慢意识到&#xff0c;过去几年我一直在发展自己的个人…...

运动耳机哪款性价比最高、性价比最高的运动耳机推荐

近年来&#xff0c;运动蓝牙耳机备受欢迎&#xff0c;成为人们健身时的必备时尚单品。随着蓝牙耳机的不断发展&#xff0c;市场上可供选择的产品种类繁多&#xff0c;因此挑选一款适合自己的蓝牙耳机并不困难。然而&#xff0c;并非每款耳机都适合户外或者运动场景下的使用&…...

FreeRTOS软件定时器

一、简介 二、实验 //创建一个单次定时器和一个周期定时器&#xff0c;打开两个定时器然后等待10s关闭定时器&#xff0c;此时会发现单次定时器打印1次停止&#xff0c;周期定时器打印5次停止 #include "FreeRTOS_demo.h"#define START_TASK_PRIO 1 #define…...

【Java集合类不安全示例】

文章目录 一、List二、Set三、Map 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、List 代码如下&#xff08;示例&#xff09;&#xff1a; public class ZZZZZZZZZZ {public static void main(String[] args) {// ArrList 非线程安全的集合List&l…...

cpp_07_类型转换构造_析构函数_深拷贝_静态成员

1 类型转换构造函数 1.1 why? 基本类型之间的转换&#xff0c;编译器内置转换规则&#xff1a;int -> double 类类型之间的转换&#xff0c;编译器不知道转换规则&#xff0c;需要用户提供&#xff1a;Cat -> Dog // consconv_why.cpp 为什么需要自定义转换 #includ…...

Java 已死、前端已凉?

文章目录 Java 的现状前端技术的现状分析结论 关于“Java 已死、前端已凉”的言论&#xff0c;这种说法更多地反映了行业对技术趋势的一种情绪化反应&#xff0c;而不一定是基于事实的判断。下面我来具体分析这个话题。 Java 的现状 Java 的普及与稳定性&#xff1a;Java 作为一…...

Calico IP_AUTODETECTION_METHOD

在 Calico 中&#xff0c;IP_AUTODETECTION_METHOD 的配置项用于指定 Calico 如何检测容器的 IP 地址。 一、kubernetes-internal-ip模式 其中&#xff0c;kubernetes-internal-ip 是一种特殊的模式&#xff0c;用于在 Kubernetes 环境中检测容器的 IP 地址。具体作用如下&…...

百分点科技成为中国“数据要素×”生态合作伙伴

12月24日&#xff0c;由中国经济体制改革研究会、中国电子、郑州市人民政府、中国经济改革研究基金会联合主办的中国“数据要素”生态大会在郑州召开&#xff0c;百分点科技受邀出席&#xff0c;并获颁中国“数据要素x”2024年度生态伙伴合作证书。 大会邀请了国家数据局党组成…...

智能优化算法应用:基于孔雀算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于孔雀算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于孔雀算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.孔雀算法4.实验参数设定5.算法结果6.参考文献7.MA…...

Redis自动部署脚本编写

#!/bin/bash ck_ok() { if [ $? -ne 0 ] then echo "$1 error." exit 1 fi } download_redis() { cd /usr/local/src if [ -f redis-7.0.4.tar.gz ] then echo "当前目录已经存在redis-7.0.4.tar.gz&q…...

Tinker 环境下数据表的用法

如果我们要自己手动创建一个模型文件&#xff0c;最简单的方式是通过 make:model 来创建。 php artisan make:model Article 删除模型文件 rm app/Models/Article.php 创建模型的同时顺便创建数据库迁移 php artisan make:model Article -m Eloquent 表命名约定 在该文件中&am…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之线性布局容器Row组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之线性布局容器Row组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Row组件 沿水平方向布局容器。 子组件 可以包含子组件。 接口 Row(…...

JAVA——JDBC学习

视频连接&#xff1a;https://www.bilibili.com/video/BV1sK411B71e/?spm_id_from333.337.search-card.all.click&vd_source619f8ed6df662d99db4b3673d1d3ddcb 《视频讲解很详细&#xff01;&#xff01;推荐》 JDBC&#xff08;Java DataBase Connectivity Java数据库连…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...