C语言程序设计总结_第1页
C语言程序设计总结_第2页
C语言程序设计总结_第3页
C语言程序设计总结_第4页
C语言程序设计总结_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言程序设计总结 C 语言程序的基本结构 #include “ stdio.h ” void main() 定义变量 ; 程序实现 ; 输出结果 ; printf 、变量的定义 1整型: int a , b, s=0; 长整型: long 无符号整型(非负整数) : unsigned 2单精度实型: float x, y, z=1.0 ; 3双精度实型: double l,m; 4. 字符型: char c1= Ac2=,;b ( 可以在定义的同时为变量进行赋值 ) 、变量的赋值 1直接赋值: a=10 ;/ 用赋值号“ =”将右侧的值赋给左侧的变量 2赋表达式的值: a=3+7; 3.

2、赋另外一个变量的值: a=s;/ 把 s 的值赋给 a 变量的输入: 输入一个变量: scanf( 输入多个变量: scanf( int-%dfloat-%f % d”, %d%d%d ”, char-%cdouble-%lf 字符串 -%s 变量的输出: 输出一个提示语句: printf( “xxxxxx ”); n”); 输出一个回车: 输出一个变量: 输出多个变量: 练习: printf( printf( “xxx is %d ”,a); printf( “xxxx%d, xxxx%d ”,a,b) 1 输入圆的半径,求圆的周长。 精选文库 15 四、常用流程控制语句 a大于 0 写成

3、a0 a小于 0 写成 a=0 a小于 0或 者a大于 :10 写成 a10 分支语句:根据条件执行相应的语句 条件的形式: (二)双分支if语句 if(条件) 执行语句1; else 执行语句2; (如果满足某个条件, 就做某件事情, 不满足就向下执行。 否则就做另外一件事情。 (三)多分支if语句 if(条件1) 执行语句1; else if(条件 2) 执行语句2; else if(条件 3) 执行语句3; else if(条件 4) 执行语句4; else 执行语句5; (四)if的嵌套(根据具体情况对 其格式如下: if(条件1) if(条件2) 执行语句 else 执行语句 els

4、e if(条件3) 执行语句 else 执行语句 (满足哪一个条件,就做相应的语句。 a; b; c; d; (五)多分支语句 switch (根据 因为它的作用完全可以用多分支 ifelse语句进行灵活的运用) switch后的值,执行相对应的case语句,此语句了解即可, if来实现) switch (表达式) case case case 值1: 语句 值2: 语句 值3: 语句 1; break; 2; break; 4; break; 值n: 语句 default: 语句 n+1; 练习: 2. case n; break; 3. 4. 5. 某自助餐厅规定,浪费食物在20克以下的,

5、每克罚款2元;如浪费超过20 克,则超过的部分每克加罚1元。编程求罚款金额。 从键盘输入正方形的边长,如果边长大于零则求出该正方形的周长和面积, 否则提示输入错误。 输入3个数x,y,z,求其中的最小值。 输入3个数x,y,z ,将其中最大值放在x中,最小值放在z中,中间值放在 y中,然后输出x,y,z。 循环语句:在条件成立时重复执行一组语句 (一)当型循环 while while(条件) 循环体 例如:求 1+2+3+-100 int n=1,s=0; while( *=100) s=s+n; n=n+1; (二)直到型循环 dowhile 例如:求 1+2+3+-100 do intn=

6、1,s=0; do 循环体 while(条件); s=s+n; n=n+1; while( n =100); (三)知起至型循环 for 例如:求 1+2+3+-100 for(循环变量初值;循环变量氾围;步长) intn=1,s=0; for(n=0 ;*=100; n+) 循环体 s=s+n; (四)循环的嵌套 说明: for(i=1;i n;i+) 1. 假设某同学参与“打气球游戏”,该 同学可以打5局,每局可以打10枪。 这里的每局10枪就相当于内循环的 for(j=1;jm;j+) 次数;5局就相当于5个10枪,也 就是外循环的次数。 2. 这5*10枪不是一次性打完的,而且 每一枪

7、都要记是哪一局的哪一枪打 出来的成绩,哪一局对应的是i,哪 一枪对应的是j。 (五)使用break可以强制退出循环,其用法必须配合if来使用: 例如:for(i=0;i100;i+) if(条件) break; 练习: 1. 2. 编程求出公式s=1-1/3 + 1/5-1/7+1/101的值并输出 编程输出如下图形: 3. 4. 编程打印九九乘法表 编程打印出2016年1月份的日历 注意:1月份的总天数是31天,其中1日是星期五。 日历如下: * 四 五 1 、. 八 2 日 3 456 7 8 9 10 111213 14 15 16 17 181920 21 22 23 24 25262

8、7 28 29 30 31 void mai n() int i,n,d; n=31; d=5; printf( /i是循环变量,n代表总天数,d代表星期; /n代表一个月的天数 /d代表星期,星期一为1,星期五为5,星期日为7 二三四五六日n);/ 一个汉字占两个字符的位置 /开始日期之前用空格占位,每个日期对应 3个空格 for(i=1;id;i+) prin tf(); for(i=1;iv=n ;i+,d+) prin tf(%3d,i); if(d%7=0) prin tf(n); 5.在第4题的程序上进行修改,如果输入任意一个月的总天数及该月第一天的 星期(1代表星期日,2代表星期

9、一以此类推),能否打印出该月日历 6.计算x的n次方(x为双精度,n为非负整数) void mai n() double x,s; un sig ned n ,i; s=1; printf(请输入 x 和 n:); sca nf(%lf%u, for(i=1;i=n ;i+) s=s*x; prin tf(jieguo is %.2lf,s); 四、数组 一维数组 1. 一维数组:名字相同且带有下标的一组变量 2. 定义形式:类型名 数组名长度 例如:int a10/a数组中包含有 10个整型变量,名字分别是 a0、a1、a2a9 这里每一个an都是一个普通的整数变量 3. 一维数组的初始化:

10、定义数组的时候就给每个数组元素赋值 int a5=2,4,6,8,10; 4. 对a数组中的每一个元素依次进行操作(访问)的方法如下: int i; for(i=0;i9;i+) . ai 例如: 通过键盘输入给a数组中的每个元素赋值 将a数组中每一个元素都扩大2倍 统计a数组中奇数的个数 求a数组中的最大值 把a数组的元素进行逆置 把a数组中的元素进行右移 从一维数组中查找 X,并返回x所在的位置,否则提示没有找到。 求fibonacci数列的第n项。 求任意一个数的1.21.6倍存入数组。 数组中存入10个数并进行循环左移 练习: 4. 二维数组 1. 二维数组:名称相同且带有2个下标的一

11、堆变量,逻辑上可看成 n行m列的二维表格。 2. 定义形式:类型名 数组名行长度列长度 例如:int a34 个数组元素,这12个元素的名字分别是: 这里a数组中包含有 3*4=12 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 3.二维数组的初始化: int a34=1,2,3,4,5,6,7,8,9,10,11,12; 4.对a中数组元素的访问,需要定义2个下标变量i和j,aij代表第i行第j列的元素。 按行的顺序访问: 按列的顺序访问: int i,j; int i,j; for(i=0;i3;i+) for(j=0;j4;j+) for

12、(j=0;j4;j+) for(i=0;i=0;i-) si; 4. 字符串常用函数: 注意:用以下函数需要用#includestring.h 引入头文件。 连接字符串:strcat(str1,str2) 比较两个字符串的大小:strc mp (str1,str2); char c= ” ;strchr(str1, c); 求字符串的长度:strle n(str1); 在字符串中查找一个字符,并返回其位置: 复制字符串:strcpy(str3,str1); 在字符串str1中查找字串str2的位置:strstr(str1,str2) 5. 字符串常见操作 把字符串逆置 判断是否为回文 五、函数

13、 (一) 函数的定义: 1无返回值、无参函数的定义: void 函数名() 定义变量; 实现功能; 返回; 例:定义一个能够输出 10个”*”的程序。 2.无返回值、有参函数的定义: void 函数名(参数定义列表) 定义变量; 实现功能; 返回; void f1() int i; for(i=1;i=10;i+) printf(“ ”); return; 例:定义一个能够输出n个”*”的程序 voidf2(i nt n) int i; for(i=1;i=n ;i+) printf(“ ”); return; 例:定义一个能够输出n个指定字符的程序。 3 .有返回值有参函数的定义: 类型函数

14、名(参数定义列表) void f3(char c,i nt n) int i; for(i=1;i=n ;i+) printf( %c ”,c); return; 例:定义一个计算两个整数加法的函数。 int f4(i nt x,i nt y) 定义变量; 实现功能; 返回计算结果; return (x+y); 例:定义一个能判断奇数的函数 这里”类型”一定要与”计算结果”一致。 int f5(i nt x) if(x%2=1) return 1; else return 0; (二)函数的调用 1. 无参函数调用:函数名 () 2 .有参函数调用:函数名 (实参列表) 这里的实参可以是一个具

15、体的值,或者一个已经有值的变量,也可以是一个表达式。 例如 调用 f1 函数: 调用 f2 函数: 调用 f3 函数: 调用 f4 函数: 调用 f5 函数: f1() f2(5) 或 int n=20; f2(n); f3(;10)或 char cc= nt n=8; f3(cc,n); int s,a=1,b=2; 3 .函数的调用可以成为一个独立的语句,也可以参与到表达式中进行计算。 s=f4(a,b); int x=7; if(f5(x) printf (奇数”) else printf(偶数”); (三) 指向一维数组的函数: f1(i nt a,i nt n) int i; for

16、(i=0;i n;i+) ai; void mai n() int a10=1,2,3,4,5,6,7,8,9,10; f1(a,10); 练习: 求10个数的和 求10个数的平均值 把10个数逆序输出 求10个数中的最小值 (四)指向字符串的函数: f2(char s) int i; for(i=0;si!=0;i+) si; 使用自定义函数的要点: 1. 2. 3. 4. 自定义函数要写在 main函数的上方 在分析程序的运行时要知道,程序的执行从main函数开始,在 main中结束 自定义函数可以接收主函数传递的多个参数 自定义函数每次只能返回一个结果给主函数 5. 6. 练习(全都用函

17、数实现,输入输出由主函数负责,功能实现由自定义函数负责 求任意两个数的和、差、积(用三个自定义函数实现) 求任意两个数的余数,如果输入的除数为0要输出警告信息 交换两个变量 计算x的10次方(x为双精度) 求等比数列2 4 8 16 32的第n项 查找字符c在字符串s中第一次出现的位置 连接两个字符串 /*连接两个字符串*/ #in clude stdio.h 自定义函数可以通过指针对主函数中的数值进行直接访问(操作) 输入操作一般交给 main函数 #in elude stri ng.h Void f1(char s1, char s2) int i; In=strle n( s1); for(i=0;i=strle n( s2);i+) s1l n+i=s2i; void mai n() char s120,s210; printf(请输入两行字符串:); gets(s1); gets(s2); f1(s1,s2); printf(” 结果是 s,s1); 、亠 X匕h 八、指针 (一) 指针的概念: 1.指针:变量的地址 2 .指针变量:能存指针的变量 3 .指针变量的定义:int *p,x; 4.对于变量指针的操作: 赋值:p=/把x的地址值赋给p,即P指向x 通过P间接访问x: *p; 将x的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论