C语言编程题及答案Word文档格式.docx
- 文档编号:18674121
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:24
- 大小:22.78KB
C语言编程题及答案Word文档格式.docx
《C语言编程题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言编程题及答案Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
{floata,b,c,s,area;
%f,%f,%f"
&
a,&
b,&
c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
if(a+b>
c&
&
a+c>
b&
b+c>
a)
area=%f"
area);
else
.1.
no"
);
5.〔*〕编程求出1!
+2!
+3!
+…+8!
+9!
+10!
的值并输出。
程序1:
{inti,j;
doublep=1,sum=0;
for(i=1;
i<
=10;
i++)
{for(j=1;
j<
=i;
j++)
p=p*i;
sum=sum+p;
p=1.0;
sum=%f"
sum);
程序2:
floatfac(n)
intn;
{floatf;
if(n<
0)printf("
0,error!
"
elseif(n==0||n==1)f=1;
elsef=fac(n-1)*n;
return(f);
main()
{inth,s=0,n;
=4;
{h=fac(n);
s=s+h;
s=1!
+...+10!
=%d\n"
s);
程序3:
{inti;
{p=p*i;
.2.
6.〔*〕从键盘输入两个整数,输出其和,差,积,商。
7.〔**〕输入假设干个自然数,对奇数从大到小排序,对偶数从小到大排序,输出两种结果。
maxji(inta[],intn)
{inti,j,k,t;
for(i=0;
n-1;
{k=i;
for(j=i+1;
n;
if(a[k]<
a[j])k=j;
if(k!
=i)
{t=a[k];
a[k]=a[j];
a[j]=t;
}}
#defineN10
{intc[N],i,j;
N;
%d"
c[i]);
maxji(c,N);
for(i=N-1;
if(c[i]%2==0)
%5d"
\n"
if(c[i]%2!
=0)
8.〔*〕求出0~999之间的所有“水仙花数〞并输出。
“水仙花数〞是指一个三位数,其各位数字的立方和确好等于该数本身,如;
153=1+5+3,那么153是一个“水仙花数〞。
程序1:
{inti,j,k,a;
for(i=1;
for(j=0;
for(k=0;
k<
k++)
if(i*i*i+j*j*j+k*k*k==100*i+10*j+k)
printf("
%d%d%d\n"
i,j,k);
程序:
{intm,i,j,k,a;
for(m=101;
=999;
m++)
{i=m/100;
j=(m-m*100)/10;
.3.
k=m%10;
if(i*i*i+j*j*j+k*k*k==m)
%d\n"
m);
9.〔*〕试编程:
判断输入的正整数是否既是5,又是7的整数倍数。
假设是那么输出yes;
否
那么输出no。
10.(*)已有函数调用语句c=add(a,b);
请编写aad函数,计算两个实数a和b的和,并返回和值。
11.〔*〕有人想将手中一张面值100元的人民币换成5元、1元、0.5元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。
请编程实现。
{inti,j,k,n=0;
19;
for(j=1;
95;
for(k=1;
94;
if(5*i+j+0.5*k==100&
i+j+k==100)
{printf("
%d,%d,%d\n"
n++;
n);
12.(*)求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:
2+22+222+2222+22222
程序1:
{inti,a,n;
longsum=0,b=1,c=1;
scanf("
%d,%d"
n);
=n;
{longintsn=0,k=a;
inta,i,j;
a);
=5;
{k=10*k+a;
sn=sn+k;
%ld\n"
sn);
{sum+=a*c;
b*=10;
c+=b;
%ld"
{longintsn=0,k=0;
for(i=1;
{for(j=1;
k=10*k+a;
.4.
k=0;
13.〔*〕编程输出如以下图形〔不能仅用printf语句〕:
*
***
*****
*******
*********
{inti,k,j;
for(i=0;
{for(j=0;
4-i;
printf("
"
for(k=0;
=2*i;
*"
}
14.〔*〕用近似公式求自然对数的底e的值。
e≈1+1!
+++……
#include"
main()
{floati,j,e,p=1.0,sum=0.0;
10;
{for(j=1;
p=p*j;
sum=sum+1.0/p;
p=1.0;
e=i+sum;
%f\n"
e);
15.〔*〕请编程,用scanf()函数输入三个字符,对这三个字符各加一个整数1后,用
putchar()函数输出,且每输出一个字符换一行。
16.〔*〕请编程,用scanf()函数输入三个整数,输出其中不大不小的那个数,输出宽度为五位。
intfindmid(inti,intj,intk)
{intn;
.5.
if(i<
j){n=i;
i=j;
j=n;
k)n=i;
elseif(j>
k)n=j;
elsen=k;
return(n);
}
{inti,j,k,n;
%d%d%d"
i,&
j,&
k);
n=findmid(i,j,k);
17.〔*〕编程实现输出所有1~100之间能被9整除余2的数。
18.〔*〕编写一程序实现如下功能:
输入1、2、3、4、5、6、7〔分别对应星期一至星期日〕中的任何一个数,便能输出与之对应的英文名称。
如输入1,那么输出Monday。
{charday;
day);
swith(day)
{case'
1'
:
monday\n"
break;
case'
2'
tuesday\n"
break;
3'
wednsday\n"
4'
thursday\n"
braek;
5'
friday\n"
6'
saturday\n"
case'
7'
sunday\n"
defult:
error\n"
19.(*)编一程序,对于给定的一个百分制成绩,输出相应的5分制成绩。
设:
90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
〔用switch语句实现〕。
{ints,score;
score);
s=score/10;
switch(s)
{case10:
A\n"
case9:
case8:
B\n"
case7:
C\n"
case6:
D\n"
case5:
case4:
case3:
case2:
case1:
E\n"
default:
error"
20.〔*〕试编程:
否那么输出no。
21.〔**〕一个数如果却好等于它的因子之和,这个数就称为“完数〞。
例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数〞。
编程序找出100之内的所有完数,并按以下格式输出其因子:
6itsfactorsare1,2,3
{intm,i,s;
for(m=2;
m<
1000;
{s=0;
i<
m;
if(m%i==0)s=s+i;
if(m==s)
{printf("
%3ditsfactorsare"
m;
if(m%i==0)printf("
%4d"
i);
22.〔*〕输入5对整数,请输出每对数中较大者
{inti,j,a[5][2];
for(j=0;
=1;
scanf("
a[i][j]);
for(i=0;
if(a[i][1]>
a[i][0])
%4d\n"
a[i][1]);
a[i][0]);
.6.
23.〔**〕编程将一个3x3矩阵转置(行列互换)后输出。
{inti,j,a[3][3],b[3][3];
=2;
{for(j=0;
{print(“%5d〞,a[i][j]);
b[j][i]=a[i][j];
printf('
\n'
{for(i=0;
b[i][j]);
printf(“\n〞);
24.(**)求一个一维数组的最大值,最小值和平均值〔主函数调用并输出〕。
程序2:
{voidmake();
inta[10],i;
externintmax,min;
externfloataver;
10;
a[i]);
make(a,10);
max=%d,min=%d,aver=%.2f"
max,min,aver);
}
intmax,min;
floataver;
voidmake(inta[],intn)
floatsum;
max=min=a[0];
sum=a[0];
{if(max<
a[i])max=a[i];
if(min>
a[i])min=a[i];
sum+=a[i];
%f"
aver=(float)sum/n;
floatmax(intn,floata[])
{inti;
floatmax;
max=a[0];
if(max<
return(max);
floatmin(intn,floata[])
{inti;
floatmin;
min=a[0];
if(min>
return(min);
floataver(intn,floata[])
floatsum=0,aver;
.7.
sum=sum+a[i];
aver=sum/n;
return(aver);
floatm,n,a[5],c;
5;
m=max(5,a);
n=min(5,a);
c=aver(5,a);
%5f%5f%5f\n"
m,n,c);
25.〔**〕编写函数,求一个不超过五位的十进制整数各位数值的和。
输入2634,输出15〕
#include"
{inti,a[5],m,n=0;
m);
{a[i]=m%10;
n=n+a[i];
m=m-a[i]*10;
a[i]);
26.〔**〕编程求出一个3x3矩阵的最大和最小元素及其下标。
{inti,j,max,min,a[3][3],m1,n1,m2,n2;
min=max=a[0][0];
.8.
if(a[i][j]>
max){max=a[i][j];
m1=I;
n1=j;
elseif(a[i][j]<
min)
{min=a[i][j];
m2=i;
n2=j;
max=%d,%3d,%3d,min=%d,%3d,%3d"
max,m1,n1,min,m2,n2);
27.〔**〕有一个字符串,包含n个字符,编写一个函数,将此字符串中从第m个字符开始的全部字符复制成另一个字符串。
{charchs2[30]={0},chs1[30]="
thisismyfirstCprogram"
;
inti,j,m;
for(i=m,j=0;
30;
i++,j++)
chs2[j]=chs1[i];
chs2[29]='
\0'
chs2);
28.〔**〕求一个3x3矩阵的对角线元素之和。
{inti,j,sum1=0,sum2=0,a[3][3];
if(i==j)sum1+=a[i][j];
if((i+j)==2)sum2+=a[i][j];
%5d%5d"
sum1,sum2);
29.〔**〕从键盘输入两个整数,输出其最大公约数和最小公倍数。
{inta,b,t,p,r;
b);
if(a<
b){t=a;
a=b;
b=t;
p=a*b;
while(b!
{r=a%b;
b=r;
printf(“%5d%5d〞,a,p/a);
.9.
{inta,b,m,n,i,t;
scanf(“%d%d〞,&
b){t=a;
m=a;
n=b;
if((m%i==0)&
(n%i==0))
%5d\n"
a*b/i);
30.〔**〕一个已按从小到大的顺序排序的数组,有9个元素,从终端输入第10个数,要求按原来排序的规律将它插入数组中。
〔该数比第一个数大,比第九个数小〕
{intb,i,n,a[N]={1,5,7,11,15,19,23,28,31};
N-1;
if(a[i]>
b){n=i;
for(i=(N-2);
a[i+1]=a[i];
a[n]=b;
31.〔**〕请编写程序,输出以下扬辉三角形(要求输出10行)。
1
11
121
1331
14641
#defineM10
#defineN10
{inta[M][N],i,j;
M;
for(j=0;
if(j==0||j==i)a[i][j]=1;
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][j]);
32.〔**〕从键盘输入少于50个的整数,其值在0和4之间〔包括0和4〕,用-1作为输入
结束标志,统计每个整数的个数。
33.(**)从键盘输入两个字符串a和b,要求不用库函数strcat把串b的前五个字符连接
到串a中;
如果b的长度小于5,那么把b的所有元素都连接到a中,请编程实现。
{chara[50],b[10],*p1,*p2;
inti,j;
scanf(“%s%s〞,a,b);
n=strlen(a);
for(p1=a+n,p2=b;
p1<
=a+(n+4);
p1++,p2++)
{*p1=*p2;
if(*p2==’\0’)break;
*p1=’\0’;
printf(“%s〞,a);
34.〔**〕编写函数,在一个一维数组中查找指定值,假设找到那么返回该数值的下标,否那么返
回-1。
要求用指针变量传递数组首地址。
{floata[10]={1,2,3,4,5,6,7,8,9,10};
floatb;
inti;
if(b==a[i])
if(i>
=10)printf("
-1"
35.〔**〕写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。
例如:
输入1024时,输出OneZeroTwoFour
{longintn;
intm,i=0,c[10];
do
{m=n%10;
i++;
c[i]=m;
%5d%5d%5d\n"
i,m,c[i]);
while((n/=10)>
0);
while(i>
=1)
{i--;
switch(c[i+1])
{case0:
{printf("
zero"
case1:
one"
case2:
{printf("
two"
case3:
three"
case4:
four"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 答案