c语言程序设计向艳书上例题源代码.docx

上传人:b****6 文档编号:7159846 上传时间:2023-01-21 格式:DOCX 页数:43 大小:25.17KB
下载 相关 举报
c语言程序设计向艳书上例题源代码.docx_第1页
第1页 / 共43页
c语言程序设计向艳书上例题源代码.docx_第2页
第2页 / 共43页
c语言程序设计向艳书上例题源代码.docx_第3页
第3页 / 共43页
c语言程序设计向艳书上例题源代码.docx_第4页
第4页 / 共43页
c语言程序设计向艳书上例题源代码.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

c语言程序设计向艳书上例题源代码.docx

《c语言程序设计向艳书上例题源代码.docx》由会员分享,可在线阅读,更多相关《c语言程序设计向艳书上例题源代码.docx(43页珍藏版)》请在冰豆网上搜索。

c语言程序设计向艳书上例题源代码.docx

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;

for(i=0;i

{k=i;

for(j=i+i;j

if(a[j]

if(k!

=i)

{t=a[k];a[k]=a[i];a[i]=t;}

}

}

voidmain()

{ints[10],i;

printf("inputthearray:

");

for(i=0;i<10;i++)

scanf("%d",&s[i]);

sort(s,10);

printf("outputthearray:

");

for(i=0;i<10;i++)

printf("%4d",s[i]);

}

22.

#include

voidnzp(inta[],intn)

{

inti;

printf("\nvaluesofarrayaare:

\n");

for(i=0;i

{if(a[i]<0)a[i]=0;

printf("%d",a[i]);

}

}

voidmain()

{

intb[8],i;

printf("\ninput8numbers:

\n");

for(i=0;i<8;i++)

scanf("%d",&b[i]);

printf("initialvaluesofarraybare:

\n");

for(i=0;i<8;i++)

printf("%d",b[i]);

nzp(b,8);

printf("\nlastvaluesofarraybare:

\n");

for(i=0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1