版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计总结C语言程序设计总结一、C语言程序的基本结构#include“stdio.h"voidmain(){定义变量;程序实现;输出结果;printf}二、变量的定义1.整型:inta,b,s=0;(可以在定义的同时为变量进行赋值) 长整型:long 无符号整型(非负整数):unsigned2.单精度实型:floatx,y,z=1.0;3.双精度实型:doublel,m;4.字符型:charc1='A',c2=’b’;三、变量的赋值1.直接赋值:a=10;//用赋值号“=”将右侧的值赋给左侧的变量2.赋表达式的值:a=3+7;3.赋另外一个变量的值:a=s;//把s的值赋给a变量的输入:输入一个变量:scanf(“%d”,&a);输入多个变量:scanf(“%d%d%d”,&a,&b,&c);int-—%dfloat--%fchar--%cdouble--%lf字符串——%s变量的输出:输出一个提示语句:printf(“xxxxxx");输出一个回车:printf(“\n”);输出一个变量:printf(“xxxis%d”,a);输出多个变量:printf(“xxxx%d,xxxx%d”,a,b);练习:输入圆的半径,求圆的周长。四、常用流程控制语句分支语句:根据条件执行相应的语句条件的形式:a大于0写成a〉0a小于0写成a<0a等于0写成a==0(注意,用两个=)a大于等于0并且小于等于10写成a〉=0&&a<=10a小于0或者a大于10写成a〈0||a>10C语言程序设计总结全文共11页,当前为第1页。(一)单分支if语句(如果满足某个条件,就做某件事情,不满足就向下执行。)C语言程序设计总结全文共11页,当前为第1页。if(条件){执行语句;}(二)双分支if语句(如果满足某个条件,就做某件事情,否则就做另外一件事情。)if(条件){执行语句1;}else{执行语句2;}(三)多分支if语句(满足哪一个条件,就做相应的语句.)if(条件1){执行语句1;}elseif(条件2){执行语句2;}elseif(条件3){执行语句3;}elseif(条件4){执行语句4;}else{执行语句5;}(四)if的嵌套(根据具体情况对if~else~语句进行灵活的运用)其格式如下: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:{语句4;break;}……case值n:{语句n;break;}default:{语句n+1;}}练习:C语言程序设计总结全文共11页,当前为第2页。某自助餐厅规定,浪费食物在20克以下的,每克罚款2元;如浪费超过20克,则超过的部分每克加罚1元。编程求罚款金额.C语言程序设计总结全文共11页,当前为第2页。从键盘输入正方形的边长,如果边长大于零则求出该正方形的周长和面积,否则提示输入错误。输入3个数x,y,z,求其中的最小值。输入3个数x,y,z,将其中最大值放在x中,最小值放在z中,中间值放在y中,然后输出x,y,z.循环语句:在条件成立时重复执行一组语句(一)当型循环whilewhile(条件){循环体}例如:求1+2+3+…100intn=1,s=0;while(n〈=100){s=s+n;n=n+1;}(二)直到型循环do~whiledo{循环体}while(条件);例如:求1+2+3+…100intn=1,s=0;do{s=s+n;n=n+1;}while(n<=100);(三)知起至型循环forfor(循环变量初值;循环变量范围;步长){循环体}例如:求1+2+3+…100intn=1,s=0;for(n=0;n〈=100;n++){s=s+n;}(四)循环的嵌套for(i=1;i<n;i++){……for(j=1;j〈m;j++){……}……}说明:假设某同学参与“打气球游戏”,该同学可以打5局,每局可以打10枪。这里的每局10枪就相当于内循环的次数;5局就相当于5个10枪,也就是外循环的次数。这5*10枪不是一次性打完的,而且每一枪都要记是哪一局的哪一枪打出来的成绩,哪一局对应的是i,哪一枪对应的是j。(五)使用break可以强制退出循环,其用法必须配合if来使用:例如:for(i=0;i〈100;i++){…if(条件)C语言程序设计总结全文共11页,当前为第3页。{C语言程序设计总结全文共11页,当前为第3页。……;break;}…}练习:编程求出公式s=1—1/3+1/5—1/7+…1/101的值并输出编程输出如下图形:***************编程打印九九乘法表编程打印出2016年1月份的日历注意:1月份的总天数是31天,其中1日是星期五。日历如下:一 二 三 四 五 六日1 2 34 5 6 7 8 9 1011 12 13 14 15 16 1718 19 20 21 22 23 2425 26 27 28 29 30 31voidmain(){ inti,n,d;//i是循环变量,n代表总天数,d代表星期; n=31;//n代表一个月的天数 d=5;//d代表星期,星期一为1,星期五为5,星期日为7 printf("一二三四五六日\n”);//一个汉字占两个字符的位置 for(i=1;i<d;i++)//开始日期之前用空格占位,每个日期对应3个空格 printf(”"); for(i=1;i〈=n;i++,d++) { printf("%3d",i); if(d%7==0) { printf("\n"); } }}5。在第4题的程序上进行修改,如果输入任意一个月的总天数及该月第一天的星期(1代表星期日,2代表星期一……以此类推),能否打印出该月日历C语言程序设计总结全文共11页,当前为第4页。6。计算x的n次方(x为双精度,n为非负整数)C语言程序设计总结全文共11页,当前为第4页。voidmain(){ doublex,s; unsignedn,i; s=1; printf(”请输入x和n:"); scanf("%lf%u”,&x,&n); for(i=1;i〈=n;i++) { s=s*x; } printf(”jieguois%.2lf",s);}C语言程序设计总结全文共11页,当前为第5页。
四、数组C语言程序设计总结全文共11页,当前为第5页。一维数组1.一维数组:名字相同且带有下标的一组变量2.定义形式:类型名数组名[长度]例如:inta[10]//a数组中包含有10个整型变量,名字分别是a[0]、a[1]、a[2]……a[9]这里每一个a[n]都是一个普通的整数变量3。一维数组的初始化:定义数组的时候就给每个数组元素赋值inta[5]={2,4,6,8,10};4。对a数组中的每一个元素依次进行操作(访问)的方法如下:inti;for(i=0;i〈9;i++){…a[i]…}例如:通过键盘输入给a数组中的每个元素赋值将a数组中每一个元素都扩大2倍统计a数组中奇数的个数求a数组中的最大值把a数组的元素进行逆置把a数组中的元素进行右移练习:从一维数组中查找x,并返回x所在的位置,否则提示没有找到。求fibonacci数列的第n项。求任意一个数的1.2~1.6倍存入数组.数组中存入10个数并进行循环左移二维数组1。二维数组:名称相同且带有2个下标的一堆变量,逻辑上可看成n行m列的二维表格.2.定义形式:类型名数组名[行长度][列长度]例如:inta[3][4]这里a数组中包含有3*4=12个数组元素,这12个元素的名字分别是:a[0][0] a[0][1] a[0][2] a[0][3]a[1][0] a[1][1] a[1][2] a[1][3]a[2][0] a[2][1] a[2][2] a[2][3]3.二维数组的初始化:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};C语言程序设计总结全文共11页,当前为第6页。4。对a中数组元素的访问,需要定义2个下标变量i和j,a[i][j]代表第i行第j列的元素.C语言程序设计总结全文共11页,当前为第6页。按行的顺序访问:inti,j;for(i=0;i<3;i++){ for(j=0;j<4;j++){…a[i][j]…}}按列的顺序访问:inti,j;for(j=0;j〈4;j++){ for(i=0;i<3;i++){…a[i][j]…}}例如:为二维数组中的每一个元素赋值将二维数组转置输出(行变列,列变行)求每行的平均值求每列的总和求列上的最小值5。行列相等的二维数组叫做矩阵,对矩阵的操作有:求主对角线的和求次对角线的平均值输出该矩阵的上半三角元素练习:对一个3*4的数组,求列上的平均值求一个3*3矩阵的主、次对角线的平均值利用数组输出以下图形字符串1。字符串:字符型的一维数组,可以存储一串字符,并以'\0'做为结束标志。2.字符串的输入与输出charstr1[20],str2[20],str3[20];gets(str1);//字符串的输入scanf(“%s”,str2);//字符串的输入puts(str1);//字符串的输出;printf(“%s",str2);//字符串的输出;3.对字符串的访问:如有chars1[20];intn;字符串的长度:n=strlen(s1);第一个字符:s1[0];最后一个字符:s1[n-1]‘\0’的位置:s1[n]从第一个字符访问到最后一个字符:chars1[20];inti;gets(s1);for(i=0;s[i]!=0;i++){…s[i]…;}从最后一个字符访问到第一个字符:chars1[20];inti;gets(s1);for(i=strlen(s1)—1;i>=0;i——){…s[i]…;}4。字符串常用函数:注意:用以下函数需要用#include“string.h”引入头文件。连接字符串:strcat(str1,str2)比较两个字符串的大小:strcmp(str1,str2);求字符串的长度:strlen(str1);在字符串中查找一个字符,并返回其位置:charc=’a”;strchr(str1,c);C语言程序设计总结全文共11页,当前为第7页。复制字符串:strcpy(str3,str1);C语言程序设计总结全文共11页,当前为第7页。在字符串str1中查找字串str2的位置:strstr(str1,str2)5.字符串常见操作把字符串逆置判断是否为回文五、函数C语言程序设计总结全文共11页,当前为第8页。(一)函数的定义:C语言程序设计总结全文共11页,当前为第8页。1.无返回值、无参函数的定义:void函数名(){定义变量;实现功能;返回;}例:定义一个能够输出10个”*"的程序。voidf1(){inti;for(i=1;i<=10;i++){printf(“*");}return;}2.无返回值、有参函数的定义:void函数名(参数定义列表){定义变量;实现功能;返回;}例:定义一个能够输出n个”*”的程序voidf2(intn){inti;for(i=1;i<=n;i++){printf(“*”);}return;}例:定义一个能够输出n个指定字符的程序。voidf3(charc,intn){inti;for(i=1;i〈=n;i++){printf(“%c”,c);}return;}3.有返回值有参函数的定义:类型函数名(参数定义列表){定义变量;实现功能;返回计算结果;}这里”类型”一定要与”计算结果"一致。例:定义一个计算两个整数加法的函数。intf4(intx,inty){ return(x+y);}例:定义一个能判断奇数的函数intf5(intx){ if(x%2==1)return1;elsereturn0;}(二)函数的调用1.无参函数调用:函数名()2.有参函数调用:函数名(实参列表)这里的实参可以是一个具体的值,或者一个已经有值的变量,也可以是一个表达式。3.函数的调用可以成为一个独立的语句,也可以参与到表达式中进行计算。例如:调用f1函数:f1()调用f2函数:f2(5)或intn=20;f2(n);调用f3函数:f3(‘#',10)或charcc=’$’;intn=8;f3(cc,n);调用f4函数:ints,a=1,b=2;s=f4(a,b);调用f5函数:intx=7;if(f5(x))printf(“奇数”)elseprintf(“偶数”);(三)指向一维数组的函数:f1(inta[],intn){inti;for(i=0;i〈n;i++) {a[i];}}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};f1(a,10);}练习:求10个数的和求10个数的平均值把10个数逆序输出求10个数中的最小值(四)指向字符串的函数:f2(chars[]){ inti;for(i=0;s[i]!=0;i++)
{…s[i]…;}}使用自定义函数的要点:C语言程序设计总结全文共11页,当前为第9页。自定义函数要写在main函数的上方C语言程序设计总结全文共11页,当前为第9页。在分析程序的运行时要知道,程序的执行从main函数开始,在main中结束自定义函数可以接收主函数传递的多个参数自定义函数每次只能返回一个结果给主函数自定义函数可以通过指针对主函数中的数值进行直接访问(操作)输入操作一般交给main函数练习(全都用函数实现,输入输出由主函数负责,功能实现由自定义函数负责):求任意两个数的和、差、积(用三个自定义函数实现)求任意两个数的余数,如果输入的除数为0要输出警告信息交换两个变量计算x的10次方(x为双精度)求等比数列2481632…的第n项查找字符c在字符串s中第一次出现的位置连接两个字符串/*连接两个字符串*/#include"stdio。h"#include"string。h"Void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年企业人力资源管理师之四级人力资源管理师考试题库300道附完整答案(网校专用)
- 2026年注册安全工程师题库300道【完整版】
- 2026云南金江沧源水泥工业有限公司专业技术岗招聘5人考试重点试题及答案解析
- 2025山东青岛市市南区城市发展有限公司及全资子公司招聘10人考试核心题库及答案解析
- 2025黑龙江哈尔滨启航劳务派遣有限公司派遣到哈尔滨工业大学化工与化学学院招聘考试核心题库及答案解析
- 2026中能建城市投资发展有限公司校园招聘笔试重点试题及答案解析
- 2026年河北沧州医学高等专科学校选聘高层次人才50名考试重点题库及答案解析
- 2025福建厦门海峡投资有限公司运营支持岗、软件开发岗、商务岗社会招聘3人考试核心试题及答案解析
- 2025内蒙古锡林郭勒盟油矿医院招聘3人考试备考题库附答案
- 2025四川自贡市沿滩区瓦市镇中心卫生院招聘编外专业技术人员5人备考题库附答案
- 混合型高脂血症基层诊疗中国专家共识(2024年)解读课件
- 市政道路设计技术标投标方案(技术方案)
- 2024-2025学年成都市高一上英语期末考试题(含答案和音频)
- 发热中医护理查房
- 物业公司业主投诉处理和回访制度(3篇)
- 团员证明模板(周五)
- 住宅小区绿化保洁及垃圾收集方案
- DL∕T 5097-2014 火力发电厂贮灰场岩土工程勘测技术规程
- 兼职医生劳务协议
- 达托霉素完整版本
- 科研方法论智慧树知到期末考试答案章节答案2024年南开大学
评论
0/150
提交评论