C语言编程题文档格式.docx

上传人:b****6 文档编号:19176657 上传时间:2023-01-04 格式:DOCX 页数:15 大小:19.86KB
下载 相关 举报
C语言编程题文档格式.docx_第1页
第1页 / 共15页
C语言编程题文档格式.docx_第2页
第2页 / 共15页
C语言编程题文档格式.docx_第3页
第3页 / 共15页
C语言编程题文档格式.docx_第4页
第4页 / 共15页
C语言编程题文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言编程题文档格式.docx

《C语言编程题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言编程题文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

C语言编程题文档格式.docx

num);

}while(num<

0||num>

99999);

if(num<

=9)wsh=1;

elseif(num<

=99)wsh=2;

=999)wsh=3;

=9999)wsh=4;

elsewsh=5;

printf("

输入的是一个%d位数,"

wsh);

各个位的数字分别为:

"

switch(wsh)

{

case5:

ww=num%100000/10000;

%d,"

ww);

case4:

qw=num%10000/1000;

qw);

case3:

bw=num%1000/100;

bw);

case2:

sw=num%100/10;

sw);

case1:

gw=num%10/1;

gw);

default:

\n"

}

5.输入三个整数x,y,z,请把这三个数由小到大输出。

答案见上机实验2中的5.4题。

 

6.输入两个正整数m和n,求其最大公约数和最小公倍数。

intm,n,p,r,a,t;

%d%d"

m,&

n);

p=m*n;

if(m<

n)

t=m;

m=n;

n=t;

r=m%n;

while(r!

=0)

n=r;

r=m%n;

a=p/n;

printf("

%d,%d\n"

n,a);

7.计算1到10之间奇数之和及偶数之和。

#include<

intmain()

{

inta,b,i;

a=b=0;

for(i=0;

i<

=10;

i+=2)

a+=i;

for(i=1;

b+=i;

偶数之和=%d\n"

a);

奇数之和=%d\n"

b);

8.有一分数序列

2/1,3/2,5/3,8/5,13/8,21/13,…·

求出这个数列的前20项之和。

inti;

floatsum=0,fz=2,fm=1,temp;

20;

sum=sum+fz/fm;

temp=fz;

fz=fz+fm;

fm=temp;

前20项之后为%f\n"

sum);

9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

编程序找出1000之内的所有完数,并按下面格式输出其因子:

6itsfactorSare1,2,3

voidmain()

intm,s,i;

for(m=2;

m<

1000;

m++)

s=0;

