c语言程序阅读练习.docx
- 文档编号:9804597
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:139
- 大小:68.15KB
c语言程序阅读练习.docx
《c语言程序阅读练习.docx》由会员分享,可在线阅读,更多相关《c语言程序阅读练习.docx(139页珍藏版)》请在冰点文库上搜索。
c语言程序阅读练习
C语言第1章
[例1.3]求2个数中较大者
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
1.5编写一个C程序,输出以下信息:
*****************************
Verygood!
*****************************
//chapter1.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"stdafx.h"
intmain(intargc,char*argv[])
{
printf("******************\n");
printf("Verygood!
\n");
printf("******************\n");
return0;
}
1.6编写一个C程序,输入a、b、c3个值,输出其中最大者。
//chapter1.cpp:
Definestheentrypointfortheconsoleapplication.
//
#include"stdafx.h"
intmax(inta,intb,intc)
{
inttemp;
temp=a;
if(temp
temp=b;
if(temp temp=c; returntemp; } intmain(intargc,char*argv[]) { inta,b,c; scanf("%d%d%d",&a,&b,&c); printf("max=%d\n",max(a,b,c)); return0; } ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- C语言第2章 [例2.1]求1×2×3×4×5 [例2.2]有50个学生,要求将他们之中成绩在80分以上的学号和成绩输出 [例2.3]判定2000-2500年中的每一年是否是闰年 [例2.4]求1-1/2+1/3-1/4+…+1/99-1/100 [例2.5]对一个大于或等于3的正整数,判断它是不是一个素数 [例2.6]将例2.1求5! 的算法用流程图表示 [例2.7]将例2.2的算用流程图表示。 将50名学生中成绩在80分以上者的学号和成绩输出 [例2.8]将例2.3判定闰年的算法用流程图表示 [例2.16]将例2.11表示的算法(求5! )用C语言表示 #include main() { inti,t; t=1; i=2; while(i<=5) { t=t*i; i=i+1; } printf(“%d”,t); } 例2.17]求例2.14表示的算法(求级数的值)求1-1/2+1/3+…+1/99-1/100 用C语言表示 #include main() { intsign=1; floatdeno=2.0,sum=1.0,term; while(deno<=100) { sign=-sign; term=sign/deno; sum=sum+term; deno=deno+1; } printf(“%f”,sum); } 2.4用传统流程图表示求解以下问题的算法 (1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换。 #include"stdafx.h" intmain(intargc,char*argv[]) { intA; intB; A=1; B=2; printf("A=%dB=%d\n",A,B); intC; C=A; A=B; B=C; printf("A=%dB=%d\n",A,B); return0; } (2)依次将10个数输入,要求将其中最大的数输出 #include"stdafx.h" intmain(intargc,char*argv[]) { inta; intmax; scanf("%d",&a); max=a; for(inti=2;i<=10;i++) { scanf("%d",&a); if(a>max) { max=a; } } printf("max=%d\n",max); return0; } (3)有3个数a、b、c,要求按大小顺序把它们输出 #include"stdafx.h" intmain(intargc,char*argv[]) { inta,b,c; inttemp; scanf("a=%db=%dc=%d",&a,&b,&c); if(a>b) { temp=a; a=b; b=temp; } if(b>c) { temp=b; b=c; c=temp; } if(a>b) { temp=a; a=b; b=temp; } printf("a=%db=%dc=%d\n",a,b,c); return0; } (4)求1+2+3+……+100 #include"stdafx.h" intmain(intargc,char*argv[]) { intsum; sum=0; for(inti=1;i<=100;i++) { sum=sum+i; } printf("1+2+3+...+100=%d\n",sum); return0; } (5)判断一个数n能否同时被3和5整除 #include intmain(intargc,char*argv[]) { intn; scanf("n=%d",&n); if(n%3==0&&n%5==0) { printf("%d能够被3和5同时整除\n",n); } else { printf("%d不能够被3和5同时整除\n",n); } return0; } (6)将100-200之间的素数输出 #include #include intjudge(intn) { intw; w=0; for(inti=2;i<=sqrt(n);i++) { intr; r=n%i; if(r==0) { w=1; break; } } returnw; } intmain(intargc,char*argv[]) { intn; for(n=100;n<=200;n++) { if(judge(n)==0) { printf("%d是素数\n",n); } else { printf("%d不是素数\n",n); } } return0; } (7)求两个数m和n的最大公约数 #include intmain(intargc,char*argv[]) { intm,n; intmin; scanf("%d%d",&m,&n); if(m { min=m; } else { min=n; } for(inti=min;i>=1;i--) { if(m%i==0&&n%i==0) { printf("%d是%d和%d的最大公约数\n",i,m,n); break; } } return0; } (8)求方程式ax2+bx+c=0的根。 分别考虑: 有两个不等的实根;有两个相等的实根 #include #include intmain(intargc,char*argv[]) { floata,b,c; scanf("a=%fb=%fc=%f",&a,&b,&c); floatdisc; disc=b*b-4*a*c; if(disc>0) { printf("x1=%f\n",(-b+sqrt(disc))/(2*a)); printf("x2=%f\n",(-b-sqrt(disc))/(2*a)); } if(disc==0) { printf("x=%f",-b/(2*a)); } if(disc<0) { printf("方程没有实根"); } return0; } ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- C语言第3章 [例3.7]大小写字母的转换 #include voidmain() { charc1,c2; c1='a'; c2='b'; c1=c1-32; c2=c2-32; printf("%c%c",c1,c2); } 3.6写出以下程序的运行结果: #include voidmain() { charc1=‘a’,c2=‘b’,c3=‘c’,c4=‘\101’,c5=‘\116’; printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3); printf(“\t\b%c%c\n”,c4,c5); } 3.7要将“China”译成密码,密码规律是: 用原来的字母后面第4个字母代替原来的字母。 例如,字母“A”后面第4个字母是”E“,用”E“代替”A”。 因此,“China”应译为“Glmre”。 请编一程序,用赋初值的方法使c1、c2、c3、c4、c5这5个变量的值分别为’C‘、’h‘、’I‘、’n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。 #include intmain(intargc,char*argv[]) { charc1,c2,c3,c4,c5; c1='C'; c2='h'; c3='i'; c4='n'; c5='a'; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); c1+=4; c2+=4; c3+=4;//c3=c3+4 c4+=4; c5+=5; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 3.8例3.6能够改成如下: #include voidmain() { intc1,c2; c1=97; c2=98; printf(“%c%c\n”,c1,c2); printf(“%d%d\n”,c1,c2); } 3.9求下面算术表达式的值 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 #include main() { floatx=2.5; inta=7,b; floaty=4.7; printf("%lf\n",x+a%3*(int)(x+y)%2/4); //2.5 a=2; b=3; x=3.5; y=2.5; printf("%lf\n",(float)(a+b)/2+(int)x%(int)y); //3.5 } 3.10写出下面程序的运行结果 #include voidmain() { inti,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d\n”,i,j,m,n); } 3.11写出下面赋值的结果 #include main() { inti=99; charc; unsignedintui; floatf; longintli; c=i;//c='c' ui=i;//ui=99 f=i;//f=99.0 li=i;//li=99 printf("c=%c\n",c); printf("ui=%u\n",ui); printf("f=%f\n",f); printf("li=%ld\n",li); } 3.12写出下面赋值表达式运算后a的值,设原来a=12: (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a #include main() { inta=12; printf("a+=a%d\n",a+=a);//a=a+a printf("a-=2%d\n",a-=2);//a=a-2 printf("a*=2+3%d\n",a*=2+3);//a=a*(2+3)=22*5 printf("a/=a+a%d\n",a/=a+a);//a=a/(a+a) intn=5; printf("a%=(n%=2)%d\n",a%=(n%=2));//a=a% printf("a+=a-=a*=a%d\n",a+=a-=a*=a); } /* 1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a */ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- C语言第4章 [例4.1]输出单个字符 #include voidmain() { chara,b,c; a=‘B’;b=‘O’;c=‘Y’; putchar(a);putchar(b);putchar(c);putchar(‘\n’); } [例4.2]输入单个字符 #include voidmain() { charc; c=getchar(); putchar(c); putchar(‘\n’); } [例4.3]无符号数据的输出 #include voidmain() { unsignedinta=65535; intb=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%o,%x.%u\n”,b,b,b,b); } [例4.5]字符串的输出 #include voidmain() { printf(“%3s,%7.2s,%.4s,%-5.3s\n”, ”CHINA”,”CHINA”,”CHINA”,”CHINA”); } [例4.6]输出实数时的有效位数 #include voidmain() { floatx,y; x=111111.111; y=222222.222; printf(“%f\n”,x+y); } [例4.7]输出双精度数时的有效位数 #include voidmain() { doublex,y; x=1111111111111.111111111; y=2222222222222.222222222; printf(“%f\n”,x+y); } [例4.9]用scanf函数输入数据 #include voidmain() { inta,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%d\n”,a,b,c); } [例4.10]输入三角形的三边长,求三角形面积 其中s=(a+b+c)/2 #include main() { floata,b,c,s,area; scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); } [例4.11]从键盘输入一个大写字母,要求改用小写字母输出 #include voidmain() { charc1,c2; c1=getchar(); printf(“%c,%d\n”,c1,c1); c2=c1+32; printf(“%c,%d\n”,c2,c2); } [例4.12]求ax2+bx+c=0方程的根。 a,b,c由键盘输入,设b2-4ac>0 #include main() { floata,b,c,disc,x1,x2,p,q; scanf(“a=%f,b=%f,c=%f”,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(“x1=%5.2f\nx2=%5.2f\n”,x1,x2); } 4.8输入圆半径,求圆周长、圆面积。 用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。 请编程序。 #include voidmain() { floatr; scanf("%f",&r); printf("圆的半径=%.2f\n",r); printf("圆的面积=%.2lf\n",3.14*r*r); printf("圆的周长=%.2lf\n",3.14*r*2); } 4.9输入一个华氏温度,要求输出摄氏温度。 公式为c=5/9*(F-32)。 输出要有文字说明,取2位小数。 #include voidmain() { floatF; scanf("%f",&F); doublec; c=5.0/9*(F-32); printf("华式温度=%f对应的摄氏温度%lf=\n",F,c); } ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- C语言第5章 [5.1]输入两个实数,按代数值由小到大的顺序输出这两个数 #include voidmain() { floata,b,t; scanf(“%f,%f”,&a,&b); if(a>b) { t=a;a=b;b=t; } printf(“%5.2f,%5.2f\n”,a,b); } [例5.2]输入3个数a、b、c,要求按由小到大的顺序输出 #include voidmain() { floata,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;} } [例5.3]编程,输入x值,输出y值,函数: -1(x<0) y=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 阅读 练习