C(++)语言程序设计前五章知识总结

c(++)语言程序设计前五章总结

一、头文件
作用:通过头文件借口来调用库函数
常用:
C–include<stdio.h>定义输入输出函数
include<string.h>字符串处理
C+±-include调用cin cout
include调用printf,scanf等函数
include调用数学函数
(在目前的学习过程中主要用到了这么多头文件,但是对这部分的理解和知识储备相对欠缺,需要补充)
宏常量的定义#define标识符(宏名) 字符串(定义之后不能再被改变切所有宏名都被替换成字符串)
二、主函数
C语言—main()
c+±–int main()
(虽然还不知道为啥这样)
三、函数主体
1.数据的定义:
数据类型:
常量:整型常量 (既整数包括正整数,负整数 和零在内的所有整数)
实型常量(既实数)
字符型常量(用一对单引号括起来的任意字符)字符串常量(用一对双引号括起来的零个或多个字符)
const 类型 标识符 = 数值;
声明某种数据类型的常量
特别注意:
指数形式的实型常量表示形式(以字母e或者E来代表以十为底的指数,一的左边是数值部分,可以表示成整数和小数形式,它不能省略,e的右边是指数部分必须是整数形式)
变量
变量类型(同常量)
变量的定义:
类型关键字 变量名;
int 有符号整数
long int 长整型
float 单精度实型变量
double 双精度实型变量
long double 长双精度实型
char 字符型变量
变量名的命名规则: 标识符只能由英文字母,数字和下划线构成,且只能由字母和下划线开头。标识符区分大小写。
特别注意:
要注意各种数据类型间的大小限制
int 32位
long int 64位(int不够使)
2.各类运算符
①赋值运算符 = 强行将等号右边的值赋给左边(复合赋值运算符"+=""-=""%=“先运算后赋值)
②加减乘除运算符(特别注意:整数除法和浮点数除法的不同;C语言没有幂运算符;用括号区分优先级)
③取余运算符%
④逻辑运算符等
⑤增1和减1运算符x++,++x,x–,--x(注意前缀和后缀不同)
⑥强制类型转换运算符(避免数据的丢失)
(类型)表达式
3.键盘输入和屏幕输出
⑴输入:
①cin>>变量;从键盘读取数据并赋给变量
cin>>变量1>>变量2>>……
优点:方便
缺点:慢
c++专用
②scanf()
一般调用格式 scanf(“格式控制符”,地址列表)
格式控制符”%格式符"
%d十进制整数
%c单个字符
%s字符串
%f实数
附加格式
L用于长整型数和double和long double型实数
.x表精度(这个理解是错的!!!!!!scanf不能规定精度)
整数表域宽
要给变量加取址符&整一个存储空间
优点:效率高
缺点:不能自动识别数据类型,麻烦
⑵输出
①cout>>变量;
用法及优缺点类似cin
②printf()
printf(“格式控制符”,输出列表)
ps:各参数之间用,分开
可以用.x控制精度
%0md位数不足时用0补全
优缺点同scanf
4.主函数结构
⑴顺序结构 普通的,经典的hello,world!
⑵选择结构
①单分支结构
if(条件) {语句};
结果:当条件成立时,执行语句操作;
当条件不成立时,什么也不做。
题目举例: openjudge 分支结构例一#include<iostream> #include<cstdio> #include<math.h> using namespace std; int main() { int N; cin>>N; if (N > 0) { cout<<"positive"; } if (N == 0) { cout<<"zero"; } if (N < 0) { cout<<"negative"; } return 0; }

按照三种不同的情况输出字符。
(单分支结构在大多数情况下都能应用,但是比较麻烦,不建议使用)
②双分支结构
if(表达式) 语句A;
else 语句二;
既当表达式成立时,执行语句A,否则,执行语句B
例:o2-5判断一个数能否同时被三和五整除#include<iostream> #include<cstdio> #include<math.h> #include<cmath> using namespace std; int main() { int n,c; float b; cin>>n; c = n/15; b = n/15.0; if(abs(b-c)>0) cout<<"NO"; else cout<<"YES"; return 0; }
仅有两种情况非此即彼
③多分支结构
Ⅰ.用于多分支控制的条件语句else-if
if(表达式1) 语句1;
else if(表达式2) 语句2;

else if(表达式m) 语句m;
else 语句m+1;☆☆(不要忘了)
从上到下执行,如果碰到if条件成立则该条语句为真,其余语句均为假
在所有if结构中都可以用{}将多条语句合并为一条,同时执行多条或进行嵌套,如果if后的多条语句不加{}则会出现语法错误。
例题O2-7晶晶赴约会问题#include<iostream> #include<cstdio> #include<math.h> #include<cmath> using namespace std; int main() { int a; cin>>a; if(a==1) cout<<"NO"; else if(a==2) cout<<"YES"; else if(a==3) cout<<"NO"; else if(a==4) cout<<"YES"; else if(a==5) cout<<"NO"; else if(a==6) cout<<"YES"; else if(a==7) cout<<"YES"; return 0; }可以用逻辑运算符合并某些条件。(这是一开始写的,没有考虑到可以合并的情况)
这里条件有时候会很难分,但是没有办法,仔细想想。
Ⅱ.用于多路选择的switch语句
switch(表达式)
{
case常量1
可执行语句序列1
break;(跳出这个case)
case常量2
可执行语句序列2
break;
……
case常量n:
可执行语句序列n;
break;
default:
可执行语句序列n+1;
}
表达式只能是离散型的数字或字符型;
将case:1
case:2
break;
连一块就是同时执行这两个语句下的值
例O2-13简单计算器

#include<iostream>
#include<cstdio>
#include<math.h>
#include<cmath>
using namespace std;
int main()
{
	char b;
	int a,c;
	cin>>a>>c>>b;
	switch(b)
	{
		case'+':
		cout<<a+c;
		break;
		case'-':
		cout<<a-c;
		break;
		case'*':
		cout<<a*c;
		break;
		case'/':
		if(c==0)  cout<<"Divided by zero!";
		else  cout<<a/c;
		break;
		default:
		cout<<"Invalid operator!";
		}
	
	}
	

逻辑运算符扩充 ! 逻辑非 &&逻辑与 Ⅱ逻辑或
逻辑与和逻辑非都是从左到右看
感想:做题首先要整理好思路,其次多注意细节,不要急躁,按部就班,准确严谨
补充:ASCII码与字符的输入输出
字符输入函数getchar()接受单个字符,并储存其ASCII码值,一次只能接受一个字符,输入多于一个字符时只接受第一个字符
格式:char ch
ch = getchar()
如果在程序中有连续两个以上getchar()函数,应该一次性输入所需字符,最后再按回车键,否则会把回车当一个字符输入
字符输出函数用法putchar()是字符输出功能是输出字符数据。

猜你喜欢

转载自blog.csdn.net/qq_43627098/article/details/83957549