c语言考试整理.docx

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

c语言考试整理.docx

《c语言考试整理.docx》由会员分享,可在线阅读,更多相关《c语言考试整理.docx(29页珍藏版)》请在冰点文库上搜索。

c语言考试整理.docx

c语言考试整理

1.键盘上输入n个数,输出最大值最小值.

#include

#defineM30

intmain()

{inta[M],n,i,max,min;

printf("请输入n(n<%d):

",M);

scanf("%d",&n);

printf("请输入这%d个数:

\n",n);

for(i=0;i

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

max=min=a[0];

for(i=0;i

{if(a[i]>max)

max=a[i];}

for(i=0;i

{if(a[i]

min=a[i];}

printf("这%d个数中最大的数为:

%d\n",n,max);

printf("这%d个数中最小的数为:

%d\n",n,min);

return0;

}

2.求一个3位数abc使得a的阶乘+b的阶乘+c的阶乘=abc

#include

intfac(intx)

{intm,n=1;

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

n=n*m;

return(n);

}

main()

{inti,g,s,b;

for(i=100;i<1000;i++)

{b=i/100;

s=(i-b*100)/10;

g=i%10;

if(fac(g)+fac(s)+fac(b)==i)

printf("%d!

+%d!

+%d!

=%d\n",b,s,g,i);

}

}

3.题目:

有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

#include

intmain()

{intn;

floatt=0,s=2,k=1,m;

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

{t=t+s/k;

m=s;s=s+k;k=m;}

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

return0;

}

4.输入整数N,求N的阶乘

#include

intmain()

{intn,i,s=1;

printf("请输入您要计算的数n:

");

scanf("%d",&n);

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

s=s*i;

printf("%d!

=%d\n",n,s);

}

5.输入一串正整数,倒序输出

#include

#defineM100

intmain()

{inti,j;

chara[M];

printf("请输入一列数字:

\n");

for(i=0;i

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

if(a[i]=='\n')

break;

}

printf("则该列数字倒序输出为:

");

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

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

printf("\n");

return0;

}

6.求100~100000之间所有数字之和为5的整数的个数

#include

intmain()

{longinti,a1,a2,a3,a4,a5,j=0;

for(i=100;i<100000;i++)

{a1=i/10000;

a2=(i-a1*10000)/1000;

a3=(i-a1*10000-a2*1000)/100;

a4=(i-a1*10000-a2*1000-a3*100)/10;

a5=i-a1*10000-a2*1000-a3*100-a4*10;

if(a1+a2+a3+a4+a5==5)

{printf("%ld",i);

j=j+1;}}

printf("整数100至100000之间所有数字之和为5的整数的总个数为:

\"%ld\"\n",j);

return0;

}

7.输入字符串,打印除小写元音字母之外的。

#include

#defineM100

intmain()

{inti,n;

chara[M];

printf("请输入一列字符串:

");

for(i=1;i

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

if(a[i]=='\n')break;}

printf("则该列字符串中去除小写元音字母后输出为:

");

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

{if((a[n]!

=97)&(a[n]!

=101)&(a[n]!

=105)&(a[n]!

=111)&(a[n]!

=117))

printf("%c",a[n]);}

return0;}

8.从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示)

#include

intmain()

{inti,a[10];

floats,j=0,k=0;

printf("请输入10个数:

\n");

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

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

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

{if(a[i]%2==0)

{j=j+a[i];

k=k+1;}

}

s=j/k;

printf("这10个数中偶数和为:

%1.0f\n这10个数中偶数的平均值为:

%5.5f\n",j,s);

return0;}

9.从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示)

#include

intmain()

{inti,a[10];

floats,j=0,k=0;

printf("请输入10个数:

\n");

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

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

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

{if(a[i]%2!

=0)

{j=j+a[i];

k=k+1;}

}

s=j/k;

printf("这10个数中奇数和为:

%1.0f\n这10个数中奇数的平均值为:

%5.2f\n",j,s);

return0;}

10.循环语句求S=a+aa+…+aaa…a的值,其中a是一个数字n由键盘输入

#include

main()

{inta,n,i;

longints,t;

printf("请输入a(a<10):

");

scanf("%d",&a);

printf("请输入n:

");

scanf("%d",&n);

t=s=a;

printf("%d",a);

for(i=1;i

{t=t*10+a;

printf("+%ld",t);

s=s+t;}

printf("=%ld\n",s);

}

11.求1!

+2!

+3!

+…+n!

(当n=10时得4037913)

#include

main()

{inta,n,i;

longints,t;

printf("请输入a(a<10):

");

scanf("%d",&a);

printf("请输入n:

");

scanf("%d",&n);

t=s=a;

printf("%d",a);

for(i=1;i

{t=t*10+a;

printf("+%ld",t);

s=s+t;}

printf("=%ld\n",s);

}

12.输出满足以下条件的最大的n:

12+22+32+…+n2<=1000

#include

main()

{inti,s;

for(i=1,s=0;s<=1000;i++)

{s=s+i*i;

if(s>1000)break;

}

printf("%d\n",i-1);}

13.0~1000同时被7和13整除的数

#include

main()

{inti;

printf("0~1000中同时能被7和13整除的数为:

\n");

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

{if((i%7==0)&&(i%13==0))

printf("%5d",i);}

getch();

}

14.1/1,1/3,1/5,1/7,1/9,1/11……的前20项之和,并输出。

#include

main()

{floats,i,t;

for(i=0,s=0,t=1;i<20;i++)

{s=s+1/t;

t=t+2;}

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

}

15.求s=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于0.00001为止。

#include

voidmain()

{doubles1=0,s2=0,s,i;

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

{if(1/(4*i+1)<0.00001)break;

s1=s1+1/(4*i+1);

if(1/(4*i+3)<0.00001)break;

s2=s2-1/(4*i+3);}

s=s1+s2;printf("%lf\n",s);}

16.用公式e≈1+1/1!

+1/2!

+1/3!

+…+1/n!

,求e的近似值,直到1/n!

<10-6为止。

#include

#include

voidmain()

{doublejiecheng(doublea);

doublei,t=1;

for(i=1;;i++)

{if(1/jiecheng(i)<0.000001)break;

t=t+1/jiecheng(i);}

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

}

doublejiecheng(doublea)

{

inti;

doublet=1;

for(i=0;i

t=t*(a-i);

return(t);

}

17.用π/4=1-1/3+1/5-1/7+……公式请求π的近似值,直到某一项的绝对值小于10-6为止。

#include

voidmain()

{doubles1=0,s2=0,s,i;

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

{if((1/(4*i+1))<0.000001||(1/(4*i+3))<0.000001)

break;

s1=s1+1/(4*i+1);

s2=s2-1/(4*i+3);}

s=s1+s2;

printf("%lf\n",4*s);}

18.输出1~10的阶乘值

#include

doublefac(doublex)

{doubles,k;

for(s=1,k=1;s<=x;s++)

k=k*s;returnk;}

main()

{doublei;

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

printf("%1.0f!

=%1.0f\n",i,fac(i));}

19.输入正数,判断是否是素数

#include

intprime(intx)

{intflag=1,i;

for(i=2;i

{if(x%i==0)flag=0;}

returnflag;

}

main()

{intw;

scanf("%d",&w);

if(prime(w))

printf("%disaprime\n",w);

else

printf("%disnotaprime\n",w);

}

20.求1+(1+2)+(1+2+3)+…+(1+2+…+n)

#include

intsum(intx)

{inti,j=0;

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

j=j+i;

return(j);}

main()

{intn,p,s=0;

printf("inputn:

");

scanf("%d",&n);

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

s=s+sum(p);

printf("%d",s);

getch();}

21.输入年月,输出该月有多少天。

#include

main()

{inta[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}};

inty,m,i;

printf("Pleaseinputtheyear:

");

scanf("%d",&y);

printf("Pleaseinputthemonth:

");

scanf("%d",&m);

i=((y%4==0)&&(y%100!

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

printf("thismonthhas%ddays",a[i][m]);

}

22.编一个计算器,可以计算“+”“-”“*”“/”

#include

main()

{inta1,a2;

charop;

printf("sign:

\n");

scanf("%c",&op);

printf("no.1:

\n");

scanf("%d",&a1);

printf("no.2:

\n");

scanf("%d",&a2);

switch(op)

{case'+':

printf("%d+%d=%d\n",a1,a2,a1+a2);break;

case'-':

printf("%d-%d=%d\n",a1,a2,a1-a2);break;

case'*':

printf("%d*%d=%d\n",a1,a2,a1*a2);break;

case'/':

printf("%d/%d=%d\n",a1,a2,a1/a2);break;

default:

printf("wrong");

}

getch();}

23.求555555的约数中最大的3位数:

777

#include

main()

{inta[1000],n=555555,i,j,k=0,w,t;

printf("555555的约数如下:

\n");

for(i=100;i<1000;i++)

{j=n%i;

if(j==0)

{a[k]=i;

printf("%5d",a[k]);k=k+1;}}

t=a[0];

printf("\n则其中最大的约数为:

\n");

for(w=1;w

{{if(a[w]>t)t=a[w];}

}

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

}

24.韩信点兵:

士兵5人一行,末行一人;6人一行,末行5人;7人一行,末行4人,11人一行,末行10人。

求士兵人数〉11:

2111

include

main()

{ints=11,i=1;

while(i==1)/*由于不知具体循环次数,故使用while型*/

{s++;

if((s%5==1)&&(s%6==5)&&(s%7==4)&&(s%11==10))

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

i=0;/*此处i=0*/}

}}

25.爱因斯坦阶梯问题(119)

#include

main()

{ints=11,i=1;

while(i==1)/*由于不知具体循环次数,故使用while型*/

{s++;

if((s%2==1)&&(s%3==2)&&(s%5==4)&&(s%6==5)&&(s%7==0))

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

i=0;/*此处i=0*/}

}}

26.输入m,n求其最小公倍数

#include

intnum(intu,intv)

{intr;

while((r=u%v)!

=0)

{u=v;v=r;}

return(v);

}

main()

{inti,j,t;

printf("请输入两个数:

");

scanf("%d%d",&i,&j);

if(i

printf("则这两个数的最小公倍数为:

%d\n",i*j/num(i,j));

}

27输入m,n求其最大公约数

#include

intnum(intu,intv)

{intt,r;

if(v>u){t=u;u=v;v=t;}

while((r=u%v)!

=0)

{u=v;v=r;}

return(v);}

main()

{inti,j;

printf("请输入两个数:

");

scanf("%d%d",&i,&j);

printf("则这两个数的最大公约数为:

%d\n",num(i,j));

}

28输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。

#include

main()

{inti,j;

inte=0,b=0,c=0,d=0;

chara[100];

printf("请输入一列字符串:

\n");

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

{a[i]=getchar();

if(a[i]=='\n')break;}

for(j=0;j

{if((a[j]>=65&&a[j]<=88)||(a[j]>=97&&a[j]<=122))e++;

elseif(a[j]>=48&&a[j]<=57)c++;

elseif(a[j]=='')b++;

elsed++;

}

printf("该行字符串中空格个数为:

%d\n",b);

printf("该行字符串中数字个数为:

%d\n",c);

printf("该行字符串中英文字母个数为:

%d\n",e);

printf("该行字符串中其他字符个数为:

%d\n",d);

}

29.输入十个数,将其排序

#include

main()

{inta[100],i,j,t,n;

printf("请输入n:

");

scanf("%d",&n);

printf("请输入这%d个数:

",n);

for(i=0;i

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

for(i=0;i

{for(j=0;j

{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}

}}

printf("则这%d个数按照从小到大的顺序排列为:

\n",n);

for(i=0;i

{printf("%d\n",a[i]);}

}

30.输出100~200之间的素数

#include

intprime(intx)

{intflag=1,i;

for(i=2;i

if(x%i==0)flag=0;

returnflag;}

main()

{inti,j=0;

for(i=100;i<201;i++)

{if(prime(i))

{printf("%d",i);j=j+1;if(j%10==0)printf("\n");}

}}

31题:

由36块砖,男人一次可以搬4块,女人一次可以搬3块,2个小孩一次可以搬一块,问男人女人小孩各需多少人可以一次性将砖搬完?

(3男,3女,30小孩)

#include

main()

{intd,z,x;

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

{for(z=1;z<=(36-4*d)/3;z++)

{x=36-d-z;

if(4*d+3*z+0.5*x==36)

printf("%d(男)%d(女)%d(小孩)\n",d,z,x);}

}

}

32题:

输入一个字符串,将其正序反序输出?

#include

#defineM100

intmain()

{inti,j;

chara[M];

printf("请输入一列字符串:

\n");

for(i=0;i

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

if(a[i]=='\n')

break;

}

printf("则该列字符串倒序输出为:

");

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

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

printf("\n");

return0;

}

33题:

输入一行字符,统计以空格间隔的的单词个数?

#include

main()

{inti,n,l=1;

chara[100];

printf("请输入一行字符串:

\n");

for(n=0,i=0;n<100;n++,i++)

{a[i]=getchar();

if(a[i]=='\n')break;}

for(n=0;n

{if(a[n]=='')l++;}

printf("则行字符串共有%d个单词。

\n",l);

}

34题:

输出一个十进制数,将其转化为一个2进制数输出?

#include

main()

{

intn,x=0,a[100];

printf("请输入一个数字:

\n");

scanf("%d",&n);

while(n)

{a[x++]=n%2;

n=n/2;}

--x;

printf("则该数字的二进制表示为:

\n");

while(x>=0)

printf("%d",a[x--]);

printf("\n");

}

35题:

水仙花数,输入一个三位数,该三位数各位数字立方和等于该数本身?

#include

intcube(intx)

{return(x*x*x);}

main()

{inti,g,s,b;

for(i=100;i<1000;i++)

{b=i/100;

s=(i-b*100)/10;

g=i%10;

if(cube(g)+cube(s)+cube(b)==i)

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

}

}

36题:

求从3开始到小于100的所有双素数?

#include

intprime(intx)

{intflag=1,i;

for(i=2;i

if(x%i==0)flag=0;

returnflag;}

main()

{intn;

for(n=3;n<99;n++)

{if(prime(n)&&prime(n+2))

printf("%d/%d\n",n,n+2);

}}

37题:

求两位绝对素数?

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

当前位置:首页 > 人文社科 > 法律资料

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

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