c语言程序设计向艳书上例题源代码.docx
- 文档编号:11033057
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:52
- 大小:25.43KB
c语言程序设计向艳书上例题源代码.docx
《c语言程序设计向艳书上例题源代码.docx》由会员分享,可在线阅读,更多相关《c语言程序设计向艳书上例题源代码.docx(52页珍藏版)》请在冰豆网上搜索。
c语言程序设计向艳书上例题源代码
第五章函数
1.定义一个求两个整数和的函数
intsum(x,y)
intx,y;
{
intz;
z=x+y;
return(z);
}
2.编写函数求两个数的最大值
#include
floatmax(floatx,floaty)
{
floatz;
if(x>y)z=x;
elsez=y;
return(z);
}
voidmain()
{
floata,b,c;
scanf("%f%f",&a,&b);
c=max(a,b);
printf("max=&f\n",c);
}
3.计算并输出一个圆台两底面积之和
#include
floatarea(floatx,floaty)
{
floats;
s=3.1415*(x*x+y*y);
returns;
}
voidprintstar()
{
inti;
for(i=0;i<30;i++)
printf("*");
printf("\n");
}
voidmain()
{
floatr1,r2,s;
printstar();
scanf("%f,%f",&r1,&r2);
s=area(r1,r2);
printf("s=%.2f\n",s);
printstar();
}
4.实参求值顺序的例子
#include
intfun(inta,intb)
{
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
voidmain()
{
intk=3,s;
s=fun(k,++k);
printf("s=%d\n",s);
}
5.计算Σni=1i
#include
voidmain()
{
voids(int);
intn;
printf("inputnumber\n");
scanf("%d",&n);
s(n);
printf("n=%d\n",n);
}
voids(intn)
{
inti;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n=%d\n",n);
}
6.全局变量被“屏蔽”
#include
inta=3,b=5;
max(inta,intb)
{
intc;
c=a>b?
a:
b;
return(c);
}
voidmain()
{
inta=8;
printf("%d\n",max(a,b));
}
7.输入正方体的长宽高,求体积及三个面的面积
#include
ints1,s2,s3;
intv_s(inta,intb,intc)
{
intv;
v=a*b*c;
s1=a*b;
s2=b*c;
s3=a*c;
returnv;
}
voidmain()
{
intv,l,w,h;
printf("\ninputlength,widthandheight\n");
scanf("%d%d%d",&l,&w,&h);
v=v_s(l,w,h);
printf("\nv=%d,s1=%d,s2=%d,s3=%d\n",v,s1,s2,s3);
}
8.用register说明变量的程序
#include
intfac(intn)
{
registerinti,f=1;
for(i=1;i<=n;i++);
f=f*i;
returnf;
}
voidmain()
{
inti;
for(i=1;i<=5;i++)
printf("%ds!
=%d\n",i,fac(i));
}
9.用static说明变量的程序
#include
intfac(intn)
{
staticinti,f=1;
f=f*n;
returnf;
}
voidmain()
{
inti;
for(i=1;i<=5;i++)
printf("%d!
=%d\n",i,fac(i));
}
10.用extern说明变量的程序
#include
externintn;
voidfun()
{
n-=20;
}
intn=100;
voidmain()
{
for(;n>=60;)
{
fun();
printf("n=%d\n",n);
}
}
11.计算s=2^2!
+3^3!
#include
longf1(intp)
{
intk;
longr;
longf2(int);
k=p*p;
r=f2(k);
returnr;
}
longf2(intq)
{
longc=1;
inti;
for(i=1;i<=q;i++)
c=c*i;
returnc;
}
voidmain()
{
inti;
longs=0;
for(i=2;i<=3;i++)
s=s+f1(i);
printf("\ns=%ld\n",s);
}
12.用梯形法编程求函数f(x)=x*x+2*x+1的定积分S0~2f(x)dx的值
#include
doublefun(doublex)
{
doubley;
y=x*x+2*x+1;
returny;
}
doubledjf(doublen,doublea,doubleb)
{
doubles=0,h;
inti;
h=(b-a)/n;
for(i=1;i<=n;i++)
s+=((fun(a+(i-1)*h)+fun(a+i*h))*h)/2;
return(s);
}
voidmain()
{
doubles,n,a,b;
scanf("%lf,%lf,%lf",&n,&a,&b);
s=djf(n,a,b);
printf("s=%.2lf\n",s);
}
13.用递归法求n!
#include
longfun(intn)
{
longf;
if(n==0||n==1)f=1;
elsef=fun(n-1)*n;
return(f);
}
voidmain()
{
intn;
longy;
printf("\ninputainteagernumber:
\n");
scanf("%d",&n);
y=fun(n);
printf("%d!
=%ld",n,y);
}
14.Hanoi塔问题
#include
voidmove(intn,charx,chary,charz)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}
voidmain()
{
inth;
printf("\ninputnumber:
\n");
scanf("%d",&h);
printf("thesteptomoving%2ddiskes:
\n",h);
move(h,'a','b','c');
}
第七章数组
1.定义一个长度为10的整型一维数组,利用for循环对其中的每个元素赋值,最后利用for循环按逆序输出这十个元素值。
#include
voidmain()
{
inti,a[10];
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%d",a[i]);
}
2.编写程序,从键盘输入某班学生某门课的成绩,求出最高分以及其序号。
#include
voidmain()
{
intmax,score[40];
inti,n,num;
printf("inputtotalnumbers:
\n");
scanf("%d",&n);/*输入学生实际人数*/
printf("inputscore:
\n");
for(i=0;i scanf("%d",&score[i]); max=score[0];num=0; for(i=1;i if(score[i]>max) {max=score[i];num=i;} printf("max=%d,num=%d\n",max,num); } 3.从键盘输入某班学生某门课的成绩,然后按分数从低到高进行排序。 #include voidmain() { inttemp,score[40]; inti,j,n; printf("inputtotalnumbers: \n"); scanf("%d",&n); printf("inputscore: \n"); for(i=0;i scanf("%d",&score[i]); for(i=0;i for(j=0;j if(score[j]>score[j+1]) {temp=score[j]; score[j]=score[j+1]; score[j+1]=temp; } printf("outputscore: \n"); for(i=0;i printf("%d",score[i]); } 4.已知数组a中一共有10个已按由小到大排好序的整数。 现从键盘输入一个整数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置,否则打印找不到。 #include voidmain() {inta[10],d,h,x,i,m; printf("pleaseinput10numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("pleaseinputx: "); scanf("%d",&x); d=0;h=9; while(d<=h) {m=(d+h)/2; if(x==a[m])break; elseif(x>a[m])d=m+1; elseh=m-1; } if(d<=h) printf("%distheposition%d\n",x,m); else printf("thereisno%d\n",x); } 5.一个学习小组有5个人,每个人有3门课的考试成绩,如表7-1所示。 求全组各科的平均成绩和所有科目的总平均成绩。 #include voidmain() { inti,j,s=0,average,v[3]; inta[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}}; for(i=0;i<3;i++) {for(s=0,j=0;j<5;j++) s=s+a[j][i]; v[i]=s/5; } average=(v[0]+v[1]+v[2])/3; printf("math: %d\nclanguage: %d\nFoxpro: %d\n",v[0],v[1],v[2]); printf("total: %d\n",average); } 6.将一个二维数组的行和列互换,存到另一个二维数组中。 #include #definem2 #definen3 voidmain() {inta[m][n]={2,4,6,8,10,12},b[n][m],i,j; printf("arraya: \n"); for(i=0;i for(j=0;j printf("%d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } printf("arrayb: \n"); for(i=0;i for(j=0;j printf("%d",b[i][j]); printf("\n"); } } 7.打印如图所示的杨辉三角型: #include #defineN15 voidmain() {inti,j,n,a[N][N]; printf("Inputn(1-15): \n"); scanf("%d",&n); for(i=0;i<=n;i++) a[i][0]=a[i][i]=1; for(i=2;i<=n;i++) for(j=1;j a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<=n;i++){ for(j=0;j<=i;j++) printf("%6d",a[i][j]); printf("\n"); } } 8.打印魔方阵。 所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。 要求打印出由1-n^2(n为奇数)的自然数构成的魔方阵。 #include #definen3 voidmain() {inti,j,k,i1,j1; inta[n][n]={0}; j=n/2; i=0; a[i][j]=1; for(k=2;k<=n*n;k++) {i1=i;j1=j; i--;j++; if(i<0)i=n-1; if(j>n-1)j=0; if(a[i][j]==0)a[i][j]=k; else{ i=i1+1; j=j1; a[i][j]=k; } } for(i=0;i {for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } 9.初始化二维数组a,并输出各元素的值。 #include voidmain() { inti,j; chara[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}}; for(i=0;i<=1;i++) { for(j=0;j<=4;j++) printf("%c",a[i][j]); printf("\n"); } } 10.输入并输出一个一个字符串。 #include voidmain() {chara[10],i; for(i=0;i<10;i++) scanf("%c",&a[i]); for(i=0;i<10;i++) printf("%c",a[i]); } 11.用格式符%s对数组进行输入和输出操作。 #include voidmain() { charstr1[6],str2[6],str3[6]; printf("inputstring: \n"); scanf("%s%s%s",str1,str2,str3); printf("%s%s%s\n",str1,str2,str3); } 12.设有C程序如下: #include voidmain() { charstr[15]; printf("inputstring: \n"); scanf("%s",str); printf("%s\n",str); } //运行时如果输入: //thisisabook //输出结果为: this //(字符串长度超过字符数组定义长度) 13.设有C程序如下: #include voidmain() { charstr[15]; printf("inputstring: \n"); gets(str); puts(str); } //运行时如果输入: thisisabook //运行结果为: thisisabook 14.连接两个字符串。 #include"string.h" #include"stdio.h" voidmain() { charstr1[25]="Mynameis"; charstr2[10]; printf("inputyourname: \n"); gets(str2); strcat(str1,str2); puts(str1); } //运行时如果输入: WangLing //程序运行结果是: MynameisWangLing 15.设有C程序如下: #include #include"string.h" voidmain() { charstr1[15],str2[]="CLanguage"; strcpy(str1,str2); puts(str1); } 16.字符串比较 设有C程序如下: #include"stdio.h" #include"string.h" voidmain() {intk; charstr1[15],str2[]="CLanguage"; printf("inputastring: \n"); gets(str1); k=strcmp(str1,str2); if(k==0)printf("str1=str2\n"); if(k>0)printf("str1>str2\n"); if(k<0)printf("str1 } 17.求字符串长度 设有C程序如下: #include"stdio.h" #include"string.h" voidmain() {intk; charstr[]="CLanguage"; k=strlen(str); printf("Thelenthofthestringis%d\n",k); } 18.输入一个字符串,统计有多少个单词。 单词之间用空格分隔开。 #include voidmain() {charstr[80],c; inti,num=0,flag=0; printf("pleaseinputstring: \n"); gets(str); for(i=0;(c=str[i])! ='\0';i++) if(c=='')flag=0; elseif(flag==0) {flag=1; num++; } printf("Thereare%dwordsinthestring.\n",num); } 19.输入一个无符号整数,将其转换成二进制字符串并输出。 #include voidmain() {unsignedn; charstr[10],t; intk,i,j; printf("Pleaseinput: "); scanf("%u",&n); for(i=0;n! =0;i++) {str[i]=n%2+'0'; n/=2; } str[i]='\0'; printf("Theresultis: "); for(k=0,j=i-1;k {t=str[k];str[k]=str[j];str[j]=t;} puts(str); } 20.输入五个国家的名称,并按字母顺序排列输出这些国家的名称。 #include #include voidmain() {charstr[20],name[5][20]; inti,j; printf("inputcountry'sname: \n"); for(i=0;i<5;i++) gets(name[i]); printf("\n"); for(i=0;i<4;i++) for(j=0;j<4-i;j++) if(strcmp(name[j],name[j+1])>0) {strcpy(str,name[j]); strcpy(name[j],name[j+1]); strcpy(name[j+1],str); } printf("Theresultis: \n"); for(i=0;i<5;i++) puts(name[i]); } 21.用选择法对十个整数由小到大排序。 #include voidsort(inta[],intn) {inti,j,k,t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 书上 例题 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)