C语言程序设计习题答案613Word格式文档下载.docx
- 文档编号:21672047
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:18
- 大小:26.54KB
C语言程序设计习题答案613Word格式文档下载.docx
《C语言程序设计习题答案613Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题答案613Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
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);
//去掉其最高位
//去掉其最低位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 答案 613