C语言上机报告4Word下载.docx

上传人:b****7 文档编号:21827992 上传时间:2023-02-01 格式:DOCX 页数:14 大小:54.53KB
下载 相关 举报
C语言上机报告4Word下载.docx_第1页
第1页 / 共14页
C语言上机报告4Word下载.docx_第2页
第2页 / 共14页
C语言上机报告4Word下载.docx_第3页
第3页 / 共14页
C语言上机报告4Word下载.docx_第4页
第4页 / 共14页
C语言上机报告4Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言上机报告4Word下载.docx

《C语言上机报告4Word下载.docx》由会员分享,可在线阅读,更多相关《C语言上机报告4Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

C语言上机报告4Word下载.docx

%d,%d"

&

a,&

b);

max=yue(a,b);

min=bei(a,b);

max=%d,min=%d\n"

max,min);

return0;

}

intyue(intx,inty)

inti,t;

for(i=1;

i<

=x&

&

=y;

i++)

if(x%i==0&

y%i==0)

t=i;

return(t);

intbei(intx,inty)

intj;

if(x>

=y)j=x;

elsej=y;

for(;

!

(j%x==0&

j%y==0);

j++);

return(j);

3.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。

intmain()

intsushu(intm);

inta,s;

请输入要判定的数:

%d"

a);

s=sushu(a);

if(s==1)

printf("

%d是素数\n"

a);

elseprintf("

%d不是素数\n"

}

intsushu(intm)

for(i=2;

=m;

if(m%i==0&

m)break;

if(m-i==0)t=1;

elset=0;

returnm;

4.写一个函数,使给定的一个二维数组(3×

3)转置,即行列互换。

intzhuangzhi(intb[3][3]);

inta[3][3];

inti,j;

请输入一个三维数组:

for(i=0;

3;

for(j=0;

j<

j++)

scanf("

a[i][j]);

for(i=0;

{

for(j=0;

printf("

%d"

a[i][j]);

printf("

\n"

}

zhuangzhi(a);

return0;

intzhuangzhi(intb[3][3])

inti,j,t;

t=b[i][j];

b[i][j]=b[j][i];

b[j][i]=t;

return(b[3][3]);

6.写一函数,将两个字符串连接。

voidlianjie(charstring1[],charstring2[],charstring[]);

chars1[100],s2[100],s[100];

请输入两个字符串:

%s"

s2);

lianjie(s1,s2,s);

\nThenewstringis%s\n"

s);

voidlianjie(charstring1[],charstring2[],charstring[])

string1[i]!

='

\0'

;

string[i]=string1[i];

for(j=0;

string2[j]!

0'

string[i+j]=string2[j];

string[i+j]='

8.写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。

如输入1990,应输出"

1990"

charf(charb);

inti;

chara[]={1,9,9,0}

f(a);

4;

%c"

a[i])

charf(charb)

inti=0;

"

b[i]);

9.编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出以上的结果。

chartongji(charstr0[100];

charb)

intb[4];

{inti;

for(i=0;

str0[i]!

i++)

{if(str0[i]>

=65&

str0[i]<

=90||str0[i]>

=97&

=122)

b[0]++;

elseif(str0[i]>

=48&

=57)

b[1]++;

elseif(str0[i]==32)

b[2]++;

elseb[3]++;

{chartongji(charstr0[100],charb);

charstr1[100];

staticinti,a[4];

gets(str1);

tongji(str1,a);

printf("

zimuShuziKonggeQita\n"

%-8d"

a[i]);

return0;

13.用递归方法求n阶勒让德多项式的值递归公式为:

1

floatp(floatx0,intn)

{floaty;

if(n==0||n==1)

if(n==1)y=x0;

elsey=1;

elsey=((2*n-1)*x0*p(x0,n-1)-(n-1)*p(x0,n-2))/n;

return(y);

{floatx,y0;

inta,i;

scanf("

%f,%d"

x,&

y0=p(x,a);

y0=%.3f\n"

y0);

14.输入10个学生5门课的成绩,分别用函数实现下列功能:

①计算每个学生的平均分

②计算每门课的平均分

③找出所有50个分数中最高的分数所对应的学生和课程;

④计算平均分方差:

其中,

为某一学生的平均分。

15.写几个函数:

①输个10个职工的姓名和职工号;

②按职工号由小到大顺序排序,姓名顺序也随之调整;

③要求输入一个职工号,用折半查找法找出该职工的姓名,从主函数输入要查找的职工号,输出该职工姓名。

17.用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串"

483"

n的位数不确定,可以是任意位数的整数。

18.给出年月日,计算该日是该年的第几天。

intsum_day(intmonth,intday);

intleap(intyear);

intyear,month,day,days;

输入日期(年,月,日):

%d,%d,%d"

year,&

month,&

day);

%d%d%d"

year,month,day);

days=sum_day(month,day);

if(leap(year)&

month>

=3)

days=days+1;

是第这一年的%d天。

days);

intsum_day(intmonth,intday)

intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

month;

day+=day_tab[i];

return(day);

intleap(intyear)

intleap;

leap=year%4==0&

year%100!

=0||year%400==0;

return(leap);

习题八

1.输入3个整数,按由小到大的顺序输出。

voidswap(int*p1,int*p2);

inta1,a2,a3;

int*p1,*p2,*p3;

请输入三个整数:

a1,a2,a3:

a1,&

a2,&

a3);

p1=&

a1;

p2=&

a2;

p3=&

a3;

if(a1>

a2)swap(p1,p2);

a3)swap(p1,p3);

if(a2>

a3)swap(p2,p3);

结果输出顺序为:

%d,%d,%d\n"

a1,a2,a3);

voidswap(int*p1,int*p2)

intp;

p=*p1;

*p1=*p2;

*p2=p;

2.输入3个字符串,按由小到大的顺序输出。

string.h>

voidf(char*,char*);

charstr1[40],str2[40],str3[40];

输入三个字符串:

gets(str1);

gets(str2);

gets(str3);

//引用标准库函数,对字符串进行比较

if(strcmp(str1,str2)>

0)f(str1,str2);

if(strcmp(str1,str3)>

0)f(str1,str3);

if(strcmp(str2,str3)>

0)f(str2,str3);

%s\n%s\n%s\n"

str1,str2,str3);

