【C程序设计】——最简单的C语言程序

news2024/11/29 8:42:32

在这里插入图片描述

目录

 🍊🍊一、最简单的C语言程序

1.1  最简单的C语言程序举例

1.2  C语言程序的结构


 

 首先,让我们先了解一下C语言的特点:

  1. 语言简洁、紧凑,使用方便、灵活;
  2. 运算符丰富;
  3. 数据类型丰富;
  4. 具有结构化的控制语句;
  5. 语法限制不太严格,程序设计自由度大;
  6. C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作;
  7. 用C语言编写的程序可移植性好;
  8. 生成目标代码质量高,程序执行效率高。

 一、最简单的C语言程序

1.1  最简单的C语言程序举例

【例1】要求在屏幕上输出一下一行信息。

This is a C program.

解题思路:

在主函数中用 printf 函数原样输出以上文字。

编写程序:

#include <stdio.h>                     //这是编译预处理指令
int main()                             //定义主函数
{                                      //函数开始的标志
	printf("This is a C program.\n");  //输出所指定的一行信息
	return 0;                          //函数结束的标志
}

 程序实战:

运行结果:

 以上运行结果是在Visual C++ 6.0环境下运行时屏幕上得到的显示。其中第1行是程序运行后输出的结果,第2行是Visual C++ 6.0系统在输出完运行结果后自动输出的一行信息,告诉用户“如果想继续进行下一步,请按任意键”,当用户按任意键后,屏幕上不再显示运行结果,而返回程序窗口,以便进行下一步工作(如修改程序)。

程序分析:

先看程序第2行,其中 main是函数的名字,表示“主函数”,main 前面的 int 表示此函数的类型是int类型(整型)。在执行主函数后会得到一个值(即函数值),其值为整型。程序第5行“return 0;”的作用是:当main函数执行结束前将整数0作为函数值,返回到调用函数处。每一个C语言程序都必须有一个 main 函数。函数体由花括号{ }括起来。本例中主函数内有两个语句,程序第4行是一个输出语句,printf 是C编译系统提供的函数库中的输出函数。printf 函数中双撇号内的字符串"This is a C program."按原样输出\n 是换行符,即在输出"This is a C program.”后,显示屏上的光标位置移到下一行的开头。这个光标位置称为输出的当前位置,即下一个输出的字符出现此位置上。每个语句最后都有一个分号,表示语句结束

在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息(例如对输入输出函数的声明和宏的定义、全局量的定义等),程序第1行“#include<stdio.h>”的作用就是用来提供这些信息的。stdio. h是系统提供的一个文件名,stdio是 standard input & output 的缩写,文件后缀.h的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在 stdio. h 文件中。现在用 #include 指令把这些信息调入供使用。如果没有此#include 指令,就不可能执行 printf 函数。

在以上程序各行的右侧,如果有//,则表示从此处到本行结束是“注释”,用来对程序有关部分进行必要的说明。在写C程序时应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编译时注释部分不产生目标代码,注释对运行不起作用。注释只是给人看的,而不是让计算机执行的

【例2】求两个整数的和。

解题思路:

设置3个变量,a和b用来存放两个整数,sum用来存放和数。用赋值运算符“=”把相加的结果传送给sum。

编写程序:

#include <stdio.h>                     //这是编译预处理指令
int main()                             //定义主函数
{                                      //函数开始
	int a,b,sum;                       //本行是程序的声明部分,定义a,b,sum为整型变量
	a=123;                             //对变量a赋值
	b=456;                             //对变量b赋值
	sum=a+b;                           //进行a+b的运算,并把结果存放到变量sum中
	printf("sum is %d\n",sum);         //输出结果
	return 0;                          //使函数返回值为0
}                                      //函数结束

程序实战:

 运行结果:

 程序分析:

