C语言程序设计案例式教程

C语言程序设计案例式教程

数据类型与运算符

  1. 变量的数据类型 :整形变量,实型变量,字符型变量,枚举类型变量; (单引号内只可以存放转义字符、一个字符)

    数据类型 所占字符数
    char 1个字节
    int 4个字节
    short 2个字节

    枚举类型变量:eg:enum 枚举名{标识符1=整型常量1,标识符2=整型常量 2,…}

  2. printf()函数与scanf()函数
    (1) 常用printf()函数格式字符

    用格式字符 含义 注意
    %s 输出一个字符串
    %c 输出一个字符 ACSLL码大写字母=小写字母+32
    %d 以十进制输出一个有符号整型
    %u 以十进制输出一个无符号整型 eg:3为整数,3.为小数
    %f 以十进制输出一个浮点数 小数类型输出默认小数点后六位
  • sizeof运算符可以获取数据字节数 : sizeof(数据类型名称或变量名称)
    eg:printf(“int: %d字节\n”,sizeof(int));
  • 格式字符串一般形式:[标志][输出最小宽度][.精度][长度]类型
    (2) scanf()函数
    功能:接收用户输入,也可以通过格式控制字符控制用户输入
    接收的是变量的地址
  • scanf("%d,%d",&a,&b) 输入数据用逗号隔开
    scanf("%d%d",&a,&b) 输入数据用空格隔开
    (3)算数运算符优先级
    (4)位运算符
    (5)关系运算符
    (6)三目运算符
    表达式1?表达式2:表达式3(若1为真,则为2,否则为3)
    条件运算符方向:自右向左
    eg:a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d),这也是三目运算符的嵌套

结构化设计程序

  1. if语句
    单分支结构:if…
    双分支结构:if…else…
    多分支结构:if…else if…else…

  2. switch条件语句(条件语句)

    - switch(表达式)
    - {
    - 	case 目标1:
    - 		执行语句 1;
    - 		break;
    -  	case 目标2:
    -   		执行语句 2;
    -   		break;
    -  	case 目标n:
    -   		执行语句 n;
    -   		break;
    - 	 default:
    -   		执行语句 n+1;
    -   		break;
    - }
    
  3. break语句(跳转语句)
    终止当前循环,执行循环体外的第一条语句

  4. continue语句(跳转语句)
    中止本次循环,并继续执行下一次循环
    break语句可以用于switch语句,而continnue不可以;

  5. goto语句(跳转语句)
    break语句出现在嵌套循环中的内层循环,只能跳出内层循环;如果想跳出外部循环则需要对外层循环添加标记,然后使用goto语句。

  6. while循环语句与 do…while循环语句
    循环条件的值非0,循环体就会被执行;循环体执行完毕时会继续判断循环条件,知道循环条件的值为0时,整个循环过程才会结束。 do…while循环语句与之类似。
    不同的是,do…while循环体先执行后判断(while先判断后执行)

...
while(1)
{
	scanf("%d",&choice);
	switch(choice)
	{
	case 1:
		...
		break;
	 case 2:
 		 ...
 		 break;
 	case 3:
  		exit(0);
   		break;

	}
}
  1. for循环结构语句
    - for(初始化表达式;循环条件;操作表达式)
    - {
    - …
    - }
  2. 随机数(rand()函数,srand()函数)
    (1)rand()函数(一次性的
    生成一个无范围限制的随机数,只需使用rand()即可,rand()会返回一个随机数0~RAND_MAX(2147483647)。
    生成某个范围的随机数:
范围 写法
0~10 rand()%10(利用函数对10取余)
5~25 rand()%20+5(利用函数对25-5=20取余再加上5)

(2)srand()
称为随机数生成的初始化器
函数原型:void srand(unsigned int seed);

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
	srand((unsigned int)time(NULL));
	int b1, b2, i;
	b1=b2=0;
	 for(i=0;i<4;i++)
	 {
		 b1=b1+rand()%6+1;
		b2=b2+rand()%6+1;
	 }
	if(b1>b2)
		 printf("b2 go\n");
	 else if(b1<b2)
		printf("b1 go\n");
	else
		printf("please again\n");
 	return 0;
}   
  1. 自守数(某个数末尾平方的几位等于该数)
在这里插入代码片
  1. 回文素数(穷举法)

函数

  1. 函数的定义
函数包括 含义
返回值类型 限定函数返回值的数据类型
参数名 函数的名称
参数类型 限定调用函数时传入函数中的数据类型
参数 接收传入函数中的数据
return关键字 用于结束函数,将函数的返回值返回函数调用处
返回值 被return语句返回的值
  1. 函数调用时的数据传递:形式参数,实际参数

  2. 内存四区:
    (1)栈区: 对一个程序来说,栈区是一块连续的内存区域,该区域由编译器自动分配和释放,一般用来存放函数的参数、局部变量等,由于栈顶的地址和栈区的最大容量是由系统预先规定的,因此这块区域的内存大小固定若申请的内存空间超过栈区的剩余容量,则系统会提示溢出
    (2)堆区:对一个程序来说,堆可以是不连续的内存区域,此段区域可以=由程序开发者自主申请,其使用比较灵活,但缺点是同样需要程序开发人员自主释放,若程序结束时该段空间仍未被释放,就会造成内存泄露,最后由系统回收。
    (3)数据区
    根据其功能,数据区又可分为静态全局区和常量区两个城。
    全局区是用于存储全局变量和静态变量的区域,初始化为非0的全局变量和静态变量在一块区域,该区域称为data段;未初始化或者初始化为0的全局变量和静态变量在相邻的一块区城,该区域称为bss段。该区域在程序结束后由操作系统释放。
    常量区用于存储宇符事常量和其他常量,该区域在程序结束后由操作系统释放
    (4)代码区:代码区用于存放函数体的二进制代码。程序中每定义一个函数,代码区都会添加该函数的二进制代码,用于描述如何运行函数。当程序调用函数时,会在代码区寻找该函数的二进制代码并运行。

  3. 局部变量与全局变量
    (1)局部变量:定义在函数内部的变量,变量的作用域仅限于函数内部,函数执行完毕以后这些变量就失去作用。
    (2)全局变量:在所有函数(包括主函数)外部定义的变量成为全局变量,他不属于某个函数,而是属于源程序,因此全局变量可以为程序中的所有函数共用,他的有效范围是从定义开始处到源程序结束。
    若在同一个文件中,局部变量和全局变量同名,则全局变量会被屏蔽,在程序的局部暂时使用局部变量保存的数据。

int a;   //a为全局变量
int main()
{
	return 0;
}
  1. 函数调用
    (1)主函数调用普通函数
    (2)嵌套调用
  • 10
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值