C语言程序设计部分习题及例题参考程序Word文档格式.docx
《C语言程序设计部分习题及例题参考程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计部分习题及例题参考程序Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
![C语言程序设计部分习题及例题参考程序Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/12/8a38c71e-0c56-4902-989a-bdbd3932cd10/8a38c71e-0c56-4902-989a-bdbd3932cd101.gif)
y=%.2f\n"
y);
}
2.编程将从键盘输入的百分制成绩转换为等级分,转换方法如下:
90以上(大于或等于90,下同)为A,80分以上为B,70分以上为C,60分以上为D,60分以下,即低于60分为E。
floatscore;
charrank;
inputascore:
score);
if(score>
100||score<
0)
{
printf("
invalidscoreinput\n"
exit(-1);
}
switch((int)score/10)
case10:
case9:
rank='
A'
;
break;
case8:
B'
case7:
C'
case6:
D'
default:
E'
%.2f:
%c\n"
score,rank);
return0;
3.编程判断以从键盘输入的三个数为边长,是否能构成三角形。
floata,b,c;
inputa,b,c:
%f%f%f"
a,&
b,&
c);
if(a>
0&
&
b>
c>
a+b>
c&
a+c>
b&
b+c>
a)
(%.2f,%.2f,%.2f)能围成三角形\n"
a,b,c);
(%.2f,%2.2f,%.2f)不能围成三角形\n"
4.编程实现将从键盘输入的一个正整数逆序输出,如输入1234,输出3421
intn;
inputanumber:
%d"
n);
do
n%10);
n/=10;
}while(n!
=0);
5.输入一个1~10范围内的整数,计算该数的阶乘。
intn,s=1,i;
inputanumber(1~10):
for(i=2;
i<
=n;
i++)
s*=i;
%d!
=%d\n"
n,s);
6.从键盘输入的一行字符,统计其含有多少个字符。
【参考程序】
charch;
intcnt=0;
inputacharline:
ch=getchar();
while(ch!
='
\n'
)
cnt++;
ch=getchar();
%d\n"
cnt);
7.打印乘法口诀表。
inti,j;
for(i=1;
=9;
for(j=1;
j<
=i;
j++)
printf("
%d*%d=%-3d"
j,i,i*j);
\n"
8.在屏幕上打印如下规律的图形,具体行数由键盘输入。
*
***
*****
*******
*********
***********
inti,j,n;
请输入打印图形的行数:
=n-i;
"
=2*i-1;
*"
9.从键盘输入一个正整数,编程判断其是否为素数(质数).
inti,n;
请输入一个正整数:
i*i<
if(n%i==0)
break;
if(i*i<
=n||n==1)
%d不是一个素数.\n"
n);
%d是一个素数.\n"
10.从键盘输入100个整数,求其中正整数的和。
#defineN100
intn,s=0,i;
=N;
请输入第%d个整数:
i);
scanf("
if(n<
continue;
s+=n;
s);
11.从键盘输入1000个学生某门课程的百分制成绩,分别统计其中80分以上(即大于或等于80)、60分以上及低于60分的人数。
#defineN1000
intm,n,k,i;
m=n=k=0;
请输入第%d个成绩:
if(score>
{
输入的成绩不符合百分制成绩要求,本成绩输入作废,请重新输入第%d个成绩:
i--;
}
=80)
m++;
elseif(score>
=60)
n++;
else
k++;
%d:
m,n,k);
12.运用如下公式计算圆周率的近似值,当最后一项的绝对值小于10-6时,停止计算。
doublepi=0.0,t=1.0;
intsgn=1;
while(t<
1000000)
pi+=sgn/t;
sgn=-sgn;
t+=2;
Pi=%.6lf\n"
4*pi);
13.古代某工地需要搬运砖块,已知男人每人每次搬3块,女人每人每次搬2块,小孩两人每次抬一块,现有45人一次正好搬完全部砖块,请问男人、女人、小孩各几人?
intw,m,c;
for(m=0;
m<
=15;
m++)
for(w=0;
w<
=22;
w++)
c=45-m-w;
if(m*3+w*2+c*.5==45)
printf("
m,w,c);
14.从键盘输入两个正整数到m、n中,求它们的最大公约数和最小公倍数。
intm,n,m1,n1,r;
请输入两个正整数:
%d%d"
m,&
m1=m;
n1=n;
r=m%n;
while(r!
m=n;
n=r;
r=m%n;
gcd(%d,%d)=%d\n"
m1,n1,n);
lcm(%d,%d)=%d\n"
m1,n1,m1*n1/n);
14.编程计算如下式子的值,直到n等于100。
doubles=0.0,t=1.0;
=100)
s+=sgn/t;
t+=1;
s=%.6lf\n"
15.计算如下规律式子的值。
其中a与n的值都是由键盘输入确定。
如当a为2,n为3时,该式子表示的含义为2+22+222,故结果为246。
inta,n,s=0,t;
inputa,n:
t=a;
while(n>
s+=t;
t=t*10+a;
n--;
16.计算如下式子的值。
floats=0.0;
for(n=2;
n<
=100;
n+=2)
s+=(float)(n+1)/n;
%.6f\n"
17.如数列第1项为2,此后各项的值均为其前一项的2倍再加3,编程计算该数列的前10项之和。
n=2;
=3;
n=n*2+3;
18.现要求将1角钱换成1分、2分或5分的硬币,请问有多少种换法,并输出每一种换法。
intone,two,five,cnt=0;
fo