C语言程序设计(上)

article/2025/10/8 10:50:43

C语言程序设计(第二版)知识点总结

  • 一、简单C程序设计
      • 变量
      • 整数类型
      • 格式化输出
      • 格式化输入
      • 浮点类型
      • 浮点数据的输出
      • 浮点数据的输入
      • 常量
      • 类型转换
  • 二、分支结构
      • if...else语句
      • 条件表达式
      • 常见运算符优先级
      • switch语句
  • 三、循环结构
      • break语句
      • continue语句
      • goto语句
      • 多实例测试
  • 四、函数
      • 函数的定义
      • 变量的存储类型
      • 函数的递归调用


一、简单C程序设计

变量

高级语言都能通过变量名来访问内存中的数据。用变量名来标识内存中的某个存储位置----由一个或多个连续的字节组成,在程序中使用变量名,实际上引用的是内存中对应的某个存储位置。变量取名最好能做到“见名识义”。在c语言中,变量命名必须遵守以下规则:

  • 变量名可以由字母、数字和_(下划线)组成;
  • 变量名不能包含除_(下划线)以外的任何特殊字符,如:%、#、逗号,空格等;
  • 变量名必须以字母或_(下划线)开头;
  • 保留字(int、float等)不能用作变量名,要区分大小写(A,a)。

整数类型

32位机的整数类型:
在这里插入图片描述

格式化输出

  1. 输出格式中的普通字符
printf("Hello World!\n");
  1. 输出格式中的转换字符串
    常用的转换字符串:
    在这里插入图片描述
  2. 输出格式中的宽度修饰符
    宽度修饰符用一个十进制整数来表示输出数据的位数,插在%与转换说明符之间,其作用是控制打印数据的宽度,也称为“域宽”。
    %md代表数据以十进制整数形式输出,宽度占m列,数据不足m列的左补空格,超过m列的情况下按实际位数输出。%-md数据不足m列的右补空格
