C Programming Basics

news/2024/10/15 14:36:42/

1.C语言的基本介绍

Basics of the C Programming Language

• C 是一种编程语言,它的发明是为了进行低级别的系统编程工作。C 语言从 B 语言发展而来,是一种非常紧凑(compact)的语言。
• 它是一种通用(general)编程语言,既可以用于系统编程(如操作系统开发),也可以用于编写应用程序
• C 是过程式语言(procedural language),也被称为功能性(functional)语言。这一点与后来发明的面向对象(object-oriented)语言(如 C++ 或 Java)不同,C 语言中没有对象(object)和对象上的方法(method)。

2.C语言的过程式编程

C is a procedural language

• 在过程式编程中,程序(procedures)是由一个个过程(即函数或子程序subroutines)构成的。这些过程对参数(parameters)进行操作。过程式编程的理念是通过调用一系列的函数来完成特定的任务。
• 在 C 语言中,函数是最基本的构建模块,通过函数你可以将一段代码逻辑进行重用。
procedures are the equivalent of an object-oriented language’s methods.

3.一个简单的C程序示例

文档提供了一个简单的 C 程序例子:

#include <stdio.h>
#define MAX 100

void main() {
int x;
x = 1;
while (x <= MAX) {
printf(“%d\n”, x);
x++;
}
}

这个程序定义了一个 MAX 为 100 的常量,并通过 while 循环打印 1 到 100 之间的整数。

4.main() 函数和 printf() 函数

• #include <stdio.h> 是头文件,它类似于 Java 中的 import 语句。头文件中定义了标准输入输出函数,如 printf()。
• main() 函数 是 C 程序的入口点,类似于 Java 中的 main() 方法。
• printf() 函数 用于格式化输出,它可以输出字符串、整数等。在文档中的例子里,它类似于 Java 的 System.out.print()。

5.使用 printf 输出

Output with printf

• 要输出一个字符字符串(character string),可以将该字符串作为 printf 函数的参数。例如:printf(“Hello World”);这个字符串被称为格式字符串(format string)
• 格式说明符 %d 用于表示整数,例如:printf(“%d”, x); 会输出整数 x 的值。
• 两个字符序列\n用于显示换行符,而- 两个字符序列\t用于显示制表符。
- 序列%d被称为转换说明符(conversion specification)。

6.另一个示例程序

文档中提供了一个 for 循环的程序,它同样实现了打印 1 到 100 的功能:

#include <stdio.h>

void main() {
int x;
for (x = 1; x <= 100; x++) {
printf(“%d\n”, x);
}
}

7.使用 scanf 进行输入

Input with scanf

• scanf() 函数 用于从用户处读取输入。要读取整数,可以使用格式说明符(conversion specification) %d 并将其传递给 scanf,例如:

int day, year;
char monthname[20];

scanf(“%d %s %d”, &day, monthname, &year);

这段代码会从用户输入中读取整数 day 和 year,以及字符串 monthname。

地址运算符 &
1.	scanf 函数:
•	scanf 是 C 语言中用于从用户那里读取输入的函数。例如,你想要用户输入一个整数、浮点数或字符串,就可以使用 scanf。
•	函数的基本格式是:scanf("格式说明符", 参数列表);
2.	格式说明符 %d:
•	在 scanf 中,格式说明符用于告诉程序你要读取哪种类型的数据。
•	%d 是格式说明符,它表示你希望 scanf 读取一个整数(int 类型)。
•	例如,当你想读取一个整数时,你可以这样写:
int number;
scanf("%d", &number);
3.	地址运算符 &:

• 在 C 语言中,& 是取地址运算符,它用于获取变量的内存地址
scanf 函数需要的是变量的地址,而不是变量的值,因为它需要知道把用户输入的数据存放到哪里。使用 & 可以将变量的内存地址传递给 scanf
• 在上面的例子中,&number 表示变量 number 的内存地址,scanf 会将输入的整数存储到 number 变量中。
如果不使用 &,scanf 无法访问 number 的内存位置,因此无法修改它的值。
4. 总结:
• 当你使用 scanf(“%d”, &变量名); 时,%d 告诉程序要读取一个整数,而 &变量名 则告诉程序将这个整数存储到哪个变量中。
• 例如:

int age;
printf("Enter your age: ");
scanf("%d", &age);  // 读取用户输入的整数并存储在 age 变量中
printf("Your age is: %d\n", age);

在这个例子中,用户输入的整数会被存储在 age 变量中,随后程序会输出这个值。