本程序的作用是求两个整数a和b之和。第4行是声明部分,定义 a,b 和 sum 为整型(int)变量。第5,6 行是两个赋值语句,使a和b的值分别为123和456。第7 行使 sum 的值为a与b之和。第8行输出结果,这个 printf 函数圆括号内有两个参数。第一个参数是双撇号中的内容 sum is%d\n,它是输出格式字符串,作用是输出用户希望输出的字符和输出的格式。其中 sum is 是用户希望输出的字符(这和例1是一样的),%d是指定的输出格式,d表示用“十进制整数”形式输出。圆括号内第二个参数 sum表示要输出变量 sum 的值。在执行 printf 函数时,将 sum 变量的值(以十进制整数表示)取代双撇号中的%d。现在 sum 的值是579(即123与456 之和),所以在输出时,十进制整数579取代了%d,\n是换行符

最后输出双撇号中的字符 sum is 579,然后换行,程序执行结束。

1.2  C语言程序的结构

C语言程序的结构有以下几个特点:

  • 一个程序由一个或多个源程序文件组成。
  • 函数是C程序的主要组成部分。
  • 一个函数包括两个部分函数首部,函数体)。
  • 程序总是从 main 函数开始执行的。
  • 程序中要求计算机完成的操作是由函数中C语句完成的。
  • 在每个数据声明和语句的最后必须有一个分号
  • C语言本身不提供输入输出语句
  • 程序应当包含注释

 


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

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

相关文章

806. 写字符串需要的行数

806. 写字符串需要的行数 一、题目描述&#xff1a; 我们要把给定的字符串 S 从左到右写到每一行上&#xff0c;每一行的最大宽度为100个单位&#xff0c;如果我们在写某个字母的时候会使这行超过了100 个单位&#xff0c;那么我们应该把这个字母写到下一行。我们给定了一个数…

关于ubuntu20.04 apt 安装源中搜索不到最新版本gcc 12的问题

一、问题描述 最近在搞Open 3d 点云point cloud 相关的东西&#xff0c;过程需要安装较高版本的cmake 3.20版本以上&#xff0c;3.20版本又需要gcc 更高版本 至少11.0以上&#xff0c;理论上本机配置的有 ubuntu 官方的源和阿里云的源&#xff0c;不过 通过搜索就只能搜索安装的…

大模型中的temperature参数+随机采样策略

一、问题来源&#xff1a; 使用GPT-3.5的时候发现相同的输入会得不一样的结果 二、根因定位&#xff1a; 核心就在于采样策略&#xff0c;一图胜千言&#xff1a; 上图中语言模型 (language model) 的预测输出其实是字典中所有词的概率分布&#xff0c;而通常会选择生成其中…

【JavaScript全解析】ES6定义变量与箭头函数详解

箭头函数可以说是ES6的一大亮点,使用箭头函数,可以简化编码过程,使代码更加的简洁 本文由千锋前端老师独家创作&#xff0c;主要给大家介绍了关于ES6中箭头函数的相关资料,文中通过实例代码介绍的非常详细,觉得有帮助的话可以【关注】持续追更~ ES6定义变量 我们现在知道定义…

二、easyUI中的layout(布局)组件

1.layout&#xff08;布局&#xff09;组件的概述 布局容器有5个区域&#xff1a;北、南、东、西和中间。中间区域面板是必须的&#xff0c;边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小&#xff0c;也可以点击折叠按钮将面板折叠起来。布局可以进行嵌…

前端单元测试是怎么做的?

为什么要做单元测试 1. 执行单元测试&#xff0c;就是为了证明这段代码的行为和我们期望的一致 2. 进行充分的单元测试&#xff0c;是提高软件质量&#xff0c;降低开发成本的必由之路 3. 在开发人员做出修改后进行可重复的单元测试可以避免产生那些令人不快的负作用 怎么去…

YOLOv8中的C2f的详细解读

C2f的结构图,看不懂没关系,继续往下看,一定会看懂的!!!首先是C2f的逻辑代码: class C2f(nn.Module):# CSP Bottleneck with 2 convolutionsdef __init__(self, c1, c2, n=1, shortcut=

排序算法的比较与java实现

冒泡排序 基本思想: 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。 对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤&#xff0c;除了最后一个。…

网络安全大厂常见面试题

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&#xf…

原神3.2服务端架设服务器搭建教程ubuntu系统(保姆级)

