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

C语言基础一

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

C语言基础一

基本数据类型:

整型:
无符号usnsigned shortunsigned intunsigned longunsigned long longunsigned char
有符号[signed] short[signed] int [signed] longlong long[signed] char
长度(32位编译器)16位32位32位64位8位
长度(64位编译器)16位32位32位64位64位

浮点型:
floatdoublelong double
长度(32位编译器)32位64位96位
长度(64位编译器)32位64位128位

#include 

int main()
{
    printf("int:%dn",sizeof(int));
    printf("short:%dn",sizeof(short));
    printf("long:%dn",sizeof(long));
    printf("long long:%dn",sizeof(long long));
    printf("char:%dn",sizeof(char));
    printf("float:%dn",sizeof(float));
    printf("double:%dn",sizeof(double));
    printf("long double:%dn",sizeof(long double));
    printf("pointer:%dn",sizeof(char *));

    return 0;
}

运算符:

 %的两个操作数只能是整数,运算结果的符号和左操作数的符号相同。

如:
3 %2 = 1
3 % (-2) = 1
(-3) % 2= - 1
(-3) % (-2) = -1

运算符优先级

优先级较高的运算符先进行运算,同级运算符安装运算符的结合性进行运算。

结合性:当一个操作数左右两边的运算符优先级相同时,运算的顺序:从左向右或从右向左

短路求值:

&&:先求左侧运算对象的值,只有当左侧运算对象的值为真时才继续求右侧运算对象的值。

||:先求左侧运算对象的值,当且仅当左侧运算对象的值为假时才对右侧运算对象求值。

位运算符

&:两个位都为1时结果才为1;

|:两个位都为0时结果才为0;

~:按位取反

^:两个位相同时结果为0,不同时结果为1。

>>:向右移位

<<:向左移位

除了~是单目运算符,运算顺序为自右向左,其它的位运算符都是双目运算符,运算顺序为自左向右。

优先级(数字越大,优先级越低):

优先级     运算符
2~
5<<,>>
8&
9^
10|

数据的输入输出

数据的输入

语法:

  #include 
  int scanf( const char *format, ... );

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数。

format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:

控制字符 说明 
%c     把输入解释成字符 
%d     把输入解释成有符号十进制整数 
%i     把输入解释成整数 
%e, %f, %g 把输入解释成浮点数 
%o     把输入解释成无符号八进制整数 
%s     把输入解释成字符串,从第1个非空白字符开始,到下一个空白之前的所有字符都是输入
%x,%X  把输入解释成无符号十六进制 
%p     把输入解释成指针 
%u     把输入解释成无符号整数 

scanf()控制字符中的修饰符

*抑制符,指定输入项读入后不赋给变量:%*nd,n个数字读入后不赋给变量
数字m输入数字的最大宽度,遇到空格或不可转换字符结束
h、l或L

%hd 和 %hi 表明把对应值存储为short int类型

l或L表示long

l 修饰d,i,u,o,x,e,f,g表明把对应输入存储为long或unsigned long或double

L修饰e,f,g表示输入被存储为long double;

scanf()的返回值:返回成功读取的项数。当scanf()检查到文件结尾((WIndows)"Ctrl Z"或"(Linux)Ctrl D")时,会返回EOF。

数据的输出

语法:

  #include 
  int printf( const char *format, ... );
 

printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)。

控制字符 说明
%c     字符 
%d     带符号整数 
%i     带符号整数 
%e     科学计数法, 使用小写"e" 
%E     科学计数法, 使用大写"E" 
%f     浮点数 
%g     使用%e或%f中较短的一个 
%G     使用%E或%f中较短的一个 
%o     八进制 
%s     一串字符 
%u     无符号整数 
%x     无符号十六进制数, 用小写字母 
%X     无符号十六进制数, 用大写字母 
%p     一个指针 
%%     一个'%'符号 

修饰符:

[-]m最小输出数据域宽,左补空格,带负号则右补空格
.n

对浮点数,指定小数点后位数(四舍五入)

对字符串,指定实际输出位数

