Advanced-C.02.程序设计

C语言概述

C程序的结构

Advanced-C.02.程序设计_第1张图片

C语句分类

  • 表达式语句
    • x=y+z;
  • 函数调用语句
    • printf("Hello World!");
  • 控制语句
    • if语句、switch语句、do while语句、while语句、for语句、break语句、goto语句、continue语句、return语句
  • 复合语句
    • {x=y;y=z;z=x;}
  • 空语句
    • while(getchar()!='\n'){;}

输入输出

在C语言中的实现

  • 在C语言中,所有的输入/输出都是由库函数完成,都是函数语句
  • 在使用C语言库函数时,需要使用预编译命令#include <头文件>#include "头文件",将有关"头文件"包括到源文件中
    • stdio即standard input & output
  • 使用printf和scanf函数时,可以不加"stdio.h"

字符数据的输入输出

  • putchar函数,需包含"stdio.h"
  • getchar函数,需包含"stdio.h"
    • getchar函数只能接收单个字符,输入数字也按字符处理,输入多余一个字符时,只接收第一个字符

格式输入输出

  1. 一般形式
  • printf("格式控制字符串",输出表列)
  • "%d"按十进制整型输出,"%ld"按十进制长整型输出,"%c"按字符型输出
  1. 格式字符串
  • [标志][输出最小宽度][.精度][长度]类型
  • 类型:类型字符用以表示输出数据的类型
    • d:输出十进制带符号整数(输出正数不带符号)
    • u:输出十进制无符号整数
    • 0:输出八进制无符号整数(不输出前缀)
    • x、X:输出十六进制无符号整数(不输出前缀)
    • f:输出小数形式单、双精度实数
    • e、E:输出指数形式单、双精度实数
    • g、G:以%f或%e中较短的输出宽度输出单、双精度实数
    • c:输出单个字符
    • s:输出字符串
  • 标志
    • -:结果左对齐,右边填空格
    • +:输出符号(正号或负号)
    • 空格:输出值为正时冠以空格,为负时冠以负号
    • 对c,s,d,u类无影响
    • 对o、x类,在输出时加前缀
    • 对e,g,f类,当结果有小数时才给出小数点
  • 输出最小宽度:用十进制整数来表示输出的最少位数
  • 精度:以"."开头,后接十进制整数
    • 输出数字,则表示小数的位数
    • 输出字符,则表示输出字符的个数
    • 若实际位数大于精度,则截去多余部分
  • 长度
    • h表示按短整型量输出
    • l表示按长整型量输出

顺序结构

#include 
int main(){
	int a = 0;
	int b = 0;
	a = 5;
	b = 4;
	{
		int a = 6;
		printf("%d\n",a);
		a++;
		printf("%d\n",a);
		++b;
	}
	printf("%d\n",a);
	printf("%d\n",b);
	return 0;
}
//程序输出结果:
//6
//7
//5
//5

Advanced-C.02.程序设计_第2张图片

选择结构

条件语句

  1. if语句
  • if(条件表达式) 语句1;
if(a==0){
		b--;
		a++;
}
  1. if…else语句
  • if(条件表达式) 语句1;else 语句2;
if(a==0){
	b--;
	a++;
}
else{
	b++;
	a=0;
}
  1. if…else if语句
  • if(条件表达式1) 语句1;else if(条件表达式2) 语句2;...;else 语句n
if(a==0){
	b--;
	a++;
}
else if(a==1){
	b++;
	a++;
}
else if(a==2){
	b+=2;
	a++;
}
else{
	b--;
	a=0;
}
  1. if语句嵌套
  • if(条件表达式) if语句;
  • if(条件表达式) if语句1;else if语句2;
//第一种
if(a==0){
	if(b==0){
		a++;
		b++;
	}
	b++;
}
//第二种
if(a==0){
	if(b==0){
		a++;
		b++;
	}
	else if(b>1){
		a++;
		b--;
	}
}
  1. switch语句
  • 若case后无break语句,则会继续执行随后的所有case语句
  • switch后括号中表达式可以是整型、字符型、枚举型
  • case后各常量表达式值不能相同
switch(表达式)case 常量表达式1:语句1(集合)case 常量表达式2:语句2(集合)...  
case 常量表达式n:语句n(集合)breakdefault:语句n+1;  
}
switch(x){
	case 0: a++;break;
	case 1: b++;break;
	case 2: a--;break;
	case 3: b--;break;
	default: break;
}
  1. 条件运算符和条件运算表达式
  • 表达式1?表达式2:表达式3
  • 表达式1值为真,以表达式2值作为条件表达式的值,否则以表达式3值作为条件表达式的值
a==0?b=1:b=2;

//等同于if else语句
if(a==0)
	b=1;
else
	b=2;

循环结构

三种循环语句

  1. while语句
  • while(循环表达式){循环体语句;}
//输入多组数据
while(~scanf("%d",&a))
while(scanf("%d",&a)!=EOF)
//scanf的返回值等于输入整数的个数,没有整数输入,返回0
//EOF是预定义的常量-1
  1. do…while语句
  • do{循环体语句;} while(循环表达式)
  1. for语句
  • for(表达式1;表达式2;表达式3){循环体语句;}
  • for语句三个表达式不是必须的
  • 可在循环体中执行break,continue,goto语句
  • 表达式2为空,即死循环

中断语句

  1. break语句
  • 跳出本层循环,执行循环后的语句
  1. continue语句
  • 只用于结束本次循环,即直接去执行表达式3,进行下一次循环
  1. goto语句(了解)

你可能感兴趣的:(#,C语言学习笔记,c语言,学习笔记)