c语言机试经典编程题重点资料Word文档下载推荐.docx

上传人:b****6 文档编号:21643567 上传时间:2023-01-31 格式:DOCX 页数:37 大小:39.31KB
下载 相关 举报
c语言机试经典编程题重点资料Word文档下载推荐.docx_第1页
第1页 / 共37页
c语言机试经典编程题重点资料Word文档下载推荐.docx_第2页
第2页 / 共37页
c语言机试经典编程题重点资料Word文档下载推荐.docx_第3页
第3页 / 共37页
c语言机试经典编程题重点资料Word文档下载推荐.docx_第4页
第4页 / 共37页
c语言机试经典编程题重点资料Word文档下载推荐.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

c语言机试经典编程题重点资料Word文档下载推荐.docx

《c语言机试经典编程题重点资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言机试经典编程题重点资料Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。

c语言机试经典编程题重点资料Word文档下载推荐.docx

intyear,a;

printf("

请输入年份月份:

"

scanf("

%d%d"

year,&

a);

if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)

printf("

这个月有31天\n"

else{

if(a==2){

if((year%4==0)&

&

(year%100!

=0)||(year%400==0))

printf("

这个月有29天\n"

else

这个月有28天\n"

}

else

printf("

这个月有30天\n"

}

3.求一元二次方程ax2+bx+c=0的根。

(要考虑a、b、c三个系数不同的取值)

math.h>

floata,b,c,d;

请输入一元二次方程的三个系数a,b,c:

%f%f%f"

a,&

b,&

c);

if(a!

=0){

d=b*b-4*a*c;

if(d>

0)

x1=%f,x2=%f"

(-b+sqrt(d))/2*a,(-b-sqrt(d)/2*a));

else

if(d==0)

x1=x2=%f"

(-b)/2*a);

x1=%f+%fi,x2=%f-%fi"

-b/2*a,sqrt(-d)/2*a,-b/2*a,sqrt(-d)/2*a);

if(b!

=0)

x=%f\n"

-c/b);

if(c==0)

0=0!

%f=0矛盾\n"

c);

4.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以根据大奖赛的成绩适度加分。

加分规则是:

参赛者加5分,三等奖加15分,二等奖加20分,一等奖加30分,总分不超过100分。

编程序,输入某同学的考试成绩,回答在竞赛中获奖等级,计算并输出该某同学的程序设计课成绩。

inta,b;

请输入你的考试成绩:

请选择你程序设计情况:

0未参加1参赛2三等奖3二等奖4一等奖\n"

b);

switch(b){

case0:

a=a+5;

a=a+15;

case3:

a=a+20;

case4:

a=a+30;

if(a>

a=100;

a);

5.高速公路每公里的收费标准按不同种类汽车如下:

小汽车(car)0.50元

卡车(truck)1.00元

大客车(bus)1.50元

编程序,为某高速公路收费站计算各种车辆的收费额。

floata,c;

intb;

请选择车辆类型:

1小汽车;

2卡车;

3大客车\n"

请输入车辆行驶的公里数:

%f"

\

c=0.5*a;

c=1.0*a;

c=1.5*a;

收费额为:

%3f元"

6.设计一个模拟单步计算器的程序,设该计算器只能作加、减、乘、除运算。

用户输入形如

m#n

的算式,其中m、n为运算数,#为运算符。

(需考虑运算符不合法,及除数为0的情况)

floatm,n;

charch;

请输入运算式:

m#n\n"

%f%c%f"

m,&

ch,&

if((ch!

='

+'

)&

(ch!

-'

*'

/'

))

您输入的运算符不合法!

{switch(ch){

case'

:

%2f"

m+n);

m-n);

m*n);

{if(n!

m/n);

else

printf("

分母为0无意义!

}}

7.编写程序,输入一个4位自然数n,判断n是否是降序数。

降序数是指对于n=d1d2…dk有:

d1≥d2≥…≥dk

intn,a,b,c,d;

请输入一个四位自然数:

a=n/1000;

b=n%1000/100;

c=n%100/10;

d=n%10;

if(a>

b&

b>

c&

c>

d)

该四位数为降序数!

该四位数不是降序数!

