C语言重点30题.docx

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

C语言重点30题.docx

《C语言重点30题.docx》由会员分享,可在线阅读,更多相关《C语言重点30题.docx(20页珍藏版)》请在冰豆网上搜索。

C语言重点30题.docx

C语言重点30题

C语言重点30题

1.猴子每天都吃全部的1半多1个,到了第10天只剩下1个桃子,求第1天共摘了多少个桃子

main()

{intx1=1,x2,day=9;

while(day>0)

{x2=(x1+1)*2;

x1=x2;

day--;

}

printf("Thetotalis:

%d\n",x1);

}

2.计算:

1-3+5-7……………-99+101

main()

{inti=1,j=1,s=0;

while(i<=101)

{s+=i*j;

i+=2;

j=-j;

}

printf("s=%d\n",s);

}

3.统计正整数的各个数位中零的个数,并求出各数位中的最大者

main()

{intn,count,max,t;

count=0;

max=0;

scanf("%d",&n);

do

{t=n%10;

if(t==0)count++;

elseif(t>max)max=t;

n/=10;

}

while(n!

=0);

}

4.用

/4≈1-1/3+1/5-1/7+…公式求

的近似值直到最后一项的绝对值小于10-4为止

#include

main()

{inti=1,j=1;

floatpi=0;

while(fabs(1.0/i*j)>=0.0001)

{pi+=1.0/i*j;

i+=2;

j=-j;

}

pi*=4;

printf("pi=%f\n",pi);

}

5.输出所有的水仙花数,所谓水仙花数是指一个三位正整数其各位数字立方和等于该数本身

例如:

153=13+53+33

main()

{inti,a,b,c;

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

{a=i/100;

b=i%100/10;

c=i%10;

if(a*a*a+b*b*b+c*c*c==i)

printf("%d\n",i);

}

}

6.输出斐波那契数列的:

1,1,2,3,5,8,………的前40项,每行4项,即:

F1=1(n=1)

F2=1(n=2)

Fn=Fn-1+Fn-2(n>=3)

main()

{inti;

longf1=1,f2=1;

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

{printf("%12ld%12ld",f1,f2);

if(i%2==0)printf("\n");

f1=f1+f2;

f2=f1+f2;

}

}

7.输入10个整数到一维数组,输出其中最大数和最小数

main()

{inta[10],i,max,min;

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

scanf("%d",&a[i]);

max=a[0];

min=a[0];

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

{if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

printf("max=%d,min=%d\n",max,min);

}

8.以下程序是利用起泡法对键盘输入的10个整数进行由小到大排序

main()

{inta[10],i,j,t;

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

scanf("%d",&a[i]);

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

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

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

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

printf("%4d",a[i]);

printf("\n");

}

9.以下程序是利用起泡法对键盘输入的10个整数进行由小到大排序

main()

{inta[10],i,j,t;

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

scanf("%d",&a[i]);

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

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

if(a[j]

{t=a[j];a[j]=a[j-1];a[j-1]=t;}

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

printf("%4d",a[i]);

printf("\n");

}

10.已定义含有30个元素的数组a,函数fun()的功能是按顺序每5个元素求其和,并将该值存放在数组b中

#defineN30

voidfun(inta[],intb[6])

{inti,j=0,s=0;

for(i=0;i

{s+=a[i];

if((i+1)%5==0)

{b[j++]=s;

s=0;

}

}

}

main()

{inta[N],b[6],i;

for(i=0;i

a[i]=2*i;

fun(a,b);

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

printf("b[%d]=%d\n",i,b[i]);

}

11.输入一个字符串,将其倒序后输出

main()

{inti,j;

charst[60],ch;

scanf("%s",st);

for(i=0,j=strlen(st)-1;i

{ch=st[i];

st[i]=st[j];

st[j]=ch;

}

printf("%s\n",st);

}

12.输入字符串,将其中的非数字字符删除后,输出整个字符串

main()

{charst[80];

inti=0,j=0;

scanf("%s",st);

while(st[i])

{if(st[i]>='0'&&st[i]<='9')

st[j++]=st[i];

i++;

}

st[j]='\0';

printf("%s\n",st);

}

13.输出方阵中主对角线和、副对角线上元素的和sum1和sum2

#defineN3

main()

{inta[N][N],i,j,sum1,sum2;

sum1=sum2=0;

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

{sum1+=a[i][i];

sum2+=a[i][N-1-i];

}

printf("sum1=%d,sum2=%d\n",sum1,sum2);

}

14.输出以下的杨辉三角的前10行

1

11

121

1331

14641

……………………………

………………………………

main()

{inta[10][10],i,j,t;

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

{a[i][0]=1;a[i][i]=1;}

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

for(j=1;j

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

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

{for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

15.写出程序的运行结果

voidfun(char*s,intnum[5])

{inti;

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

num[i]=0;

while(*s!

='\0')

{i=-1;

switch(*s)

{case'a':

case'A':

{i=0;break;}

case'e':

case'E':

{i=1;break;}

case'i':

case'I':

{i=2;break;}

case'o':

case'O':

{i=3;break;}

case'u':

case'U':

{i=4;break;}

}

if(i>=0)num[i]++;

s++;

}

}

main()

{chars[80];

intnum[5],i;

printf("Pleaseinputastring:

");

gets(s);

fun(s,num);

printf("Theresultis:

\n");

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

printf("%3d\n",num[i]);

}

当输入Thisisatree时,显示:

Theresultis:

1

2

2

0

0

16.写出程序的运行结果

intfun(intn)

{staticinta=3;

intt=0;

if(n%2)

{staticinta=4;

t+=a++;

}

else

{staticinta=5;

t+=a++;

}

returnt+=a++;

}

main()

{inti,s=0;

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

s+=fun(i);

printf("s=%d\n",s);

}

运行结果__s=27_______

17.写出程序的运行结果

intfun()

{staticintx=0;

intt=0;

switch(x)

{case0:

t+=x++;

case1:

t+=x++;break;

case2:

t+=x++;

case3:

t+=x++;break;

default:

t+=x++;

}

returnt+=x++;

}

main()

{inti,s=0;

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

s+=fun();

printf("s=%d\n",s);

}

运行结果___s=21_______

18.写出程序的运行结果

voidfun(intx)

{if(x/16)fun(x/16);

switch(x%16)

{case15:

printf("F");break;

case14:

printf("E");break;

case13:

printf("D");break;

case12:

printf("C");break;

case11:

printf("B");break;

case10:

printf("A");break;

default:

printf("%d",x%16);

}

}

main()

{intx;

scanf("%d",&x);

fun(x);

}

当输入1978时,显示7BA。

19.写出程序的运行结果

voidfun(intn)

{inti;

if(n!

=0)

{fun(n-1);

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

printf("%d",n);

printf("\n");

}

}

main()

{intn;

scanf("%d",&n);

fun(n);

}

当输入5时,显示:

1

22

333

4444

55555

20.写出程序的运行结果

#include

voidfun(chars[])

{inti,j;

charch;

for(i=0,j=strlen(s)-1;i

{ch=s[i];

s[i]=s[j];

s[j]=ch;

}

}

main()

{chars[3][5]={{'A','B','C','D'},{'E','F','G'},{'H','I'}};

inti;

printf("Theoldarrayis:

\n");

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

printf("\"%s\"\n",s[i]);

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

fun(s[i]);

printf("Thenewarrayis:

\n");

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

printf("\"%s\"\n",s[i]);

}

Theoldarrayis:

"ABCD"

"EFG"

"HI"

Thenewarrayis:

"DCBA"

"GFE"

"IH"

21.写出程序的运行结果。

voidfun(inta[],inti,intj)

{intt;

if(i

{t=a[i];

a[i]=a[j];

a[j]=t;

i++;

j--;

fun(a,i,j);

}

}

main()

{inta[3][4]={{1,2,3,4},{4,5,6},{7,8}};

inti,j;

printf("Theoldarrayis:

\n");

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

{for(j=0;j<4;j++)

printf("%3d",a[i][j]);

printf("\n");

}

printf("Thenewarrayis:

\n");

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

{fun(a[i],0,3);

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

printf("%3d",a[i][j]);

printf("\n");

}

}

Theoldarrayis:

1234

4560

7800

Thenewarrayis:

4321

0654

0087

22.写出程序的运行结果。

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

main()

{inta[5]={5,2,6},i;

printf("Theoldarrayis:

\n");

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

printf("%3d",a[i]);

printf("\n");

sort(a,5);

printf("Thesortedarrayis:

\n");

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

printf("%3d",a[i]);

printf("\n");

}

Theoldarrayis:

52600

Thesortedarrayis:

00256

23.写出程序的运行结果

#defineMAX5

inta[MAX];

voidsub1()

{inti;

for(i=0;i

a[i]=i+i;

}

voidsub2()

{inta[MAX],i;

for(i=0;i

a[i]=i;

}

voidsub3()

{inti;

for(i=0;i

printf("%3d",a[i]);

printf("\n");

}

main()

{sub1();

sub3();

sub2();

sub3();

}

运行结果:

02468

02468

24.编写一函数fun(),判断形参x是否为素数,若是素数返回1,否则返回0

intfun(intx)

{inti,t=1;

for(i=2;i

if(x%i==0)t=0;

returnt;

}

main()

{intx;

scanf("%d",&x);

if(fun(x))printf("Yes!

\n");

elseprintf("No!

\n");

}

25.编写一函数fun(),返回数组a中的最大值,要求:

必须利用指针形式访问数组

intfun(int*a,intn)

{inti,max;

max=*a;

for(i=1;i

if(*(a+i)>max)max=*(a+i);

returnmax;

}

main()

{inta[]={3,7,2,9,4,5},max;

max=fun(a,6);

printf("max=%d\n",max);

}

26.编写一函数fun(),将字符串中的数字字符删除

voidfun(chars[])

{inti,j=0;

for(i=0;s[i]!

='\0';i++)

if(!

(s[i]>='0'&&s[i]<='9'))

s[j++]=s[i];

s[j]='\0';

}

main()

{chars[80];

printf("Pleaseinputastring(s):

");

gets(s);

fun(s);

printf("s=%s\n",s);

}

27.编写主函数main(),完成以下输出结果,要求必须利用以给出的三个函数,不允许设置变量

输出结果:

0123456789

02468

0123456789

#defineMAX10

inta[MAX];

voidsub1()

{inti;

for(i=0;i

}

voidsub2(intmax)

{inti;

for(i=0;i

}

voidsub3(intb[],intmax)

{inti;

for(i=0;i

printf("\n");

}

main()

{sub1();

sub3(a,MAX);

sub2(MAX/2);

sub3(a,MAX/2)

sub1();

sub3(a,MAX);

}

28.编写主函数main(),完成以下输出结果,要求必须利用给出的三个函数,不允许设置变量

输出结果:

0123456789

43210

98765

#defineMAX10

inta[MAX];

voidsub1()

{inti;

for(i=0;i

}

voidsub2(inta[],intmax)

{inti,j,t;

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

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

}

voidsub3(intb[],intmax)

{inti;

for(i=0;i

printf("\n");

}

main()

{sub1();

sub3(a,MAX);

sub2(a,MAX/2);

sub3(a,MAX/2);

sub2(a+MAX/2,MAX/2);

sub3(a+MAX/2,MAX/2);

}

29.编写主函数main(),完成以下输出结果,要求必须利用给出的三个函数,不允许设置变量

输出结果:

0123456789

4321098765

#defineMAX10

inta[MAX];

voidsub1()

{inti;

for(i=0;i

}

voidsub2(inta[],intmax)

{inti,j,t;

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

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

}

voidsub3(intb[],intmax)

{inti;

for(i=0;i

printf("\n");

}

main()

{sub1();

sub3(a,MAX);

sub2(a,MAX/2);

sub2(a+MAX/2,MAX/2);

sub3(a,MAX);

}

30.编写一函数fun(),返回3×4二维数组的最大值

intfun(inta[3][4])

{inti,j,max=a[0][0];

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

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

if(a[i][j]>max)max=a[i][j];

returnmax;

}

main()

{inta[3][4]={{1,4,7,10},{2,5,8,11},{3,6,9,12}};

intmax;

max=fun(a);

printf("max=%d\n",max);

}

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

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

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

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