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

下载本文档

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

文档简介

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

2、 / 把 s 的值赋给 a变量的输入:输入一个变量: scanf( “%d” , &a);输入多个变量: scanf( “%d%d%”d, &a, &b, &c);int-%d float-%f char-%c double-%lf字符串-%s 变量的输出:printf(“xxxxxx ”);2 欢迎下载。输出一个回车:printf(输出一个变量:printf(输出多个变量:printf(练习:4 输入圆的半径,求圆的周长。n ”);xxx is %d ”, a);xxxx%d, xxxx%d ”,a,b);求圆的周长。精品文档四、常用流程控制语句分支语句:根据

3、条件执行相应的语句条件的形式:a大于0 写成a>0a小于0 写成 a<0a等于。写成a=0(注意,用两个二)a 大于等于0并且小于等于10 写成a>=0 && a<=10a小于0或者a大于10写成a<0 | a>10(一)单分支if语句(如果满足某个条件,就做某件事情,不满足就向下执行。)if(条件)执行语句;(二)双分支if语句(如果满足某个条件,就做某件事情,否则就做另外一件事情。)if( 条件) 执行语句1; else执行语句2; (三)多分支if语句(满足哪一个条件,就做相应的语句。)if( 条件1) 执行语句1; else if(

4、条件 2)执行语句2; else if( 条件 3)执行语句3; else if( 条件 4)执行语句4; else执行语句5; (四)if的嵌套(根据具体情况对ifelse语句进行灵活的运用)其格式如下:if(条件1)if( 条件2)执行语句a; else执行语句b; elseif(条件3)执行语句c; else执行语句d; (五)多分支语句switch (根据switch后的值,执行相对应的case语句,此语句了解即可,因为它的作用完全可以用多分支if来实现)switch ( 表达式)case 值 1 : 语句 1; break;case 值 2: 语句 2; break;case 值 3

5、: 语句 4; break;case 值 n: 语句 n; break;default: 语句 n+1;练习:2 .某自助餐厅规定,浪费食物在20克以下的,每克罚款2元;如浪费超过20 克,则超过的部分每克加罚1元。编程求罚款金额。3 .从键盘输入正方形的边长,如果边长大于零则求出该正方形的周长和面积, 否则提示输入错误。4 .输入3个数x,y,z ,求其中的最小值。5 .输入3个数x,y,z ,将其中最大值放在x中,最小值放在z中,中间值放在 y中,然后输出x,y,z 。循环语句:在条件成立时重复执行一组语句(一)当型循环whilewhile(条件)循环体例如:求 1+2+3+- -100

6、int n=1,s=0;while(n<=100)s=s+n;n=n+1;(二)直到型循环 dowhile do 循环体 while(条件);例如:求 1+2+3+- -100 int n=1,s=0;dos=s+n;n=n+1; while(n<=100);(三)知起至型循环 forfor(循环父重初值;循划、义重范围;步长)循环体例如:求 1+2+3+- -100 int n=1,s=0;for(n=0;n<=100;n+)s=s+n;4欢迎下载精品文档(四)循环的嵌套说明:for(i=1;i<n;i+)1.假设某同学参与“打气球游戏”,该同学可以打 5局,每局可以

7、打10枪。这里的每局10枪就相当于内循环的for(j=1;j<m;j+)次数;5局就相当于5个10枪,也就是外循环的次数。2.这5*10枪不次性打完的,而且每一枪都要记是哪一局的哪一枪打出来的成绩,哪一局对应的是i ,哪一枪对应的是j。(五)使用break可以强制退出循环,其用法必须配合if来使用:例如:for(i=0;i<100;i+)if(条件);break;练习:1 .编程求出公式s=1-1/3 + 1/5-1/7+1/101的值并输出2 .编程输出如下图形:* * * * * * *3 .编程打印九九乘法表4 .编程打印出2016年1月份的日历注意:1月份的总天数是31天,