8.编写程序,输入一个5位自然数n,判断n是否对称数。

对称数是指正序和反序读都相等的整数,如96769为对称数。

intn,a,b,c,d,e;

请输入一个五位数:

a=n/10000;

b=n%10000/1000;

c=n%1000/100;

d=n%100/10;

e=n%10;

if((a==e)&

(b==d))

该五位数为对称数"

该五位数不是对称数"

9.编写程序,判断给定的3位数是否为Armstrong数。

Armstrong数是指其值等于它每位数字立方和的数,如153就是一个Armstrong数。

intn,a,b,c;

请输入一个三位数:

a=n/100;

b=n%100/10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

该三位数为armstrong数"

该三位数不是armstrong数"

10.编写程序,输入一个整数,判断它能否被3、5、7整数,并输出如下信息。

(1)能同时被3、5、7整数。

(2)能同时被两个数整数,并指明是被哪两个数整除。

(3)能被一个数整数,并指明这是哪个数。

(4)不能被所有3个数整除。

intx;

请输入一个整数x:

x);

if((x%3==0)&

(x%5==0)&

(x%7==0))

%d能同时被3、5、7整数\n"

x);

if((x%3!

=0)&

%d能同时被5、7整数\n"

(x%5!

%d能同时被3、7整数\n"

(x%7!

=0))

%d能同时被3、5整数\n"

%d能被7整数\n"

%d能被3整数\n"

%d能被5整数\n"

%d不能被3、5、7整除\n"

11.邮局寄包裹的费用是根据包裹的重量来收取的。

一个重量为2kg或低于2kg的包裹收取3.25元。

高于2kg的包裹,超出部分每千克收取1.05元,超出部分不足1kg按1kg计算。

因此如果发件人发送重达5.63kg的包裹,就需要缴纳7.45元。

编写程序,输入包裹的重量,计算并输出发件人须缴纳的费用。

(笔记本调试不成功)

inta;

请输入包裹的重量:

if(m<

=2)

n=3.25;

else{

a=m/1;

if(m-a==0)

n=3.25+(a-2)*1.05;

n=3.25+(a-1)*1.05;

您需缴纳的费用为:

%f元"

n);

12.一个临时照顾孩子的人的收费标准是:

18:

00到21:

30间每小时2元,21:

30到午夜间每小时4元,18:

00以前和午夜以后不照顾孩子。

编写程序,输入开始时间和结束时间,计算并输出某一个雇工的薪酬。

程序应检查无效的开始和结束时间。

floatm,n,j;

请输入工作的起止时间:

%f%f"

if(n<

=18||n>

24||m<

18||m>

24)

输入的时间无效!

=18&

n<

=21.5)

j=(n-m)*2;

21.5&

n>

21.5)

j=(21.5-m)*2+(n-21.5)*4;

j=(n-m)*4;

您获得的钱数为%f元\n"

j);

13.编写程序,按下述公式求自然对数底e的近似值。

#defineeps1e-5

intn;

floate,r;

e=1.0;

n=1;

r=1.0;

while(r>

eps){

e=e+r;

n=n+1;

r=r/n;

e=%f\n"

e);

14.编写程序,统计以100位结束符的整数输入流中-1、0、1的出现次数并将其输出。

intn,i,j,k;

i=0;

j=0;

k=0;

请输入一个整数:

while(n!

=100){

if(n==1)i++;

if(n==0)j++;

if(n==-1)k++;

整数流中出现1%d次\n"

i);

整数流中出现0%d次\n"

整数流中出现-1%d次\n"

k);

15.编写程序,打印“99乘法表”

11

224

3369

4481216

5510152025

661218243036

77142128354249

8816243240485664

991827364554637281

*123456789

inti,j;

for(i=1;

i<

10;

i++){

%4d"

for(j=1;

j<

=i;

j++)

i*j);

%4c"

'

=9;

i++)

16.编写程序,打印200以内的素数,要求每行输出10个数。

inti,j,k=0;

boolflag;

