初始C语言-1.c语言程序的组成

简介: 字符又要分字符与字符串,字符是由‘’组成,只占一个字节,而字符串由“”组成,它的长度由其中有多少个字符决定,如“abc”这个字符串的长度为4,为什么呢,因为abc每个字母便占了三个字节,但在计算机内部,系统会自动给字符串结尾加上结束标识符‘/0’这个字符也占了一个字节,故,总长度为4。

一,C语言的基本结构


1,C语言程序由函数组成,即函数为程序的主要组成部分。


程序由若干个函数组成,每一个函数都离不开主函数(main),每个函数有且只能有一个main函数,且每个程序都是从main函数开始执行。


2,基本结构:


函数类型   函数名(形参表){


   函数体(函数结构语句)
             return(返回值);
}


3.新手必知


3.1每个程序都要引头文件,最经典的就是stdio.h(即standard input output)。


当然头文件并不止这个,还有例如stdlib.h,string.h,这些都是比较常见的头文件。


引用方式:#include<文件名>


3.2系统函数


例如printf,scanf等都是系统函数,主要是一些常用功能。


3.3printf(格式化输出函数),scanf(格式化输入函数);


一般使用格式


printf(“格式控制字符串”,表达式表);//后面会解释什么叫格式控制字符串。


4c85cb24df2e4d84b16da6c9e050512f.jpg


scanf使用方法同上,但是也有不同。


scanf("格式控制字符串",变量地址表);


#include<stdio.h>
int main(){
  int n;
  scanf("%d",&n);
  return 0;
}


**1.字符串与表达式表的顺序相同,且一一对应。


be577ac7b4fa4d86be1cd7eefc4145a1.png


2.C语言中每条语句后都要加分号;代表语句结束。


#include<stdio.h>
int main(){
  printf("%d",123);//整型 
  printf("%f",3.14);//浮点型 
  printf("%c",abc);//字符型 
  return 0;
}


如图,新手会遇到的几种数据类型就是这些,这也是printf和scanf的基础使用方法。


4.格式控制字符串


4.1转义字符


bc5fb0092363450fb547731e5b338228.jpg


以/开头的字符,很常见的例如/n,/t等等。


4.2格式控制符


以%开头,控制数据的类型。


74bf0e2ee6084639bf42996d055746f0.png


4.3普通字符


除上述两种字符之外,在格式控制字符表中,其他的都为普通字符,按原样输出。


5,数据类型


C语言中数据类型一共有九种,后面会慢慢学到。


下面对常见的几种进行介绍


整型:没有小数的整数。


浮点型(实型):有小数的数,例如3.14等等。浮点数无法在计算机中精确存放,数据容易丢失。


字符型:可以是英文字母,也可以是键盘上的各种符号,同时,字符型也是一种特殊的整型,0~2^8-1的整数储存方式与字符型相同。


字符又要分字符与字符串,字符是由‘’组成,只占一个字节,而字符串由“”组成,它的长度由其中有多少个字符决定,如“abc”这个字符串的长度为4,为什么呢,因为abc每个字母便占了三个字节,但在计算机内部,系统会自动给字符串结尾加上结束标识符‘/0’这个字符也占了一个字节,故,总长度为4。


6.常量与变量


变量:变量名是该变量对应的内存存储空间。


常量:上述的几种数据类型都是常量。


6.1变量的输出


由上可得,变量的输入输出都需要用格式控制符控制,我们这里主要讲一下输出,如果需要输出一个整数,则%d(见上表),这个很简单吧。让我们来看看下面的这个例子


9abef5f52c6945eebf9d072d4eca5458.jpg


由上我们看到,他的输出部分和我写的居然不一样,是不是这个博主太蠢了,这都不会,哈哈哈,当然不是啦。想什么呢。


%-6d:代表数据的宽度为6,-号代表右对齐,+代表左对齐。那么问题来了,如果数据的宽度大于6怎么办?不怎么办,正常输出。


%8.3f:经过上面的解释,现在大家可能已经知道了这个8是什么意思了,那么这个.3是什么意思呢?小数点后面的数字其实代表精度,即3.141,小数点后面保留三


那么问题又来了,如果我只输入%.3f怎么办?


这个时候就是宽度由系统默认,精度还是三位小数.


7.C语言的常用运算符及表达式


7.1算术运算符


+  —  *  /  %


加  减 乘 除 取余(模运算)


前三个没啥好讲的,自己理解吧,我们先来看看除法,


