C语言编程题库_第1页
C语言编程题库_第2页
C语言编程题库_第3页
C语言编程题库_第4页
C语言编程题库_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

C语言编程题库

1、用选择法对n个数由小到大排序。

#include<stdio.h>

voidmain()

{

int

scanf("%d",&n);

for(i=0;ivn;i++)

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

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

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

if(a[i-l]>aO])

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

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

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

printf("\n");

}

2、将键盘输入的12个数据存放到一个4行3列的二维数组中,分别求出各行、各列以及表

中所有数之和。

#include<stdio.h>

voidmain()

(

inta[5][4]={0}JJ;

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

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

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

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

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

(

a[i][3]+=a[i]U];

a[4]U]+=a[i][j];

a(4][3]+=a[i]U];

)

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

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

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

printf("\n");

)

)

3、判断一个字符串是否为同文串(回文串指正读反读都一样的字符串,如:字符串

"abcl21cba")o

#include<stdio.h>

#include<string.h>

voidmain()

(

chara[3O],b[3O];

intij;

scanf("%s"za);

i=strlen(a)-l;

j=0;

while(i>=0)

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

bUl='\O';

if(strcmp(azb)==O)

printf("%s是一个叵文串\n”,a);

else

printf("%s不是一个回文串\n",a);

)

#include<stdio.h>

#include<string.h>

voidmain()

(

chara[30];

intij;

scanf("%s",a);

i=strlen(a)-l;

j=0;

while(i>j)

if(a(i—]!=a[j++])break;

printf("%s是一个叵文串\n",a);

else

printf("%s不是一个回文串\n",a);

)

4、输出杨辉三角形的前10行。。

#include<stdio.h>

voidmain()

(

inta[10][10]JJ;

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

a[i][0]=a[i](i]=l;

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

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

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

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

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

printf("%d\t",a[i][j]):

printf("\n");

)

}

5、把输入的卜进制数以卜六进制数的形式输出。

#include<stdio.h>

voidmain()

(

inta[100],xzi=0;

scanf("%d",&x);

while(x)

{

a[i++]=x%16;

x/=16;

)

i--;

while(i>=0)

(

if(a[i]>9)printf("%c";A'+a[i]-10);

elseprintf("%d"za[i]);

i-;

)

printf("\n");

}

6、删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,

函数返回删除后数组中数据的个数。例如,

若一维数组中的数据是:2223445666677899101010删除后,数组中的内

容应该是:2345678910。

#include<stdio.h>

voidmain()

(

inta[19]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},n,i,j;

n=19;

for(i=17;i>=0;i--)

if(a(i]==a[i+l])

(

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

a[j-l]=a[j];

n--;

)

for{i=0;i<n;i++)

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

printf("\n");

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

if(a[i]>9)printf("%c";A'+a[i]-10);

elseprintf(”%d,a[i]);

i-;

)

printf("\n");

)

10、不使用strcmp函数,编程实现2个字符串的比较。*/

#include<stdio.h>

voidmain()

