c语言Word下载.docx
- 文档编号:4586129
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:17
- 大小:19.54KB
c语言Word下载.docx
《c语言Word下载.docx》由会员分享,可在线阅读,更多相关《c语言Word下载.docx(17页珍藏版)》请在冰点文库上搜索。
例6.1求1到100的和。
{inti,sum=0;
i=1;
while(i<
=100)
{sum=sum+i;
i++;
printf(″%d\n″,sum);
例6.4把100~200之间的不能被3整除的数输出。
{intn;
for(n=100;
n<
=200;
n++)
{if(n%3==0)continue;
printf("
%d″,n);
例6.6判断m是否素数。
math.h>
{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间的全部素数。
{inti,j,k,n=0;
for(i=101;
i=i+2)
{k=sqrt(i);
for(j=2;
j<
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个整数排序(由小到大)
{inta[10],i,j,t;
printf(″input10numbers:
\n″);
for(i=0;
10;
a[i]);
printf(″\n″);
for(i=0;
9;
for(j=0;
9-i;
if(a[j]>
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf(″thesortednumbers:
printf(″%d″,a[i]);
程序实例2:
用选择法对10个整数排序(由小到大)
{inta[10],i,j,t,min;
{min=i;
for(j=i+1;
if(a[min]>
a[j])min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
printf(″%5d″,a[i]);
例7.9:
有3个字符串,要求找出其中最大者
程序如下:
#include<
string.h>
main()
{
charstring[20];
charstr[3][20];
inti;
for(i=0;
3;
gets(str[i]);
if(strcmp(str[0],str[1])>
0)
strcpy(string,str[0])
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>
strcpy(string,str[2]);
printf(″\nthelargeststringis∶
\n%s\n″,string);
第八章
例8.10有一个一维数组score,内放10个学生成绩,求平均成绩。
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;
sum=sum+array[i];
aver=sum/10;
return(aver);
}
运行结果:
input10scores:
100567898.576879967.57597↙
averagescoreis83.40
例8.12有一个一维数组,内放10个学生成绩,写一个函数,求出平均分、最高分和最低分。
floatMax=0,Min=0;
/*全局变量*/
{floataverage(floatarray[],intn);
floatave,score[10];
inti;
for(i=0;
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)
/*定义函数,形参为数组*/
floataver,sum=array[0];
Max=Min=array[0];
for(i=1;
i<n;
{if(array[i]>Max)Max=array[i];
elseif(array[i]<
Min)Min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return(aver);
}
9945789710067.589926643↙
max=100.00
min=43.00
average=77.65
例8.15考察静态局部变量的值
{intf1(int);
intf2(int);
inti,a=3;
4;
printf(“%3d”,f1(a));
printf(“\n”);
printf(“%3d”,f2(a));
intf1(inta)intf2(inta)
{intb=0;
{staticintb=0;
intc=2;
staticintc=2;
b++;
c++;
returna+b+c;
}returna+b+c;
7777
791113
9.4输入a、例b、c3个整数,按大小顺序输出。
{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:
在上题基础上,查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。
{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;
if(*(*(p+j)+i)<
60) flag=1;
if(flag==1)
{printf("
No.%dfails,hisscoresare:
\n"
,j+1);
for(i=0;
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人,输入学生姓名、数
学、物理成绩,显示学生的姓名和总成绩。
structstudent
{charname[20];
intmathscore;
intphysicsscore;
intsumscore;
}com94[40];
{inti;
40;
scanf(“%d,%s,%d”,&
com94[i].mathscore,com94[i].name,&
com94[i].physicsscore);
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个时,不再计算。
{inti,j,k,n=0;
for(i=1;
=100;
for(j=2;
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
{inta,b,sum;
scanf(“%d%d”,&
b);
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:
打印形状为直角三角形的九九表。
{inti,j;
{for(j=1;
=i;
printf(“%4d”,i*j);
7.1:
从键盘输入10个不为零的整数,将它们按正负数分开后,分别按从小到大的顺序打印出来。
-76-45
01481265100123
{inti,j,t,m=0,a[10];
scanf(“%d”,&
if(a[j]>
a[j+1]){t=a[j];
if(a[i]<
0){printf(“%4d”,a[i]);
m++;
for(i=m;
printf(“%4d”,a[i]);
8.1:
判断m是否是素数
main()
{intf(intm);
intm,n;
n=f(m);
if(n)printf(“%disaprimenumber\n”,m);
elseprintf(“%disnotaprimenumber\n”,m);
intf(intm)
{inti,k,p;
for(i=2;
if(i>
=k+1)p=1;
elsep=0;
returnp;
8.2:
用起泡法对10个数排序。
(
{voidsort(intarray[],intn);
inta[10],i;
for(i=0;
sort(a,10);
voidsort(intarray[],intn)
{inti,j,k,t;
n-1;
{k=i;
n;
if(array[j]<
array[k])k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
8.3:
用选择法对10个数排序
{inti,j,t;
9.1:
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:
①输入10个数;
②进行处理;
③输出10个数。
{voidinput(intnumber[10]);
voidmax_min_value(intarray[10]);
voidoutput(intarray[10]);
intnumber[10];
input(number);
max_min_value(number);
output(number);
}
voidinput(intnumber[10])
=9;
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<
array_end;
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;
=array+9;
printf(“%4d”,*p);
}
10.1:
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程总成绩、平均分数)。
structstudent
{charnum[6];
charname[8];
intscore[3];
floatavr;
}stu[10];
{inti,j,max=0,maxi=0,sum=0;
floataverage=0;
{scanf(“%s%s”,stu[i].num,stu[i].name);
stu[i].score[j]);
}
for(i=0;
{sum=0;
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言