C编程题

这是一系列C编程题目,涵盖了数字操作、排序、计算、逻辑推理等多个方面,旨在锻炼编程思维和技巧。包括数字位数对调、排序算法、求解方程、计算序列和、随机数游戏、字符串处理等挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在键盘上输出一个正整数,要求将其十位数和个位数对调。

#include<stdio.h>
int main(){
int a,i,j;
printf("请输入一个正整数:");
scanf("%d",&a);

while(a<=0||a!=(int)a) {
printf("输入错误\n请输入一个正整数:");
scanf("%d",&a);
}

i=a%10;//个位
if(i==a){
printf("对调后结果为:%d",a);
return 0;
}

j=a%100/10;//十位

a=a/100*100+i*10+j;//除100去除后两位数字再乘以100填上两个0,个位*10变为十位

printf("对调后结果为:%d",a);

return 0;

}

2.从键盘输入3个整数,按照从大到小顺序输出。

#include<stdio.h>
int main(){
int a,b,c,max,min;
printf("请输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
printf("您输入的结果为:%d%d%d\n",a,b,c);
max=a>b?(a>c?a:c):(b>c?b:c);
min=a<b?(a<c?a:c):(b<c?b:c);
printf("排序后结果是:");
printf("%d%d%d",max,a+b+c-max-min,min);
return 0;
}


3.输入一个四位正整数,计算它每位数之和,非零数之积。

#include<stdio.h>
int main(){
int a,i,j,k,l,sum,mul;
printf("请输入一个四位正整数:");
scanf("%d",&a);

i=a%10;//个位

j=a%100/10;//十位

k=a%1000/100;//百位

l=a/1000;//千位

sum=i+j+k+l;

i=(i!=0)?i:1;//非零为i,否则为1

j=(j!=0)?j:1;

k=(k!=0)?k:1;

l=(l!=0)?l:1;

mul=i*j*k*l;

printf("它每位数之和是:%d,非零数之积是:%d",sum,mul);

return 0;

}

4.输入某自然数递增序列首项和末项,输出该序列所有数的和。

#include<stdio.h>
int main(){
int f,end,sum;
printf("输入某自然数递增序列首项和末项:");
scanf("%d%d",&f,&end);
sum=(end-f+1)*(f+end)/2;//等差数列求和,因为是自然数包含0所以,项数是末项-首项+1
printf("输出该序列所有数的和:%d",sum);
return 0;
}

5.让计算机生成一个1-6之间的随机整数来表示骰子的点数,由用户输入'1'猜大,'2'猜小,输出结果。

#include<stdio.h>
#include<stdlib.h>
int main(){
int a,n;
printf("系统掷骰子中...\n");

srand(time(NULL));
n=rand()%6+1;

printf("请猜大小,输入1表示大,输入2表示小:");
scanf("%d",&a);
if(a==1&&n>3)//4,5,6是大
    printf("恭喜,猜对了,数字为:%d",n);
else if(a==2&&n<4)//1,2,3是小
    printf("恭喜,猜对了,数字为:%d",n);
else
    printf("猜错了,数字为:%d",n);
return 0;

}

6.求圆柱体的体积、表面积

#include<stdio.h>
#define PI 3.1415926
int main(){
int r,h,v,s;
printf("请输入圆柱体半径:");
scanf("%d",&r);
printf("高度:");
scanf("%d",&h);

v=PI*r*r*h;//PI&R2*H

s=2*PI*r*r+2*PI*r*h;//两个底面积+侧面积(2*PI*R2*H)

printf("圆柱体体积为:%d,表面积为:%d",v,s);
return 0;
}


7.从键盘上输入秒数,将其转换为几小时几分钟几秒的形式

#include<stdio.h>
int main(){
int s,h,m;
printf("请输入秒数:");
scanf("%d",&s);
h=s/3600;
m=s%3600/60;
s=s%60;
printf("%d小时%d分钟%d秒",h,m,s);
return 0;
}

8.计算两个数之差的绝对值

#include<stdio.h>
#include<math.h>
int main(){
int a,b;
int z=0;
int x=0;
printf("输入两个数:");
scanf("%d%d",&a,&b);

//使用abs()函数
z=abs(a-b);
printf("两个数之差的绝对值:%d\n",z);

//或者
x=a-b;
if(a-b<0) x=b-a;
printf("两个数之差的绝对值:%d",x);
return 0;
}

9.求一元二次方程3X2-20X-10=0的根,保留二位小数

公式:Δ=b^2-4ac
若Δ<0,二次方程无实数根;若Δ=0,二次方程有1个实数根;若Δ>0,二次方程有2个不相等的实数根;
#include<stdio.h>
int main(){
int a=3,b=-20,c=-10;
double z,x1,x2;
z=b*b-4*a*c;
if(z>0){
x1=(-b+sqrt(z))/(2*a);
x2=(-b-sqrt(z))/(2*a);
printf("x1=%.2lf,x2=%.2lf\n",x1,x2);
}
else if(z==0){
 x1 = (-b )/(2*a);
 x2 = x1;
printf("x1 =x2 = lf%\n",x2);
 }
else
   printf("无解\n");
return 0;
}

10.输入三角形的三个边长,求三角形面积;三角形输入两条边,求第三边

#include<stdio.h>
int main(){
int a,b,c,p,s;
printf("请输入三角形的三条边:");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a){//判断是否是三角形
p=(a+b+c)/2;//海伦公式,令p=(a+b+c)/2,面积S=√[p(p-a)(p-b)(p-c)]
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形面积是:%d\n",s);
}
else
    printf("输入错误\n");

three();//求第三边
return 0;
}
void three(){
int a,b,c;
printf("请输入三角形的两条边:");
scanf("%d%d",&a,&b);
c=sqrt(a*a+b*b);
printf("第三条边是:%d",c);
}


11.从键盘输入k,求1平方+2平方+3平方+...+k平方

#include<stdio.h>
int main(){
int k,i,sum=0;
printf("请输入一个数:");
scanf("%d",&k);
if(k<1){
    printf("输入错误");
    return 0;
    }
for(i=1;i<=k;i++)
    sum=sum+i*i;
printf("结果为:%d",sum);
return 0;
}


12.求1-1/2+1/3-1/4+...+1/99-1/100的和

#include<stdio.h>
int main(){
int i,sum=0,flag=1;
for(i=1;i<=100;i++)
{
 sum=sum+flag*1/i;
 flag=-flag;
}
printf("结果为:%d",sum);
return 0;
}

13.求e=1+1/1!+1/2!+...1/n!,直到最后一项小于10的-5次为止


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值