《C语言补考复习题》PPT课件.ppt_第1页
《C语言补考复习题》PPT课件.ppt_第2页
《C语言补考复习题》PPT课件.ppt_第3页
《C语言补考复习题》PPT课件.ppt_第4页
《C语言补考复习题》PPT课件.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1,1、考试参考编程题目,2、期中考试试卷,3、课件中的例题,一、已有一个从大到小排好序的数组,现输入一个数,要求按原来的排序规律将它插入到数组中。二、冒泡法排序:子函数调用,数组名或者指针作为参数。三、选择法排序:子函数调用,数组名或者指针作为参数。四、编写程序,判断输入的字符串是否是回文。所谓“回文”,即顺读和倒读都一样的字符串。,2,1、考试参考编程题目,五、字符串反序存放。六、递归:求n的阶乘和fibo数列。七、伪随机数。八、大小写字母转换。九、用指针做参数,求字符串的长度。,3,1、考试参考编程题目,4,3、课件中的例题,5,分析:输入三角形的三边,用下述公式计算三角形的面积:其中s=(a+b+c)/2,/*功能:输入三角形三边,计算面积*/#include#includevoidmain()floata,b,c,s,area;printf(Pleaseenter3sidesofatriangle:n);scanf(%f,%f,%f,6,以下不能正确表示算式的是:(a)(a*b)/c*d(b)a*b/(c*d)(c)a/c*b/d(d)a*b/c/d,解答:(a)c语言中表达式的计算是按算符的优先级来进行的。,7,以下的变量定义中合法的是:(a)float3_four=3.4;(b)int_abc_=22;(c)doublea=1+4e2.0;(d)shortdo=15;,8,C语言中运算对象必须是整型的运算符是:(a)%=(b)/(c)=(d)c=a/b;A.0B.1/2C.0.5D.1,答案:B、C,答案:A,13,练习,:已知i=7j=i+;j=?i=?j=+i;j=?i=?,7,8,8,8,14,若k和j为int型变量,运算表达式j=3;k=+j;j+;执行后,变量k的值为_,变量j的值为_。,练习,4,5,15,练习:,已知:doublea;floatb;intc;chard;执行语句c=(d+b)*c-a;后,变量c的数据类型是()。A.doubleB.floatC.intD.char,正确答案:C,16,练习:,若有定义:floata=3.9,b=6.9;intc;执行语句c=a+(int)(a+b)%3/2;后,c的值为()。A.3B.3.9C.4D.4.4,正确答案:A,17,inta=-1,b=25,c=125;longx=356142;printf(%d,%5dn,a,b);printf(%5d,%2dn,c,c);printf(%ld,%dn,x,x);输出结果为:,例:,18,写出下面算术表达式的值:,设x=2.5,a=10,y=4.7求表达式的值x+a%3*(int)(x+y)%2/4x=2.5;a=10;y=4.7;a%310%31(int)(x+y)(int)7.27a%3*(int)(x+y)1*77a%3*(int)(x+y)%27%21a%3*(int)(x+y)%2/41/40 x+a%3*(int)(x+y)%2/42.5+0,最后结果:2.5,19,19,例1:1、关系表达式“8=4”的值为“假”,表达式的值为0。2、关系表达式“50”的值为“真”,表达式的值为1。,20,结合性:,例2:ab!=c等价于ca-b等价于a=bc等价于例3:inta=0,b=1,c=2;a=c值为?a3printf(inputintegernumber(endby0):);scanf(%d,28,#includevoidmain()inta=1;printf(inputintegernumber(endby0):);scanf(%d,30,31,例1.编程计算1+2+3+10000,方案一、#includevoidmain()inti=1,sum=0;while(i=10000)/*循环结构*/sum+=i;i+;printf(“sum=%dn”,sum);,sum=sum+i;,i=i+1;,32,#include#definen10000voidmain()inti=1,sum=0;while(i=n)sum+=i;i+;printf(“sum=%dn”,sum);,方案二、,33,#includevoidmain()inti=1,sum=0,n;printf(“请输入n的值:n”);scanf(“%d”,printf(“sum=%dn”,sum);,方案三、,34,例3.求满足1+2+3+n500中最大的N,并求其和,编写程序实现。,分析,本题还是一个累加求和的问题,当累加和sum500时反复执行循环,否则结束循环,步骤,定义变量:sum,n;sum和n分别赋初值;n=0;sum=0;当sum500时反复执行循环,否则结束循环。语句为:While(sum500)+n;sum+=n;,35,#includevoidmain()intn=0,sum=0;while(sum500)+n;sum+=n;printf(n=%d,sum=%dn,n-1,sum-n);,为什么不是n,sum?,结果,n=31,sum=496,程序,1+2+3+n500,36,例6.用for语句计算1+2+.+10,#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum+=i;printf(“%d”,sum);,37,例6与用while、do-while实现差异?,#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum+=i;printf(“%d”,sum);,inti=1,sum=0;while(i=10)sum+=i;i+;,inti=0,sum=0;doi+;sum+=i;while(i10);,38,例7.打印乘法“九九表”,39,分析:,定义变量i,j,m;i表示行,从1变化到9;j表示列,从1变化到9;m=i*j;表示表中的值;i取初值1;j从1变化到i;计算出每一个m=i*j,输出m,但不换行。输出换行;i做一次变化,如果i9,则,转回步骤6;否则循环结束。,#includevoidmain()inti=0,j=0;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%4d,i*j);printf(n);,40,41,例7.一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?floath=100.0,sum=0.0;intn;for(n=1;n+)sum+=h;h=h/2;/落地后反弹跳回原高度的一半if(n=10)break;/终止执行本循环sum+=h;printf(“共经过%f米,第10次反弹%f米n,sum,h);,42,例8.打印出100-200之间所有能被7整除的整数#includevoidmain()intn;for(n=100;nb)returna;elsereturnb;,voidmain()intmax(inta,intb);/*函数声明*/intx,y,z;printf(inputtwonumbers:n);scanf(%d%d,例4:函数调用,45,例5:,voidexch(intx,inty)intt;t=x;x=y;y=t;,此函数的功能?,46,输入2,5,显示:a=2,b=5,调用子函数后显示:a=2,b=5,voidmain()inta,b;printf(“inputa,b:n);scanf(%d,%d,/*函数声明*/f();/*函数调用*/voidf()/*子函数*/inti=1,j=1,ab=0,num=0;for(i=1;i4;i+)for(j=1;j=3时,fibo(n)=fibo(n-2)+fibo(n-1);,64,longfibo(intn)longm;if(n=1)m=1;elseif(n=2)m=1;elsem=fibo(n-2)+fibo(n-1);returnm;,2、求fibonacci数列的第n项的值;,65,#includevoidmain()intf2,f1,f,n;f2=1;f1=1;printf(“%-8d%-8d”,f2,f1);for(n=3;n=12;n+)f=f1+f2;printf(“%8d”,f);f2=f1;f1=f;,66,例:编写程序,用来生成一个随机小写字符串。#include#include#includevoidmain()srand(time(NULL);for(inti=1;i=20;i+)printf(%c,97+rand()%26);,1.有一个一维数组,有10个整数存放其中,找出其中最大的一个数。,67,67,数组a,max,=,a0;,for(i=1;imax)max=ai;,定义,main()inti,max,x10;,printf(enterdata:n);for(i=0;i10;i+)scanf(%d,max=x0;for(i=1;imax)max=xi;,输入,处理,输出,printf(max=%dn,max);,2.用冒泡法对10个整数按从小到大的顺序排列。,什么是冒泡法排序?排序的过程核心程序段完整程序,69,69,怎么做?,冒泡法排序的思想,假设有n个数,将相邻的两个数依次进行比较,使小的在前,大的在后,那么第一轮比较n-1次就把最大的数排到了最后。第二轮比较n-2次,就把次大的数排到了倒数第二,依此类推,直到第n-1轮比较1次,将最小的数排到了第一,算法结束。算法的整体思路是让大的数不断地往下沉,小的数不断地往上冒,所以叫冒泡排序法。,70,70,71,3.选择法排序,要求:将n个数按照从大到小的顺序排列。前提:n个数放入一个一维数组中。选择法排序的思想:第一次,从n个数中,找出一个最大的,放到第一个数组元素的位置处。第二次,从剩下的n-1个数中,找出一个最大的,放到第二个数组元素的位置处。以此类推,第n-1次,从剩下的两个数中,找出一个最大的放到第n-1个数组元素的位置处。,72,72,程序:,for(i=0;iap)p=j;if(p!=i)med=ai;ai=ap;ap=med;for(i=0;i=A,79,strlwr(str);,80,80,81,81,引例:全局变量的作用域举例分析下面程序运行结果,例:用函数来实现两个数的交换。,#includevoidmain()inta=3,b=5;int*pa,*pb;voidswap(int*,int*);pa=,82,voidswap(int*p1,int*p2)inttemp;temp=*p1;*p1=*p2;*p2=temp;,82,83,83,84,例1:将字符串a复制到字符串b。,main()chara80,b80,*pa,*pb;pa=a;pb=b;scanf(%s,pa);while(*pa)!=0)*(pb+)=*(pa+);*pb=0;printf(%s,b);,84,85,85,例2:输出字符串中的部分数据,86,86,练习:,1.以下对二维数组a的正确定义是()。A.floata(3,4);B.floata(3)(4);C.floata34;D.floata3;,87,87,C,练习:,88,88,2.请读程序片段:charstr=”abcd”,*p=str;printf(“%dn”,*(p+1);上面程序片段的输出结果是()。字符a的ASCII码B.字符b的ASCII码字符a的地址D.字符b的地址,B,3.以下程序的输出结果是()。,89,89,3.以下程序的输出结果是()。A.6B.因实参类型与形参类型不一致,函数用产生错误C.3D.因fun函数无返回值类型,故编译时提示产生错误,90,90,C,4.为判断两个字符串str1和str2是否相等,应使用()。A.if(str1=str2)B.if(str1=str2)C.if(strcpy(str1,str2)D.if(strcmp(str1,str2)=0),91,91,D,5.以下程序的结果是()。#includestructWWWintX;intY;voidmain()structWWWA3=7,8,9,10,12,13;inta;a

温馨提示

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

评论

0/150

提交评论