c语言编程题及答案Word下载.docx

上传人:b****2 文档编号:4191359 上传时间:2023-05-02 格式:DOCX 页数:28 大小:22.63KB
下载 相关 举报
c语言编程题及答案Word下载.docx_第1页
第1页 / 共28页
c语言编程题及答案Word下载.docx_第2页
第2页 / 共28页
c语言编程题及答案Word下载.docx_第3页
第3页 / 共28页
c语言编程题及答案Word下载.docx_第4页
第4页 / 共28页
c语言编程题及答案Word下载.docx_第5页
第5页 / 共28页
c语言编程题及答案Word下载.docx_第6页
第6页 / 共28页
c语言编程题及答案Word下载.docx_第7页
第7页 / 共28页
c语言编程题及答案Word下载.docx_第8页
第8页 / 共28页
c语言编程题及答案Word下载.docx_第9页
第9页 / 共28页
c语言编程题及答案Word下载.docx_第10页
第10页 / 共28页
c语言编程题及答案Word下载.docx_第11页
第11页 / 共28页
c语言编程题及答案Word下载.docx_第12页
第12页 / 共28页
c语言编程题及答案Word下载.docx_第13页
第13页 / 共28页
c语言编程题及答案Word下载.docx_第14页
第14页 / 共28页
c语言编程题及答案Word下载.docx_第15页
第15页 / 共28页
c语言编程题及答案Word下载.docx_第16页
第16页 / 共28页
c语言编程题及答案Word下载.docx_第17页
第17页 / 共28页
c语言编程题及答案Word下载.docx_第18页
第18页 / 共28页
c语言编程题及答案Word下载.docx_第19页
第19页 / 共28页
c语言编程题及答案Word下载.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言编程题及答案Word下载.docx

《c语言编程题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《c语言编程题及答案Word下载.docx(28页珍藏版)》请在冰点文库上搜索。

c语言编程题及答案Word下载.docx

{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=;

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元、元面值的零钱100张,以上三种面值的零钱至少有一张,问共有几种换法。

请编程实现。

{inti,j,k,n=0;

19;

for(j=1;

95;

for(k=1;

94;

if(5*i+j+*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=,sum=;

10;

{for(j=1;

p=p*j;

sum=sum+p;

p=;

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"

case5:

five"

case6:

six"

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2