C语言程序设计习题答案613Word格式文档下载.docx

上传人:b****7 文档编号:21672047 上传时间:2023-01-31 格式:DOCX 页数:18 大小:26.54KB
下载 相关 举报
C语言程序设计习题答案613Word格式文档下载.docx_第1页
第1页 / 共18页
C语言程序设计习题答案613Word格式文档下载.docx_第2页
第2页 / 共18页
C语言程序设计习题答案613Word格式文档下载.docx_第3页
第3页 / 共18页
C语言程序设计习题答案613Word格式文档下载.docx_第4页
第4页 / 共18页
C语言程序设计习题答案613Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题答案613Word格式文档下载.docx

《C语言程序设计习题答案613Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题答案613Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题答案613Word格式文档下载.docx

i+=2)

{printf("

%3d"

a[i]);

s0=s0+a[i];

}

printf("

sumis:

%dave=%f\n"

s0,s0/10.0);

for(i=1;

s1=s1+a[i];

s1,s1/10.0);

2.设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出nofound。

程序参见文件Cprogram\xt6_3_02.c

{inti,s,a[20];

scanf("

%d"

&

s);

if(a[i]==s)

found:

a[%d]=%d\n"

i,a[i]);

break;

if(i==20)

nofound\n"

);

printf("

\n"

3.设有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。

程序参见文件Cprogram\xt6_3_03.c

#defineN10

{inti,j,s,a[N]={17,15,13,11,9,7,5,3,1};

//inta[N]={1,3,5,7,9,11,13,15,17};

i=0;

if(a[0]<

a[1])

while(s>

a[i])i++;

else

while(s<

for(j=N-1;

j>

i;

j--)

a[j]=a[j-1];

a[j]=s;

N;

4.编一程序,从一个已排好序的数组中删去某个位置上的元素。

程序参见文件Cprogram\xt6_3_04.c

{inti,j,a[N]={1,3,5,7,9,11,13,15,17,19};

i++)printf("

i);

for(j=i;

j<

N-1;

j++)a[j]=a[j+1];

a[j]=0;

5.将一个二维数组的行、列互换后存到另一个二维数组中并输出结果。

程序参见文件Cprogram\xt6_3_05.c

{inti,j;

inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},b[4][3];

4;

for(j=0;

3;

j++)

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

arraya:

{for(j=0;

%5d"

a[i][j]);

arrayb:

b[i][j]);

}

6.编一程序,在一个二维数组中,查找第一次出现的负数,并输出该数及其所在的行、列号。

程序参见文件Cprogram\xt6_3_06.c

{inti,j,flag;

inta[3][4]={1,3,5,7,9,11,13,-15,17,19,-21,23};

flag=0;

for(j=0;

if(a[i][j]<

0)

{flag=1;

a[%d][%d]=%d\n"

i,j,a[i][j]);

i=j=100;

//可使双重循环提前结束

if(flag==0)

nofound!

"

7.编程将一个字符数组中的字母,按由大到小的顺序进行排序。

程序参见文件Cprogram\xt6_3_07.c

string.h"

{chart,s[]="

ABCDIVBHFBVCNLKFDB"

;

inti,j,n;

puts(s);

n=strlen(s);

n-1;

for(j=i+1;

n;

if(s[i]<

s[j])

{t=s[i];

s[i]=s[j];

s[j]=t;

8.输入一行字符,统计其中有多少个英语单词,单词之间用空格隔开。

程序参见文件Cprogram\xt6_3_08.c

{chars[81];

intw,i,n;

gets(s);

n=0;

w=0;

while(s[i]!

='

\0'

{if(s[i]=='

'

/*endofaword*/

if(w==0)

{w=1;

n++;

}/*beginofaword*/

i++;

}

numberofword:

%d\n"

n);

9.编程将两个一维数组中的对应元素的值相减后进行输出。

程序参见文件Cprogram\xt6_3_09.c

{inti,a[10],b[10];

10;

{a[i]=rand()%100;

%4d"

{b[i]=rand()%100;

b[i]);

a[i]-b[i]);

10.有n个无序的数放在数组a中,请将相同的那些数删得只剩得一个,输出经过删除后的数据。

程序参见文件Cprogram\xt6_3_10.c

{inti,j,k,a[10]={90,20,40,30,50,50,50,50,20,80};

9;

if(a[j]==a[i])

{a[j]=-888;

k=0;

for(i=0;

if(a[i]!

=-888)

{printf("

a[k++]=a[i];

}//不相同的有效元素只有K个了

11.求二维数组中这样一个元素的位置:

它在行上最小,在列上也最小。

如果没有这样的元素则输出相应的信息。

程序参见文件Cprogram\xt6_3_11.c

{intj,i,k,flag,fz=0,a[4][5];

{for(j=0;

5;

{a[i][j]=rand()%100;

{flag=1;

for(k=0;

k<

k++)

if(a[i][k]<

a[i][j])

{flag=0;

break;

4&

&

flag;

if(a[k][j]<

if(flag)

{fz++;

mina[%d][%d]=%d\n"

if(fz==0)

nofound!

12.在一个二维数组中形成并输出如下矩阵:

11111

21111

A=32111

43211

54321

程序参见文件Cprogram\xt6_3_12.c

#defineN5

{intj,i,a[N][N];

{if(i<

=j)

a[i][j]=1;

elseif(j==0)

a[i][j]=i+1;

a[i][j]=a[i-1][j-1];

13.已知A是一个3╳4的矩阵,B是一个4╳5的矩阵,编程求A╳B得到的新矩阵C,并输出C矩阵。

程序参见文件Cprogram\xt6_3_13.c

{intj,i,k,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

intb[4][5]={3,2,1,5,4,4,3,2,5,1,2,3,5,4,1,7,8,5,6,9},c[3][5];

arrayA(3*4):

arrayB(4*5):

{c[i][j]=0;

c[i][j]+=a[i][k]*b[k][j];

arrayC(3*5)=A*B:

c[i][j]);

14.编程输出两个字符串中对应位置上相同的字符。

程序参见文件Cprogram\xt6_3_14.c

{inti;

chara[81]="

acbsbdvhfejbvewvkbewljbv"

charb[81]="

anbdxwdbviuerkjvbfidbvuiebik"

string1:

%s\n"

a);

string2:

b);

string3:

"

while(a[i]!

&

b[i]!

{if(a[i]==b[i])

%c"

15.设有一字符串已按升序排列在字符数组a中,请将另一字符串b中的字符按升序的规律插到数组a中。

程序参见文件Cprogram\xt6_3_15.c

{inti,j,k;

acdfhjklmopxz"

anbdx"

while(b[i]!

{j=0;

while(a[j]<

b[i]&

a[j]!

j++;

k=strlen(a);

while(k>

{a[k+1]=a[k];

k--;

a[j]=b[i];

16.将已按升序排列的两个字符串a和b中的字符按升序归并到字符数组c中。

程序参见文件Cprogram\xt6_3_16.c

abdnx"

charc[81];

j=0;

b[j]!

{if(a[i]<

b[j])

c[k++]=a[i++];

c[k++]=b[j++];

while(a[i])

while(b[j])

c[k]='

c);

习题七函数

1~10:

BDCDDBDBAC

11~20:

AABBBABAAC

21~31:

CDAACDDABBA

1.函数声明

2.自动将其转换为函数定义时的类型

3.10

4.1100

5.9.000000

6.i<

=n、s、0、f(k)

7.0.5*(x0+a/x0)、a,x1

8.Itis

9.2721

10.0246

11.k、-1

12.2、2

13.p=j、x[i][p]

14.5

15.7

16.24

17.age(n-1)+2、age(n)

18.m%10、m/10、m或m!

=0、r(m)

1.编一函数,判断某年是否为闰年,若是返回1,否则返回0。

程序参见文件Cprogram\xt7_3_01.c

#include<

stdio.h>

fun(intm)

{return(m%4==0)&

(m%100!

=0)||(m%400==0);

{intn;

for(n=1987;

n<

2009;

n++)

if(fun(n))

year:

%disaleap!

\n"

2.编写计算三角形面积的程序,将计算面积定义成函数。

三角形面积公式为:

A=

式中s=(a+b+c)/2

其中A为三角形面积,a、b、c为三角形的三条边的长度。

程序参见文件Cprogram\xt7_3_02.c

math.h>

floatfun(floata,floatb,floatc)

{floatf,s;

s=(a+b+c)/2;

if((s<

=a)||(s<

=b)||(s<

=c))//或(a+b)>

c&

(a+c)>

b&

(b+c)>

a

f=0;

f=sqrt(s*(s-a)*(s-b)*(s-c));

returnf;

{floata,b,c;

%f%f%f"

a,&

b,&

c);

areais:

%f\n"

fun(a,b,c));

3.编写两个函数,分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两

个函数,并输出结果,两个整数由键盘输入。

程序参见文件Cprogram\xt7_3_03.c

intfmax(intm,intn)

{intr;

r=m%n;

while(r!

=0)

{m=n;

n=r;

r=m%n;

returnn;

intfmin(intm,intn)

{returnm*n/fmax(m,n);

{inta,b;

%d%d"

b);

fmaxis:

fmax(a,b));

fminis:

fmin(a,b));

4.编写函数,根据整型形参m的值,计算公式

t=1-

-

-…-

的值。

例如,若m=5,则应输出0.536389。

程序参见文件Cprogram\xt7_3_04.c

floatfun(intm)

{floatt=1;

inti;

for(i=2;

=m;

t=t-1.0/i/i;

returnt;

{

t(5)=%f\n"

fun(5));

5.计算s=1+

+

+…+

n由终端输入,将计算n!

定义成函数。

程序参见文件Cprogram\xt7_3_05.c

floats=0,t=1;

{t=t/i;

s=s+t;

returns;

s(5)=%f\n"

6.编写函数,利用公式:

计算π的近似值,当某一项的值小于10-5时,认为达到精度要求。

程序参见文件Cprogram\xt7_3_06.c

doublefun()

{intn;

doublepi=1,t=1;

n=1;

do

{t=t*n/(2*n+1);

pi=pi+t;

}while(t>

1e-5);

return2*pi;

pi=%f\n"

fun());

7.编一函数,判断某一整数是否为回文数,若是返回1,否则返回0。

所谓回文数就是该数正读与反读是一样的。

例如12321就是一个回文数。

程序参见文件Cprogram\xt7_3_07.c

inthuiwen(intm)

{intt,n=0;

t=m;

while(t)

{n++;

t=t/10;

}//求出M是几位的数

{if(t/(int)pow(10,n-1)!

=t%10)//比较其最高位和最低位

return0;

{t=t%(int)pow(10,n-1);

//去掉其最高位

//去掉其最低位

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

当前位置:首页 > 高等教育 > 工学

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

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