C语言程序设计部分习题及例题参考程序Word下载.docx

上传人:b****5 文档编号:21260874 上传时间:2023-01-29 格式:DOCX 页数:36 大小:34.21KB
下载 相关 举报
C语言程序设计部分习题及例题参考程序Word下载.docx_第1页
第1页 / 共36页
C语言程序设计部分习题及例题参考程序Word下载.docx_第2页
第2页 / 共36页
C语言程序设计部分习题及例题参考程序Word下载.docx_第3页
第3页 / 共36页
C语言程序设计部分习题及例题参考程序Word下载.docx_第4页
第4页 / 共36页
C语言程序设计部分习题及例题参考程序Word下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

C语言程序设计部分习题及例题参考程序Word下载.docx

《C语言程序设计部分习题及例题参考程序Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计部分习题及例题参考程序Word下载.docx(36页珍藏版)》请在冰豆网上搜索。

C语言程序设计部分习题及例题参考程序Word下载.docx

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;

for(five=0;

five<

=2;

five++)

for(two=0;

two<

=5;

two++)

one=10-five*5-two*2;

if(one>

{

one,two,five);

cnt++;

}

一共有%d种换法\n"

20.编程统计并输出200到300以内的全部素数。

intm,i,k=0;

for(m=201;

300;

m+=2)

for(i=3;

=m;

i+=2)

if(m%i==0)

break;

if(i*i>

m)

%8d"

m);

if(k%5==0)

\n200到300之间一共有%d个素数\n"

k);

21.打印所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数自身。

如153

intm,n,k;

for(m=1;

for(n=0;

n++)

for(k=0;

k<

k++)

if(m*m*m+n*n*n+k*k*k==m*100+n*10+k)

printf("

%5d"

m*100+n*10+k);

22.输出200到300之间满足如下条件的数,即各位数字之和为12,数字之积为42.

intm,n;

if(m+n==10&

m*n==21)

200+m*10+n);

23.编程将一个正整数进行质因数分解,例如输入90,须在屏幕上打印出90=2*3*3*5

m);

%d="

while(m!

=1)

while(m%n==0)

if(m!

=n)

m/=n;

n++;

24.输入一行字符,分别统计其中英文字母、空格、数字及其他字符的个数。

intletter,space,digit,other;

letter=space=digit=other=0;

if(ch>

a'

ch<

z'

||ch>

Z'

letter++;

elseif(ch>

0'

9'

digit++;

elseif(ch=='

'

space++;

other++;

letter,digit,space,other);

25.编程输出1000以内的全部完数。

所谓完数,是指该数恰好等于他的全部真因子的和。

如6=1+2+3

intm,i,t;

for(m=2;

=1000;

t=1;

for(i=2;

t+=i;

if(i*i!

=m)

t+=m/i;

if(t==m)

26.从键盘输入10个整数,求这些整数的总和及平均值,并统计不低于平均值的元素个数。

#defineN5

inta[N],i,cnt=0;

floataver;

请输入%d个整数:

N);

aver=0.0;

for(i=0;

N;

a[i]);

aver+=a[i];

if(a[i]>

=aver/N)

cnt++;

这%d个整数的和是%.0f,平均值是%.2f\n"

N,aver,aver/10);

不低于平均值的数有%d个\n"

27.设有存放于数组中一组整数,现从键盘输入一个整数,在数组中查找该数,如果数组中含有该数,则输出其全部出现位置,否则输出“**不存在”,**代表该数值。

#defineN10

inta[N]={16,35,48,29,56,43,93,64,90,48};

intn,sgn,i;

请输入待查找的整数:

sgn=0;

if(a[i]==n)

sgn=1;

%d在数组中的%d位置出现.\n"

n,i+1);

if(sgn==0)

%d不存在\n"

28.设有一存在有10个随机数的数组,请编程找出其中的最大数及其在数组中的位置。

stdlib.h>

time.h>

inta[N],i,k;

srand(time(NULL));

a[i]=rand();

%6d"

a[i]);

k=0;

a[k])

k=i;

\n最大值是%d,它是数组的第%d个数\n"

a[k],k+1);

29.现有一未排序的整型数组,要求用选择法将该数组按由大到小的顺序排序。

inta[N],i,k,j,t;

请输入%d个整数:

for(j=0;

N-1;

k=j;

for(i=j+1;

if(a[i]>

k=i;

t=a[j];

a[j]=a[k];

a[k]=t;

排序后的数组:

30.现有一数组,其元素已按由大到小的顺序排列,现从键盘输入一个数,插入到该数组中,要求插入后的数组元素依然由大到小排列。

inta[N+1]={98,96,87,78,72,64,56,51,43,36};

intn,i;

插入前的数组:

请输入待插入的整数:

for(i=N-1;

i>

=0;

i--)

if(a[i]<

n)

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

a[i+1]=n;

插入后的数组:

31.设有存放于一维数组中一组整数,且已按由小到大顺序排序,现从键盘输入一个整数,在数组中查找该数,如果数组中含有该数,则输出该数的出现位置,否则输出“**不存在”,**代表该数值。

inta[N]={93,90,64,56,50,48,43,35,29,16};

intn,sgn,top,bott,mid;

top=0;

bott=N-1;

while(top<

=bott)

mid=(top+bott)/2;

if(a[mid]==n)

elseif(a[mid]>

top=mid+1;

bott=mid-1;

%d在第%d个数位置被发现.\n"

n,mid+1);

32.按如下格式打印杨辉三角形,具体行数由键盘输入。

1

11

121

1331

14641

15101051

#defineN20

intyang[N][N],n,i,j;

请输入要打印的的行数:

n;

yang[i][0]=yang[i][i]=1;

i;

yang[i][j]=yang[i-1][j]+yang[i-1][j-1];

for(i=

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

当前位置:首页 > 工作范文 > 行政公文

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

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