(

chara[30],b[30];

inti=0;

scanf("%s%s”,a,b);

while(a[i]==b[i]&&a[i]&&b[i])

i++;

if(a[i]==b[i])

printf("%s等于%s\n”,a,b);

elseif(a[i]<b[i])

printf("%s小于%六n”,a,b);

else

printf("%s大于%s\n",a,b);

)

*1、通过键盘输入3个整数,输出最大值和最小值

#include<stdio.h>

voidmain()

{

inta,b,c,max,min;

scanf("%d%d%d",&a,&b/&c);

max=min=a;

if(b>max)max=b;

if(c>max)max=c;

if(b<min)min=b;

if(c<min)min=b;

printf("最大值为%d,最小值为%d\n",max,min);

)

2、从键盘输入圆的半径r和一个整型数k,当k=l时,计算并输出圆的面积;当k=2时,

计算并输出圆的周长。编程实现以上功能

#include<stdio.h>

voidmain()

|

intrzk;

scanf("%d%d"/&r,&k);

if(k==l)

printf(”圆的面积为%租”,3.1415926*产r);

if(k==2)

printf("圆的周长为%下吃3.1415926*2*■

)

3、编程实现:输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则

输出两数之和。

#include<stdio.h>

voidmain()

(

inta,b;

scanf("%d%d",&a/&b);

if(a*a+b*b>100)

printf("%d\n"/(a*a+b*b)/100);

else

printf("%d\n",a+b);

)

4、从键盘上输入两个整数,判断其大小关系并将结果输出。

#include<stdio.h>

voidmain()

{

intazb;

scanf("%d%d",&a/&b);

if(a>b)

printf("a>b\n");

elseif(a<b)

printf("a<b\n");

else

printf("a==b\n");

)

5、猜数游戏。先将要猜的整数存放在变量num中,当程序运行时,提示游戏者通过键盘

输入自己所猜的数cai,若猜对了,即cai==num,

屏幕显示“**恭喜你猜中了!**“,然后结束程序运行;如果猜错了,屏幕除了显示”*»对不

起,你猜错了!**”外,还显示是猜大了或猜小了的信息,以帮助游戏者继续往正确处猜。

#include<stdio.h>

voidmain()

{

intnum=100,cai;

scanf("%d",&cai);

if(cai==num)

prints**恭喜你猜中了!

elseif(cai<num)

printf=**对不起,你猜错了!**\n**你猜小了!**\n");

else

printf「*对不起,你猜错了!**\n**你猜大了!**\n");

6、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

#include<stdio.h>

voidmain()

(

inti,a,f=l;

scanf("%d"z&a);

printf("%d=l",a);

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

while(a%i==0)

{a/=i;

printf("*%d"J);

)

)

7、求输入的十个整数中正数的个数及其平均值。

#include<stdio.h>

voidmain()

{

inti,a,n=0;floatsum=0;

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

{scanf("%d"z&a);

if(a>0)

{sum+=a;n++;}

}

printf("正整数的个数为%d,正整数的平均值为%f\n",n,sum/n);

)

8、某旅行团有男人、女人和小孩共30人,在纽约一家小饭馆里吃饭,该饭馆按人头收费,

每个男人收3美元,每个女人收2美元,

每个小孩收1美元,共收取50美元。共有多少组解?

#include<stdio.h>

voidmain()

(

inti,j,k;

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

for(j=l;j<=15;j++)

if(i*3+2*j+30-i-j==50)

printf("男人%d人,女人%d人,小孩%d人\n",i,j,30-i-j);

)

9、在输入的一批正整数中求出最大者,输入0结束循环。

#include<stdio.h>

voidmain()

intx,max;

scanf(”%d”,&x);

max=x;

while(x!=O)

{scanf("%d"z&x);

if(x>max)max=x;

)

printf("最大值为%d\n,mdx);

)

10、输出所有的"水仙花数「所谓的“水仙花数”是指一个3位数,其各位数字的立方和

等于该数本身。例如,153是一个水仙花数,

因为153=13+53+33

#include<stdio.h>

voidmain()

(

inti,nl,n2,n3;

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

{nl=i/100;n2=i/10%10;n3=i%10;

if(nl*nl*nl+n2*n2*n2+n3*n3*n3==i)

printf("%d\n"zi);

}

}

11、将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环。

#include<stdio.h>

voidmain()

{

intnl,n2;

scanf("%d%d",&nlz&n2);

while(nl!=n2)

(

if(nl>n2)

printf("%d,%d\n",n2,nl);

else

printf("%d,%d\n",nl,r)2);

',

scanf(%d%d"/&nlz&n2);

)

}12、使用循环语句实现如下图形的输出

1

123

12345

1234567

123456789*/

#include<stdio.h>

voidmain()

inti,j;

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

{for(j=l;j<=5-i;j++)

printf("");

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

printf("%d",j);

printf("\n");

}

/*1、输入某年某月某日,判断这一天是这一年的第几天?

#include<stdio.h>

voidmain()

{

inty/m/d,sum=0;

scanf("%d%d%d"/&y,&mJ&d);

if(y%4==0&&y%100!=0||y%400==0)

sum=l;

switch(m)

(

casel:sum=d;

case2:sum=d+31;

case3:sum+=d+31+28;

case4:sum+=d+31+28+31;

case5:sum+=d+31+28+31+30;

case6:sum+=d+31+28+31+30+31;

case7:sum+=d+31+28+31+30+31+30;

case8:sum+=d+31+28+31+30+31+30+31;

case9:sum+=d+31+28+31+30+31+30+31+31;

case10:sum+=d+31+28+31+30+31+30+31+31+30;

casell:sum+=d+31+28+31+30+31+30+31+31+30+31;

case12:sum+=d+31+28+31+30+31+30+31+31+30+31+30:

)

printf("%d年:%dJl%d日是这一年的第%~天\n”,y,m,d,sum);

)

#include<stdio.h>

voidmain()

inty,m,d,sum=0;

scanf("%d%d%d",&y,&m,&d);

switch(m)

case12:sum+=30;

casell:sum+=31;

case10:sum+=30;

case9:sum+=31;

case8:sum+=31;

case7:sum+=30;

case6:sum+=31;

case5:sum+=30;

case4:sum+=31;

case3:sum+=28;

case2:sum+=31;

casel:sum+=d;

}

if((y%4==0&&y%100!=01|y%400==0)&&m>2)

sum+=l;

printf("%d年%(1月%~日是这一年的第%€1天\rT,y,m,d,sum);

)

2、编程判断输入的正整数是是否既是5乂是7的整倍数。若是,则输出yes;否则输出noo

#include<stdio.h>

voidmain()

(

inty;

scanf("%d",&y);

if(y%5==0&&y%7==0)

printf("yes\n");

else

printf("no\n");

}

3、简单计算器程序。用户从键盘输入两个整数和一个字符,字符必须是中、」、*、/其

中的一个,然后程序输出两数作相应运算的结果。

输出计算结果。

#include<stdio.h>

voidmain()

|

intazb;

charc;

scanf("%d%c%d"/&a,&c/&b);

switch(c)

(

"

case+':printf("%d%c%d=%d\n"/a,c,b,a+b);break;

,

case'-:printf("%d%c%d=%d\n"/a/c,b,a-b);break;

'

case*':printf("%d%c%d=%d\n"/a/c/bza*b);break;

case7':printf("%d%c%d=%f\n"/a,c/b/(float)a/b);break;

}

4、从键盘输入3个整数,按由小到大的顺序输出。

#include<stdio.h>

voidmain()

{

inta,b,c,t;

scanf("%d%d%d",&a/&b,&c);

if(a>b)

{t=a;a=b;b=t;}

if(b>c)

{t=c;c=b;b=t;}

if(a>b)

{t=a;a=b;b=t;}

printf("%d%d%d\n"za,b,c);

5、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10

次落地时,共经过多少米?第10次反弹多高?

#include<stdio.h>

voidmain()

{

inti;floatt=100,sum=10C;

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

(

t=t/2;sum+=t*2;

)

printf("%f%f\n",sum,t/2);

)

6、百钱买百鸡:一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱

3只,问一百只鸡中公鸡、母鸡、小鸡各多少?

#include<stdio.h>

voidmain()

|

intijk;

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

for(j=l;j<=33;j++)

for(k=3;k<100;k+=3)

if(5*i+3*j+k/3==100&&i+j+k==100)

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

)

7、输出半径为1到10的圆的面积,当面积大于100时停止输出。

#include<stdio.h>

voidmain()

inti;floatarea;

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

{area=3.1415926*i*i;

if(area>100)break;

("半径:,圆的面积:

printf%d%f\n"J/area);

)

)

8、猜数游戏:任意设置一个整数,请用户从键盘上输入数据猜测设置的数是什么,告诉用

户是猜大了还是小了。如果10次以内猜对答案,

用户获胜。否则,告诉用户设置的数据是什么。

#include<stdio.h>

voidmain()

{

int1,5=100,031;

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

{scanf("%d"z&cai);

if(cai==s)break;

if(cai<s)printf("猜小了\n“);

else

printf("猜大了\n)

)

if(i<=10)

printf("恭喜你,猜对了!\n");

else

printf(“不好意思,你猜错了,正确答案是%d\n”,s);

}

9、计算:s=l+12+123+1234+12345o

#include<stdio.h>

voidmain()

(

inti,s=O,t=O;

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

{t=t*10+i;

s+=t;

)

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

)

10、输出100以内能被3整除且个位数为6的所有整数

#include<stdio.h>

voidmain()

inti,t=0;

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

{t=i*10+6;

if(t%3==0)

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

11、键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结

束输入

#include<stdio.h>

voidmain()

(

inti,score,max,min;

scanf(”%d”,&score);

max=min=score;

while(score>=0)

{scanf(”%d”,&score);

if(score>max)max=score;

if(score<min&&score>=0)min=score;

)

("最高成绩为:最低成绩为:

printf%d,%d\n",max/min);

12、自然常数e的计算公式为e=l+l/l!+l/2!+l/3!+…+l/n!+...。请编制程序计算e的近

似值,要求被舍弃的首项1/n!<0.000001o*/

#include<stdio.h>

voidmain()

(

floatn=l,e=l,t;

t=l/n;

while(t>=0.000001)

(

e+=t;

n++;

t*=l/n;

)

printf(”%.10f\n”,e);

)

例2.1

include<stdio.h>

main()

{doublea,b,area;

a=1.2;/*将矩形的两条边长分别赋给a和b*/

b=3.6;

area=a*b;/*计算矩形的面积并存储到变量area中*/

/*输出矩形的两条边长和面积*/

printf("a=%f,b=%f,area=%f\n"za,b,area);

例2.2

^include"stdio.h"

#definePI3.14159/*定义符号名PI为3.14159*/

main()

{doubler,s;

r=5.0;

s=PI*r*r;

printff's=%f\n",s);

)

2.24

#includestdio.h;

main();/*mainfunction*/

floatr,s;/*/*risradius*/,/*sisareaofcircular*/*/

r=5.0;

s=3.14159*r*r;

printf("%f\n",s)

printf("%f\n",s)

2.25

main/*mainfunction*/

{floata,b,c,v;/*a,b,caresides,visvolumeofcube*/

a=2.0;b=3.0;c=4.0

v=a*b*c;

printf("%f\n",v)

}

3.2.1

#include<stdio.h>

main()

{inti=2518;

doublea=3.1415;

printf("i=%d,a=%f,a*10=%e\n",i,a,a*10);

例3.1

#include<stdio.h>

main()

{intx,y,t;

printf("Enterx&y:\n");

scanf("%d%d",&x,&y);

printf("x=%dy=%d\n",x,y);

t=x;x=y;y=t;

printf("x=%dy=%d\n",x,y);

}

例3.2

ttinclude<stdio.h>

main()

{doublex;

printf("Enterx:\n");

,,

scanf("%lf,&x);

printf("(l)x=x);

x=x*100;

x=x+0.5;

x=(int)x;

x=x/100;

printf("(2)x=x);

}

3.4

include<stdio.h>

main()

{intx=10,y=3;

printf("%d\n",y=x/y);

)

3.16

main

{doublea,b,c,s,v;

printf(inputa,b,c:\n);

scanf("%d%d%d”,a,b,c);

s=a*b;/*计算长方形面积*/

v=a*b*c;/*计算长方体体积*/

printf("%d%d%d”,a,b,c|;

printf("s=%f\n”,s,"v=%d\n,»;

例4.1

#include<stdio.h>

main()

{intx,y;

printf("Enterx&y:\n");

scanf("%d%d",&x,&y);printf("x,y:%d%d\n”,x,y);

if(x>y)printf("x=%d\n",x);

iffy>x)printf("y=%d\n",y);

if(x==y)printf("x==y%d:\n",x);

)

例4.2

^include<stdio.h>

main()

{inta,b,c,t;

printf("inputa,b,c:");scanf("%d%d%d",&a,&b,&c);

printf("a=%dzb=%d,c=%d\n",a,b,c);

if(a>b)/*如果a比b大,则进行交换,把小的数放入a中*/

{t=a;a=b;b=t;)

if(a>c)/*如果a比c大,则进行交换,,把小的数放入a中*/

{t=a;a=c;c=t;}/*至此a、b、c中最小的数已放入a中*/

if(b>c)/*如果b比c大,则进行交换,把小的数放入b中*/

{t=b;b=c;c=t;}/*至比a、b、c中的数已按由小到大顺序放好*/

printf("%d,%d,%d\rT,a,b,c);

)

例4.3

#indude<stdio.h>

main()

{intx,y;

printf("Enterx&y:");

scanf("%d%d",&x/&y);printf("x,y:%d%d\n”,x,y);

if(x>y)

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

else

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

printf("**end**\n");

)

例4.4

^include<stdio.h>

main()

{intn;

printff'inputn:");

scanf("%d",&n);

if(n%3==0)/*判断n能否被3整除*/

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

else

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

例4.5

ttinclude<stdio.h>

main()

{intg;

printff'Enterg:");

scanf("%d",&g);

printf("g=%d:",g);

if(g>=90)printf("A\n");

elseif(g>=80)printf(

elseif(g>=70)printf("C\n");

elseif(g>=60)printf("D\n");

elseprintf("E\n");

)

例4.6

#include<stdio.h>

main()

{intg;

printf("Enteramark:");scanf("%d",&g);/*g中存放学生的成绩*/

printff'g=%d:,g);

switch(g/10)

{case10:

case9:printf("A\n");

case8:printf("B\n");

case7:printf("C\n");

case6:printf("D\n");

default:printf("E\n");

}

)

^include<stdio.h>

main()

{intg;

printf("Enteramark:");scanf("%d",&g);/*g中存放学生的成绩*/

printf("g=%d:,g);

switch(g/IO)

{case10:

case9:printf("A\n");break;

case8:printf("B\n");break;

case7:printf("C\n");break;

case6:printf("D\n");break;

default:printf("E\n");

)

}

4.5

#include<stdio.h>

main()

{inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elsec+=1;

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

)

4.6

ttinclude<stdio.h>

main()

{intw=4,x=3,y=2,z=l;

printf("%d\n〃,(w<x?w:z<y?z:x));

)

4.7

//include<stdio.h>

main()

{inta,b,s;

scanf("%d%d”,&a,&b);

s=a;

if(a<b)s=b;

s*=s;

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

4.9

#include<stdio.h>

main()

{intk=-3;

if(k<=O)printf(//****\nw|

elseprintf("&&&&\n");

}

4.17

//include<stdio.h>

main()

{inta=100;

if(a>100)printf("%d\n”,a>100);

elseprintf("%d\n",a<=100);

)

例5.1

ttinclude<stdio.h>

main()

{inti,sum;

i=0;sum=0;/*i和sum的初值为0*/

while(sum<10000)/*当sum小于10000时执行循环体*/

{sum+=i*i;/*sum累加i的平方*/

i++;/*在循环体中每累加一次后,i增1*/

)

printf("n=%dsum=%d\n"/i-1,sum);

例5.2

//include<stdio.h>

#include<math.h>/*调用fabs函数时要求包含math.h文件*/

main()

{ints;

floatn,t,pi;

t=1.0;/*t中存放每项的值,初值为1*/

pi=0;/*pi中存放所求兀的值,初值为0*/

n=1.0;/*n中存放每项分母*/

s=l;/*s为符号位,其值在1和-1之间变亿*/

while(fabs(t)>=le-6)

{pi=pi+1;

n+=2.0;

S=-S,/*改变符号*/

t=s/n;

}

pi=pi*4;

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

例5.3

//include<stdio.h>

ttinclude<math.h>

main()

{doublexl,x2;

xl=0.0;

x2=cos(xl);

while(fabs(x2-xl)>le-6)

{xl=x2;

x2=cos(xl);

)

printf("x=%f\n",x2);

例5.4

#include<stdio.h>

main()

{intfl,f2,f;

fl=0;f2=l;

do

{f=fl+f2;fl=f2;f2=f;

}while(f2<=1000);

printff'F=%d\n",f2);

)

例5.5

#include<stdio.h>

main()

{inti,sum;

sum=0;/*sum的初值为0*/

for(i=l;i<=100;i++)/*当i小于或等于100时执行循环体*/

sum+=i;/*在循环体中累加i一次*/

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

例5.6

ttinclude<stdio.h>

main()

{doubler,s,Pi=3.1416;

for(r=0.5;r<=2.5;r+=0.5)

{s=Pi*r*r;/*计算圆面积s的值*/

printf("r=%3.1fs=%f\n"zr,s);

)

)

例5.7

ttinclude<stdio.h>

main()

{intk,i,j;

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

{for(k=1;k<=i;k++)printf("");

for(j=0;j<7-i*2;j++)printf("*");

printf("\n");

)

例5.8

#include<stdio.h>

main()

{intk,i,tag;

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

{tag=0;

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

if(i%k==0)tag=l;

if(tag==0)printf("%d,"zi);

)

)

#include<stdio.h>

//include<math.h>

main()

{intk,i,tag;

printf("2,");

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

{tag=0;

for(k=2;tag==0&&k<sqrt(i);k++)

if(i%k==0)tag=l;

if(tag==0)printf("%d,i);

)

例5.9

//include<stdio.h>

main()

{inti,s;

s=0;

for(i=1;;i++)

{s=s+i;

if(s>5000)break;

}

printff's=%d,i=%d\n"/s,i);

)

例5.10

#include<stdio.h>

main()

{intk=0,s=0,i;

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

{s=s+i;

if(s>5)

{printf("****i=%d,s=%d,k=%d\n",i,s,k);/*1#输出语句*/

continue;

)

k=k+s;

printf("i=%d,s=%d,k=%d\n",i,s,k);/*2#输出语句*/

}

例5.11

#include<stdio.h>

main()

{intx,max;

printf("Enter-1toend:\n");

do

{printf("Enterx:");scanf("%d"z&x);

}while(x<0&&x!=-1);

max=x;

while(x!=-1)

{printf("Enterx:");scanf("%d",&x);

if(x>0&&x>max)max=x;/*max始终存放大于零的最大值*/

)

iffmax!=-1)printf("max=%d\n",max);

)

例5.12

#include<stdio.h>

ttinclude<math.h>

main()

{floata,xO,xl;

printf("\nlnputa:");scanf("%f",&a);

if(a<0)

printf("error!\n“);/*不能求负数的平方根*/

else

{x0=a/2;

xl=(x0+a/xO)/2;

do

{xO=xl;

xl=(x0+a/xO)/2;

)

while(fabs(xO-xl)>le-6);

printf("sqrt(%f)=%f标准sqrt(%f)=%f\n",a,xl,a,sq-t(a));

5.5

#include<stdio.h>

main()

{inti,sum;

for(i=1;i<6;i++)sum+=sum;

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

)

5.6

//include<stdio.h>

main()

{inty=10;

for{;y>0;y-)

if(y%3==0)

{printf("%d”,-y);continue;

)

)

5.8

ttinclude<stdio.h>

main()

{inti;

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

{if(i%2)printf("*〃);

elsecontinue;

printf(〃#");

)

printf(w$\nw);

)

5.10

#include<stdio.h>

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf("%d",x);

}

printf(Qn〃);

)

5.13

#include<stdio.h>

main()

{intx=2;

while(x--);

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

5.16

//include<stdio.h>

main()

{floatx,amax,amin;

scanf("%f",&x);

amax=x;amin=x;

while([1])

{if(x>amax)amax=x;

if([2])amin=x;

scanf("%f",&x);

)

printf(/z\namax=%f\namin=%f\rT,amax,amin);

)

例6.1

ttinclude<stdio.h>

main()

{charch;inti;

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

{ch=i+65;

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

printf("c=%cASCII=%d",ch,ch);

}

putchar(\n);

)

例6.2

#include<stdio.h>

main()

{

printf("PressEntertocortinue\n");

while(getchar()!='\n');

)

例6.3

#include<stdio.h>

main()

{chare;

while((c=getchar())!='\n')

{if(c>=,a,&&c<='z')c=c-"a'+'A';

putchar{c);

)

putchar('\n');

例6.4

ttinclude<stdio.h>

#include<ctype.h>

main()

{longn=O;charch;

while((ch=getchar())!='!')/*未遇到结束标志时循环继续*/

if(isspace(ch))n++;

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

)

例6.5

#include<stdio.h>

//include<ctype.h>

main()

{charc;

c=getchar();

while(c未遇到结束标志时循环继续*/

{if(isalpha(c))/*调用函数判断c中是否为字母*/

{c=tolower(c);/*调用函数把大写字母转换成小写字母*/

c=(c-'a,+l)%26+,a,;

)

putcharfc);

c=getchar();

)

printf("\n");

)

6.7

//include<stdio.h>

main()

{charcl=A,c2=Y;

printf("%d,%d\n”,cl,c2);

)

6.8

//include<stdio.h>

main()

{charx=A;

x=(x>=A&&x<=Z)?(x+32):x;

printf("%c\n”,x);

6.9

ttinclude<stdio.h>

main()

{charch;

ch=A+5-3;

printf("%d,%c\n”,ch,ch);

)

6.10

#include<stdio.h>

main()

{intc;

while((c=getchar())!=\n)

{switch(c-2)

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default:putchar(c+2);break;

)

}printf(Qn〃);

)

例7.2

ttinclude<stdio.h>

voidtry(int,int,int);/*说明函数try为无值型,含有3个int类型的形参*/

main()

{intx=2,y=3,z=0;

printf("⑴x=%dy=%dz=%d\n",x,y,z);

try(x,y,z);

printf("(4)x=%dy=%dz=%d\n'\x,y,z);

)

voidtryfintx,intyzintz)

{printf("(2)x=%dy=%dz=%d\n",x,y,z);

z=x+y;

x=x*x;

y=yy;

printf("⑶x=%dy=%dz=%d\n",x,y,z);

例7.3

ttinclude<stdio.h>

voidsw叩(int,int);/*函数说明语句*/

main()

{intx=10,y=20;

printf("⑴x=%dy=%d\n",x,y);

swap(x,y);

printf("⑷x=%dy=%d\n",x,y);

)

voidswap(inta,intb)

{intt;

printf("⑵a=%db=%d\n",a,b);

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

printfn3)a=%db=%d\n",a,b);

}

例7.4

#include<stdio.h>

intisprime(int);/*isprime函数的说明语句*/

main()

{intx;

printf("Enteraintegernumber:");

scanf("%d”,&x);"从键盘输入一个整数*/

if(isprime(x))

printf("%disprimeXn",x);/*当函数返回1时,输出“是素数”*/

else

/*当函数返回时,输出”不是素数“*/

printf("%disnotprime\n"zx);0

intisprime(inta)/*定义isprime函数*/

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)return0;/*a一旦能被某个数整除,印不是素数,返回0*/

return1;/*a不能被2到a/2之间任何一个数整除,返回1*/

例7.5

#include<stdio.h>

Intisprime(int);/*isprime函数的说明语句*/

voideven(int);/*even函数的说明语句*/

main()

{inta;

printf("Enteraevennumber:");scanf("%d",&a);

if(a%2==0)even(a);

elseprintf("The%disntevennumberXn",a);

}

voideven(intx)/*定义even函数*/

{inti;

for(i=2;i<=x/2;i++)

if(isprime(i))

if(isprime(x-i))

{printf("%d=%d+%d\n",x,i,x-i);return;}

)

intisprime(inta)/*isprime函数定义与例7.4同,在此省略*/

{……}

例7.6

//include<stdio.h>

intsum(int);/*sum函数的说明语句*/

intf(int);/*f函数的说明语句*/

main()

{inta,b;

printf("tnteraintegernumber:");//输入一个整数*7

scanf(”%d”,&a);

b=sum(a);/*调用sum函数求f(x)的累加和*/

printf("a=%dsum=%d\n",a,b);

)

intsum(intn)/*定义sum函数*/

{intx,s=0;

for(x=0;x<=n;x++)s+=f(x);

returns;/*返回累加和*/

)

intf(intx)/*定义f(x)函数*/

{returnx*x+l;}

例7.7

^include<stdio.h>

ttinclude<math.h>

doubleinteg(doublea,doubleb)

{doubles,x,h;

intn=100,i;

h=fabs(b-a)/n;/*fabs()为求绝对值函数*/

s=(sin(a)+sin(b))/2.0;

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

{x=a+i*h;s=s+sin(x);}

s=s*h;

returns;

)

main()

{doubles;

s=integ(0.0z1.5);

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

)

例7.8

^include<stdio.h>

#include<ctype.h>

charmyupper(charch)

{if(ch>=a&&ch<=z)ch=ch-32;

returnch;

)

main()

{charc;

while((c=getcharf))!='@')

{c=myupper(c);

putchar(c);

)

}

例7.9

#include<stdio.h>

Longcountchf);/*countch函数说明语句*/

main()

{longn;

n=countch();

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

longcountch()

{longcn;

for(cn=0;getchar()cn++);

returncn;

例7.10

//include<stdio.h>

#defineIN1/*标志在一个单词的内部*/

#defineOUT0/*标志在一个单词的外部*/

intcountwordf);/*函数说明语句*/

main()

{intn;

n=countword();

printf("n=%d\n"zn);

}

intcountword()

{intc,nw,state;

state=OUT;/*在单词的外部*/

nw=0;

while((c=getchar())

{if(c=="||c=='\n'||c=='\t,)

state=OUT;/*读入的字符是分隔符,在一个单词的外部*/

elseinstate==OUT)/+如果遇到单词的第一个字符*7

{state=IN;/*状态变量置成IN:在单词的内部*/

nw++;/*单词个数增1*/

)

}

returnnw;

)

7.4

ttinclude<stdio.h>

intfunc(inta,intb)

{intc;

c=a+b;returnc;

)

main()

{intx=6,y=7,z=8,r;

r=func{(x-,y++,x+y),z-);printf("%d\n",r)

7.5

ttinclude<stdio.h>

intf(intzint);

main()

{inti=2,p;

p=f(i,i+1);printf("%d\n”,p);

}intf

(

inta,intb

)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-l;

return(c);

)

7.6

#include<stdio.h>

intfun(inta,intb,intc)

{c=a*b;}

main()

{intc;

fun(2,3,c);printf("%d\n",c);

7.7

#include<stdio.h>

doublef(intn)

{inti;doubles;

s=1.0;

for(i=1;i<=n;i++)s+=1.0/i;

returns;

)

main()

{inti,m=3;doublea=0.0;

for{i=0;i<m;i++)a+=f(i);

printfa);

7.8

ttinclude<stdio.h>

unsignedfun6(unsignedmm)

{unsignedk=1;

do

{k*=num%10;num/=10;}

while(num);

returnk;

)

main()

{unsignedn=26;

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

}

7.9

//include<stdio.h>

doublesub(doublex,doubley,doublez)

{y-=1.0;z=z+x;returnz;}

main()

{doublea=2.5,b=9.0;

printfsub(b-a,a,a));

)

7.10

ttinclude<stdio.h>

intfun2(inta,intb)

{intc;

c=(a*b)%3;returnc;

}intfunl(

inta,intb

)

{intc;

a+=a;b+=b;c=fun2(a,b);

returnc*c;

)

main()

{intx=11,y=19;

printf("%d\n”,funl(x,y));

)

例8.1

#include<stdio.h>

main()

{inta,b,min,*pa,*pb,*pmin;

pa=&a;pb=&b;pmin=&min;

scanf("%d%d",pa,pb);/*输入的值依次放入pa、pb所指存储单元中*/

printf("a=%db=%d\n",a,b);/*通过输出,验证a、b中的值*/

*pmin=*pa;/*假定a中的值最小,将其赋给min*/

if(*pa>*pb)*pmin=*pb;/*若b中的值比a小,将其赋给min*/

/*输出小值*/

printf("min=%d\n"zmin);

)

例8.2

//include<stdio.h>

intmyadd(int*a,int*b)

{intsum;

sum=*a+*b;

returnsum;

)

main()

{intx,y,z;

printfC'Enterx.y:");

scanf("%d%d",&x,&y);

z=myadd(&x,&y);

printf("%d+%d=%d\n"/x,y,z);

}

例8.3

//include<stdio.h>

voidswap(int*,int*);

main()

{intx=30,y=20;

printf("(l)x=%dy=%d\nx,y);

swap(&x,&y);

printf("(4)x=%dy=%d\nx,y);

)

voidswap(int*a,int*b)

{intt;

。)

print"a=%db=%d\n"z*az*b);

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

printf("(3)a=%db=%d\n",*a,*b);

例8.4

#include<stdio.h>

voidswap(int*xl,int*x2)

{intt;

t=*xl;*xl=*x2;*x2=t;

)

voidorder(int*a,int*b)

{if(*a>*b)swap(a,b);}

main()

{intx,y;

printf("Enterx,y:");

scanf("%d%d",&x,&y);

printff'x=%dy=%d\n“,x,y);

order(&xz&y);

printf("x=%dy=%d\n",x,y);

例8.5

#include<stdio.h>

int*fun(int*,int*);/*函数说明语句*/

main()

{int*p,i,j;

printf("Entertwonumbe-:");

scanf("%d%d",&i,&j);

p=fun(&i,&j);/*p将得到i或j的地址“/

printf("i=%d,j=%d,*p=%d\n"/\,j,*p);

)

int*fun(int*a,int*b)

{if(*a>*b)returna;

returnb;

)

8.2

include<stdio.h>

main()

{printf("%d\n”,NULL);)

8.3

ttinclude<stdio.h>

voidsub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

printf("%d,%d,%d\n”,a,b,c);

)

8.4

ttinclude<stdio.h>

main()

{intk=2,m=4,n=6,*pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);printf("%d\n",n);

)

8.8

#include<stdio.h>

voidprtv(int*x)

{printf("%d\n〃,++*x);}

main()

{inta=25;

prtv(&a);

)

8.9

#include<stdio.h>

main()

{int**kz*a,b=100;

a=&b;k=&a;printf("%d\n”,**k);

)

8.10

#include<stdio.h>

voidfun(float*a,float*b)

{floatw;

*a=*a+*a;w=*a;*a=*b;*b=w;

)

main()

{floatx=2.0,y=3.0,*px=&K,*py=&y;

fun(px,py);printf("%2.U£%2.0f\n”,x,

温馨提示

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

评论

0/150

提交评论