for(i=2;

200;

flag=true;

for(j=i/2;

j>

=2;

j--)

if(i%j==0)

flag=false;

if(flag)

{printf("

%d"

k++;

if(k%10==0)

17.编写程序,输出如下序列的前50项,此序列的第一项为0;

第二项为1;

以后的奇数项为其前两项之和;

偶数项为其前两项之差。

要求每行输出10个数。

intu,v,w,k;

u=0;

v=1;

%5d%5d"

u,v);

for(k=3;

k<

=50;

k++){

if(k%2==0)

w=v-u;

w=u+v;

%7d"

w);

u=v;

v=w;

18.编写程序,输入正整数N,计算r1!

+r2!

+…+rn!

并输出。

其中N=r1r2…rn。

intn,s,p,u,r;

请输入正整数:

s=0;

while(n!

r=n%10;

n=n/10;

p=1;

u=1;

while(u<

=r){

p=p*u;

u=u+1;

s=s+p;

s);

19.完数问题:

若有一数,其值等于它的因子之和,则该数称为完数。

例如,6的因子为1、2、3,而6=1+2+3,故6是完数。

编程输出1000之内的所有完数及其因子。

inti,j,k,l;

1000;

=1;

k=k+j;

if(k==i)

%d"

因子为:

for(l=1;

l<

=k/2;

l++)

if(k%l==0)

l);

20.把一张1元钞票换成1分、2分和5分的硬币,每种至少有1枚,问有多少种换法?

inti,j,k,l=0;

=10;

=5;

for(k=1;

k++)

if(i+2*j+5*k==10)

l++;

21.斐波那契(Fibonacci)数列问题:

Fibonacci数列递归定义为:

x0=0,

x1=1,

xi+1=xi+xi-1,i=2,3,…

即从第二项开始,数列中的每一个元素等于前面两个元素之和。

编程输出前20项Fibonacci数。

(提示可以用递归或迭代两种方式编程)

答案:

inti,a[20];

0"

1"

=20;

{a[0]=0;

a[1]=1;

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

a[i]);

另解:

#include"

stdio.h"

math.h"

voidmain()

{

intf1,f2,f3,i;

f1=0,f2=1;

f1);

f2);

for(i=1;

=18;

{f3=f1+f2;

f1=f2;

f2=f3;

f3);

22.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?

intx,y,z;

for(x=1;

x<

x++)

for(y=1;

y<

=33;

y++)

for(z=3;

z<

=99;

z=z+3)

if(x+y+z==100&

5*x+3*y+z/3==100)

公鸡%d;

母鸡%d;

小鸡%d\n"

x,y,z);

23.编写程序,用循环语句控制打印如图所示的字符图形。

ABCDEFGHI

BCDEFGHIA

CDEFGHIAB

DEFGHIABC

EFGHIABCD

ABCDEFGHI

charx,y;

for(x='

A'

;

E'

{for(y=x;

I'

%c"

y);

for(y='

=x-1;

D'

x>

x--){

for(y=x;

24.编写程序,打印如下图所示的图形

1

121

12321

1234321

123454321

12345654321

1234567654321

123456787654321

12345678987654321

1234567890987654321

inti,j,k,l,m,n;

{for(j=9;

"

i;

for(l=i;

l>

l--)

for(m=1;

m<

m++)

for(n=9;

n--)

25.验证哥德巴赫猜想:

任意一个大偶数都可以分解为两个素数之和。

用户输入一个大于6的偶数,程序计算并输出分解结果。

26.编写一个程序解决爱因斯坦台阶问题:

有人走以台阶,若以每步走2级则最后剩1级;

若每步走3级则最后剩2级;

若以每步走4级则最后剩3级;

若以每步走5级则最后剩4级;

若以每步走6级则最后剩5级;

若以每步走7级则最后刚好不剩。

问台阶共有几级?

27.编写程序,输出所有小于100的可以被11整除的自然数,以及这些数之和。

intn,m;

n=0;

100;

{if(m%11==0)

n=n+m;

和为:

28.一辆汽车装满油料可以行驶300km。

从存放有n车油料的油库出发,通过在途中建立加油站的方法,它可以行驶

千米。

编写程序,给定L以计算n。

29.编写函数,判定它的4个整型参数中是否有两个数的值相等。

主函数读入4个数,调用该函数,输出判定结果。

inty(inta,intb,

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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