c语言编程题及答案.docx

上传人:b****8 文档编号:28673077 上传时间:2023-07-19 格式:DOCX 页数:23 大小:20.83KB
下载 相关 举报
c语言编程题及答案.docx_第1页
第1页 / 共23页
c语言编程题及答案.docx_第2页
第2页 / 共23页
c语言编程题及答案.docx_第3页
第3页 / 共23页
c语言编程题及答案.docx_第4页
第4页 / 共23页
c语言编程题及答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

c语言编程题及答案.docx

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

c语言编程题及答案.docx

c语言编程题及答案

1、输入1,7,9,5,8,6,2,用冒泡法进行排序,按从小到大的顺序输出。

#include

main()

{

inta[7],i,j,t;

for(i=0;i<7;i++)

scanf("%d",&a[i]);

for(i=1;i<=7;i++)

{

for(j=0;j<=7-i;j++)

{

if(a[j]>a[j+1])

{

t=a[j];

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

a[j+1]=t;

}

}

}

for(i=0;i<7;i++)

printf("%d",a[i]);

printf("\n");

}

2、编程判断输入的字符串是否为“回文”。

所谓“回文”是指顺读和倒读都一样,如abcba。

#include

main()

{

chars[20],l,i,flag=0;

gets(s);

l=strlen(s);

for(i=0;i

if(s[i]!

=s[l-i-1])

flag=1;

if(flag==0)

printf("输入的字符串是回文\n");

else

printf("输入的字符串不是回文\n");

}

3、输入5个数,求和并输出。

要求编写求和的函数。

#include

voidmain()

{intb(intx[],intn);

intsum=0;

inta[5];

inti;

printf("请输入5个数:

");

for(i=0;i<5;i++)

scanf("%d",&a[i]);

sum=b(a,5);

printf("sum=%d\n",sum);

}

intb(intx[],intn)

{inti,sum=0;

for(i=0;i<5;i++)

sum=sum+x[i];

returnsum;

}

4、编写程序,求满足1*1+2*2+3*3+……n*n<=800的最大n是多少

#include"stdio.h"

voidmain()

{

intn,s=0;

for(n=1;s+n*n<=800;n++)

s=s+n*n;

printf("s=%d,n=%d\n",s,n-1);

}

5、编程计算1*2*3+4*5*6+...+97*98*99的值。

#include

main()

{

ints=0,i;

for(i=1;i<100;i)

{

s=s+i*(i+1)*(i+2);

i=i+3;

}

printf("%ld",s);

}

6、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。

#include"stdio.h"

voidmain()

{

intn,a,i,t=0,s=0;

scanf("%d%d",&n,&a);

for(i=1;i<=n;i++)

{

t=t*10+a;

s=s+t;

}

printf("a+aa+aaa+...+a(n个a)=%d",s);

}

7、输出Fibonacci数列的前40项,要求按4列输出。

Fibonacci数列的特点:

前两个数为1,从第三数开始,每个数都是它前面两个数的和。

#include

voidmain()

{

longa[40];

inti;

a[0]=1;

a[1]=1;

printf("%10ld%10ld",a[0],a[1]);

for(i=2;i<40;i++)

{

a[i]=a[i-1]+a[i-2];

printf("%10ld",a[i]);

if(i%4==3)

printf("\n");

}

}

8、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。

#include

voidmain()

{

floatave;

inta[3][4],i,j,s;

for(i=0;i<3;i++)

{

s=0;

for(j=0;j<4;j++)

{

scanf("%d",&a[i][j]);

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

}

printf("s=%d,ave=%f\n",s,(float)s/4);

}

}

9、求100之内自然数中最大的能被31整除的数。

#include

voidmain()

{

inti;

for(i=100;i>0;i--)

if(i%31==0)

{

printf("%d",i);

break;

}

}

10、求以下数列前15项的和:

2/1,3/2,5/3,8/5,13/8,21/13,...

#include

voidmain()

{

intn,a1,a2,a3;

doublesum=0;

for(n=1,a1=1,a2=1;n<=15;n++)

{

a3=a1+a2;

a1=a2;

a2=a3;

sum+=a3/n;

}

printf("%d",sum);

}

11、从键盘输入10个数,统计非正数的个数,并计算非正数的和。

#include

voidmain()

{inti,n=0,sum=0;

inta[10];

printf(“请输入10个数:

”);

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

for(i=0;i<10;i++)

if(a[i]>=0)

{sum=sum+a[i];

n++;}

printf("非负个数是%d,sum=%d\n",n,sum);

}

12、输入任意三个数,按从小到大的顺序输出。

#include"stdio.h"

main()

{

intx,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if(x>y)

{

t=x;x=y;y=t;

}

if(x>z)

{

t=z;z=x;x=t;

}

if(y>z)

{

t=y;y=z;z=t;

}

printf("smalltobig:

%d%d%d\n",x,y,z);

}

13、输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字。

#include

voidmain()

{

intn,i,j;

scanf("%d",&n);

if(n>0&&n<10)

printf("它是%d位数!

\n",i=1);

elseif(n>=10&&n<100)

printf("它是%d位数!

\n",i=2);

elseif(n>=100&&n<1000)

printf("它是%d位数!

\n",i=3);

elseif(n>=1000&&n<10000)

printf("它是%d位数!

\n",i=4);

elseif(n>=10000&&n<100000)

printf("它是%d位数!

\n",i=5);

else

printf("输入的数超出范围!

\n",i=0);

for(j=0;j

{

printf("%d",n%10);

n=n/10;

}

}

14、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。

求当它第10次落地时,共经过了多少米,第10次反弹多高?

#include

voidmain()

{

floath=100,s=0;

inti;

for(i=1;i<=10;i++)

{

s=s+h;

h=h/2;

s=s+h;

}

printf("当它第10次落{地时,共经过了%f米,第10次反弹%f米高",s-h,h);

15、编写程序,使用循环结构输出下列图形:

        * * * *

      * * * *

    * * * *

  * * * *

* * * *

#include"stdio.h"

voidmain()

{

inti,j;

for(i=1;i<=5;i++)

{

for(j=1;j<=5-i;j++)

printf("");

printf("****\n");

}

}

16、求3行3列矩阵a[3][3]={1,2,3,4,5,6,7,8,9}非对角线上元素之和。

#include

voidmain()

{

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

inti,j,s=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(i!

=j&&i+1!

=2)

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

printf("%d",s);

}

17、求1-1/2+1/3-1/4+...+1/99-1/100的值。

#include

intmain()

{

inti;

doublesum,k=1;

for(i=1,sum=0;i<=100;i++)

{

sum+=k/i;

k*=-1;

}

printf("%lf\n",sum);

return0;

}

18编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。

#include

voidmain()

{inti,sum=0;

for(i=1;i<=99;i=i+2)

sum=sum+i*(i+1)*(i+2);

printf("%d\n",sum);

}

19、编程计算1!

+2!

+3!

+...+10!

的值。

#include

voidmain()

{inti,j,sum1=1,sum=0;

for(i=1;i<=10;i++)

{

for(j=1;j<=i;j++)

sum1=sum1*j;

sum=sum+sum1;

}

printf("1!

+2!

+3!

+…+10!

=%ld\n",sum);

}

20、输入一串字符,逆序输出。

要求使用数组实现。

#include

#include

voidmain()

{inti,j,t,n;

chara[10];

printf("请输入字符串:

");

gets(a);

n=strlen(a);

for(i=0;i

{

t=a[i];

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

a[n-1-i]=t;

}

for(j=0;j

printf("%c",a[j]);

printf("\n");

}

21、输入5个数,求其中的最小值并输出。

要求编写求最小值的函数。

#include

intmin(inta[],intn)

{

inti,j,t;

for(i=1;i<=n-1;i++)

{

for(j=0;j<=n-1-i;j++)

{

if(a[j]

{

t=a[j];

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

a[j+1]=t;

}

}

}

}

voidmain()

{

inta[5],i;

for(i=0;i<5;i++)

scanf("%d",&a[i]);

min(a,5);

printf("%d\n",a[4]);

}

22、已知银行定期存款利率为r=2.25%,输入存款本金x、存款年数n,输出本利之和y=x(1+r)(1+r)...(1+r),共n个(1+r)

#include

voidmain()

{

floatx,y,r=0.0225;

inti,n;

printf("请输入存款本金x和存款年数n:

");

scanf("%f%d",&x,&n);

y=x;

for(i=1;i<=n;i++)

y=y*(1+r);

printf("%f\n",y);

}

23、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。

#include

voidmain()

{

charch;

intsz,dz,xz,qt;

sz=dz=xz=qt=0;

while((ch=getchar())!

='*')

{

if(ch>='0'&&ch<='9')

sz++;

elseif(ch>='A'&&ch<='Z')

dz++;

elseif(ch>='a'&&ch<='z')

xz++;

else

qt++;

}

printf("数字:

%d,大写字母:

%d,小写字母:

%d,其它字符:

%d\n",sz,dz,xz,qt);

}

24、求两个正整数的最大公约数

#include

voidmain()

{intm,n,m1,n1,t,k;

printf(“请输入两个正整数:

”);

scanf(“%d%d”,&m,&n);

if(m

{t=m;

m=n;

n=t;

}

m1=m;

n1=n;

while((k=m1%n1)!

=0)

{m1=n1;

n1=k;

}

printf("%d和%d最大公约数是:

%d\n",m,n,n1);

}

25、输入一串字符,将其中的大写字母变成对应的小写字母并输出。

#include

voidmain()

{inti,n;

chara[20];

printf("请输入字符串:

");

gets(a);

n=strlen(a);

for(i=0;i

if(a[i]>='A'&&a[i]<='Z')

a[i]=a[i]+32;

for(i=0;i

printf("%c",a[i]);

printf("\n");

}

26、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。

例如,输入abcdefg,2,3,输出bcd。

#include

voidmain()

{inti,m,n;

chara[20];

printf("请输入字符串:

");

gets(a);

n=strlen(a);

printf("请输入两个正整数:

");

scanf("%d%d",&m,&n);

for(i=m-1;i

printf("%c",a[i]);

printf("\n");

}

27、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。

要求编写函数f求平方。

#include

voidmain()

{intf(intx);

intn,sum;

printf("请输n值:

");

scanf("%d",&n);

sum=f(n);

printf("%d\n",sum);

}

intf(intx)

{intj,z=0;

for(j=1;j<=x;j++)

z=z+j*j;

returnz;

}

28、打印所有的水仙花数。

所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。

例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。

#include

voidmain()

{inta,b,c,s;

for(a=1;a<=9;a++)

{

for(b=0;b<=9;b++)

{

for(c=0;c<=9;c++)

if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c)

{

s=a*100+b*10+c;

printf("%d\n",s);

}

}

}

}

29、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。

#include

voidmain()

{inti,j,n1;

chara[20];

printf("请输入字符串:

");

gets(a);

n1=strlen(a);

for(i=0;i

if(a[i]!

='a')

printf("%c",a[i]);

printf("\n");

}

30、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。

#include

voidmain()

{inti,n;

charb[20];

printf("请输入字符串:

");

gets(b);

n=strlen(b);

for(i=0;i

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

b[i]='*';

for(i=0;i

printf("%c",b[i]);

printf("\n");

}

31、编写程序,将一个一维数组的元素逆序存放并输出。

例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。

#include

voidmain()

{inti;

inta[5];

printf(“请输入5个数:

”);

for(i=0;i<5;i++)

scanf(“%d”,&a[i]);

for(i=0;i<2;i++)

{

t=a[i];

a[i]=a[4-i];

a[4-i]=t;

}

for(i=0;i<5;i++)

printf("%d",b[i]);

printf("\n");

}

32、起泡法(选择法)对十个数排序

#include

voidmain()

{

inti,j,t;

inta[10];

printf("请输入10个数:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

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

a[i+1]=t;

}

for(i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

}

33、编写程序,使用循环结构输出下列图形:

1

1 2 3

1 2 3 4 5

1 2 3 4 5 6 7

#include

voidmain()

{

introw=4;

inti,j;

for(i=0;i

{

for(j=1;j<(i+1)*2;j++)

printf("%d",j);

printf("\n");

}

}

 

 

 

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

当前位置:首页 > 工程科技 > 电力水利

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

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