#include<stdio.h>
int main(){
  printf("%d",6/2);
  printf("%d",6/4);
  return 0;
}


先来看看这个代码,答案是多少呢?


5e76069f057346618e2a4d7f7ab9737d.png


你答对了吗?


第一个还能理解,那么第二个呢?


6除4不是等于1.5吗?怎么又成了1?


这是因为整数除整数时,系统默认是取整操作,即小数部分全部去掉,只留下整数部分。那么我们应该怎么办呢?


第一种方法就是强制类型转


换,什么叫做强制类型转换呢?


(类型名)变量名;就是把不是这个类型的转换成这个类型的,强迫别人。咳咳,这个以后也是会用的,还是留个心眼,后面再详细讲。


1d4069c2269e4f01a48325e9e30a6152.png


第二种方式就是,给他加小数点


5311d7ec2621477c9be188c14503d915.png


记住,既然要输出1.5,一个浮点数,格式控制符也要变。


再来看看取余运算,首先,取余运算只能对整型数据执行,其他的都不行,也有人问了,其他的运算符差不多都学过,但是这个却一点都不认识,好吧,深一点讲一下。


.1,正数取余,我们来看几个例子;


5%3==2;


3%5==?要搞清楚这个,就要知道取余运算的本质,即先进行除法在取余数。


3%5==3/5==0.。。。3,余数为3;


.2,负数取余


其实本质还是一样,为了便于大家记忆,做出以下总结。


***运算结果正负号与被除数符号一致。


***被除数小于除数时,结果等于被除数。(别告诉我你不知道被除数,好吧,其实我也忘了,被除数/除数)现在懂了吧,哈哈哈。


7.2 自增自减运算符


就是加1减1;


有两种情况;


++i;


i++;这两种的区别在哪呢?话不多说,上代码。


38f9a7993b964f84a14a318c8d1349ca.png


n==3,而m==6,这是为什么?


因为n中i是先使用,后加1;而m中是i先加1,再乘3,你在想想看。


7.3最后在说一下逗号运算符和括号运算符,括号运算符优先级最高,逗号运算符优先级最低。就这,最简单的东西,一定要牢记。


**其他运算符就比较简单了,看看书上都有,也都能看懂


*****优先级的概念一定要搞清楚,到底谁的优先级高,这到了后面是很重要的内容。


补充一个内容:scanf的getchar问题


getchar();是啥?


它的作用是调用一个字符,通常用在scanf后面,因为scanf输入完了以后会人为的按一个回车符,回车符也作为了一个字符存到了scanf输入的内容最后,但是有一些情况中,这个回车符会影响题目时,我们则需要把他提取出来;


#include<stdio.h>
int main(){
  int digit,i,letter,n,other;
  char ch;
  digit=letter=other=0;
  printf("请输入n:");
  scanf("%d",&n);
  getchar();
  printf("请输入%d个字符:",n);
  for(i=1;i<=n;i++)
  {
  ch=getchar();
  if(ch>=48 && ch<=57)
  digit++;
  else if((ch>=65 && ch<=80)||(ch>=97 && ch<=122))
  letter++;
  else
  other++;}
  printf("digit=%d,letter=%d,other=%d",digit,letter,other);
  return 0;
}


可以参考一下这个程序。


还有其他的作用,getchar字面意思就是输入一个字符,用法差不多就是下面这个样子,以后再深入讲讲吧。


69868a5684224900bb8a5d4d001b4f7c.png


谢谢大家观看学习,祝大家学习越来越好哦。

目录
相关文章
|
1月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
3月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
101 1
|
3月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
122 1
|
3月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
144 0
|
6月前
|
存储 C语言
简单c语言程序举例
简单c语言程序举例
76 1
|
1月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序
|
2月前
|
存储 编译器 程序员
C语言程序的基本结构
C语言程序的基本结构包括:1)预处理指令,如 `#include` 和 `#define`;2)主函数 `main()`,程序从这里开始执行;3)函数声明与定义,执行特定任务的代码块;4)变量声明与初始化,用于存储数据;5)语句和表达式,构成程序基本执行单位;6)注释,解释代码功能。示例代码展示了这些组成部分的应用。
93 10
|
3月前
|
自然语言处理 编译器 C语言
C语言程序的编译
C语言程序的编译
64 2
|
4月前
|
前端开发 C语言 C++
C语言03----第一个程序HelloWorld(vs版)
C语言03----第一个程序HelloWorld(vs版)
|
5月前
|
C语言 图形学 C++