voidf(char*p1,char*p2)

charp[40];

strcpy(p,p1);

strcpy(p1,p2);

strcpy(p2,p);

3.上输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写3个函数:

①输入10个数;

②进行处理;

③输出10个数。

voidinput(int*);

voidmax_min_value(int*);

voidoutput(int*);

intnumber[10];

input(number);

//调用输入10个数的函数

max_min_value(number);

output(number);

voidinput(int*number)

输入10个数:

10;

scanf("

number[i]);

voidmax_min_value(int*number)

int*max,*min,*p,temp;

max=min=number;

for(p=number+1;

p<

number+10;

p++)

if(*p>

*max)max=p;

elseif(*p<

*min)min=p;

temp=number[0];

number[0]=*min;

*min=temp;

if(max==number)max=min;

temp=number[9];

number[9]=*max;

*max=temp;

voidoutput(int*number)

int*p;

结果是:

for(p=number;

%d\t"

*p);

7.有一个字符串,包含n个字符。

写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

voidcopystr(char*,char*,int);

intm;

charstr1[20],str2[20];

输入字符串:

从哪一个字符开始复制?

m);

if(strlen(str1)<

m)

输入错误!

else

{

copystr(str1,str2,m);

%s\n"

str2);

}

voidcopystr(char*p1,char*p2,intm)

intn;

n=0;

while(n<

m-1)

n++;

p1++;

while(*p1!

*p2=*p1;

p2++;

*p2='

15.有一个班4个学生,5门课程。

求第一门课程的平均分;

找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;

找出平均成绩在90分以上或全部课程成绩在85分以上的学生。

分别编3个函数实现以上3个要求。

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

当前位置:首页 > 自然科学 > 数学

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

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