8、其中1日是星期五。日历如下:一二四五六日12356789101213141516171920212223242627282930314111825void main() (_ 。4欢迎下载精品文档int i,n,d; /i 是循环变量,n 代表总天数,d 代表星期 ;n=31; /n代表一个月的天数d=5; /d代表星期,星期一为1,星期五为5,星期日为7printf(" 一 二 三 四 五 六 日 n"); / 一个汉字占两个字符的位置for(i=1;i<d;i+) / 开始日期之前用空格占位,每个日期对应 3个空格 printf(" ");fo

9、r(i=1;i<=n;i+,d+)printf("%3d",i);if(d%7=0) printf("n");5 . 在第 4 题的程序上进行修改,如果输入任意一个月的总天数及该月第一天的星期(1代表星期日,2代表星期一 以此类推),能否打印出该月日历6 . 计算 x 的 n 次方 (x 为双精度, n 为非负整数)void main()double x,s;unsigned n,i;s=1;printf(" 请输入 x 和 n: ");scanf("%lf%u",&x,&n);for(i=1

10、;i<=n;i+)s=s*x;printf("jieguo is %.2lf",s);7 欢迎下载。精品文档四、数组一维数组1 . 一维数组:名字相同且带有下标的一组变量2 .定义形式:类型名数组名长度例如:int a10 /a数组中包含有10个整型变量,名字分别是 a0、a1、a2a9这里每一个an都是一个普通的整数变量3 . 一维数组的初始化:定义数组的时候就给每个数组元素赋值 int a5=2,4,6,8,10;4 .对a数组中的每一个元素依次进行操作(访问)的方法如下:int i;for(i=0;i<9;i+)ai .例如:通过键盘输入给a数组中的每个元

11、素赋值将a数组中每一个元素都扩大2倍统计a数组中奇数的个数求a数组中的最大值把a数组的元素进行逆置把a数组中的元素进行右移练习:1. 从一维数组中查找x,并返回x所在的位置,否则提示没有找到。2. 求fibonacci 数列白第n项。3. 求任意一个数的1.21.6倍存入数组。4. 数组中存入10个数并进行循环左移二维数组1 .二维数组:名称相同且带有2个下标的一堆变量,逻辑上可看成 n行m列的二维表格。2 .定义形式:类型名数组名行长度北列长度例如:int a34这里a数组中包含有3*4=12个数组元素,这12个元素的名字分别是:a0 a01 a02 a03a10 a11 a12 a13a2

12、0 a21 a22 a233 .二维数组的初始化: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;for(i=0;i<3;i+)for(j=0;j<4;j+)按列的顺序访问:int i,j;for(j=0;j<4;j+)for(i=0;i<3;i+)aijaij例如:为二维数组中的每一个元素赋值将二维数组转置输出(行变列,列变行)求每行的平均值求每列的总和求列上的最小值5 .行列相等的二维数组叫做矩阵,对矩阵的操作有:求主对角

13、线的和求次对角线的平均值输出该矩阵的上半三角元素练习:1. 对一个3*4的数组,求列上的平均值2. 求一个3*3矩阵的主、次对角线的平均值3. 利用数组输出以下图形2222422662281282210202010221230403012 2字符串1 .字符串:字符型的一维数组,可以存储一串字符,并以0律:为结束标志。2 .字符串的输入与输出char str120,str220,str320;gets(strl); / 字符串的输入scanf(%S',str2); / 字符串的输入puts(strl); / 字符串的输出;printf(%S',str2); /字符串白输出;3

14、.对字符串的访问:如有 char s120; int n;字符串的长度:n=strlen(s1);第一个字符:s10;最后一个字符:s1n-10'的位置:s1n从 A 个字符访问到最舟-个字符:char s120;int i;gets(sl);for(i=0;si!=0;i+)从最舟-个字符访问到个字符:char s120;int i;gets(s1);for(i= strlen(s1)-1;i>=0;i-)O si;si;4 .字符串常用函数:注意:用以下函数需要用#include String.h”引入头文件。连接字符串:strcat(str1,str2)比较两个字符串的大小

15、:strcmp(stn,str2);求字符串的长度:strlen(strl);在字符串中查找一个字符,并返回其位置:char c= 'a" strchr(str1, c);复制字符串:strcpy(str3,str1);在字符串strl中查找字串 str2 的位置:strstr(str1,str2)5 .字符串常见操作把字符串逆置判断是否为回文五、函数(一)函数的定义:1.无返回值、无参函数的定义:void函数名()定义变量;实现功能;返回;例:定义一个能够输出void f1()int i;for(i=1;i<=10;i+) printf(*'");r

16、eturn;10 个”*”的程序。2.无返回值、有参函数的定义:void 函数名(参数定义列表)定义变量;实现功能;返回;例:定义一个能够输出void f2(int n)int i;for(i=1;i<=n;i+) printf(*'");return;n个*的程序例:定义一个能够输出n个指定字符的程序。void f3(char c,int n)int i;for(i=1;i<=n;i+)printf(%cc);return;3.有返回值有参函数的定义:例:定义一个计算两个整数加法的函数。类型函数名(参数定义列表)int f4(int x,int y)定义变量;r

17、eturn (x+y);实现功能;返回计算Z果;例:定义一个能判断奇数的函数int f5(int x)这里“类型“一定要与“计算结果”一致。if(x%2=1)return 1;elsereturn 0;(二)函数的调用1.无参函数调用:函数名 ()2.有参函数调用:函数名 (实参列表)这里的实参可以是一个具体的值,或者一个已经有值的变量,也可以是一个表达式。3.函数的调用可以成为一个独立的语句,也可以参与到表达式中进行计算。例如:调用fl函数:f1()调用 f2 函数:f2(5) 或 int n=20; f2(n);调用 f3 函数:f3( #",10) 或 char cc= $&#

18、39;int n=8; f3(cc,n);调用 f4 函数:int s,a=1,b=2;s=f4(a,b);调用f5函数:int x=7;if(f5(x) printf(奇数”)else printf( 偶数”);(三)指向一维数组的函数:f1(int a,int n)int i;for(i=0;i<n;i+)ai;void main()int a10=123,4,5,6,7,8,9,10;f1(a,10);练习:求10个数的和求10个数的平均值11欢迎下载精品文档把 10 个数逆序输出求 10 个数中的最小值(四)指向字符串的函数:f2(char s)int i;for(i=0;si!

19、=0;i+)si;使用自定义函数的要点:1. 自定义函数要写在main 函数的上方main 中结束):2. 在分析程序的运行时要知道,程序的执行从main 函数开始,在3. 自定义函数可以接收主函数传递的多个参数4. 自定义函数每次只能返回一个结果给主函数5. 自定义函数可以通过指针对主函数中的数值进行直接访问(操作)6. 输入操作一般交给main 函数练习 ( 全都用函数实现,输入输出由主函数负责,功能实现由自定义函数负责求任意两个数的和、差、积(用三个自定义函数实现)求任意两个数的余数,如果输入的除数为 0 要输出警告信息交换两个变量计算 x 的 10 次方( x 为双精度)求等比数列2 4 8 16 32 的第n项查找字符 c 在字符串 s 中第一次出现的位置连接两个字符串/* 连接两个字符串 */#include "stdio.h"#include "string.h"Void f1(char s1,

温馨提示

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

评论

0/150

提交评论