int salary = 15000;
printf("%10d",salary");
//     15000
int salary = 15000;
printf("%-10d",salary");
//15000     

格式化输入

  1. 输入格式中的转换字符串
    常用的转换字符串:
    在这里插入图片描述

  2. 读入64位整数
    如果编译器支持__int64,用格式符%I64d,如果编译器支持;long long,用格式符%lld。

  3. 宽度
    用十进制整数指定输入的宽度。

scanf("%5d",&a);
  1. 赋值抑制符号
/*赋值抑制符号*用以表示该输入项读入后不赋予相应的值,即跳过该输入值*/
#include<stdio.h>//求出生年月日int main(void)
{int year,mouth,day;printf("请输入身份证号码:\n");scanf("%*6d%4d%2d%2d%*d",&year,&mouth,&day);printf("%4d-%02d-%02d\n",year,mouth,day);return 0;
}

浮点类型

在这里插入图片描述

浮点数据的输出

  1. 转换字符串%f
    格式转换符f用于浮点数据的输出格式限定。
printf("%f\n",demo);//默认输出6位小数
  1. 转换字符串%m.nf
    m表示输出宽度,而n表示精度,指定小数点后显示的数字个数。

浮点数据的输入

float a;
double b;scanf("%f",&a);
scanf("%lf",&b);printf("%f\n",a);
printf("%f\n",b);

常量

  1. 字面常量
  2. 宏常量
    #deine编译指令的准确含义是,命令编译器将源代码中所有的标识符常量替换为替换文本,其效果与使用编辑器手工进行查找并替换相同。
#define PI 3.1415926//#define 标识符常量 替换文本
  1. const常量
    const给出了对应的内存地址,而不是像#define给出的是替换文本,所以const定义的常量在程序运行过程中只有一份副本,而#define定义的常量在内存中有若干份副本,而#define定义的常量在内存中有若干份副本。
const double PI = 3.1415926;

类型转换

在执行算数运算时,通常要求操作数具有相同的数据类型。类型转换方式有以下3种:

  1. 常用算数转换
    当算数运算、关系运算或逻辑运算的两个操作数类型不同时,精度低的自动向精度高的转换,这称类型提升。数据类型由低级向高级排序为:
    char ->int->float->double
double a = 1.0/2;//2由int转换为double再进行除法运算
  1. 赋值时类型转换
    在执行赋值运算时,会把赋值运算符右侧表达式的值转换为赋值运算符左侧变量的类型。
double a = 1;//把1.0赋值给a
int i = 1.5;//把1赋值给i
  1. 类型转换运算符
    (类型名)表达式,不改变操作数本身。
double a = 2.5;
int n;
n = (int)a;//将2赋值给n

二、分支结构

if…else语句

if…else语句通过对一个条件进行判断,当条件为真时,执行一个操作,否则执行另一个不同的操作。

#include<stdio.h>//比较大小int main(void)
{int a,b;scanf("%d%d",&a,&b);if(a>b){printf("%d\n",a)}else{printf("%d\n",b)}return 0;		

条件表达式

/*若条件(a>b)成立,则条件表达式取值a;否则,取值b*/
#include<stdio.h>int main(void)
{int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max = (a>b) ? a : b;max = (max>c) ? max : c;printf("%d\n",max);return 0;
}

常见运算符优先级

在这里插入图片描述

switch语句

#include<stdio.h>//四则运算
#include<math.h>int main(void)
{char op;double x,y;scanf("%lf%c%lf",&x,&op,&y);switch(op){case '+':printf("=%.2f\n",x+y);break;case '-':printf("=%.2f\n",x-y);break;case '*':printf("=%.2f\n",x*y);break;case '/':if(fabs(y)>1e-6){printf("=%.2f\n",x/y);    }else{printf("wrong input\n");}break;default :printf("wrong input\n");}return 0;
}

三、循环结构

C语言有三种循环语句,即for循环语句、while循环语句和do语句、while循环在循环体执行之前测试循环表达式,do循环在循环体执行之后测试循环表达式,for循环则非常适合那些指定次数的循环。

while(表达式)m循环体语句;
do循环体语句
while(表达式)
for(表达式1;表达式2;表达式3)语句

break语句

break的作用一般是提前结束循环过程。

#include<stdio.h>//求素数
#include<math.h>int main(void)
{int i,k,m,find;printf("输入一个正整数:\n");scanf("%d",&m);k = (int)sqrt(m);find = 0;for(i=2;i<=k;i++){if(m%i==0){find = 1;break;}}if(find==1||m==1){printf("No\n");}else{printf("Yes\n");}return 0;} 

continue语句

continue语句能跳过循环体中尚未执行的语句,开始新一轮的循环。

#include<stdio.h>//逢7过int main(void)
{int i;for(i=1;i<=100;i++){if(i%7==0)continue;printf("%d ",i);}return 0;
}

goto语句

goto语句可以跳转到函数中任何有标号的语句处。

#include<stdio.h>int main(void)
{int sum=0,i=1;loop:sum +=i;i++;if(i<=100){goto loop;}printf("%d\n",sum);return 0;
}

多实例测试

  1. 确定次数的多实例测试
#include<stdio.h>int main(void)
{int i=1,n;printf("请输入测试次数:");scanf("%d",&n);while(n--){printf("%d\n",i++);} return 0;
}
  1. 以特殊输入作为结束标志的多实例测试
#include<stdio.h>int main(void)
{int n;while(scanf("%d",&n),n!=0)//输入0结束循环 {printf("%d\n",n);} return 0;
}
  1. 以EOF结束的多实例测试
#include<stdio.h>int main(void)
{int n;while(scanf("%d",&n) !=EOF) {printf("%d\n",n);} return 0;
}

四、函数

函数的定义

返回值类型 函数名 (形式参数列表)
{变量声明;函数实现过程;
}

返回值类型是返回给主函数的运算结果的数据类型。当返回值为void类型时说明函数没有返回值。函数名可以是任意的合法标识符,为了提高程序的可读性并减少注释,一般要求做到“见名至义”。形式参数列表是一组用逗号隔开的形式参数,它规定了函数被调用时应该接受到的参数。

#include<stdio.h>//输出100以内的全部素数
#include<math.h>int prime(int m);int main(void)
{int m;for(m=2;m<=100;m++){if(prime(m)!=0)printf("%6d",m);}printf("\n");return 0;}int prime(int m)
{int i,k;if(m == 1)return 0;k = (int)sqrt(m);for(i=2;i<=k;i++){if(m%i==0)return 0;} return 1;} 

变量的存储类型

  1. auto存储变量
    auto存储类型的变量只在所在块有效,在所在块被执行时获得内存单元,并在块终止时释放内存单元。
  2. static存储类型
    静态存储周期的变量所占用的存储单元是从程序运行的开始时刻分配和初始化的,并且只分配和初始化一次。
  3. extern存储类型
    extern存储类型可以使几个源文件共享一个变量,提醒编译器需要访问定义在别处的变量。
  4. register存储类型
    寄存器是驻留在CPU中的存储单元,具有比内存更高的存取速度。

函数的递归调用

#include<stdio.h>int gcd(int a,int b);
int main(void)
{int a,b,c;scanf("%d%d",&a,&b);c = gcd(a,b);printf("最大公约数为:%d\n",c);return 0;
}
int gcd(int a,int b)
{if(a%b==0){return b;}else{return gcd(b,a%b);}
}

http://chatgpt.dhexx.cn/article/6bdv52yC.shtml

相关文章

C语言程序设计基础

C语言程序设计基础 大纲第一章 C语言程序设计概述第一节 C语言程序设计基础知识1.1 C程序设计语言简介1.2 C程序设计语言&#xff08;高级语言&#xff09;1.3 C语言程序结构1.4 C语言程序的运行过程与运行环境1.5 C语言程序设计过程 第二节 C语言基础语法概念2.1 数据类型2.2 …

在Linux系统中运行C语言程序

正式学习c语言的第一天 2022/1/10 在之前的学习中已经在Windows系统中用Microsoft VC上实现了C语言程序的运行&#xff0c;现在将在Linux系统上运行C语言程序。 首先明确C语言程序开发的4个步骤&#xff1a;编辑、编译、链接、运行 在Microsoft VC中编译和运行都可以直接用…

【C语言】初识C语言——认识第一个C语言程序

目录 一、第一个C语言程序剖析1、观察下面第一个C语言程序2、剖析第一个C语言程序 二、几种不常见但正确的写法三、几种常见的错误 一、第一个C语言程序剖析 1、观察下面第一个C语言程序 2、剖析第一个C语言程序 a.我们可以先观察此函数的主体&#xff0c;其主体的框架是 b.…

C语言程序设计知识点总结归纳(全书)

C知识点总结归纳目录 第一章 程序设计和C语言一、C的入门小概念二、程序设计的问题三、首先要搞清楚编译器、编辑器和IDE的区别 第二章 算法——程序的灵魂一、程序算法数据结构二、算法的特性三、怎样表示一个算法四、结构化程序的设计方法 第三章 C程序设计——顺序程序设计一…

运行一个C语言程序的步骤

在Visual C 6.0集成开发环境中&#xff0c;运行一个C语言程序的步骤如下。 (1) 新建源程序文件单击“文件”→“新建”命令&#xff0c;打开“新建"对话框&#xff0c;选择“工程”选项卡&#xff0c;显示新建对话框如图所示。 [在右侧输入工程名称&#xff0c;如pro&…

C语言程序设计----C语言基础知识

学习了《C语言程序设计》一书的第二章——C语言基础知识&#xff0c;现将本章小结如下&#xff1a; 一、简单的C语言程序 我们将通过若干个简单的C语言程序&#xff0c;初步认识到C语言程序的结构&#xff0c;了解C语言的基本语法元素&#xff0c;并且学习编写简单的C语言程序…

一些简单好玩的C语言程序

C/C程序举例 打印素数表 // 输出前500个素数 #include<stdio.h> #include<math.h> #define N 500 //判断是否为素数 int isprime(int y) {int i,ret1;for(i2;i<sqrt(y);i){ if(y%i0){ret0;break;}}return ret; }//求第n个素数 int ThePrime(int n){int num …

手把手教你写第一个C语言程序

目录&#xff1a; 一、C语言项目的创建&#xff1a; 二、写第一个C语言程序——在屏幕上输出Hello World&#xff1a; C语言是所有编程语言的基础&#xff0c;历经50多年的发展依然被众多编程者使用&#xff0c;那么怎么写C语言程序呢&#xff1f;下面我将从项目的创建开始一…

c语言的一些程序

c语言-浪漫 程序员的浪漫 程序员的浪漫 #include<stdio.h> #include<windows.h> int main(){float x,y,a;for(y1.5;y>-1.5;y-0.1){for(x-1.5;x<1.5;x0.05){ax*xy*y-1;putchar(a*a*a-x*x*y*y*y<0.0?*: );}system("color 0c");putchar(\n);}ret…

C语言入门程序

1.找零 #include <stdio.h> int main() {int price0;printf("请输入金额 &#xff08;元&#xff09;"); scanf("%d", &price);printf("找您%d元\n", 100-price);return 0; } 基本函数的意义认识 int 整函型数 printf输出 scan…

简单的C语言程序示例

经典的C语言程序示例是在屏幕上打印出hello world。 但是这多少有点简单&#xff0c;为了更加深入的了解C语言程序&#xff0c;让我们搞点更加“高级”的程序。 #include <stdio.h> /*把stdio.h文件的所有内容都输入到该行所在位置*/ int main()…

C语言程序设计-基础

C语言的发展及特点&#xff1a; 发展&#xff1a; 创始人&#xff1a;美国的丹尼斯.里奇(DennisRitchie) 特点&#xff1a; C语言是高级语言 C语言是结构语言 C语言简洁灵活、易于学习和应用 C语言具有很强的构造数据类型的能力 C语言生成的目标代码质量高,程序执行效率高 C…

c语言程序从哪里开始执行

c语言程序的执行总是起始于main函数。在一个C语言源程序中&#xff0c;无论main函数书写在程序的前部&#xff0c;还是后部&#xff0c;程序的执行总是从main函数开始&#xff0c;并且在main函数中结束。但需要注意的是&#xff0c;也是有特殊情况的&#xff0c;若是代码中出现…

C语言程序设计,流程图

三种常见结构&#xff1a; 流程图&#xff08;Flowchart&#xff09;&#xff1a;使用图形表示算法的思路是一种极好的方法&#xff0c;因为千言万语不如一张图。流程图在汇编语言和早期的BASIC语言环境中得到应用。相关的还有一种PAD图&#xff0c;对PASCAL或C语言都极适用。 …

C语言程序基础

目录 一、main函数只能有一个1、关于main函数过时二、数据类型 一、main函数只能有一个 你可以用 “\n” 代替以上代码里的 endl。 int是整型的意思 main前顶的int表云mainA数调用返回.众整型值 cout 用于在计算机屏幕上显示信息 cout语句的一般格式为&#xff1a; cout<…

7个大一C语言必学的程序 / C语言经典代码大全

嗨~大家好,这里是可莉! 今天给大家带来的是7个C语言的经典基础代码~ 那一起往下看下去把 【程序一】打印100到200之间的素数 #include<stdio.h> int main() {int i;for (i = 100; i <= 200; i++) {int j;for (j = 2; j < i; j++) {if (i % j == 0)break;}if (…

C语言必背18个经典程序(含免费源码大全)

一、C语言必背18个经典程序 你所看到的那些几千甚至上万行的C语言程序代码&#xff0c;都是用一些基本语句和关键词来编写的。只是他们逻辑功能不一样&#xff0c;那如何快速的上手C语言代码&#xff0c;建议多看多写&#xff0c;下面是小编整理的C语言必背18个经典程序。 二、…

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

目录 &#x1f34a;&#x1f34a;一、最简单的C语言程序 1.1 最简单的C语言程序举例 1.2 C语言程序的结构 首先&#xff0c;让我们先了解一下C语言的特点&#xff1a; 语言简洁、紧凑&#xff0c;使用方便、灵活&#xff1b;运算符丰富&#xff1b;数据类型丰富&#xff1b…

C语言程序设计

姓 名&#xff1a;毕天硕 学 号&#xff1a;2018510466 班 级&#xff1a;计算机科学与技术一班 C语言程序设计 目录 第一章 程序设计和C语言例1.1要求在屏幕上输出以下一行信息例1.2求两个整数之和例1.3求两个整数中较大者 第2章 算法——程序的灵魂例2.1求5的阶乘例2.2&…

MySQL数据库命令大全

1.数据库结构: 数据库–>数据表–>行&#xff08;记录&#xff09;&#xff1a;用来描述一个对象的信息列&#xff08;字段&#xff09;&#xff1a;用来描述对象的一个属性1 打开数据库 show databases 2 创建数据库 create database数据库名 3 删除数据库 drop data…