原神3.2服务端架设服务器搭建教程ubuntu系统&#xff08;保姆级&#xff09; 大家好&#xff0c;我是艾西今天跟大家分享下原神3.2服务端架设ubuntu系统实操教程 准备阶段&#xff1a;服务器一台 32h32g起、服务端、客户端、服务器装Ubuntu20.04系统 特别强调&#xff1a;ja…

怎样通过font属性控制CSS字体样式?

为了更方便地控制网页中各种各样的字体&#xff0c;CSS提供了一系列的字体样式属性&#xff0c;具体如下。 (1)font-size属性&#xff1a;字号 font-size属性用于设置字号&#xff0c;该属性的属性值可以为像素值、百分比数值、倍率等。表3-l列举了fomt-size属性常用的属性值…

回炉重造十四---微服务

微服务 1、zookeeper 1.1Zookeeper的功能 1.1.1命名服务 命名服务是分布式系统最基本的公共服务之一。在分布式系统中&#xff0c;被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等一一这些我们都可以通称他们为名字&#xff08;Name)&#xff0c;通过命名…

SpringCloud_服务调用_Ribbon概述以及使用(一)

SpringCloud_负载均衡_Ribbon(一) 概述 Ribbbon负载均衡演示 Ribbbon核心组件IRule Ribbbon负载均衡算法 概述 Ribbbon是一套客户端 负载均衡的工具 提供客户端的软件负载均衡算法和服务调用 地址&#xff1a; https://github.com/Netflix/ribbon/wiki/Getting-Started 目前这几…

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver报错问题分析

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver 这个错误通常意味着应用程序服务器在尝试在只读模式下访问数据库时出现了问题&#xff0c;该错误与事务处理有关。通常出现在JDBC连接对象或事务对象的创建或状态查询的过程中。 在JDBC中&#xff0c;只读事务需要…

【机器视觉2】单目相机内外参数标定

单目相机内外参数标定 1. 标定参照物概述2. 张正友平面模板标定法 1. 标定参照物概述 标定相机内外参数需要获取场景和图像间多个坐标对。场景坐标点直接从标定参照物获取&#xff0c;图像坐标点从图像中获取。 标定参照物有二维、三维等&#xff0c;如下图所示&#xff1a; …

【linux】冯诺依曼体系+操作系统

我们使用的计算机都是由一个个硬件所组成的&#xff0c;那么如何有条不紊的运行呢&#xff1f;那是因为有冯诺依曼体系约束着硬件&#xff0c;而操作系统来管理着他们&#xff0c;从而使得计算机的硬件和软件完美结合。 一、冯诺依曼体系 首先我们得了解什么是冯诺依曼体系结构…

万字长文 | ChatGPT的工作原理(一)

ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西&#xff0c;这非常了不起&#xff0c;而且出乎意料。但它是如何做到的&#xff1f;为什么它能发挥作用&#xff1f;我在这里的目的是大致介绍一下 ChatGPT 内部的情况&#xff0c;然后探讨一下为什么它能很好地生成…

Sharding-JDBC之绑定表(关联表)

目录 一、简介二、maven依赖三、数据库3.1、创建数据库3.2、创建表 四、配置&#xff08;二选一&#xff09;4.1、properties配置4.2、yml配置 五、实现5.1、实体层5.2、持久层5.3、服务层5.4、测试类5.4.1、保存订单数据5.4.2、查询订单详情数据&#xff08;关联表&#xff09…

拓扑排序在处理树形关系结构中的应用

Preface 偶然在QQ上的一个交流群中看到了一位群友的棘手需求。互联网开发中&#xff0c;数据的落盘存储通常在MySQL中。MySQL是一种关系型数据库&#xff0c;以“行”为基本的存储单元&#xff0c;然后通过外键等建立数据实体模型之间的联系。 但有些数据的存储&#xff0c;在…

波奇学C++:友元函数,友元类,内部类,匿名对象,优化构造

友元函数/类 &#xff1a;突破访问限定符&#xff0c;允许非同一个类的函数或者类访私有成员变量。 class A { public:A():_a(0),_b(1){cout << "A()" << endl;} private:int _a 0;int _b 1; }; void fun(const A& a) {cout << a._a <&l…