C语言经典程序片段.docx

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

C语言经典程序片段.docx

《C语言经典程序片段.docx》由会员分享,可在线阅读,更多相关《C语言经典程序片段.docx(31页珍藏版)》请在冰豆网上搜索。

C语言经典程序片段.docx

C语言经典程序片段

C语言经典程序片段

以下程序只能出了实现程序功能的核心语句,请掌握其编程思想。

1.编写函数fun求1!

+2!

+3!

+……+n!

的和,在main函数中由键盘输入n值,并输出运算结果。

请编写fun函数。

inti;

floatf=1,s=0;

for(i=1;i<=n;i++)

{f=f*i;

s=s+f;}

returns;

2.从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

请编写fun函数。

intmin,i;

min=x[0];

for(i=1;i

{if(x[i]

returnmin;

3.从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。

inti;

intj;

j=1;

for(i=2;i

{if(n%i==0)j=0;

}

returnj;

4.输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.

inti,j;

floatsum;

for(i=0;i<2;i++)/*计算第i个学生平均分*/

{

sum=0;

for(j=0;j<3;j++)

sum=sum+score[i][j];

StuAgv[i]=sum/3;

}

for(j=0;j<3;j++)/*计算第j门课的平均分*/

{

sum=0;

for(i=0;i<2;i++)

sum=sum+score[i][j];

CouAgv[j]=sum/2;

}

Max=score[0][0];

for(i=0;i<2;i++)

for(j=0;j<3;j++)

if(Max<=score[i][j])

{

Max=score[i][j];}

return;

5.从字符串s中删除指定的字符c。

inti,k=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]!

=c)s[k++]=s[i];

s[k]='\0';

6.求出二维数组周边元素之和,作为函数值返回。

二维数组的值在主函数中赋予。

ints=0;

inti,j;

for(i=0;i

s=s+a[i][0]+a[i][N-1];

for(j=1;j

s=s+a[0][j]+a[M-1][j];

returns;

7.求出菲波那契数列的前一项与后一项之比的极限的近似值。

floatf1=1,f2=1,f3;

floatr1=2,r2;

do

{r2=r1;

r1=f1/f2;

f3=f1+f2;

f1=f2;

f2=f3;

}while(fabs(r1-r2)>1e-4);

returnr1;

8.求一个四位数的各位数字的立方和。

intd,k,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;}

returns;

9.求1到100之间的偶数之积。

doubley=1;

inti;

for(i=1;i<=m;i++)

if(i%2==0)y*=i;

returny;

10.找出一批正整数中的最大的偶数。

inti,amax=-1;

for(i=0;i

if(a[i]%2==0)

if(a[i]>amax)amax=a[i];

returnamax;

11.求5行5列矩阵的主、副对角线上元素之和。

注意,两条对角线相交的元素只加一次。

ints=0;

inti,j;

for(i=0;i

s=s+a[i][i]+a[i][M-1-i];

s=s-a[(M-1)/2][(M-1)/2];

returns;

12.计算并输出给定整数n的所有因子之和(不包括1与自身)。

注意:

n的值不大于1000。

ints=0,i;

for(i=2;i

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

returns;

13.计算n门课程的平均值,计算结果作为函数值返回。

inti;

floaty=0;

for(i=0;i

y+=a[i];

y=y/n;

returny;

14.调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输出判断结果。

请编写fun函数。

说明:

所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。

例如:

153是一个水仙花数,因为153=1+125+27。

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

15.从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。

intmin,i;

min=x[0];

for(i=1;i

{if(x[i]

returnmin;

16.将主函数中输入的字符串反序存放。

例如:

输入字符串“abcdefg”,则应输出“gfedcba”。

inti,j;

charc;

for(i=0,j=n-1;i

{c=*(str+i);

*(str+i)=*(str+j);

*(str+j)=c;}

17.统计出若干个学生的平均成绩,最高分以及得最高分的人数。

inti;floatsum=0,ave;

Max=array[0];

for(i=0;i

{if(Max

sum=sum+array[i];}

ave=sum/n;

for(i=0;i

if(array[i]==Max)J++;

return(ave);

18.求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。

intmax,i,j;

max=array[0][0];

Row=0;

Col=0;

for(i=0;i

{for(j=0;j

if(max

{max=array[i][j];

Row=i;

Col=j;}

}

return(max);

19.输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。

inti,j;

for(i=0,j=0;*(ptr+i)!

='\0';i++)

if(*(ptr+i)<='z'&&*(ptr+i)>='a'||*(ptr+i)<='Z'&&*(ptr+i)>='A')

{*(ptr+j)=*(ptr+i);

j++;}

*(ptr+j)='\0';

return(j);

20.判断m是否为素数。

inti,k=1;

if(m<=1)k=0;

for(i=2;i

if(m%i==0)k=0;

returnk;

21.在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。

intsum;

inti,j;

sum=1;

for(i=0;i<3;i++)

sum=sum*a[i][i];

returnsum;

22.编写函数fun其功能是:

根据整型形参m,计算如下公式的值:

y=1/2!

+1/4!

+…+1/m!

(m是偶数)

doubley=0.0;

inti,j;

doubles=1;

for(i=2;i<=m;i+=2)

{

for(j=i-1;j<=i;j++)

s=s*j;

y=y+1.0/s;}

returny;

23.判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。

intk,s=0;

do

{s=s+(w%10)*(w%10);

w=w/10;

}while(w!

=0);

if(s%5==0)k=1;

elsek=0;

return(k);

24.求1到w之间的奇数之和。

longy=0;

inti;

for(i=1;i<=w;i++)

if(i%2==1)y+=i;

returny;

25.能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。

(n是偶数)

intsum,i;

sum=0;

for(i=2;i<=n;i=i+2)

{

sum=sum+i*i;}

return(sum);

26.在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出。

intsum;

inti;

sum=0;

for(i=0;i<3;i++)

sum=sum+a[i][i]*a[i][i];

returnsum;

27.求一个大于10的n位整数的后n-1位的数,并作为函数值返回。

intn=0;inti=1;

while(w>10)

{n=n+i*(w%10);

w/=10;

i*=10;}

returnn;

28.能计算从1开始到n的自然数的和,n由键盘输入,并在main()函数中输出。

intsum,i;

sum=0;

for(i=1;i<=n;i++)

{sum=sum+i;}

return(sum);

29.编写程序,实现矩阵(3行3列)的转置(即行列互换)

inti,j,t;

for(i=0;i<3;i++)

for(j=0;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}

30.对某一正数的值保留2位小数,并对第三位进行四舍五入。

inti;

i=(int)(h*1000)%10;

if(i>=5)

return(int)(h*100+1)/100.0;

else

return(int)(h*100)/100.0;

31.计算出k以内最大的10个能被13或17整除的自然数之和。

inta=0,b=0;

while((k>=2)&&(b<10))

{if((k%13==0)||(k%17==0))

{a=a+k;b++;}

k--;}

returna;

32.找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。

inti,k;

for(i=n+1;;i++){

for(k=2;k

if(i%k==0)

break;

if(k==i)

return(i);

}

33.根据整型参数n,计算如图公式的值

doublea=1;inti;

for(i=1;i

a=1.0/(1+a);

returna;

34.计算并输出给定整数的所有因子之积(包括自身)。

规定这个整数的值不大于50。

longs=1,i;

for(i=2;i<=n;i++)

if(n%i==0)s=s*i;

returns;

35.求给定正整数n以内的素数之积。

(n<28)

longi,k;

longs=1;

for(i=2;i<=n;i++)

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s*i;}

returns;

36.求一个n位自然数的各位数字的积。

(n是小于10的自然数)

longd,s=1;

while(n>0)

{d=n%10;

s*=d;

n/=10;

}

returns;

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

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

char*q=s;

for(;*q;q++)

if(*q!

=c)*(s++)=*q;

*s=0;

38.将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。

例如:

当a=45,b=12。

调用该函数后,c=2415。

*c=a/10*100+a%10+b/10*10+b%10*1000;

39.编写程序,实现矩阵(3行3列)的转置(即行列互换)

inti,j,t;

for(i=0;i<3;i++)

for(j=0;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;}

40.判断整数x是否是同构数。

若是同构数,函数返回1;否则返回0。

x的值由主函数从键盘读入,要求不大于100。

说明:

所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。

intk;

k=x*x;

if((k%10==x)||(k%100==x))

return1;

else

return0;

41.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

例如:

假定输入的字符串为:

asdasasdfgasdaszx67asdmklo,字符串为:

as,则应输出6。

inti,n=0;

for(i=0;i<=strlen(str)-2;i++)

if((str[i]==substr[0])&&(str[i+1]==substr[1]))

n++;

returnn;

42.删除所有值为y的元素。

数组元素中的值和y的值由主函数通过键盘输入。

inti,j;

for(i=0;i<*n;)

{

if(bb[i]==y)

{for(j=i;j<*n;j++)

bb[j]=bb[j+1];

*n=*n-1;

}

else

i++;

}

43.在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出。

intsum;

inti,j;

sum=0;

for(i=0;i<3;i+=2)

for(j=0;j<3;j++)

sum=sum+a[i][j];

returnsum;

44.将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。

例如:

当a=45,b=12。

调用该函数后,c=4251。

*c=a/10*1000+a%10*10+b/10+b%10*100;

45.将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用’.’结束输入。

if(*c=='')return1;

else

{

if(status&&*c<='z'&&*c>='a')

*c+='A'-'a';

return0;

}

46.把20个随机数存入一个数组,然后输出该数组中的最小值。

其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。

inti,min=0;

for(i=1;i

if(list[min]>list[i])

min=i;

returnmin;

从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。

例如:

当s中的数为:

7654321时,t中的数为:

642。

longsl=10;

s/=10;

t=s%10;

while(s>0)

{s=s/100;

t=s%10*sl+t;

sl=sl*10;

}

从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。

例如:

当s中的数为:

7654321时,t中的数为:

7531。

longsl=10;

t=s%10;

while(s>0)

{s=s/100;

t=s%10*sl+t;

sl=sl*10;

}

47.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

inti,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]

pp[j]=tt[i][j];

}

48.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指一维数组中。

二维数组中的数已在主函数中赋予。

inti,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]>pp[j])

pp[j]=tt[i][j];

}

49.根据整型形参m,计算如下公式的值:

y=1/2+1/4+1/6+...+1/2m

doubley=0;

inti;

for(i=1;i<=m;i++)

{y+=1.0/(2*i);}

return(y);

50.对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。

例如:

原来的字符串为CEAedca,排序后输出为CedcEAa。

inti,j;

chart;

for(i=1;i

for(j=i+1;j

if(s[i]

{t=s[i];s[i]=s[j];s[j]=t;}

51.求小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。

intn=0;

inti,j;

for(i=2;i<=lim;i++)

{for(j=2;j

if(i%j==0)break;

if(j==i)aa[n++]=i;

}

returnn;

52.对长度为8个字符的字符串,将8个字符按降序排列。

inti,j;

chart;

for(i=0;i

for(j=i+1;j

if(s[i]

{t=s[i];s[i]=s[j];s[j]=t;}

53.求大于lim(lim小于100的整数)并且小于100的所有素数并放在aa数组中,该函数返回所求出素数的个数。

intn=0;

inti,j;

for(i=lim;i<=100;i++)

{for(j=2;j

if(i%j==0)break;

if(j==i)aa[n++]=i;

}

returnn;

54.根据整型形参m,计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)

doubley=0;

inti;

for(i=0;i<=m;i++)

{y+=1.0/(i+5);}

return(y);

55.根据整型形参m,计算如下公式的值:

y=sin(m)*10。

doubley=0;

y=sin(m)*10;

return(y);

56.实现两个整数的交换。

intt;

t=*a;*a=*b;*b=t;

57.把20个随机数存入一个数组,然后输出该数组中的最大值。

inti,max=0;

for(i=1;i

if(list[max]

max=i;

returnmax;

58.编写程序,求矩阵(3行3列)与2的乘积

inti,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

array[i][j]=array[i][j]*2;

59.求给定正整数m以内的素数之和。

inti,k,s=0;

for(i=2;i<=m;i++)

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s+i;

}

returns;

60.求一个给定字符串中的字母的个数。

inti,k=0;

for(i=0;s[i]!

='\0';i++)

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

k++;

returnk;

61.求一个四位数的各位数字的立方和。

intd,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

returns;

62.求1到100之间的偶数之积。

doubley=1;

inti;

for(i=1;i<=m;i++)

if(i%2==0)y*=i;

returny;

63.求一组数中大于平均值的数的个数。

inti,k=0;

floats=0,ave;

for(i=0;i

s+=a[i];

ave=s/n;

printf("%f",ave);

for(i=0;i

if(a[i]>ave)k++;

returnk;

64.找出一批正整数中的最大的偶数。

inti,amax=-1;

for(i=0;i

if(a[i]%2==0)

if(a[i]>amax)amax=a[i];

returnamax;

65.求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。

inti;

floatf1=1,f2=1,f3,s=0;

for(i=1;i<=n;i++)

{f3=f1+f2;

f1=f2;

f2=f3;

s=s+f2/f1;

}

returns;

66.编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。

调用该函数找出100~200之间满足条件的所有数。

intk,s=0;

do

{s=s+m%10;

m=m/10;

}while(m!

=0);

if(s%7==0)k=1;

elsek=0;

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

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

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

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