c语言特重点-c语言资料资料文档_第1页
c语言特重点-c语言资料资料文档_第2页
c语言特重点-c语言资料资料文档_第3页
c语言特重点-c语言资料资料文档_第4页
c语言特重点-c语言资料资料文档_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、求100内的素数的源代码如下.附件中有源程序.方法不是惟一的,仅供参考.

voidmain()

{访1i,j;

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

{

for(j=2;j<=i-l;j++)

if(i%j==O)

break;

if(i==j)

}

}

2、用选择法对5个整数排序.

#include<stdio.h>

voidniain()

{inta[5]=(0),i,j,index,temp;

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

for(i=0;i<=4-l;i++)

index=i;

for(j=i+1;jv=4;j++)

{

if(3lj]<a[index])

indcx=j;

if(in(iex!=i)

{

temp=a[i];

a[i]=a[index];

a[index)=temp;

I

for(i=();i<5;i++)

)

3、有一个已经排好顺序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。

#include<stdio.h>

main()

{inta[10]={2,4,8,15,28,57,99,110,688};

inii,j,x;

scanf(,&x);

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

if(x<a[i])

break;

for(j=8;j>=i;j-)

a[j+l]=a[j];

a[j+l]=x;

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

printf(,a[i]);

)

4、求一个3*3矩阵对角线元素之和

#include<stdio.h>

main()

{intj,a[3][3]={{L2,3},{4,5,6}47,8,9});

intsum=0,sum2=0,i;

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

sum=sum+a[il[il;

for(i=2,j=0;i>=0;j।«,i--)

sum2=sum2+a[jni];

sum=sum+sum2;

printf(,sum);

)

5、将一个数组中的值按逆序存放

#include<stdio.h>

main()

{intij,a[4],b[4];

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

scanf(,&a[i]);

for(j=0,i=3;j<4;j++,i-)

b[j]=a[i];

for(j=0y<4y++)

printf(,b[j]);

printf();

}

1、写两个函数,分别求两个整数的最大公约数和最小公倍数

#include<stdio.h>

voidmain()

{intmon_divisior(intx,inly);

intmon_multiple(intx,inty);

inta,b,max_divisor,max_multiple;

max_divisor=mon_divisior(a,b);

第2页,共15页

max_multiple=mon_niultiple(a,b);

intmon_divisior(intxJnty)

(

intm,inax,i;

if(x>y)

m=x;

else

m=y;

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

(

if((x%i==O)&&(y%i==O))

max=i;

}

returnmax;

}

intmon_multiple(intx,inty)

(

intin,max,i;

if(x>y)

m=x;

else

m=y;

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

if((x%i==O)&&(y%i==O))

max=i;

}

max=x*y/max;

returnmax;

}2、写一个判断素数的函数,在主函数

输入一个整数,输出是否素数的信息。

#include<stdio.h>

voidmain()

(

intpriiner(intx);

inta,b;

b=primer(a);

if(b==l)

else

第3页,共15页

4、写一个函数,使输入的一个字符串按反序存放。

#include<stdio.h>

#include<string.h>

intinverse(charslr[])

{

chart;

iniiJ;

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

{

t=str[i];

str[i]=str[j-l];

)

}

voidmain()

(

charstr[20]={0};

请输入一个字符串:

转换前字符串为:

inverse(str);

转换后字符串为:

J

5、写一个函数,将两个字符串联接

#include<stdio.h>

#include<string.h>

voidmain()

{

voidlianjie(charc[100],chard[100]);

chara[100J,bll00];

请输入第一组

gets(a):

请输入第二组

gets(b);

lianjic(a,b);

I

voidlianjie(charc[100],chard[100])

{

两组进行连接

第5页,共15页

}7、写一个函数,由实参传来一个字符串,统

计此字符串中字母、数字、空格和其他字符的

个数

#include<stdio.h>

into,z,w,x;

voidmain()

(

voidstatistic(charb[ICO]);

chara[100J;

请输入字符串

gets(a);

您输入的字符串为

puts(a);

statistic(a);

字母%d,数字%d,空格%d,其它

)

voidstatistic(charb[100])

{

inti=0;

o=z=w=x=();

{

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

z++;

elseif(b[i]>'0,&&b[i]<,9,)

x++;

elseif(b[i]=='')

w++:

else

o++;

)

}

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

#include<stdio.h>

#deflneN10

voidmain()

{

voidqipao(inta[N]);

intb[N]={23,4,56,78,13,9,47,90,79,26};

qipao(b);

)

voidqipao(inta[N])

第6页,共15页

inti,j,temp;

for(j=0;j<N-l;j++)

(

fbr(i=O;i<N-l-j;i++)

(

if(a[i]>a[i+ll)

{

iemp=a[i];

a[i]=a[i+l];

a[i+l]=lemp;

)

)

)

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

)

11、输入10个学生5门课的成绩,分别用函数实现下列功能:1)“算每一个学生平均分;2)“

算每门课的平均分;3)找出所有50个分数中最高的分数所对应的学生和课程;4)计算平均

分方差:其中,xi为某个学生的平均分。

#include<stdio.h>

inti,j;

floatql[10];

voidmain()

(

voidaverage_student(floata[][5]);

voidavcrage_scorc(floata[][5J);

voidfind_max(floata[][5]);

voidaverage_variance!floata(l[5]);

floata[10][5];

fdr(i=0;i<10;i++)

第7页,共15页

forG=0;j<5;j++)

average_student(a);

average_score(a);

findmax(a):

average_variance(a);

)

voidaverage_student(floata[][5])

(

floatp=();

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

(

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

p+=a[i][j];

ql|i]=p/5;

p=0;

)

)

voidaverage_score(floata[][5])

{

floatp=O,q2l5J;

第8页,共15页

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

for(i=0;i<10;i4-+)

p+=a[i][j];

q2[j]=p/10;

P=0;

I

4、3个整数排序

#include<sidio.h>

voidmain()

{inta,b,c,max;

printf();

scanf(,&a,&b,&c);

if(a>b)

(

inax=a;

a=b;

b=inax;

)

if(a>c)

(

inax=a;

a=c;

c=max;

)

if(b>v)

(

inax=b;

b=c;

c=max;

}

printf(

}.a.b.c);

第9页,共15页

6、给出一个百分制成绩,要求输出成绩等级。

#include<stdio.h>

#includc<math.h>

voidmain()

(

intscore,grade;

scant"(,&score);

grade=score/10;

switch(grade)

(

case9:printf();brcak;

case8:printf();break;

case7:printf();brcak;

case6:printf();break;

case5:

case4:

case3:

case2:

caseI:

caseO:printf();break;

}6、给出一个百分制成绩,要求输出成绩等级。

科include<sidio.h>

#include<math.h>

voidmain()

(

intscore.grade;

scanf(,&score);

gradc=scorc/IO;

switch(grade)

(

case9:printf();break;

case8:printf();break;

case7:printf();break;

case6:printf();brcak;

case5:

case4:

case3:

case2:

case1:

caseO:printf();break;

}

7、给出一个不多于5位的正整数,要求:求出它是几位数,分别输出每位数,按逆序输出各位数

第10页,共15页

#includc<sidio.h>

#include<math.h>

voidmain()

{

inii=0;

intnum=O;

scanf(.&i);

if(i>9999&&i<=99999)

num=5;

if(i>999&&i<=9999)

num=4;

if(i>99&&i<=999)

num=3;

if(i>9&4&i<=99)

num=2;

if(i>-l&&i<=9)

num=l;

prinif(位的mum);

printf(,i%10);

if(nuin>l)

printf(,i%100/1OX

if(nuni>2)

printf(,i%1000/1()0);

if(num>3)

Pfinif(,i%10000/1000);

if(num>4)

所叫,i%100000/100()0);

sj'stem().

}

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

#includc

niain()

{inta,b,num1,num2,lemp;

printf();

scanf(,&numl.&num2);

if(numlvnum2)/*交换两个数,使大数放在numl上列

{

tcnip=numl;

numl=num2;

num2=temp;

}

a=numl;b=num2;

while(b!=0)/*利用辗除法,直到b为为止刃

第11页,共15页

temp=a%b;

a=b;

b=temp;

}

printf(,a);

printf(,numl*num2/a);

getch();

)

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

#include<stdio.h>

main()

(

chara;

intb,c,d,e;

b=0;c=();d=();e=0;

/*b是字母c是数字d是符号e是空格*/

fflush(stdin);//清除缓存

/*在c语言中使用scanf()函数在键盘上接受字符型数据时,必须用fflush(sidin)这个来清晰

_L-■次存储的数据,不然字符型数据不会正确的存储.*/

printf(请输入一串东西);

while((a=getchar())!='')

(

if(a>='a'&&a<='z'||a>='A'&&a<='Z')

b++;

elseif(a>='0'&&a<=,9')

C++;

elseif(a=='')

e++;

else

d++;

)

printf(字母%(1个,b);

printf(数字%(1个,c);

printf(空格%d个,e);

prinlf(符号%d个,d);

}

3、求Sn=a+aa+aaa+…+aaaa…之值,其中a是一个数字,n表示a的位数,例如:

2+22+222+2222+22222

#include<stdio.h>

main()

{

inti,a,n;

longt=0,sum=0;

第12页,共15页

printf();

scanf(,&a,&n);

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

{

t=t*10+a;

sum+=t;

printf(,t);

}printf(,sum);

#include<stdio.h>

main()

{inti,j.n;

longsum,term;/*ini、long^unsignedlong.11oat*/

printf();

scanf(,&n);

fbr(sum=0.i=l:i<=n;i++)

{for(term=l,j=l;j<=i;j++)

{term*=j;)f*求i的阶乘*/

sum=sum+term;/*把i的阶乘累加到sum单元中*/

)

printf(,sum);/*%d>%kl、%ukl、%f*/

I

50,101

5、求kkik2卜

100kl-

#include<stdio.h>

main()

{inti,j.n;

intsumI,sum2,sum3,sum;

sum1=0,sum2=0,sum3=0;

sum=0;

for(i=l;i<IOI;i++)

(

suml+=i;

)

for(j=l;i<51J++)

(

sum2+寸j;

I

for(n=l;i<ll;n++)

第13页,共15页

sum3+=l/n;

sum=suml+sum2+suni3;

printf(,sum);

}

6、输出所有的水仙花数

#include<stdio.h>

intmain()

(

inti,a,b,c;

fbr(i=100;i<=999;++i)

(

a=i%10;

b=i/10%10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论