+       在有符号的正数前显示+
0输出数值时指定左边不使用的空位置自动填充0
#在八进制或十六进制前显示前导0,0x
l(小写L)输出类型为long或double

程序结构和控制语句

程序结构:顺序结构、分支结构、循环结构

控制语句

条件判断语句

if语句

if(条件)
{
   ...
}


if(条件)
{
   ...
}        
else
{
   ...
}


if(条件1)
{
    ...
}        
else if(条件2)
{
    ...
}       
 else if(条件n)
{
    ...
}       
 else
{
    ...
}

switch语句

switch(表达式)
{
    case 常量表达式1:
         语句序列1;

    case 常量表达式2:
         语句序列2;

    ...

    case 常量表达式n:
         语句序列n;
    default:
         语句序列;

}

循环语句

for语句

for(表达式1;表达式2;表达式3)
{
    语句序列;
}

表达式1:给循环变量赋初值

表达式2:循环条件

表达式3:修改循环变量的值

执行流程:

1.执行表达式1

2.执行表达式2,条件成立进入第3步,不成立结束循环

3.执行循环体

4.执行表达式3

5.回到第2步

while、do while语句

while(表达式)
{
    语句...
}

do
{
    语句...

}while(表达式);

执行while语句时,先判断表达式的值再执行循环体;

执行do while()语句,先执行循环体再判断表达式的值。

转向语句

break语句

只能用在switch或循环语句中,其作用是跳出switch语句或跳出本层循环,转去执行后面的语句。

用法:

break;

continue语句

continue语句只能用在循环体中,用于结束本次循环,转入下一次循环条件的判断与执行。

用法:

continue;

goto语句

goto语句用来改变程序流向,转去执行语句标号所标识的语句。

next:
    printf("==============n"};
    goto next;

数组

数组由数据类型相同的一系列元素组成。数组通过下标访问数组中元素。每个元素有n个下标的

数组称为n维数组。

数组的定义:

数据类型 数组名[常量表达式1][常量表达式2]...;

int arr[2][3];

声明了一个2行3列的二维数组。

数组的默认值

局部数组的元素的值不确定;

static数组元素默认为0;

全局数组元素默认值为0;

局部数组的部分元素初始化,其余元素默认为0;

数组必须逐个元素引用。

字符串

字符串指以''结尾的一组字符。

可以用下面的方式声明字符串:

char ch[]={'s','t','r','i','n','g',''};

char ch2[]={"string"};

char ch3[]="string";

z字符串的输入输出

输入:

char ch[10];

scanf("%s",ch);

输入时遇到空字符结束。

输出:

char ch[]="string";
printf("%s",ch);

常用字符串处理函数

strcpy()

  #include 
  char *strcpy( char *dest, const char *src );
 

功能:复制src中的字符串到dest,包括'',返回dest的地址。

strcat()

#include 
char *strcat( char *str1, const char *str2 );

功能:将str2复制到str1末端,返回str1的地址。

strcmp()

 #include 
 int strcmp( const char *str1, const char *str2 );

功能:按照ASCII码顺序比较字符串str1和str2的大小,返回值:

str1=str2,返回0

str1>str2,返回值>0

str1

strlen()

 #include 
 size_t strlen( char *str );

 功能:返回str中''之前的字符个数。

冒泡排序

对一组数据中相邻的两个数进行比较,如果前一个数大于后一个数,则交换顺序,直到对于所有相邻的两个数字,前一个数字都小于或等于后一个数字。

对N个数字进行排序,需要进行N-1轮在第n(n<=N-1)轮,需要进行N-n-1次比较。

    #define NUM 10
    int arr[NUM]={1,3,5,7,9,2,4,6,8,10};
    int tmp;
	for(int i=0;iarr[j+1]){
				tmp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=tmp;
			}
		}
	}
函数 函数的定义和声明

函数声明:

函数类型 函数名(形式参数列表);

函数的声明:

返回值数据类型  函数名称(形式参数列表)
{
     语句;
}

函数的调用形式如下:

函数名称(实际参数列表);

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

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

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