ppt总结.docx
- 文档编号:29566480
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:18
- 大小:21.23KB
ppt总结.docx
《ppt总结.docx》由会员分享,可在线阅读,更多相关《ppt总结.docx(18页珍藏版)》请在冰豆网上搜索。
ppt总结
C源程序的基本单位是【函数】。
一个C源程序至少包含一个【主函数】。
C源程序的注释由【/*】和【*/】构成。
结构化程序设计主要由【顺序语句】、【分支语句】和【循环语句】语句结构构成。
由C源程序建立可执行程序要经过的步骤是【编译】和【链接】。
在C语言中,基本数据类型除了单精度和双精度类型外,还有【int】【long】【char】。
在C语言中,float型变量在内存占【4】字节,double型变量在内存占【8】字节。
printf(“%d,%d,%d”,a,b,c);与printf(“%d,%d,%d”,(a,b,c),b,c);的区别
前者输出abc的值后者是cbc
若intx=5,n=5;,则计算表达式x+=n++后,x、n的值分别为【10】和【6】。
若inta=6;,则计算表达式a+=a-=a*a后,a的值是【-60】。
若inta;,则表达式(a=4*5,a*2),a+6的值是【26】。
若a、b为整型变量,则以下语句的功能是【交换数据】。
a+=b;b=b-a;a-=b;
有一输入函数scanf(“%d”,k);,则不能是float变量k得到正确数值的原因是【f】和【&】。
(1)判断字符变量ch中是否为字母’y’和’n’。
【分析】对这个判断应当明确是否也包含大写字母。
一般情况下应当包含,因此,只要ch中存储的是字母’Y’、’y’、’N’和’n’之一,命题都成立,显然,这是一种逻辑“或”的关系。
【结论】对应的逻辑表达式为:
ch==’Y’||ch==’y’||ch==’N’||ch==’n’
(2)判断数据x是否在区间[0,60]内。
【分析】x在区间[0,60]内,既要满足x>=0,又要满足x<=60,这是一种逻辑“与”的关系。
这里的“既……又要……”实际表达了同时成立的意图。
【结论】对应的逻辑表达式为:
x>=0&&x<=60
(3)x和y都等于100
【分析】若使命题成立,既要满足x是100,又要满足y是100。
【结论】对应的逻辑表达式为:
x==100&&y==100
思考:
为什么不能写成:
y==x==100或者x==100||y00?
(4)判断a是否为3、5、7的公倍数。
【分析】a为3、5、7的公倍数的条件是,a能被3整除且a能被5整除且a能被7整除,这里的“且”实际是同时成立的意思,因此是逻辑“与”的关系。
【结论】对应的逻辑表达式为:
a%3==0&&a%5==0&&a%7==0
(5)判断a是否能被3、5、7中的任意一个数除尽。
【分析】a能被3、5、7中任一个数整除,则条件成立,也就是a能被3整除或a能被5整除或a能被7整除。
这里应该使用逻辑“或”。
【结论】对应的逻辑表达式为:
a%3==0||a%5==0||a%7==0
思考:
为什么不能写成:
a%(3||5||7)==0或者a%3==0&&a%5==0&&a%7==0?
(6)判断变量year表示的年份是否闰年。
【分析】闰年的规律是:
年份能被4整除,但不能被100整除;或者年份能被400整除。
这个规律已经表明了逻辑关系。
“年份能被4整除,但不能被100整除”可以用year%4==0&&year%100!
=0表示;而“年份能被400整除”可以用year%400==0表示。
【结论】判断年份year是闰年的完整的逻辑表达式为:
(year%4==0)&&(year%100!
=0)||(year%400==0)
在C语言中,表示逻辑“真”用【!
0】。
已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A
C>B的值是【0】。
条件“2
已知inta=3.b=4,c=5;则表达式!
(a+b)+c-1&&b+c/2的值是【1】
以下程序如果输入一个小写字母,则将其循环变为其后的第5个字母输出,如a变为f输出,z变为e输出。
#include”stdio.h”
main()
{
charch;
ch=getchar();
if(ch>=‘a’&&ch<=‘u’)【ch+=5】;
elseif(ch>=‘v’&&ch<=‘z’)【ch=‘a’+ch-’v’】;
putchar(ch);
}
设有变量定义:
inta=10,c=9;,则表达式(--a!
=c++)?
--a:
++c的值是【11】。
若程序运行时输入35/<回车>,则以下程序运行结果是【0.60000】。
main()
{
floatx,y;
charch;
doubler;
scanf(“%f%f%c”,&x,&y,&ch);
switch(ch)
{
case‘+’:
r=x+y;break;
case‘-’:
r=x-y;break;
case‘*’:
r=x*y;break;
case‘/’:
r=x/y;break;
}
printf(“%f\n”,r);
}
下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束输入,请填空。
intn=0,c;
c=getchar();
while(【】)---------c!
=‘\n’
{if(【】)n++;---------c>=‘0’&&c<=‘9’
c=getchar();
}
下面的程序段中循环体运行的次数是【3】
a=10;
b=0;
do{b+=2;a-=b+2;}while(a>=0);
下面程序段的运行结果是【**】
x=2;
do{printf(“*”);x--;}while(!
x==0);
若有定义:
doublex[3][5];则x数组中,行下标的下界是【0】,列下标的上界是【4】。
若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};,则a[1][2]的值是【0】,a[2][1]的值是【6】。
以下程序以每行4个数据的形式输出a数组元素,请填空。
#defineN20
main()
{inta[N],i;
for(i=0;i for(i=0;i {if(【】)【】-------i%4==0--------printf(“\n”); printf(“%3d”,a[i]);} } ⏹在C语言中,一般函数由两部分组成,它们是【函数头】和【函数体】。 ⏹下面add函数的功能是返回两个数的和,函数中错误的部分是【void】,改正后应为【float】。 voidadd(floata,floatb) {floatc;c=a+b;returnc;} ⏹下面求xy的pow函数中的空应当如何填? intpow(intx,inty) {intj; for(【j=1】;【y>0】;【y--】)j=j*x; returnj;} ⏹若定义: inta[4]={0,1,2,3};int*p=&a[2];,则++(*p)的值是【3】,而*--p的值是【1】。 ⏹若有以下定义和语句, ints[2][3]={1,2,3,4,5,6},(*p)[3];p=s; 则p+1表示哪个数组【s[1]】。 p+1与s[1]的类型不同 ⏹请写出符号*的意义【乘法运算】【指针声明】【间接运算】。 ⏹请写出符号&的意义【取变量的指针(地址)】【位的与运算】。 ⏹文件操作前,必须先【打开】,操作完毕后,必须【关闭】。 ⏹要以“r”方式成功打开文件,必须在【指定路径下存在该文件】。 ⏹要以“w”方式成功打开文件,有可能会【将原来的文件删除】。 程序 1.以下程序的输出结果是: ____。 #include main() {inta=252; printf("a=%oa=%#o\n",a,a); printf("a=%xa=%#x\n",a,a); } a=374a=0374 a=fca=0xfc 2.求2个数中较大者。 #include intmax(intx,inty);/*对被调用函数max的声明*/ voidmain()/*主函数*/ { inta,b,c;/*定义变量a、b、c*/ scanf(″%d,%d″,&a,&b);/*输入变量a和b的值*/ c=max(a,b);/*调用max函数,将得到的值赋给c*/ printf(″max=%d\n″,c);/*输出c的值*/ } intmax(intx,inty)/*求2个数中较大者*/ { intz; if(x>y)z=x; elsez=y; return(z); } 3.大小写字母的转换 #include voidmain() { charc1,c2; c1=’a’; c2=’b’; c1=c1-32; c2=c2-32; printf(“%c%c″,c1,c2); } 4.输入三角形的三边长,求三角形面积 ⏹假设: 三个边长a,b,c能构成三角形 ⏹已知面积公式: ⏹s=(a+b+c)*0.5 ⏹area=sqrt(s*(s-a)*(s-b)*(s-c)) #include #include voidmain() { floata,b,c,s,area; scanf(“%f,%f,%f,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); } 5.输入两个实数,按代数值由小到大的顺序输出这两个数。 #include voidmain() { floata,b,t; scanf(“%f%f”,&a,&b); if(a>b) {t=a; a=b; b=t; } printf(“%5.2f,%5.2f\n”,a,b); } #include voidmain() { floata,b,t; scanf(“%f%f”,&a,&b); if(a printf(“%5.2f,%5.2f\n”,a,b); else printf(“%5.2f,%5.2f\n”,b,a); } 6.输入三个数a,b,c,要求按由小到大的顺序输出,要求仅使用一条语句printf("%5.2f,%5.2f,%5.2f\n",a,b,c); #include voidmain() { floata,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(“%5.2f,%5.2f,%5.2f\n”,a,b,c); } 7.输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。 然后输出最后得到的字符。 #include voidmain() {charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')? (ch+32): ch; printf("%c\n",ch); } ⏹continue语句: 仅在循环中与if配合使用,继续循环。 即跳过循环体中continue语句下面尚未执行的语句,接着进行下一次循环,(是否执行循环由条件决定)。 ⏹一般与if配合使用: if(条件)continue; 例6.5把100~200之间的不能被3整除的数输出。 #include voidmain() {intn; for(n=100;n<=200;n++) { if(n%3==0)continue; printf("%d″,n); } } 8.在给毕业设计评分时,往往需要将计算出的百分制成绩转换为5分制成绩,分别给出“优秀”、“良好”、“中等”、“及格”和“不及格”这样的评价。 现在要编写程序帮助实现以上功能。 具体的评价标准是: 90~100分(包括90分)为优秀;80~89分(包括80分)为良好;70~79分(包括70分)为中等;60~69分(包括60分)为及格;0~59分为不及格。 #include voidmain() {intgrade; printf("本程序实现百分制成绩到5分制成绩的转换。 \n"); printf("请输入百分制成绩: \n"); scanf("%d",&grade); switch(grade/10) { case10: case9: printf("恭喜! 你的评价是: 优秀"); break; case8: printf("不错! 你的评价是: 良好"); break; case7: printf("还行! 你的评价是: 中等"); break; case6: printf("好悬! 你的评价是: 及格"); break; case5: case4: case3: case2: case1: case0: printf("完了! 你的评价是: 不及格"); } printf("\n"); } 9.一元二次方程ax2+bx+c=0的求解。 #include #include voidmain() { floata,b,c,delta,x1,x2,realpt,imagpt; printf("本程序求解一元二次方程\n"); printf("请输入一元二次方程的三个参数: \n"); scanf("%f%f%f",&a,&b,&c); if(a! =0) { delta=b*b-4*a*c; if(delta>0) { x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf("方程的两个不等实根为: x1=%8.4fx2=%8.4f\n",x1,x2); } elseif(fabs(delta)<=1e-6) { x1=x2=-b/(2*a); printf("方程的两个相等实根为: x1=x2=%8.4f\n",x1); } else { delta=-delta; realpt=-b/(2*a); imagpt=sqrt(delta)/(2*a); printf("方程的两个共轭复根为: \n"); printf("%8.4f+%8.4fi\n",realpt,imagpt); printf("%8.4f-%8.4fi\n",realpt,imagpt); } } else printf("这不是一个一元二次方程。 \n"); } 10.求1~n的奇数之和。 【编程思路】循环变量的初值为1,每次增2即可。 #include"stdio.h" voidmain() { intsum=0,i,n; do { printf("请输入较大的正数: \n"); scanf("%d",&n); }while(n<=0); i=1;/*循环变量的初始状态*/ do { sum=sum+i; i=i+2; }while(i<=n); printf("sum=1+3+5+...+%d=%d\n",i-2,sum); } 11.求n的平方根 根据迭代公式,(当|x1-x0|<10-5时停止迭代)。 #include"stdio.h" #include"math.h" voidmain() { intn; doublex0,x1; do { printf("请输入大于0的数: \n"); scanf("%d",&n); }while(n<=0); x1=n/2.0;/*初次计算的近似值*/ do { x0=x1;/*迭代*/ x1=1.0/2*(x0+n/x0); }while(fabs(x1-x0)>=1e-5); printf("%d的平方根是%8.5f\n",n,x1); } 12.韩信点兵: 1千人左右的士兵,三三数之余1,五五数之余1,七七数之余1。 for(i=800;i<1300;i++) if(i%3==1&&i%5==1&&i%7==1) printf(“%d\n”,i); 13.礼炮: ABC三舰艇同时开始各放礼炮21响,A隔3分钟,B隔5分钟,C隔7分钟再次放礼炮。 问等距之人听到几声炮响? count=0; for(t=0;t<=140;t++) if(t<=60&&t%3==0||t<=100&&t%5==0||t%7==0) count++; 14.查找等于x的元素(的位置) intFind_x(intdata[],intn,intx) { inti; for(i=0;i if(data[i]==x)break;/*找到则停止循环*/ if(i returni+1; else/*到达末尾说明没有找到*/ return0; } 15.排序——冒泡法与选择法 冒泡法 voidbubblesort(int*data,intn) { inti,j,temp; for(i=0;i for(j=0;j if(data[j]>data[j+1]) {temp=data[j];data[j]=data[j+1]; data[j+1]=temp; } } 选择法 voidselectsort(int*data,intn) { inti,j,k,temp; for(i=0;i { k=i; for(j=i+1;j if(data[j] temp=data[i]; data[i]=data[k]; data[k]=temp; } } 16.输入n个数据,求(输出)最大最小值,求平均数,求大于(小于)平均数的数据个数,按降序次序排序输出。 main() {inti,data[20],n=20; intmax,min,aver; indata(data,n); max=getmax(data,n); ……. } voidindata(int*fdd,intn) {for(i=0;i scanf(“%f”,&fdd[i]); } intgetmax(intd[],intn) {inti,j=0,max=d[0]; for(i=1;i if(d[i]>max){ max=d[i];} returnmax; } floataverage(int*array,intn) {inti; floataver,sum=array[0]; for(i=1;i<n;i++) sum=sum+array[i]; aver=sum/n; returnaver; } intcount(ints[],intn,intf) { intcnt=0,i; for(i=0;i if(s[i]>=f)cnt++; returncnt; } ……….
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ppt 总结