栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习第一章——程序设计和C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习第一章——程序设计和C语言

计算机语言的发展:
1.机器语言:二进制代码。
二进制代码就是由0和1组成的指令。比如010 1001等等
计算机能够直接识别和接受的二进制代码称为机器指令。
机器指令的集合就是计算机的机器语言。
2.符号语言《汇编语言〉:符号语言计算机不能直接识别和执行。需要汇编程序把符号语言转换成机器指令。这个过程叫散“代真”或“汇编”。
3.高级语言﹐它也不能被计算机直接识别,需要编译程序把高级语言写的程序(称为源程序),转换为机器指令的程序(称为目标程序》。
5:机器语言和汇编语言都是低级语言,都是面向机器的语言,低级语言的可移植性很差。
高级语言的发展阶段:
1.非结构化的语言:早期的BASIC,FORTRAN语言,程序中的流程可以随意跳转
2.结构化语言:程序必须有具有良好特性的基本结构(顺序结构,分支结构,循环结构)构成,如:QBASIC,FORTARN77和c语言
3.面向对象的语言:C++,C#,VISUAL BASIC和Java
c语言的发展及特点:
c语言的前身是BCPL语言,贝尔实验室正式发布了c语言。
c语言的标准有:
1 .ANSl c c8sc90《这3个标准都一样)2.c99
t语言的特点:
1.语言简洁,紧凑,使用方便,灵活
2.运算符丰富
3.数据类型丰富
4.具有结构化的控制语句
5.语法限制不太严格,程序设计自由度大。
6.C语言允许直接访问物理地址,能进行位( bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.用C语言编写的程序可移植性好。
8.生成目标代码质量高,程序执行效率高
向屏幕输出一行文字

#include 		//stdio.h通知编译器printf函数的功能 
int main(void){			//任何程序从main函数开始执行,从main函数退出执行的 
	printf("hahan");	//printf的功能是输出双括号中的内容,双括号中的内容称之为字符串 	单引号括起来的是字符 
	return 0;
} 

输出两个整数的和

#include 
int main(void){
	int a,b,sum;
	printf("%d,%d,%dn",a,b,sum);	//这里输出a,b,sum三个值,但因为这三个变量没有初始化,输出结果不确定是垃圾值 
	a=2;
	b=3;
	sum=a+b;
	printf("sum is %dn",sum);
	return 0;
}

函数

#include  
int f(int a){
	return a*a;		//1.把a*a的值发送给调用它的函数 2.结束该函数的执行 
}
void g(int a,int b){		//形参 
	printf("%dn",a+b);
	return;
}
int main(void){
	printf("%dn",f(3));	//实参 
	g(3,4);
	return 0;
}
#include 
void f(void){	//函数名的作用域,是从函数的定义或函数声明处开始,到这个源程序文件的末尾结束 
	printf("1111n");
 
}

void g(void);	//函数首部+分号  即函数声明		可以扩展函数名的作用域到此 
void h(int);	//函数声明的形参变量名是可以省略的 
//main函数之前的代码是为main函数的执行提供信息的,他不一定被执行 
int main(){
	f(); 
	g(); 
	h(3);
	return 0;
}
void g(void){
	printf("2222n");
} 
void h(int a){
	printf("%dn",a);
	g();		//h函数的定义必须在g函数的作用域之内,因为h函数中有g函数的调用 
} 


求两个数的最大值

#include		//printf和scanf的函数声明都在stdio.h里,printf和scanf的函数定义在库里 
int main(){
	double a,b;
	printf("请输入2个数:n"); 
	scanf("%lf%lf",&a,&b);		//&取地址符 
	printf("a is %lf,b is %lfn",a,b);		//%lf是在对一个浮点数据进行格式输入输出所用到的格式说明符 
	
	if(a 

printf 函数和 scanf 函数的返回值

#include
int main(void){
	printf("%dn",printf("hahan"));	//printf函数的返回值为整型,会把所输出的字符个数返回 
	 
	int a,b;
	printf("%dn",scanf("%d%d",&a,&b));		//scanf函数会返回其按照正确格式输入的变量的个数 
	return 0;
} 

输入一个成绩,输出成绩所对应的成绩段

#include
int main(void){
	double a;
	printf("请输入你的成绩:");
	scanf("%lf",&a);
	
	if(a<0||a>100){
		printf("这个成绩是不可能的");
	}else{
		if(a>=0 && a<60){
			printf("这个成绩不及格n");
		}else{
			printf("这个成绩及格n");
		}
	}
	return 0;
} 

if语句的细节问题

#include
int main(void){
	if(3>2){		// if(1)/if(5)	//当表达式的值为0,表达式为假;否则表达式为真。 
		printf("hahan");
		printf("lalan");
	}
	if(3<2){		//if(0) 
		printf("哈哈n"); 
	}
	else{		//当多个if语句使用时,else是属于紧挨着它上面那个if语句的内容 
		printf("啦啦n");
		printf("咔咔n");
	}
	return 0;
}


scanf函数的注意事项
(1)使用scanf函数输入数据,为什么需要按回车——回车可以刷新键盘缓冲区的内容。键盘缓冲区会有一个换行字符。
(2)scanf函数遇到错误输人会停止
(3)scanf函数的格式字符串中的字符分类:

1.格式声明(格式说明符)
2.空白字符(共有3种,换行,空格和tab (’n’, ’ ‘,t’) ) ——scanf 在读操作中忽略掉1个或者多个空白符。
3.非空白学符——scanf 在进行读操作的时候剔除掉与这个非空白字符一样的字符

(4)再输入时使用空白字符起到的数据间隔作用

#include
int main(void){
	
	
	
	
	
	
	 
	
	char ch1,ch2;
	scanf("%c%c",&ch1,&ch2);	//对于连续的字符类型输入,它们有能力自己间隔数据,所以再输入完一个字符之后,不必加空白字符,否则会得到错误的结果 
	printf("ch1=%c,ch2=%c.n",ch1,ch2); 
	return 0; 
}
优先等级运算
1初等运算符
2单目运算符
3乘号,除号,取余
4加号,减号
5左移运算符<<,右移运算符>>
6关系运算符
7等于,不等于
8按位与&
9按位异或^
10按位或/
11逻辑与&&
12逻辑或//
13条件运算符?:
14赋值运算符
15逗号

运算符1

#include
int main(void){
	printf("%d,%dn",1+2*3,(1+2)*3);	//输出7,9
	int a=1,b=2,c=3;
	a=b=c;
	printf("%dn",a);	//输出3
	//!(逻辑非运算符)求该操作数的逻辑反值,如果该操作数为真,则整个表达式为假,否则为真。 
	printf("%d,%d,%dn",!1,!9,!0); 	//输出0,0,1 
	//-(负号运算符)
	printf("%dn",4*-3);	//4*-3与4*(-3)等价,因为乘号比符号的优先级低,所以圆括号可省。 
	return 0; 
}

运算符2

#include
int main(void){
	//算术运算符
	printf("%d,%lfn",5/2,5.0/2);		//输出2,2.500000 除号运算符的操作数如果都为整数,结果也为整数。
	
	int a;
	printf("%dn",a=3.98);		//输出3
	
	printf("%d,%dn",5%2,4%2);	//输出1,0
	//printf("%dn",3.0%2);	//报错,取余运算符两边必须为整数 
	printf("%d,%d,%dn",-13%3,13%-3,-13%23);	//输出-1,-1,-13
	
	//赋值运算符
	int b=1,c=7;
	printf("%dn",b+=2);	//输出3 
	printf("%dn",c/=2);	//输出3 
	
	//b+c=100;	//报错,赋值运算符的左操作数必须是一个左值(变量),b+c是一个常数(不可以修改的值) 
	
	//检测赋值表达式是一个常数还是一个左值
	a=1,b=2,c=3;
	printf("%dn",(a=b)=c);		//输出3 
	return 0; 
} 

运算符3
(1)&&,||,逗号,条件运算符规定了运算顺序,必须自左向右
(2)操作数的求值顺序,不同的编辑器可能有所不同
(3)&&和||都先计算左边表达式的值,如果左边表达式的值能够确定整个表达式的值,那么右边表达式的值就不会被计算

#include
int main(void){
	//逗号运算符
	printf("%dn",(1!=1,2==2,3));	//输出3 逗号表达式,最右边表达式的值
	
	int a=0;
	a+=1,(a*=2);
	printf("%dn",a);	//输出2——(1) 
	
	//逻辑与运算符
	a=0;
	//0&&a=3; 	//报错,等价于(0&&a)=3 
	0&&(a=3);	//先计算左操作数,再计算右操作数 
	printf("%dn",a);	//输出a的值为0——(3) 
	
	//逻辑或运算符
	a=0;
	1||(a=3);
	printf("%dn",a);	//输出a为0 ——(3) 
	
	//(2)
	a=0;
	printf("%dn",((a+=1)+(a*=2))); 	//在不同的编译器中,可能先算“+”的左操作数,也可能先计算右操作数,所以输出结果可能是2或者是4 
	 
	return 0; 
} 

运算符4

#include
void max(int a,int b);
int main(void){
	1?printf("哈哈n"):printf("呵呵n");
	
	1?printf("1n"),printf("2n"):(printf("3n"),printf("4n")); 
	
	
	
	0?printf("An"):0?printf("Bn"):printf("Cn");
	
	
	
	max(3,2);
	
	int a=0;
	0?(a+=2):2;
	printf("%dn",a);		//自左往右,输出a为0
	
	//0?return 0:printf("123n"); 	//error表达式是数值和运算符组合,return是关键字,return 0 不是表达式
	//0?int x:printf("123n"); 	//error int x 并不是表达式 
	
	return 0; 
} 
void max(int a,int b){
	printf("%dn",a>b?a:b);		//该表达式的值a>b?a:b——如果a>b成立,其值为a,否则b 
	//	a>b?printf("%dn",a):printf("%dn",b);
	
}

全局变量及宏定义

// #号开头的都是预处理指令,预处理是发生在预编译阶段(编译阶段之前),对源程序进行一些简单的文本替换
// 全局变量的作用域是从定义处开始,到整个文件的末尾 
#include
//宏定义
#define PI 3.141592
//全局变量,全局变量名建议大写 	函数体之外定义的变量(除形参变量以外)
int A;		//未初始化的全局变量,系统会默认给他初始化为0 
int B=3;
int main(void){
	printf("%lfn",PI);
	printf("PIn");		//字符串内不会发生宏替换 
	//PI=10;	//error  PI是个符号常量,不可以被赋值 
	
	printf("%d,%dn",A,B);	//输出0,3
	return 0; 
} 

标识符
1.标识符不能和C语言的关键字相同,也不能和用户自定义的函数或C语言库函数重名。
2.不同的c语言编译器对标识符的长度规定不同,例如在某版本C中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。( vc. ++6.0中规定标识符最长不允许超过32个字符)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444076.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号