8.练习

文档还提供了一个练习题,要求编写一个程序,提示用户输入日期(如:16 Feb 2020),然后打印出用户输入的日期。并要求该程序重复执行 10 次。

#include <stdio.h>int main() {int day, year;char month[20];  // 用于存储月份的字符串for (int i = 0; i < 10; i++) {  // 循环 10 次printf("Please enter a date (format: day month year, e.g., 16 Feb 2020): ");// 使用 scanf 读取用户输入的日期,按照 "日 月 年" 的格式scanf("%d %s %d", &day, month, &year);// 输出用户输入的内容printf("You entered: %d %s %d\n", day, month, year);}return 0;
}

代码解释:

  1. 变量定义:
    • int day, year 用于存储用户输入的日和年。
    • char month[20] 用于存储月份的字符串,最多允许 20 个字符长度
    2. 循环结构:
    • 使用 for 循环来重复 10 次输入和输出操作。
    3. scanf 函数:
    • scanf(“%d %s %d”, &day, month, &year) 将用户输入的日期分为三部分:日(整数)、月(字符串)和年(整数)。
    4. 输出:
    • printf(“You entered: %d %s %d\n”, day, month, year) 将用户输入的内容输出,确保格式与输入的相同。

9.C程序的编译、链接和执行

C program compilation, Linking and execution

• 介绍了 C 程序的编译过程。高层语言的代码首先会通过编译器转换为汇编语言,然后由汇编器将其转换为机器码。
• 当机器码准备好之后,通过链接和加载,最终程序可以被执行。

请添加图片描述


http://www.ppmy.cn/news/1539472.html

相关文章

Lua 协同程序(coroutine)

Lua 协同程序(coroutine) 概述 Lua 语言以其轻量级和易于嵌入的特点,在游戏开发、脚本编写等领域广受欢迎。Lua 中的协同程序(coroutine)是其并发编程的核心特性之一。协同程序提供了一种不同于多线程的并发执行方式,它允许多个代码段交替执行,而不是同时执行。这种机制…

安卓上的iso 是哪几个gain 相乘

在安卓的相机系统中&#xff0c;ISO 表示感光度&#xff0c;它实际上反映的是图像传感器对光线的整体响应度。ISO 值的调整可以通过增益&#xff08;gain&#xff09;的调节实现&#xff0c;增益会放大传感器采集的信号强度。通常&#xff0c;ISO 是通过以下几种增益相乘得到的…

歌曲怎么去掉原唱只留伴奏?创作无界,轻松获取伴奏音轨

在音乐制作、翻唱或是卡拉OK等场合&#xff0c;我们经常需要歌曲的伴奏版本&#xff0c;即去掉原唱声音&#xff0c;只保留背景音乐的部分。然而&#xff0c;并非每首歌曲都会官方发布伴奏版本&#xff0c;这时我们就需要借助一些技术手段来实现这一目标。本文将介绍几种常见的…

PythonAI 学习大纲

设计一套学习Python在AI方向的入门教程需要涵盖基础知识、编程技能、AI原理、以及具体的AI技术和应用。以下是一个分阶段、模块化的教程大纲&#xff0c;旨在帮助初学者逐步掌握Python在AI领域的应用。 第一阶段&#xff1a;Python基础与编程技能 第1周&#xff1a;Python入门…

【计算机网络】IPv4地址的表示方法

文章目录 概念表示方法网络部分和主机部分子网掩码特殊地址 概念 IPv4&#xff08;Internet Protocol version 4&#xff09;地址是用于标识网络设备的32位数字地址。 表示方法 IPv4地址通常以点分十进制的形式表示&#xff0c;由四个十进制数构成&#xff0c;每个数的取值范…

道路与航线

题目 代码 #include <bits/stdc.h> using namespace std; #define x first #define y second typedef pair<int, int> PII; const int N 25e310, M 15e410; const int inf 0x3f3f3f3f; int h[N], e[M], ne[M], idx, w[M]; int id[N], bcnt; vector<int>…

grafana version 11.1.0 设置Y轴刻度为1

grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0&#xff0c;确保只显示整数

还傻傻分不清AI和AIGC的区别吗?一篇文章告诉你

AIGC是什么 AIGC&#xff0c;即人工智能生成内容&#xff08;Artificial Intelligence Generated Content&#xff09;&#xff0c;是利用人工智能技术自动生成人类可消费内容的一种新型内容生产方式。它涵盖了自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff0…