1、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);的区别前者 输出 a b
2、c 的值 后者 是 c b c若int x=5,n=5;,则计算表达式x+=n+后,x、n的值分别为【 10 】和【 6 】。若int a=6;,则计算表达式a+=a-=a*a后,a的值是【 -60 】。若int a;,则表达式(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
3、中存储的是字母Y、y、N和n之一,命题都成立,显然,这是一种逻辑“或”的关系。【结论】对应的逻辑表达式为: ch=Y | ch =y | ch =N | ch=n (2)判断数据x是否在区间0,60内。【分析】x在区间0,60内,既要满足x=0,又要满足x=0 & xB&CA|AB的值是【 0 】。条件“2x5或x2&x5|x=a&ch=v&ch=z) 【 ch=a+ch-v 】; putchar(ch);设有变量定义:int a=10,c=9;,则表达式(-a != c+) ? -a : +c的值是【 11 】。若程序运行时输入3 5/,则以下程序运行结果是【 0.60000 】。main(
4、) float x,y; char ch; double r; 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(“%fn”,r);下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束输入,请填空。 int n=0,c; c=getchar(); while(【】) - c!=n if(【】) n+; - c=0 & c=0);下面程序段的运行结果是【 * 】 x=2;d
5、o printf(“*”); x- ; while(!x=0);若有定义:double x35; 则x数组中,行下标的下界是【 0 】,列下标的上界是【 4 】。若有定义:int a34=1,2,0,4,6,8,10;,则a12的值是【 0 】,a21的值是【 6 】。以下程序以每行4个数据的形式输出a数组元素,请填空。 #define N 20 main() int aN,i; for(i=0;iN;i+) scanf(“%d”,【】); - &ai for(i=0;i0 】;【 y- 】) j=j*x; return j; 若定义: int a4= 0,1,2,3 ; int *p=&a2
6、;,则+(*p)的值是【3】,而*-p的值是【1】。 若有以下定义和语句, int s23=1,2,3,4,5,6, (*p)3; p=s; 则p+1表示哪个数组【s1】。 p+1与s1的类型不同 请写出符号*的意义【乘法运算】 【指针声明】 【间接运算】 。 请写出符号&的意义【取变量的指针(地址)】【位的与运算】。 文件操作前,必须先【打开】 ,操作完毕后,必须 【关闭】 。 要以“r”方式成功打开文件,必须在【指定路径下存在该文件】。 要以“w”方式成功打开文件,有可能会【将原来的文件删除】。程序1.以下程序的输出结果是:_。 #include main() int a=252; pri
7、ntf(a=%o a=%#on,a,a); printf(a=%x a=%#xn,a,a);a=374 a=0374a=fc a=0xfc2.求2个数中较大者。#include int max(int x,int y); /* 对被调用函数max的声明 */void main( ) /* 主函数*/ int a, b, c; /*定义变量a、b、c */ scanf(d,d,&a,&b); /*输入变量a和b的值*/ c=max(a,b); /*调用max函数,将得到的值赋给c */ printf(max=dn,c); /*输出c的值*/int max(int x, int y) /* 求2个
8、数中较大者 */ int z; if (xy) z=x; else z=y; return (z); 3.大小写字母的转换#include void main() char c1,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#includevoid main() float a,b,c,s,area; scanf(“%f,%f,%f,&
9、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.2fn”,a,b,c,s); printf(“area=%7.2fn”,area);5.输入两个实数,按代数值由小到大的顺序输出这两个数。#includevoid main() float a,b,t;scanf(“%f%f”,&a,&b);if(ab) t=a; a=b; b=t; printf(“%5.2f,%5.2fn”,a,b);#includevoid main() float a,b,t;
10、 scanf(“%f%f”,&a,&b); if(ab) printf(“%5.2f,%5.2fn”,a,b); else printf(“%5.2f,%5.2fn”,b,a);6. 输入三个数a,b,c,要求按由小到大的顺序输出,要求仅使用一条语句printf(%5.2f,%5.2f,%5.2fn,a,b,c);#include void main ( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(“%5.2f,%5
11、.2f,%5.2fn”,a,b,c);7. 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#include void main ( ) char ch; scanf(%c,& ch); ch=(ch=A& ch=Z)?(ch+32):ch; printf(%cn,ch); continue语句:仅在循环中与if配合使用,继续循环。即跳过循环体中continue语句下面尚未执行的语句,接着进行下一次循环,(是否执行循环由条件决定)。 一般与if配合使用: if(条件) continue;例6.5 把100200之间的不能被3整除的数输出。
12、 #include void main() int n; for (n=100;n=200;n+) if (n%3=0) continue; printf(%d ,n); 8. 在给毕业设计评分时,往往需要将计算出的百分制成绩转换为5分制成绩,分别给出“优秀”、“良好”、“中等”、“及格”和“不及格”这样的评价。现在要编写程序帮助实现以上功能。具体的评价标准是: 90100分(包括90分)为优秀; 8089分(包括80分)为良好;7079分(包括70分)为中等; 6069分(包括60分)为及格; 059分 为不及格。#includevoid main()int grade;printf(本程序
13、实现百分制成绩到5分制成绩的转换。n);printf(请输入百分制成绩:n);scanf(%d,&grade);switch(grade/10) case 10: case 9: printf(恭喜!你的评价是:优秀); break; case 8: printf(不错!你的评价是:良好); break; case 7: printf(还行!你的评价是:中等); break; case 6: printf(好悬!你的评价是:及格); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(完了!你的评价是:不及格); prin
14、tf(n);9. 一元二次方程ax2+bx+c=0的求解。#include#includevoid main ( ) float a,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(delta0) x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); printf(方程的两个不等实根为:x1=%8.4f x2=%8.4fn,x1,x
15、2); else if(fabs(delta) = 1e-6) x1=x2=-b/(2*a); printf(方程的两个相等实根为:x1=x2=%8.4fn,x1); else delta=-delta; realpt=-b/(2*a); imagpt=sqrt(delta)/(2*a); printf(方程的两个共轭复根为:n); printf(%8.4f+%8.4fin,realpt,imagpt); printf(%8.4f-%8.4fin,realpt,imagpt); else printf(这不是一个一元二次方程。n); 10.求1n的奇数之和。【编程思路】循环变量的初值为1,每次
16、增2即可。#include stdio.hvoid main() int sum=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=%dn, i-2,sum);11. 求n的平方根根据迭代公式 , (当|x1-x0|10-5时停止迭代)。#include stdio.h#include math.hvoid main( ) int n; double x0,x1; do printf
17、(请输入大于0的数:n); scanf(%d,&n); while(n=1e-5); printf(%d的平方根是%8.5fn,n,x1);12.韩信点兵: 1千人左右的士兵,三三数之余1,五五数之余1,七七数之余1。 for(i=800;i1300;i+) if(i%3=1&i%5=1&i%7=1) printf(“%dn”,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.
18、查找等于x的元素(的位置)int Find_x(int data ,int n,int x) int i; for(i=0;in;i+) if(datai=x) break; /* 找到则停止循环 */ if(in) /* 若没有到达末尾,说明找到 */ return i+1; else /* 到达末尾说明没有找到 */ return 0;15. 排序冒泡法与选择法冒泡法void bubblesort(int *data,int n) int i,j,temp; for(i=0;in-1;i+) for(j=0;jdataj+1) temp=dataj; dataj=dataj+1; data
19、j+1=temp; 选择法void selectsort(int *data,int n) int i,j,k,temp; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(datajdatak) k=j; temp=datai; datai=datak; datak=temp; 16. 输入n个数据,求(输出)最大最小值,求平均数,求大于(小于)平均数的数据个数,按降序次序排序输出。main() int i, data20,n=20; int max,min,aver; indata(data,n); max= getmax(data,n); .void i
20、ndata(int *fdd,int n) for(i=0;in;i+) scanf(“%f”,&fdd i );int getmax(int d ,int n) int i, j=0, max=d0; for(i=1;i max) max=di; return max;float average(int *array,int n) int i; float aver,sumarray0; for(i1;in;i+) sumsum+arrayi; aversum/n; return aver;int count(int s ,int n ,int f ) int cnt=0,i; for(i=0;i=f) cnt+; return cnt;.