自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 c语言输入输出函数说明

c语言输出函数说明printf 函数头文件:stdio.h原型: int printf (const char *format,…);format :格式控制字符串… :可变参数列表;返回值:输出字符的数量C语言输入函数说明scanf函数头文件:stdio.h原型:int scanf (const char * format,…);format 格式控制字符串;……:可变参数列表;返回值:输入字符的数量小应用使用printf函数求解一个数字n的十进制表示的数字位数#inclu

2020-11-06 16:50:01 303

原创 关于在字符数组中利用scanf函数输入空格等问题

关于在字符数组中利用scanf函数输入空格等问题控制串/数组 中的空白符使 scanf() 在输入流中跳过一个或多个空白行。空白符可以是空格(space)、制表符(tab)和新行符(newline)。 本质上,控制串中的空白符使 scanf() 在输入流中读,但不保存结果,直到发现非空白字符为止ANSI C 标准向 scanf() 增加了一种新特性,称为扫描集(scanset)。 扫描集定义一个字符集合,可由 scanf() 读入其中允许的字符并赋给对应字符数组。 扫描集合由一对方括号中的一串字符定义,

2020-10-23 00:48:31 2842

原创 独立输出一个 N×N 的乘法表

独立输出一个 N×N 的乘法表。例如当 N = 3 时,你需要输出一个 3×3 的乘法表:每两个乘法等式之间用一个制表符\t分隔,最后一个等式后面不需要输出制表符\t。例1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9思路:使用两个循环,外循环控制输出的行数,内循环控制输出的内容及每行输出的数的个数利用if语句有条件的输出空格(制表符)难点:每行输出的个数递减;控制输出空格#include <stdio.h>int main() { in

2020-10-14 21:58:15 1874

原创 n阶数字正方形

