c语言.docx
- 文档编号:2473225
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:17
- 大小:19.54KB
c语言.docx
《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(17页珍藏版)》请在冰点文库上搜索。
c语言
第二章:
1例:
转义字符的使用
#include
main()
{printf(“abc\tde\rf\tg\n”);
printf(“h\ti\b\bjk\n”);
}
第三章
1条件运算编程用找出25,28,3,56中最大的数。
(提交上机报告)
#include
main()
{inta=25,b=28,c=3,d=56;
intmax;
max=(a>b)?
a:
b;
max=(max>c)?
max:
c;
max=(max>d)?
max:
d;
printf(“max=%d\n”,max);
}
第五章
例5.2输入三个数,找出其中最大的数。
main()
{inta,b,c,t;
scanf(“%d%d%d”,&a,&b,&c);
if(a>b)t=a;
elset=b;
if(t printf(“max=%d”,t); } 第六章 例6.1求1到100的和。 #include main() {inti,sum=0; i=1; while(i<=100) {sum=sum+i; i++; } printf(″%d\n″,sum); 例6.4把100~200之间的不能被3整除的数输出。 #include main() {intn; for(n=100;n<=200;n++) {if(n%3==0)continue; printf("%d″,n); } } 例6.6判断m是否素数。 #include #include main() {intm,i,k; scanf(″%d″,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1)printf("%disaprimenumber\n″,m); elseprintf("%disnotaprimenumber\n″,m); } 例6.7求100~200间的全部素数。 #include #include main() {inti,j,k,n=0; for(i=101;i<=200;i=i+2) {k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0)break; if(j>=k+1){printf(″%d″,i);n=n+1;} if(n%10==0)printf(″\n″); } printf(″\n″); } 第七章 程序实例1: 用起泡法对10个整数排序(由小到大) #include main() {inta[10],i,j,t; printf(″input10numbers: \n″); for(i=0;i<10;i++) scanf(″%d″,&a[i]); printf(″\n″); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf(″thesortednumbers: \n″);for(i=0;i<10;i++) printf(″%d″,a[i]); 程序实例2: 用选择法对10个整数排序(由小到大) #include main() {inta[10],i,j,t,min; printf(″input10numbers: \n″); for(i=0;i<10;i++) scanf(″%d″,&a[i]); printf(″\n″); for(i=0;i<9;i++) {min=i; for(j=i+1;j<10;j++) if(a[min]>a[j])min=j; t=a[i];a[i]=a[min];a[min]=t;} printf(″thesortednumbers: \n″);for(i=0;i<10;i++) printf(″%5d″,a[i]); } } 例7.9: 有3个字符串,要求找出其中最大者 程序如下: #include #include main() { charstring[20]; charstr[3][20]; inti; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]) elsestrcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf(″\nthelargeststringis∶ \n%s\n″,string); } 第八章 例8.10有一个一维数组score,内放10个学生成绩,求平均成绩。 #include voidmain() {floataverage(floatarray[10]); floatscore[10],aver; inti; printf(″input10scores: \n″); for(i=0;i<10;i++) scanf(″%f″,&score[i]); printf(″\n″); aver=average(score); printf(″averagescoreis%5.2f\n″,aver);} floataverage(floatarray[10]) {inti; floataver,sum=array[0]; for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10; return(aver); } 运行结果: input10scores: 100567898.576879967.57597↙ averagescoreis83.40 例8.12有一个一维数组,内放10个学生成绩,写一个函数,求出平均分、最高分和最低分。 #include floatMax=0,Min=0;/*全局变量*/ voidmain() {floataverage(floatarray[],intn); floatave,score[10]; inti; for(i=0;i<10;i++) scanf(″%f″,&score[i]); ave=average(score,10); printf(″max=%6.2f\nmin=%6.2f\n average=%6.2f\n″,Max,Min,ave); } floataverage(floatarray[],intn) /*定义函数,形参为数组*/ {inti; floataver,sum=array[0]; Max=Min=array[0]; for(i=1;i<n;i++) {if(array[i]>Max)Max=array[i]; elseif(array[i] sum=sum+array[i]; } aver=sum/n; return(aver); } 运行结果: 9945789710067.589926643↙ max=100.00 min=43.00 average=77.65 例8.15考察静态局部变量的值 main() {intf1(int);intf2(int); inti,a=3; for(i=0;i<4;i++) printf(“%3d”,f1(a)); printf(“\n”); for(i=0;i<4;i++) printf(“%3d”,f2(a)); } intf1(inta)intf2(inta) {intb=0;{staticintb=0; intc=2;staticintc=2; b++;c++;b++;c++; returna+b+c;}returna+b+c;} 运行结果: 7777 791113 9.4输入a、例b、c3个整数,按大小顺序输出。 #include voidmain() {voidexchange(int*q1,int*q2,int*q3); inta,b,c,*p1,*p2,*p3; scanf(″%d,%d,%d″,&a,&b,&c); p1=&a;p2=&b;p3=&c; exchange(p1,p2,p3); printf(″%d,%d,%d\n″,a,b,c); }voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2); if(*q1<*q2)swap(q1,q2); if(*q1<*q3)swap(q1,q3); if(*q2<*q3)swap(q2,q3); } voidswap(int*pt1,int*pt2) {inttemp; temp=*pt1; *pt1=*pt2; *pt2=temp; } 运行情况如下: 9,0,10↙ 10,9,0 例9.11: 在上题基础上,查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。 #include voidmain() {voidsearch(float(*p)[4],intn); floatscore[3][4]={{65,57,70,60}, {58,87,90,81},{90,99,100,98}}; search(score,3); } voidsearch(float(*p)[4],intn) {inti,j,flag; for(j=0;j<n;j++) {flag=0; for(i=0;i<4;i++) if(*(*(p+j)+i)<60) flag=1; if(flag==1) {printf("No.%dfails,hisscoresare: \n",j+1); for(i=0;i<4;i++) printf(″%5.1f″,*(*(p+j)+i)); printf(″\n″); } } } 程序运行结果如下: No.1fails,hisscoresare: 65.057.070.060.0 No.2fails,hisscoresare: 58.087.090.081.0 第十章 例10.2计算机94班有40人,输入学生姓名、数 学、物理成绩,显示学生的姓名和总成绩。 #include structstudent {charname[20]; intmathscore; intphysicsscore; intsumscore; }com94[40]; main() {inti; for(i=0;i<40;i++) scanf(“%d,%s,%d”,&com94[i].mathscore,com94[i].name,&com94[i].physicsscore); for(i=0;i<40;i++){com94[i].sumscore=com94[i].mathscore+com94[i].physicsscore;printf(“name=%s,sumscore=%d\n”,com94[i].name,com94[i].sumscore); } } 习题 6.1: 求出1—100之间的素数,并以每行打印5个输出,当求得素数的个数超过20个时,不再计算。 #include main() {inti,j,k,n=0; for(i=1;i<=100;i++) {k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0)break; if(j>=k+1){printf(“%3d”,i); n++; if(n%5==0)printf(“\n”); if(n>20)break; } } } 6.2: 键盘上输入两个正整数,分别赋给变量a和b,计算从a的值到b的值之间的所有整数之和,并输出结果。 例如: 5+6+7+8+9=35 #include main() {inta,b,sum; scanf(“%d%d”,&a,&b); if(a>b){t=a;a=b;b=t;} for(sum=0;a<=b;a++) {sum+=a; printf(“%d+”,a); } printf(“\b=%d\n”,sum); } 6.3: 打印形状为直角三角形的九九表。 #include main() {inti,j; for(i=1;i<10;i++) {for(j=1;j<=i;j++) printf(“%4d”,i*j); printf(“\n”); } } 7.1: 从键盘输入10个不为零的整数,将它们按正负数分开后,分别按从小到大的顺序打印出来。 程序运行结果如下: -76-45 01481265100123 #include main() {inti,j,t,m=0,a[10]; for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\n”); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<10;i++) if(a[i]<0){printf(“%4d”,a[i]); m++;} printf(“\n”); for(i=m;i<10;i++) printf(“%4d”,a[i]); } 8.1: 判断m是否是素数 #include main() {intf(intm); intm,n; scanf(“%d”,&m); n=f(m); if(n)printf(“%disaprimenumber\n”,m); elseprintf(“%disnotaprimenumber\n”,m); } intf(intm) {inti,k,p; k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1)p=1; elsep=0; returnp; } 8.2: 用起泡法对10个数排序。 ( #include main() {voidsort(intarray[],intn); inta[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); sort(a,10); for(i=0;i<10;i++) printf(“%4d”,a[i]);} voidsort(intarray[],intn) {inti,j,k,t; for(i=0;i {k=i; for(j=i+1;j if(array[j] t=array[k];array[k]=array[i];array[i]=t; } } 8.3: 用选择法对10个数排序 #include main() {voidsort(intarray[],intn); inta[10],i; for(i=0;i<10;i++) scanf(“%d”,&a[i]); sort(a,10); for(i=0;i<10;i++) printf(“%4d”,a[i]);} voidsort(intarray[],intn) {inti,j,t; for(i=0;i for(j=0;j<9-i;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } 9.1: 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 写3个函数: ①输入10个数;②进行处理;③输出10个数。 #include main() {voidinput(intnumber[10]); voidmax_min_value(intarray[10]); voidoutput(intarray[10]); intnumber[10]; input(number); max_min_value(number); output(number); } voidinput(intnumber[10]) {inti; for(i=0;i<=9;i++) scanf(“%d”,&number[i]);} voidmax_min_value(intarray[10]) {int*max,*min,*p,*array_end; array_end=array+10; max=min=array; for(p=array+1;p if(*p>*max)max=p; elseif(*p<*min)min=p; *p=array[0];array[0]=*min;*min=*p; *p=array[9];array[9]=*max;*max=*p; } voidoutput(intarray[10]) {int*p; for(p=array;p<=array+9;p++) printf(“%4d”,*p);} 10.1: 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程总成绩、平均分数)。 #include structstudent {charnum[6]; charname[8]; intscore[3]; floatavr; }stu[10]; main() {inti,j,max=0,maxi=0,sum=0; floataverage=0; for(i=0;i<10;i++) {scanf(“%s%s”,stu[i].num,stu[i].name); for(j=0;j<3;j++) scanf(“%d”,&stu[i].score[j]); } for(i=0;i<10;i++) {sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max){max=sum;maxi=i;} } average/=10; printf(“average=%6.2f\n”,average);printf(“Thehighestscoreis: %s,%s,%d,%f”,stu[maxi].num,stu[maxi].name,max,stu[maxi].avr); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言
![提示](https://static.bingdoc.com/images/bang_tan.gif)