C语言艰难学习之路


1、程序设计语言的发展

1、机器语言 第一代语言
0101 0111 0101

2、汇编语言 第二代语言
将代码翻译成英文单词 AX,BX

3、高级语言 第三代语言
a,结构化 语言 { Fortran 、 Basic (子语言VB) 、C 、 Pascal }除C外,基本被淘汰。
b,面向对象语言{C++ JAVA C# 等}。
执行速度从上往下排序

2、C的优缺点

优点

1、代码量小
2、速度快
3、功能强大

缺点

1、危险性高
2、开发周期长
3、可移植性不强

3、C语言组成-----关键字

auto break case char const continue defaule do double else
enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while
此32个单词不能改

4、数据类型

a、基本数据类型

整数

整形 ------------int ---------4字节
短整形----------short int ---------2
长整形----------long int ---------8

浮点数

单精度浮点数--------float 4
双精度浮点数--------double 8

字符
      char                                                                    1

b、复合数据类型

5、如何定义变量

数据类型 变量名 = 要赋的值 等价于 数据类型 变量名;
变量名 = 要赋的值
举例 int I = 1; 等价于 int I; I = 3;
Int I , j ; 等价于 int I; int j;
Int I, j=3; 等价于 int I; int j; j = 3;

6、什么是进制,进制转换

二进制 数字后加字母 1010B
八进制 数字后加O 1342O
十进制 数字后加D 1651D
十六进制 数字后加H 6d4fH
十进制 逢10进一
基数 0 1 2 3 4 5 6 7 8 9
二进制 逢2进一
基数0 1
八进制 逢8进一
0 1 2 3 4 5 6 7
十六进制
0 1 2 3 4 5 6 7 8 9 A B C D E F

7、常用的进制转换表

在这里插入图片描述
符号代表的涵义
%d表示以十进制输出
%x表示以十六进制输出
%o表示以八进制输出
例程:

#include<stdio.h>

int main()
{
	int i = 88;

	printf("i = %x\n", i);
	/*
	
	%d表示以十进制输出
    %x表示以十六进制输出
    %o表示以八进制输出

	*/

	return 0;
}

8、常量在c语言中的表示:

a、整数:

	十进制:   直接写  如88  34  15
	十六进制: 前面加0x     如0x56
	八进制:   前面加0      如015  不是字母o

b、浮点数

一般写法:

Float x = 3.5e4; //值为35000

科学方法:
  Float x = 124.54e-2     //值为1.2454

c、字符

单个字符用单括号括起来
‘A’表示字符A
“AB”字符串AB
字符串用双引号括起来

“A”也正确,代表‘A’和‘、0’的组合

9、代码要规范

能清楚直观的显示程序、可读性更强。
推荐 林锐《高质量C/C++编程》

10、什么是字节

存储数据的单位
1字节 = 8位
1K = 1024字节
1M = 1024K
1G = 1024M

11、不同类型数据之间的相互转换

暂不烤炉---------------------------暂不考虑
为什么老是打烤炉,是我想吃串串了吗

int i = 45;
long j = 102345;
i = j;
printf("%ld %d\n",i ,j);
float x = 6.6;
double y = 8.8;
printf("%f %lf\n, x, y");
涉及补码问题

12、什么是ASCII

ASCII不是一个值,是一个规定

规定不同字符用不同整数值表示
规定了
‘A’ ------65
‘B’-------66
‘a’-------97
‘b’-------98
‘0’-------48

#include<stdio.h>

int main()
{

	char ch = 'a';  // a为97

	printf("%d\n", ch);

	return 0;
}

13、基本输入和输出函数的用法

printf()–将变量的内容输出到显示器上

     四种用法
     		1、printf("字符串\n");
#include<stdio.h>

int main()
{ 
	printf("你好第四天\n");     //    \n表示换行  只有""内部才可以汉字
	return 0;
}

2、printf(“输出控制字符”,输出参数);

int main()
{
	int i = 10;
	printf("%d", i);     //    \n表示换行  只有""内部才可以汉字
	return 0;
}

3、printf(“输出控制符1 输出控制符2 …”,输出参数1, 输出参数2,…);

#include<stdio.h>
int main()
{
	int i = 3;
	int j = 5;
	printf("%d  %d\n", i, j);     //    \n表示换行  只有""内部才可以汉字
	//输出控制符必须和输出参数的个数一一对应
	return 0;
}

4、printf(“输出控制符 非输出控制符”, 输出参数);
输出控制符包含:
%d int
%ld long int
%c char
%f float
%lf double
%x(%X) int long int short int
%o 同上
%s 字符串

#include<stdio.h>
int main()
{
	int x = 47;    //100是十进制

	printf("%x\n", x);     //2f
	printf("%X\n", x);     //2F
	printf("%#x\n", x);    //0x2f
	printf("%X\n", x);     //0x2F
	return 0;
}

规范写法如下,简洁表达明了。

#include<stdio.h>

int main()
{
	int i = 5, j = 21;
	printf("i = %d	j = %d\n", i, j);
	return 0;
}


为什么需要输出控制符
1、 01组成的代码可以表示数据也可以表示指令(无法解读,容易混乱)。
2、 如果01组成的代码表示的是数据,则同样01组合有不同的输出格式显示结果不同。

scanf()--------通过 键盘 将数据输入到变量中

	两种用法
			一:scanf("输入控制符", 输入参数);
             功能:**将从键盘输入的字符转化为 输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中**
#include<stdio.h>

int main()
{
	int i;

	scanf("%d", &i);    // &i表示i的地址  &是一个取址符
	在这里我遇到一个问题,就是安全开发生命周期如果不关掉,scanf就会报错
	要么关掉,要么是   scanf_s
	printf("i = %d\n", i);

	return 0;
}

			二:scanf("非输入控制符 输入控制符", 输入参数);
			**功能:将从键盘输入的字符转化为输入控制符所规定的数据,然后存入以输入参数的值为地址的变量中
			非输入控制符必须原样输入**
#include<stdio.h>

int main()
{
	int i;

	scanf("m%d", &i);         //m  非输入控制符,原样输出  表示希望先输入m 
	printf("i = %d\n", i);    //m123 是正确输入    123非正确输入

	return 0;
}

#include<stdio.h>

int main()
{
	int i, j;

    printf("请输入两个值,中间以逗号分隔");
	scanf("%d , %d", &i, &j);
	printf("i = %d, j = %d", i, j);

	return 0;

}


第五天

三天没睡午觉了,好困,终于明天能放个周末假,能多睡会还能出去吃个串串。
这个实训基地太偏僻了,明天我要骑三轮上镇上吃肉。

如何使用scanf写出好的代码

		1、使用scanf之前先使用printf提示用户用什么方式输入
		2、scanf中尽量不要使用非输入控制符,尤其不要用n\运算符
		3、应该编写代码对用户的非法输入做适当处理
	 			while ((ch = getchar()) != '\n')
						  continue;
#include<stdio.h>

int main()
{
	int i;
	char ch;

	scanf("%d", &i);
	printf("i = %d", i);

	while ((ch = getchar()) != '\n')
		continue;

		int j;

		scanf("%d", &j);
		printf("j = %d", j);
	
	return 0;
}

比如在这里插入图片描述

运算符

		算数运算符 
						+   
		   			    -  			 
		   			    *   		 
		   			    / (除)        
		   			   %(取余)
		关系运算符
						>
						>=
						<
						<=
						!=(不等于)
						==(等于)
		逻辑运算符
						!(非)
						&*&(并且)
						||(或
						!真   是假
						!假   是真
						真&&假   假
						假&&假   假
						假&&真   假
						真&&真   真
						**一假为假**
						
						真||真      真
						真||假      真
						假||假      假
						**一真为真**
C语言对真假的处理
		非0是真
		0是假
		真是1
		假是0
#include<stdio.h>

int main()
{
	int i = 10, j = 20, k;

	k = (i > 2) && (j = 8);
	printf("k = %d, j = %d\n ", k, j);
	/k = 1; j = 8;
	
}
#include<stdio.h>

int main()
{
	int i = 10, j = 20, k;

	k = (i < 2) && (j = 8);
	printf("k = %d, j = %d\n ", k, j);
  k = 0; j = 20;
   &&左边的表达式为假,则右边的表达式就不会执行;
}

&&左边的表达式为假,则右边的表达式就不会执行
||左边的表达式为真,则右边的表达式就不会执行

比如

#include<stdio.h>

int main()
{
	int i = 10, j = 20, k;

	k = (i > 2) || (j = 5);
	printf("k = %d, j = %d\n ", k, j);
	//k = 1, j = 20
}
		赋值运算符
		=      
		+=         a +=  3;   相当于   a = a+3;
					 a /=   3;                 a = a/3
		优先级
				算数 > 关系 > 逻辑 > 赋值
#include<stdio.h>

int main()
{
	int i, j, k;
	int l, m, n;
	i = 3 % 3;
	j = 13 % -3;
	k = -13 % 3;
	l = -13 % -3;
	m = -13 % 23;
	n = 3 % 5;
	printf("%d %d %d  \n", i ,j ,k);
	printf("%d %d %d  \n", l, m, n);
	return 0;
	//       0 1 -1
    //      -1 -13 3
 				
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值