精品北工大C语言题库完美版.docx
《精品北工大C语言题库完美版.docx》由会员分享,可在线阅读,更多相关《精品北工大C语言题库完美版.docx(61页珍藏版)》请在冰豆网上搜索。
精品北工大C语言题库完美版
【关键字】精品
1求两个数的和与差
输入整数a和b,计算并输出a、b的和与差.
#include
intmain()
{
inta,b,sum,diff;
scanf("%d%d",&a,&b);
sum=a+b;
diff=a-b;
printf("Thesumis%d\n",sum);
printf("Thedifferenceis%d\n",diff);
}
2求平方根
输入1个实数X,计算井输出其平方根(保留1位小数).(例:
输入17;输出Thesquarerootof17.0is4.1)
#include
#include
intmain()
{
doublex,root;
scanf("%lf",&x);
root=sqrt(x);
printf("Thesquarerootof%fis%0.1f\n",x,root);
}
3华氏温度转换为摄氏温度
输入华氏温度f,计算并输出相应的摄氏温度c(保留2位小数).c=5/9(f-32).(例z括号内是说明输入17.2(华氏温度)输出Thctempratureis-8.22)
#include
intmain()
{
doublef,c;
scanf("%lf",&f);
c=5.0/9.0*(f-32.0);
printf("Thetempratureis%0.2f\n",c);
}
4计算旅途时间
输入2个整数time1和time2.表示火车的出发时间和到达时间,计算并输出旅途时间.有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况.
#include
intmain()
{
inttime1,time2,hours,mins;
scanf("%d%d",&time1,&time2);
time1=time1/100*60+time1%100;
time2=time2/100*60+time2%100;
hours=(time2-time1)/60;
mins=(time2-time1)%60;
printf("Thetrainjourneytimeis%dhrs%dmins.\n",hours,mins);
}
5大写字母转换成小写字母
输入一个大写英文字母,输出相应的小写字母.例:
输入G输出g
#include
intmain()
{
charch;
scanf("%c",&ch);
ch=ch-'A'+'a';
printf("%c\n",ch);
}
6显示两级成绩
输入一个正整数repeat(0输入一个学生的数学成绩,如果它低于ω,输出"Fail",否则,输出"Pass".
#include
intmain()
{
intmark;
scanf("%d",&mark);
if(mark>59)
printf("Pass\n");
else
printf("Fail\n");
}
7找最小值
#include
intmain()
{
inta,b,c,d,min;
scanf("%d%d%d%d",&a,&b,&c,&d);
min=a;
if(min>b)min=b;
if(min>c)min=c;
if(min>d)min=d;
printf("minis%d\n",min);
}
8求三角形面积和周长
输入三角形的三条边a,b,c.如果能构成一个三角形,输出面积area和周长perimete保留2位小数);否则,输出(Thesesidesdonotcorrespondtoavalidtriangle".在一个三角形中,任意两边之和大于第三边.
#include
#include
intmain()
{
floata,b,c,area,perimeter,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a-b{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%f",area);
printf("perimeter=%f",perimeter);
}
else
printf("Thesesidesdonotcorrespondtoavalidtriangle");
}
9判断数的符号
输入整数x,若x大于0,y=l;若x等于0,y=0;否则,y=-I,最后输出y
#include
intmain()
{
intx,y;
scanf("%d",&x);
if(x<0)y=-1;
elseif(x>0)y=1;
elsey=0;
printf("y=%d\n",y);
}
10显示水果价格
以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤.[1]apples[2]pears[3]oranges[4]grapes输入水果的编号,输出该水果的单价(保留2位小数).如果输入不正确的编号,显示单价为0.
#include
intmain()
{
intchoice;
floatprice;
printf("[1]apples\n");
printf("[2]pears\n");
printf("[3]oranges\n");
printf("[4]grapes\n");
scanf("%d",&choice);
price=(choice==1)*3+(choice==2)*2.50+(choice==3)*4.1+(choice==4)*10.2;
printf("price=%0.2f\n",price);
}
11读入1个正整数n(n<=100),计算并输出1+1/2+1/3+......+1/n(保留3位小数).
#include
intmain()
{
inti,n;
floatsum;
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/i;
printf("%0.3f\n",sum);
}
12求n的阶乘
#include
intmain()
{
inti,n;
doublefact;
scanf("%d",&n);
fact=1;
for(i=1;i<=n;i++)
{
fact=fact*i;
}
printf("%0.0f\n",fact);
}
13求X的n次幂
#include
intmain()
{
inti,n;
doublex,mypow;
scanf("%lf%d",&x,&n);
mypow=1;
for(i=1;i<=n;i++)
mypow*=x;
printf("%.2f\n",mypow);
}
14摄氏华氏转换表
#include
intmain()
{
intbegin,c,end,f;
scanf("%d%d",&begin,&end);
printf("CelsiusFahrenheit\n");
for(c=begin;c<=end;c++)
{
f=32+c*9/5;
printf("%d%10d\n",c,f);
}
}
15求整数的位数以及各位数之和
#include
intmain()
{
intnumber,sum;
longin;
scanf("%d",&in);
number=0;
sum=0;
if(in<0)in=-in;
do
{
number++;
sum+=(in%10);
}
while((in/=10)!
=0);
printf("number=%d,sum=%d\n",number,sum);
}
16求最大值
#include
intmain()
{
inti,max,n,x;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
if(i==1)max=x;
elseif(x>max)max=x;
}
printf("%d\n",max);
}
17求a+aa+aaa+aa....a
#include
voidmain()
{
inti,n;
longinta,sn,tn;
scanf("%ld%d",&a,&n);
tn=a;
sn=0;
for(i=1;i<=n;i++)
{
sn+=tn;
tn=10*tn+a;
}
printf("%ld\n",sn);
}
18输入1个正整数n,计算s的前n项的和(保留4位小数)。
#include
intmain()
{
inti,n;
floats,t;
scanf("%d",&n);
s=0;
t=1;
for(i=1;i<=n;i++)
{
t=t*1.0/i;
s=s+t;
}
printf("%0.4f\n",s);
}
19求奇数和
#include
intmain()
{
inti,n,x,sum;
printf("输入数字个数:
");
scanf("%d",&n);
sum=0;
i=1;
printf("输入数字:
");
while(i<=n)
{
i++;
scanf("%d",&x);
if(x%2!
=0)
sum=sum+x;
}
printf("sum=%d\n",sum);
}
20统计素数并求和输入2个正整数m和n(1<=m,n<=5ω),统计并输出m和n之间的素数的个数以及这些素数的和。
#include
#include
intmain()
{
intcount,digit,i,j,k,m,n,sum;
scanf("%d%d",&m,&n);
sum=0;
count=0;
if(m<2)m=2;
for(digit=m;digit<=n;digit++)
{
j=sqrt(double(digit));
boolisPrime=true;
for(k=2;k<=j;++k)
{
if(digit%k==0)
{
isPrime=false;
break;
}
}
if(isPrime)
{
count++;
sum+=digit;
}
}
printf("count=%d,sum=%d\n",count,sum);
}
22输入1个正整数n,计算s的前n项的和(保留4位小数)。
s=1+J/2!
+....+l/n!
要求定义并调用函数fact(n)计算n的阶乘.
#include
intmain()
{
inti,n;
doubles;
doublefact(intn);
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++)
s+=fact(i);
printf("%0.4f\n",s);
}
doublefact(intn)
{
intj,t=1;
doublex;
for(j=1;j<=n;j++)
{
t*=j;
x=1.0/t;
}
return(x);
}
23统计一个整数中数字的个数
读入1个整数,统计并输出该数中2的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数.例如,countdigit(l0090,0)的返回值是3.
#include
intmain()
{
intcount;
longin;
intcountdigit(longnumber,intdigit);
scanf("%ld",&in);
count=countdigit(in,2);
printf("count=%d\n",count);
}
intcountdigit(longnumber,intdigit)
{
inti,sum;
if(number<0)
number=-number;
sum=0;
while(number!
=0)
{
i=number;
if(i%10==2)sum++;
number=number/10;
}
return(sum);
}
24输入2个正整数m和n(I<=01,n<=10000),输出m和n之间所有的Fibonacci数..Fibonacci序列(第1项起):
1123581321..…•要求定义并调用fib(n)时,它的功能是返回第n项目Fibonacci数.
#include
voidmain()
{
intfib(intn);
inti,n,m,t;
printf("请输入mn:
");
scanf("%d%d",&m,&n);
for(i=1;;i++)
{
t=fib(i);
if(t>=m&&t<=n)
printf("%d\n",t);
elseif(t>n)break;
}
printf("\n");
}
intfib(intn)
{
if(n==1||n==2)
return1;
elsereturn
fib(n-1)+fib(n-2);
}
25将一个整数逆序输出输入一个整
数,将它逆序输出.要求定义并调用
函数reverse(number),它的功能是返回number的逆序数.
#include
intmain()
{
intin,res;
intreverse(intnumber);
scanf("%d",&in);
res=reverse(in);
printf("%d\n",res);
}
intreverse(intnumber)
{
intx=0;
while(number!
=0)
{
x=x*10+number%10;
number=number/10;
}
return(x);
}
26十进制转换二进制输入1个正
整数n,将其转换为二进制后输出.要求定义并调用函数dectobin(n),它的功能是输出n的二进制
#include
intmain()
{
inti,n;
voiddectobin(intn);
scanf("%d",&n);
dectobin(n);
printf("\n");
}
voiddectobin(intn)
{
if(n>1)
dectobin(n/2);
printf("%d",n%2);
}
27统计素数并求和输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数).要求定义并调用函数primc(m)判断m是否为素数。
#include
intmain()
{
intcount,i,m,n,sum;
intprime(intm);
scanf("%d%d",&m,&n);
count=0;
sum=0;
for(i=m;i<=n;i++)
if(prime(i))
{
count++;
sum+=i;
}
printf("count=%d,sum=%d\n",count,sum);
}
intprime(inti)
{
intflag,j;
if(i==1)
flag=0;
elseif(i==2)
flag=1;
else
{
for(j=2;j
if(i%j==0)
{
flag=0;
break;
}
elseflag=1;
}
return(flag);
}
28求完数输入2个正整数m和n(I<=m,n<=1000),输出m到n之间的所有完数〈完数就是因子和与它本身相等的数〉要求定义并调用函数factorsum(number)
#include
intmain()
{
longi,m,n;
longfactorsum(longnumber);
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
if(factorsum(i)==i)
printf("%ld\n",i);
}
longfactorsum(longnumber)
{
intj,sum=0;
for(j=1;jif(number%j==0&&number!
=j)
sum+=j;
return(sum);
}
30交换最小值和最大值输入一个正整数n(1#include
intmain()
{
intn,i,j,k,temp1=0,temp2=0,min=0,max=0,a,b;
intq[10];
scanf("%d",&n);
for(i=0;i{
scanf("%d",&q[i]);
}
min=q[0];
for(j=0;j{
if(q[j]<=min)
{
temp1=j;
min=q[j];
}
}
max=q[0];
for(k=0;k{
if(q[k]>max)
{
temp2=k;
max=q[k];
}
}
a=q[0];
b=q[n-1];
q[n-1]=max;
q[0]=min;
q[temp1]=a;
q[temp2]=b;
for(intz=0;z{
printf("%d",q[z]);
}
return0;
}
31输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数
#include
intmain()
{
inti,m,n;
intis(intnumber);
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
if(is(i));
elseprintf("%d\t",i);
}
printf("\n");
}
intis(intnumber)
{
inttemp,digit,sum,flag;
temp=number;
sum=0;
while(number!
=0)
{
digit=number%10;
sum=sum+digit*digit*digit;
number=number/10;
}
if(sum==temp)
flag=0;
else
flag=1;
return(flag);
}
32输入一个正整数repeat(0输入一个正整
数n(0#include
intmain(void)
{
inti,j,n,x;
intrepeat,ri;
inta[20];
printf("输入执行次数:
");
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++)
{
printf("输入整数个数:
");
scanf("%d",&n);
for(i=0;i{
printf("输入整数:
");
scanf("%d",&a[i]);
}
printf("x=");
scanf("%d",&x);
i=n-1;
while(i>=0&&x<=a[i])
{
a[i+1]=a[i];
a[i]=x;
i--;
}
for(i=0;i{
printf("%d",a[i]);
putchar('\n');
}
}
}
33.输入1个正整数n(1小数〉。
#include
intmain(void)
{
inti,n,sum;
inta[20];
doubleaver;
printf("输入整数个数:
");
scanf("%d",&n);
for(i=0;i{
printf("输入整数:
");
scanf("%d",&a[i]);
}
sum=0;
for(i=0;i{
sum=sum+a[i];
}
aver=sum*(1.0/n);
printf("average=%.2f\n",aver);
}
34输入一个正整数n(1#include