C语言程序题Word文件下载.docx
《C语言程序题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序题Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
![C语言程序题Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/16b6d270-3604-45e4-bed7-2698b5e92a64/16b6d270-3604-45e4-bed7-2698b5e92a641.gif)
,n);
3、已知三角形的面积为area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2,a,b,c为三角形的三边,由键盘输入三个数,请编程计算以这三个数为边长的三角形的面积(先判断能否成为三角形,再计算面积)
floata,b,c,s,area;
scanf("
%f%f%f"
&
a,&
b,&
c);
if(a>
0&
&
b>
c>
a+b>
c&
a+c>
b&
b+c>
a)
{
s=(a+b+c)/2;
area=(s*(s-a)*(s-b)*(s-c));
三角形的面积为:
%f\n"
area);
}
elseprintf("
不能构成三角形"
return0;
4、编程序求解以下问题:
输入长方体的长、宽、高,求长方体的体积并输出。
doublea,b,h,v;
输入长方体的长、宽、高:
"
%lf%lf%lf"
h);
v=a*b*h;
长方体的体积为:
v);
5、先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
主对角线元素之和为:
100+500+900=1500
inta[3][3],i,j,s=0;
请输入矩阵:
for(i=0;
i<
3;
i++)
for(j=0;
j<
j++)
%d"
a[i][j]);
s=s+a[i][i];
主对角线的和为:
%d+%d+%d=%d\n"
a[0][0],a[1][1],a[2][2],s);
6、输入正整数n,输出n行n列的空心四边形图案。
以下是n等于4的图案。
****
**
inti,j,n;
请输入n:
n);
for(i=1;
=n;
for(j=1;
if(i==1||j==1||i==n||j==n)
*"
else
"
}
7、编程序解问题:
输入n,求1+2+3+…+n的和。
方法一:
intn,s=0,i;
s=s+i;
1+2+3+...+%d=%d\n"
n,s);
方法二:
#defineN3
ints=0,i=1;
while(i<
=N)
s=s+i;
i=i+1;
%d\n"
s);
方法三:
#definen3
do
=n);
方法四:
ints=0,i;
i=i+1)
8、将一个数组中的值按逆序重新存放,例如原来数组a[]={8,6,5,7,4},要求改为{4,7,5,6,8}
#defineN5
intmain()
inta[N],i,t;
for(i=0;
N;
scanf("
a[i]);
a[i]);
i=0;
while(i<
N-i-1)
{
t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t;
i++;
9、统计一维数组中大于0、等于0和小于0的个数,并输出。
#defineN10
inti,less=0,great=0,equal=0,a[N];
if(a[i]>
0)
great++;
else
equal++;
less++;
\n数组中大于0的个数为:
great);
\n数组中等于0的个数为:
equal);
\n数组中小于0的个数为:
less);
return0;
10、编程输入x的值,求y=x20-2*x10+5的值。
floatx,y;
请输入x的值:
%f"
x);
y=pow(x,20)-2*pow(x,10)+5;
y=%f\n"
y);
11、输入一个3位的正整数,要求以相反的顺序输出该数。
例如输入一个数123,输出另一个数321。
intn,i,j,k;
请输入一个3位的整数:
j=(n-i*100)/10;
k=n-i*100-j*10;
k*100+j*10+i);
12、编写程序:
输入3个0~9的正整数,输出由这3个数组成的一个3位数的正整数(例如输入3个数:
9,1,8,输出一个数:
918)。
inti,j,k,n;
请输入3个0-9的正整数:
%d%d%d"
i,&
j,&
k);
n=i*100+j*10+k;
13、输入三个整数,求出这三个数的和以及平均值,并在屏幕上输出
inta,b,c;
intsum;
doubleaverage;
请输入3个整数:
%d%d%d"
sum=a+b+c;
average=(a+b+c)/3;
sum=%d,average=%f\n"
sum,average);
14、输入一个三位整数x(999=>
x>
=100),将其分解出百位、十位、个位,并求出各位之和以及各位之积。
intx;
intsum,product;
a=x/100;
b=x%100/10;
c=x%10;
product=a*b*c;
sum=%d,product=%d\n"
sum,product);
15、请编写一个程序,能显示出以下两行文字。
Iamastudent.
IloveChina.
printf("
Iamastudent.\nIloveChina."
Iamastudent.\n"
IloveChina.\n"
16、输入一个字符,求其前驱字符和后继字符,并按其ASCII码值的降序输出此3个字符及其对应的ASCII码值。
charc,c1,c2;
请输入字符:
%c"
c1=c-1;
c2=c+1;
%c%c%c\n"
c2,c,c1);
17、输入两个整型变量a、b的值,输出下列算式以及运算结果。
a+b、a-b、a*b、a/b、(float)a/b、a%b
每个算式占一行。
如a=10,b=5则输出:
10+5=15
inta,b;
请输入2个整数:
%d%d"
b);
%d+%d=%d\n"
a,b,a+b);
%d-%d=%d\n"
a,b,a-b);
%d*%d=%d\n"
a,b,a*b);
%d/%d=%d\n"
a,b,a/b);
(float)%d/%d=%d\n"
a,b,(float)a/b);
%d%%%d=%d\n"
a,b,a%b);
18、编写一个邮件计费程序,求出邮件的邮资费并输出。
计费规定:
当邮件重量小于等于200克时,邮资费为每克0.06元;
当邮件重量超过200克时,其中200克,按每克0.06元计费,超过200克的重量,按每克0.03元计费。
请输入x:
if(x<
=200)
y=0.06*x;
else
if(x>
200)
y=0.06*200+0.03*(x-200);
19、编写程序:
输入一个人的年龄,如果年龄大于或等于60岁,则输出“老年”;
如果年龄大于或等于30岁且小于60,则输出“中年”;
如果年龄小于30岁,则输出“青年”。
intage;
请输入年龄:
age);
if("
age>
=60"
)
老年\n"
if((age>
=30)&
(age<
60));
中年\n"
0)&
30))
青年\n"
输入有误!
20、输入一个x的值,如果x大于0,则输出y=x2+1的值;
如果小于0,则输出y=2x+1的值;
如果x=0,则输出y=x的值。
y=pow(x,2)+1;
y=2*x+1;
if(x=0)
y=x;
21、编程输入n的值,求1~n之间5的倍数的和
intn,i,sum=0;
请输入n的值:
for(i=5;
n;
i=i+5)
sum=sum+i;
1-n之间5的倍数的和为:
sum);
22、输入一个正整数n,输出S=1*2*3*……n的值
inti,n,s;
请输入n:
s=s*i;
23、使用数组编写程序:
输入10个学生的成绩保存到数组中,输出最低分的学生的成绩和序号(注意:
学生的成绩不一定是百分制)。
floatscore[10],min;
inti,k;
10;
请输入10个学生的成绩:
i+1);
score[i]);
min=score[0];
k=1;
if(score[i]<
min)
k=i+1;
10个学生中最低分的成绩为:
%f\n序号为:
min,k);
24、编写程序:
输出100~200之间的全部素数。
inti,k,m;
for(m=100;
m<
=200;
m++)
k=sqrt(m);
for(i=2;
=k;
if(m%i==0)
break;
if(i>
=k+1)
m);
25、编写程序:
输入1个三位数的正整数,分别输出这个整数的百位数,十位数和个位数。
请输入一个三位数的正整数:
百位数为%d\n十位数为%d\n个位数为%d\n"
i,j,k);
26、使用数组编写程序:
先输入10个数保存到数组中,然后再随机输入一个数,判断这个数是否是数组中保存的10个数中的一个,如果这个数是数组中的某个数,则输出其在数组中的序号,否则输出:
“查无此数!
”。
floata[10],n;
请输入第%d个数:
请输入要查找的数:
if(a[i]==n)
k=i+1;
break;
}
if(i==10)
查无此数!
你要查找的数已经找到,是第%d个数。
k);
27、使用数组编写程序,输入3个学生6门课程的成绩,输出6门课程中平均分最低的课程的平均分和该门课程的序号。
doublescore[4][6],sum,min;
inti,j,min_num;
请输入第%d个学生的6门课程的成绩:
for(j=0;
6;
%lf"
score[i][j]);
sum=0;
sum=sum+score[j][i];
score[3][i]=sum/3.0;
min=score[3][0];
if(score[3][i]<
=min)
min=score[3][i];
min_num=i+1;
6门课程中平均分最低的课程的平均分为:
%f,课程序号为:
min,min_num);