n阶数字正方形对于给定的整数 n。输出一个 n 行数字,n 行数字中的第 i 行包含 n 个由空格隔开的整数 i(1 ≤ i ≤n )。提示:请注意每行的末尾不要有多余的空格。思路:有n行,每行n个数,第几行则输出n个几,如第2行,输出n个2;则需要两层循环,外层循环控制输出几行,内层循环输出每行输出的内容难点输出空格,和控制换行利用if条件句进行控制如for(int j=1;j<=n;j++){printf("%d",i);if(j!=n){printf(" ");}

2020-10-14 00:46:32 2047 2

原创 对于给定的一个大于 11 的正整数 NN(你可以认为测评机给出的 NN 均小于 10001000),按从小到大的顺序输出所有小于等于它的质数。

对于给定的一个大于 11 的正整数 N(你可以认为测评机给出的 N 均小于 1000),按从小到大的顺序输出所有小于等于它的质数。质数:除了1和本身没有其他除数思路:2是最小的质数,输出时必有2;一个除数,一个被除数(小于等于输入的正整数N),各占一个循环;当#include <stdio.h>int main() { int digit;//除数 int divitor;//被除数 int N;//输入的正整数 scanf("%d",&N);

2020-10-13 23:35:19 1092 3

原创 键盘输入一个整数,判断是否为质数

#键盘输入一个整数,判断是否为质数质数:除了1和它本身,没有其他的因数思路:判断一个数是否为质数,只需要用输入的整数N除于2到N-1之间的整数,如果都不能被整除(即遍历一遍,取余都不为0),则输入的整数N为质数#include <stdio.h>int main() { int N; //输入整数N int divisor; //输入被除数(循环次数) //键盘输入一个数 scanf("%d\n",&N); if(N==2)

2020-10-13 23:01:55 8091

原创 分支结构的五则运算

分支结构的五则运算#include <stdio.h>int main() { int first; int second; char operator; scanf("%d%c%d", &first, &operator, &second); switch(operator) { case'+':printf("=%d",first + second);break; ca

2020-10-11 16:04:40 163

原创 判断日期合法性

日期合法性include<stdio.h>int main(){ int year; int month; int day; //以年-月-日的形式输入日期 scanf("%d-%d-%d",&year,&month,&day); //先判断月份是否属于1~12,是则进行下一步,否输出NO if(1<=month && month<=12) { //判断日期为3

2020-10-11 15:45:45 4745 1

原创 c语言文件之文件打开方式

c语言文件之文件打开方式打开文件 参数1:文件的路经(相对于可执行文件的相对路径或绝对路径 参数2:文件的模式 r 读模式 w 写模式 a 追加模式 + 读写模式 b 二进制模式 文件存在 各种模式都可以用文件不存在 读模式下会返回错误 写模式或追加模式可以创建文件file *fp = fopen("test.txt","r")if(fp != null){fprintf(stdout,"文件打开成功!\n");}else{fprintf(stdout,"文件打开失败!\

2020-10-02 01:33:32 1058

原创 C语言文件之文件基础

C语言文件之文件基础1.文本文件 以ASCLL编写的可视化的字符型文件,不同的文字以特殊编码存在,如GBK,utf-8等2.二进制文件 直接以原生二进制码存放的文件,如BMP等图片文件,MP3音频文件,exe等可执行文件3.数据流 一组有序,有起点和终点的字节的数据序列,程序与数据的交互是以流的形式进行的。4.标准IO与缓存 a.打开文件 将磁盘中的文件复制到缓冲区 读取数据 从缓冲区到读取到程序中 b.写入文件 程序写入数据到缓冲区 将缓冲区的信息写入磁盘 关闭

2020-09-29 15:49:05 75

原创 指针高级之数组与指针详解

指针高级之数组与指针详解1.数组存放什么类型就是什么数组,如整形数组,字符数组2.指针存放什么类型的数据地址,指针就是什么指针,如整形指针,字符指针,数组指针3.数组指针和指针数组是两种不同的概念 (1)数组指针首先是指针,是存放数组数据地址的指针 整形数组指针 int *pii=arr (2) 指针数组是指整个数组当中每一个元素都是指针类型的数据的数组 整型指针数组 int *prr[10];4.如果有存放数组的数组就是二维数组5.如果指向指针的指针就是二维指针 int src=1

2020-09-29 02:23:25 387

原创 指针高级之函数指针

指针高级之函数指针1.函数名其实也是一个地址(指针),也就是指向代码区的指针, 装着函数地址的指针2.函数指针的定义方式 返回值 (*指针变量名)(参数列表) void fun(){printf("这是一个函数");}void (*fun_point)();fun_point=fun;//在主函数中调用fun_point()函数fun_point();输出为 这是一个函数...

2020-09-27 01:26:40 100

原创 指针高级之const关键字

指针高级之const关键字##不能赋值只读变量 const int a=10;a=100; 编译时会出错可以使用非const指针对于内容进行修改 在当前环境下,通过指针访问的数据为改变后的数据, const int a=10;int *p=&a;*p=11;printf("%d,/%d\n",*p,a) 输出为:11,11 注:与编译环境有关,有的编译环境输出为11,10const声明不可改变存储空间内的数据指针 const int *pp=&a;prin

2020-09-26 23:36:06 55

原创 指针基础之结构体指针

指针基础之结构体指针传统结构体定义 //关键字struct +结构体名 如struct person 类似于 intstruct person{int age ;char sex;}; //定义结构体类型的变量p1 //结构体成员访问操作符 .struct person p1;p1.age=10;p1.sex='man';printf("p1的年龄为%d,\n",p1.age );输出为:p1的年龄为10结构体指针定义//即定义的变量为指针变量struct perso

2020-09-25 12:06:53 164

原创 指针基础之简单的使用与指针运算

指针基础之简单的使用与指针运算1.指针应用的方面 对于变量可以使用的地方,都可以使用指针进行处理 2.一般来说,会用到函数参数上,会对实参产生改变3.指针运算是跳其类型的对应的字节数 int arr[10]={1,2,3,4,5,6}4.nt *p=arr;//数组名代表数组首元素首地址 printf("pa=%p pa+3=%p",pa,pa+3);//跳过的字节数为 3*45.指针和数组是可以相互转换的 *(p+n)=p[n]=a[n]=n[p] *p[n]=a[n]...

2020-09-21 20:35:35 192

原创 指针基础之常见指针错误

指针基础之常见指针错误一.指针可以对普通地址进行完全权限的访问 指针对普通地址有完全访问权限的处理 *p对a有读写的权限,*p的值改变,a的值也跟着改变 int a=10; int *p=&a; *p=100; printf("a=%d *p=%d",a,*p); 输出的值为a=100,*p=100二、对于常量,无法获取其地址 *p=&10;三、 下面的操作 虽然可以对数据进行访问,但是数据格式错误,出现乱码、 *p="helloworld"; pr

2020-09-21 16:10:15 490

原创 指针基础之字符串与堆区

指针基础之字符串与堆区一.指针与字符串 第一种形式:char *s="hello world" 定义一个字符指针进行初始化 这个操作是在静态区 申请了一块空间 制作伪常量(只读变量),只能读不能写,否则会报错 第二种形式:char arr[]="hello world" 定义一个字符数组进行初始化 s存储在静态区 arr存储在栈区 对于只能访问不能修改的区域 写操作会导致段错误或总线错误 如*s=‘t’;scanf("%s",s);会导致错误 而char *s1=arr;可以

2020-09-12 00:59:50 246

原创 指针与地址之指针概念

指针与地址之指针概念1.int *p (1)指针就是地址 (2)指针变量 存储的变量类型是指针就是指针变量 (3)形式:存储的数据类型 *变量名 (4)指针变量 首先是一个变量,他有自己的地址 (5)他可以存储地址,存储的地址为需要访问的地址空间 (6)指针的类型就代表需要存储的类型,影响寻找多长字节的数据2.int a=10;3.p=&a 将a的地址赋值给p存储4.*p *非声明状态下 *代表解地址 通过指针变量存储的地址 查找数据 printf("%d",*p);

2020-09-11 22:05:26 412

原创 指针与地址之地址与变量

指针与地址之地址与变量一. int a=10;(1) int :代表的是数据类型,其标识的数据存储为整形类型,默认带有一个unsigned代表在内存当中申请 4字节空间(2)a 是一个映射符号 用于标记存储该内存的数据地址,其在变量表中定义a 0x7fffacd23bae 4(3) = 将数据直接存储到对应的地址空间中(4)10 代表的就是需要存储的数据(5)& 单目运算符 &a &后面直接跟变量 代表对该变量地址的直接取用 双目

2020-09-11 21:19:43 300

原创 C语言指针——漫谈计算机存储

**C语言指针——漫谈计算机存储**1.cpupc:即程序计数器指像主存中的某条机器语言 (即含有该条指令的地址)ALU:算术/逻辑单元,由与门和或门构成,主要进行二位元的计算,如加减乘(没有除)寄存器,容量越小速度越快主存储器:即内存,也叫主存,用来存放程序或程序处理的数据2. helloworld 的生成与显示源文件编译->可执行文件(在磁盘上面)->(运行)通过磁盘到达磁盘控制器->通过I/O总线到达I/O桥—>通过系统总线到达总线接口到寄存器->通过A

2020-09-06 19:28:04 173

原创 C语言构造类型之共用体与枚举

C语言构造类型之共用体与枚举1.共用体 常用于 查找 定义;关键字 union + 共用体名 //类比结构体 关键字struct + 结构体名 共用体的内存大小只和最大的元素大小有关 共用体大部分操作和结构体一样 特别提醒:对于共用体,其只要一个内存,不可以按照结构体初始化的方式对所有成员变量进行初始化 共用体依然可以使用字节对齐和位域 #pragma pack(1) union Message{ int number:1; char sex:1; double money:

2020-08-29 00:30:56 189

原创 结构体字节对齐与位域

结构体字节对齐与位域code advance_struct .c #include<sdtio.h> struct person{ int number; //4个 char sex; //1个,空三个 double money; //8个 }; int main(){ //结构体内存 printf("%lu\n",sizeof(struct Person)); return 0; }1.结构体所占的内存大小 1.本身的成员变量类型 2.结构体存在字节

2020-08-28 03:08:34 258

原创 结构体类型别名

结构体类型别名code typedef_struct .c #include<stdio.h> struct Person{ int number; char sex; double money; } p; //此时定义的p是一个全局变量 void print_message(){ //结构体可以定义在函数内部 struct Class{ int number; }; } typedef struct Person{ int number; char sex;

2020-08-28 02:19:32 4194

原创 C语言结构体的定义与使用

C语言结构体的定义与使用1.结构体:存放不同数据的集合 (1)结构体内可以放入结构体 typedef unsinged short ushort struct Date { ushort year; ushort month; ushort date; }; (2)结构体内可以放入数组 char name[20]; code struct_define.c (3) #include<stdio.h> #include&

2020-08-28 00:21:58 2071

原创 C语言数组的冒泡排序及优化

C语言数组的冒泡排序1.大的往下沉,小的往上浮2.按照冒泡排序的规则(1)分析问题(2)设计代码(3)优化处理 code double_sort.c #include<stdio.h> int main(){ int a[9]={3,6,7,4,5,2,1,9,8}; //排序完成为1,2,3,4,5,6,7,8,9 //比较前后两个数,如果后一个比前一个小,交换,反之无需处理 //下标后移,继续处理后两个数 //3,6,7,4,5,2,1,9,8 第一次交

2020-08-27 19:19:23 452 1

原创 C语言数组之多维数组的处理

C语言数组之多维数组的处理1.多维数组可以理解为数组的数组(数组类型的数组)以公寓为例:元素:就是一个个房间 1001;一层就是:一维数组一栋楼就是二维数组一个园区就是三维数组一个高教区相当于四维数组一个城市相当于五维数组……如杭州市 下沙高教区 杭州电子科技大学 18号楼 第五层 22房间code mutil_array.c #include<stdio.h> int main() { int arr[3][4] return 0; }2.内存当中的

2020-08-27 02:58:46 852 1

原创 C语言数组的定义与使用

C语言数组的定义与使用数组的定义与使用2.从语义上说:数据的组合 code array.c #include<stdio,h> //数组作为函数的参数时被转换为指针 void display_arry(int arr[10]) { for(int i=0;i<sizeof(arr))/sizeof(arr(0);i++] { printf("a[%d]=%p",i,&arr[i]); } } int main(){ //定义是数组 数组

2020-08-27 01:55:38 9016

原创 C语言预处理之多文件编译

C语言预处理之多文件编译mkdir mutil_files //多文件cd mkdir mutil_filestouch main.c //主函数文件mkdir header //存放自定义的头文件mkdir source //存放源文件mkdir output //输出的可执行文件cd header code test,h #ifndef _TEST_H_ #define _TEST_H_ #program once 不管这个头文件被包含了多少次,只进行一次编

2020-08-26 01:47:09 241

原创 预处理之头文件定义

预处理之头文件定义1.头文件中可以定义一些接口(函数原型),类型,全局变量2.为避免编译效率过低,不要将实现部分放到头文件中格式#ifndef TEST_HEADER_H#define TEST_HEADER_H 可定义接口,函数,全局变量等 如:viod display_message(); typedef unit unsigned int; # define name "名字" int k=100; #endif 注意:1.如果使用<>的方式引

2020-08-25 02:24:08 624

原创 预处理之条件处理命令与警告处理,错误处理,内存对齐处理

预处理之条件处理命令与警告处理,错误处理,内存对齐处理一、条件处理命令1. ifdef 和 endif。 #define TEST # ifdef TEST // #开头,以if开头必须以endif结尾 void print_message() {printf ("这里是定义的\n"); } #else void print_message() {printf ("这里是未定义的\n"); } #endif //此时的输出结果为:这里是定义的

2020-08-24 22:33:13 387

原创 C语言 预处理作用与宏定义

C语言 预处理作用与宏定义一、预处理的作用 1.程序的预处理过程就是将预处理指令(可以简单理解为#开头的正确指令)转换为实际代码中的内容(替换) 2.#include<stdio.h>,这里是预处理指令,包含头文件的操作,将所包含头文件的指令替代 3.如果头文件中包含了其他头文件,也需要将头文件展开包含 宏定义 1.# define 新的标识 旧的标识 注意这里加不加分号,需要根据特定的情况判断 用 新的标识 替换被标识的内容 2.宏定义不占用内存,全局变量占用内存

2020-08-24 18:16:33 1317

原创 循环控制和多重循环

循环控制和多重循环一、break语句 作用:跳出当前循环,如果是多重循环,只会跳出当前的一层循环,不会跳出两层三层 例:while(表达式){ 语句1; break; 语句2; } 结果会运行语句一后跳出循环,语句二不会执行二、continue 作用:提前结束当次循环,提前进入下次循环 例:while(表达式){ 语句1; continue; 语句2; 结果会运行语句一后,结束当次循环,跳过语句二,进入下次循环while循环三、多重循环 1.一个循环体内又包含另一个完整

2020-08-23 15:34:59 191

原创 循环语句

循环语句while语句 一般形式 while(表达式){循环体语句;} 特点:先执行表达式,后执行循环体 说明: 循环体可能一次也不执行 循环体可以为任意类型的语句 下列情况退出while循环 条件表达式不成立(为零) 循环体内,遇break,return,goto 无限循环 while(1)循环体do while 一般形式 do 循环体语句;while (表达式); 特点:先执行循环体,后判断表达式 说明:至少执行一次循环体 do wh

2020-08-23 02:53:34 130

原创 选择结构

选择结构一、if语句(条件选择语句) 1.if语句三种形式 (1)格式1:if(表达式) 语句 例 int a=3,b=6 if(a>b) { printf("a=%d\n",a); } 结果无任何输出 (2.)格式2: if(表达式)语句1 else 语句2 例 int a=3,b=6 if(a>b) { printf("a=%d\n",a); }else { printf("b=%

2020-08-23 02:18:32 105

原创 结构化程序设计

结构化程序设计一、结构化程序设计 基本思想:任何程序都可以用三种结构表示,限制使用无条1件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序 优点:结构清晰,易读,提高程序设计质量和效率二、 三种基本结构 1.顺序结构 由若干块组成,按各块的排列顺序依次执行 2.选择结构 又称分支结构,根据给定的条件,从两条或者多条路径中选择下一步 要执行的操作路径 3.循环结构 根据一定的条件,重复执行给定的一组操作三、算法的描述 1. 例:求一千以内偶数的和

2020-08-23 00:15:09 4798

原创 条件,逻辑运算符

条件,逻辑运算符一、关系运算符 1.种类 优先级6(高)<,<=,==, > 优先级7(低)>=,!= 2.结合方向 自左向右 3.优先级别 (1)关系表达式 用关系运算符将两个表达式连接起来的式子 (2)关系表达式格式 表达式 关系运算符 表达式 (3)关系表达式的值: 1 表示关系成立,0 表示关系不成立 4.注意点 (1)应避免对实数(小数)做相等或不等的判断,应该是否为一个范围内 因小数的精确值可能不一样,所以

2020-08-22 19:52:12 1267

原创 类型转换

隐式类型转换发生的情况: 1.运算符转换 (1)运算转换规则 把不同数据类型混合运算时,不同类型数据参与运算时先自动转换为同一类型 (2)为什么需要类型转换 ,便于硬件的实现 (3)类型转换 规则一 char、short自动转换为int,float自动转换double 结果类型与转换后的类型相同 规则二 相同类型(除char,short,float型外)的操作数 作运算的结果为同一类型 规则三 不同类型,先按规则一转换,还有不同

2020-08-22 15:00:08 71

原创 算术赋值运算符

算术、赋值运算符运算符 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式) 函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -表达式 右到左 单目运算符 (类型) 强制类型转

2020-08-22 02:42:11 496

原创 常用库函数

常用库函数一、数学函数 在源文件中加上头文件<math.h> 在使用gcc编译时,结尾加上-lm 作用是 链接动态库1.平方根函数sqrt 函数原型:double sqrt (double x) 功能:计算平方根根号x 例:qprt(1.234)2.绝对值函数fabs 函数原型 double fabs(double x) 功能 计算|x| 例: fabs(-1.2); 返回值为1.23.指数函数pow 函数原型 do

2020-08-21 22:57:52 3284 1

原创 输入函数

##输入函数一、 getchar 1.格式 int getchar() 输入缓冲区中 (1)有数据,直接获取字符 (2).无数据,从键盘读取 2.功能 从键盘读一字符 3.返回值 正常,返回读取的代码值 错误,返回EOF(-1)二、scanf 1.格式 ”格式控制串“,地址表 注:地址表,变量的地址,常用取地址运算符& 如scanf(”%d“,&a); &a表示变量a的存储空间的地址 2.功能 按指

2020-08-21 14:15:09 2000

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除