for(i=1;

m;

if((m%i)==0)s=s+i;

if(s==m)

{

printf("

%d是一个完数,它的因子是"

m);

for(i=1;

if((m%i)==0)

{

printf("

i);

if(i!

=m/2)printf("

"

}

printf("

}

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

例如,153是一水仙花数,因为153=13+53+33。

main()

intge,shi,bai,number;

for(number=100;

number<

number++){

bai=number/100;

shi=(number%100)/10;

ge=number%10;

if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge)

\nnumber=%d\n"

number);

}

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

charc;

intletters=0,space=0,digit=0,other=0;

请输入一行字符:

for(;

(c=getchar())!

\n'

if(c>

a'

&

c<

z'

||c>

A'

Z'

letters++;

elseif(c=='

'

space++;

elseif(c>

0'

9'

digit++;

else

other++;

字母数:

%d\n空格数:

%d\n数字数:

%d\n其他字符数:

%d\n"

letters,space,digit,other);

12.用筛法求100之内的素数。

答案见127页的例题6.9,只需将范围由例题的100到200改为1到100即可。

13.求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数。

要求输出结果5个一行。

intnum,n=0;

1000以内能被7或11整除但又不能同时被7和11整除的数有:

for(num=1;

num<

=1000;

num++)

if(num%7==0||num%11==0)

if(!

(num%7==0&

num%11==0))

{

printf("

%5d"

num);

n=n+1;

if(n%5==0)printf("

}

14.计算和输出下列级数的和。

s=1/(1×

2)+1/(2×

3)+…+1/(n×

(n+1))

例如,当n=10时,函数值为0.909091。

conio.h>

doublefun(intn)

inti=1,j=2,k;

doublesum=0.0;

for(k=0;

k<

n;

k++)

sum+=1.0/(i*j);

i++;

j++;

returnsum;

clrscr();

%f\n"

fun(10));

15.编写一个程序,求出1~100之间所有每位数的乘积小于每位数的和的数。

例如:

13满足1*3<

1+3.

intnum,gw,sw;

for(num=10;

100;

gw=num%10;

sw=num/10;

if(gw*sw<

gw+sw)

%3d"

16.编写一个程序,求出1~100之间所有每位数的乘积大于每位数的和的数。

98满足9*8>

9+8.

if(gw*sw>

17.编写一个程序,从3个红球,5个白球,6个黑球中任意取出8个球,且其中必须有黑球,输出所有可能的方案。

intred,white,black;

for(red=0;

red<

=3;

red++)

for(white=0;

white<

=5;

white++)

for(black=1;

black<

=6;

black++)

if(red+white+black==8)

红球=%d,白球=%d,黑球=%d\n"

red,white,black);

18.编写一个程序,从3个红球,5个白球,6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。

for(white=1;

for(black=0;

19.有一个3×

4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

答案见139页例题7.5

inti,j,max,hangs,leis;

inta[3][4];

请输入12个整数\n"

3;

for(j=0;

j<

4;

j++)

scanf("

a[i][j]);

max=a[0][0];

for(i=0;

if(a[i][j]>

max)

max=a[i][j];

hangs=i+1;

leis=j+1;

printf("

max=%d\nhangs=%d\nleis=%d\n"

max,hangs,leis);

20.一个3×

20的整数数组,要求输出该数组中的最小值,并将其行号和列号输出。

答案参考20题,改动3处:

(1)intmax;

改成intmin;

(2)inta[3][4]改成inta[3][20]

(3)将a[i][j]>

max改成a[i][j]<

min

21.从字符串中删除指定的字符。

同一字母的大小写按不同字符处理。

若程序执行时,输入字符串为:

turbocandBorlandc++,从键盘上输入字符:

n,则输出后变为:

turbocadborladc++,如果输入的字符串不存在,则字符串照原样输出。

(10分)

#defineN15

chars1[N]={'

},s2[2*N]={'

},delchar;

inti,j;

请输入要处理的字符串"

gets(s1);

请输入要删除的字符"

scanf("

%c"

delchar);

for(i=0,j=0;

s1[i]!

if(s1[i]!

=delchar|)

s2[j++]=s1[i];

s2[j]=’\0’;

%s\n"

s1);

s2);

22.要求用数组实现求fibonacci数列40个数,并且每输出5个数换行。

这个数列有如下特点:

第1,2两个数为1,1。

从第3个数开始,该数是其前面两个数之和。

答案见133页例题7.2

23.求一个3×

3矩阵主对角线元素之和。

答案将上机实验4中的7.3题。

24.将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1。

要求改为1,4,5,6,8。

答案将上机实验4中的7.5题。

25.打印出以下的杨辉三角形(要求打印出10行)。

1

11

121

1331

14641

15101051

………………

答案将上机实验5中的7.6题。

26.有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。

27.

答案将上机实验5中的7.10题。

28.用选择法对10个整数排序。

答案见181页例题8.13

29.用冒泡法对10个整数排序。

答案见134页例题7.3

30.要求在字符串中所有数字字符前加一个$字符。

例如,输入:

A1B23CD45,则输出为:

A$1B$2$3CD$4$5。

};

i++,j++)

if(s1[i]>

s1[i]<

s2[j++]='

$'

s2[j]=s1[i];

31.编一程序,将两个字符串连接起来,不要用strcat函数。

charconcatenate(charstring1[],charstring2[],charstring[])

inti,j;

for(i=0;

string1[i]!

=’\0’;

string[i]=string1[i];

for(j=0;

string2[j]!

string[i+j]=string2[j];

string[i+j]=’\0’;

chars1[100],s2[100],s[100];

printf(“请输入字符串1:

”);

scanf(“%s”,s1);

printf(“请输入字符串2:

scanf(“%s”,s2);

concatenate(s1,s2,s);

printf(“连接后的字符串为:

%s”,s);

32.写一函数,将两个字符串连接。

与31题相同

33.写一函数,使给定的一个二维数组(3×

3)转置,即行列互换。

参考138页的例题7.4.

34.写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。

答案将上机实验6中的8.3题。

35.写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

答案将上机实验6中的8.5题。

36.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

#include<

intletter,digit,space,others;

voidcount(char[]);

chartext[80];

输入字符串:

gets(text);

字符串是:

puts(text);

letter=0;

digit=0;

space=0;

others=0;

count(text);

letter:

%d,digit:

%d,space:

%d,others:

letter,digit,space,others);

voidcount(charstr[])

{inti;

str[i]!

if((str[i]>

str[i]<

)||(str[i]>

))

letter++;

elseif(str[i]>

elseif(str[i]==32)

others++;

37.写一函数,用“起泡法”对输入的10个字符按由小到大顺序排列。

#defineN10

{

voidcharsort(charstr[]);

chara[N];

请输入待排序的字符串:

gets(a);

charsort(a);

排序好的字符串:

voidcharsort(charstr[])

inti,j,len;

chart;

len=strlen(str);

for(j=0;

len-1;

len-1-j;

if(str[i]>

str[i+1])

t=str[i];

str[i]=str[i+1];

str[i+1]=t;

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

当前位置:首页 > 表格模板 > 合同协议

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

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