C语言2顺序结构例题总结及练习.docx
《C语言2顺序结构例题总结及练习.docx》由会员分享,可在线阅读,更多相关《C语言2顺序结构例题总结及练习.docx(19页珍藏版)》请在冰点文库上搜索。
![C语言2顺序结构例题总结及练习.docx](https://file1.bingdoc.com/fileroot1/2023-8/4/21c335cc-c250-4ba1-8703-5bece0171e20/21c335cc-c250-4ba1-8703-5bece0171e201.gif)
C语言2顺序结构例题总结及练习
C语言—2.顺序结构
序号:
学习内容与目标:
顺序结构
■数据类型
■标识符、常量与变量
■数据输入/输出处理
■运算符与表达式
■顺序结构程序设计
第2章顺序结构流程及应用——知识小结
知识点
知识细节或者格式
示例
字符、标识符关键字
基本字符:
英文字符、数字、其它可显示字符
0-9,a-z,A-Z,+-/*%&
特殊符号:
空格、回车换行、制表符
标识符:
标识变量、常量、函数的符号
Sum,total,i
关键字:
系统留用的标识符
If,for,while,do,int,long
常用
数据类型
整型:
int,short,long,unsigned
inta,b,c
实型:
float,double
floatf1,f2
字符型:
char
charc1,c2
常量
变量
常量:
程序运行过程中始终不变的量,直接常量可以直接使用,符号常量必须先定义后使用
直接常量:
1,200,3500,0x12,835.6,77.2,0.618,‘a’,‘A’,‘$’,“Hello”,“Welcome”
符号常量:
#definePI3.14159
变量:
程序运行过程中可变的量,变量必须先定义,后使用
inta,b,c
a=1;
运算符
与
表达式
算术运算符:
+,-,*,/,%
关系运算符:
>,<,>=,<=,==,!
=
逻辑运算符:
&&,||,!
赋值运算符:
=,+=,-=,*=,/=
自增/减运算符:
++,--
a+1,i%2
x>=0,y%100!
=0
x>=0&&x<=100
sum+=i
i++
表达式:
用运算符将变量、常量、函数、表达式连接起来所构成的式子
注意:
1)运算的操作数:
单还是双
2)运算的优先级别与结合性:
先算什么,后算什么
3)运算结果的取值范围:
整数、实数、0和1
程序结构
顺序结构:
无条件按语句排列的先后顺序执行的程序结构;
选择结构:
有条件地选择需要执行的语句;
循环结构:
根据一定条件重复执行指定语句
顺序结构的特点:
1)一条直路;
2)无岔路;
3)无环路;
4)关注动作的先后次序
例题
Ex201
用编程的形式打印学生入学的姓名,性别,年龄,学号和入学成绩
/***************************************************
问题2.2(第25页):
学生入学数据保存
知识点说明:
1)printf函数:
用于屏幕输出信息;
2)字符串:
用双引号作定界符的一串字符;
3)\n:
转义字符(参考第24页表2-3),换行符;
4)格式化输出:
(格式控制,输出项列表)
-%d输出项以十进制整数格式输出;
-要点:
格式项要与输出项一一对应
****************************************************/
#include"stdio.h"
voidmain()
{
intiAge=20,iNum=201;/*变量定义及初始化*/
charchSex='m';/*f:
female(女);m:
male(男)*/
floatfScore,fMoney;
fScore=580.5;/*变量赋值*/
printf("Tony'spersonalinformation\n");/*屏幕输出:
Tony'spersonalinformation,然后换行*/
printf("Name:
Tony\n");
printf("ID:
%d\n",iNum);/*屏幕格式化输出:
ID:
201*/
printf("Age:
%d\nSex:
%c\nScore:
%f\n",iAge,chSex,fScore);/*屏幕格式化输出,年龄的信息*/
getch();
}
Ex202
转义字符输出演示
/***************************************************
问题2.3(第26页):
转义字符输出
知识点说明:
1)转义字符:
第24页表2-3列出各种转义字符的说明;
2)\t:
后续输出的内容从下一个制表位开始;
3)\n:
后续输出的内容从下一行开始(换行)
****************************************************/
#include"stdio.h"
voidmain()
{
charch1,ch2,ch3;
ch1='n';/*字符变量赋
值,单字符数据用单引号作定界符*/
ch2='e';
ch3='\167';/*八进制数167代表的字符w*/
printf("%c%c%c\n",ch1,ch2,ch3);/*以字符格式输出*/
printf("%c\t%c\t%c\n",ch1,ch2,ch3);/*应用转义字符\t*/
printf("%c\n%c\n%c\n",ch1,ch2,ch3);/*应用转义字符\n*/
getch();
}
Ex203
计算tom上半年与下半年奖学金之和
/***************************************************
问题2.4(第27页):
格式化输入
知识点说明:
1)scanf()函数:
用于接收键盘输入数据,(格式控制,输入项地址列表)
-格式控制,控制输入项的格式;
-输入项地址列表,指定输入的内容存放到何处;
-输入数据时,数据项之间,通过按空格键或回车键来分隔
2)&:
地址运算符
****************************************************/
#include"stdio.h"
voidmain()
{
intiPrize1,iPrize2,iSum;
printf("Pleaseinputtwoprizes:
");
scanf("%d%d",&iPrize1,&iPrize2);/*格式输入两项数据*/
iSum=iPrize1+iPrize2;
printf("Tom'sprizeis%d",iSum);
getch();
}
Ex204
/***************************************************
问题2.5(第28页):
单字符输入输出
知识点说明:
1)getchar()函数:
用于接收键盘输入的一个字符;
2)putchar(ch)函数:
用于显示输出一个字符;
****************************************************/
#include"stdio.h"
voidmain()
{
charch;
printf("从键盘输入一个小写字母");
ch=getchar();/*从键盘接收一个小写字母*/
ch=ch-32;/*小写字母转换为大写字母*/
putchar(ch);/*输出大写字母*/
getch();
}
Ex205
输入一个数,求该数个位,十位,百位上的数之和
/***************************************************
问题2.6(第31页):
3位数,数位求和
知识点说明:
1)%求模(求余)运算,两整数相除,求余数
2)/除法运算,整数相除,结果为整数,实数相除,结果为double型数
举例:
123
1)123%10123除以10的余数为3(个位);
2)123/10123除以10商为12;
3)123/10%1012除以10的余数为2(十位);
4)123/100123除以100商为1(百位)
****************************************************/
#include"stdio.h"
voidmain()
{intiNum;
inti1,i2,i3,iSum;
printf("pleaseinputainteger(100-999):
");
scanf("%d",&iNum);
i1=iNum%10;/*求个位数*/
i2=iNum/10%10;/*求十位数*/
i3=iNum/100;/*求百位数*/
iSum=i1+i2+i3;
printf("Thesumis:
%d",iSum);
getch();
}
Ex206
/***************************************************
问题2.7(第32页):
计算球体体积
知识点说明:
1)define符号常量定义
2)float浮点型,用于存实数数据
****************************************************/
#include"stdio.h"
#definePAI3.1415926/*定义符号常量PAI*/
voidmain()
{
floatfRadius,fVolume;/*定义浮点变量*/
printf("pleaseinputtheball'sradius:
");
scanf("%f",&fRadius);/*输入一个浮点格式的数*/
fVolume=(float)4/3*PAI*fRadius*fRadius*fRadius;/*将整数4强制转换为浮点型数4.0*/
printf("Theball'svolume:
%f",fVolume);
getch();
}
Ex207
自增自减运算符的运用
/***************************************************
问题2.8(第33页):
自增自减运算
知识点说明:
1)iY=iX++*4:
相当于iY=iX*4;iX=iX+1;
2)iY=++iX*4;相当于iX=iX+1;iY=iX*4;
3)自增自减运算
****************************************************/
#include"stdio.h"
voidmain()
{intiX,iY;
iX=2;
iY=iX++*4;/*先做*运算,后做=运算,再做++运算*/
printf("iX=%d,iY=%d\n",iX,iY);
iX=2;
iY=iX--*4;
printf("iX=%d,iY=%d\n",iX,iY);
iX=2;
iY=++iX*4;/*先做++运算,后做*运算,再做=运算*/
printf("iX=%d,iY=%d\n",iX,iY);
iX=2;
iY=--iX*4;
printf("iX=%d,iY=%d\n",iX,iY);
getch();
}
Ex208
函数法F(X)=3*x^3+2*x^2+x+1
/***************************************************
问题2.9(第34页):
求函数值
知识点说明:
1)数学多项式的表达:
用算术表达式
2)运算符的结合性:
同优先级的运算符,必须按结合性顺序运算
例:
表达式3*iX*iX*iX+2*iX*iX+iX+1按运算优先级和结合性可以写成:
(((((3*iX)*iX)*iX)+((2*iX)*iX))+iX)+1
****************************************************/
#include"stdio.h"
voidmain()
{intiX,iY;
printf("请输入自变量值:
");
scanf("%d",&iX);
iY=3*iX*iX*iX+2*iX*iX+iX+1;/*用算术表达式表示函数中的多项式*/
printf("函数值是:
%d",iY);
getch();
}
Ex209
赋值运算符和赋值表达式用法演示
/***************************************************
问题2.10(第36页):
赋值运算符和赋值表达式
知识点说明:
1)要注意赋值运算符的结合性:
从右到左结合;
例:
1)iY=iX=2*iA+6;按运算优先级和结合性可以写成:
iY=(iX=(2*iA+6));
2)iC=iB=iA=4;可以写成:
iC=(iB=(iA=4));
注:
()也是运算符,而且其优先级最高,所以运算时要
“先算括号内的,再算括号外的”
****************************************************/
#include"stdio.h"
voidmain()
{intiA,iB,iC,iX,iY;
iA=2;
iY=iX=2*iA+6;
printf("\niA=%d",iA);/*输出赋值表达式iA的值*/
printf("\niX=2*iA+6is%d",iX=2*iA+6);/*输出赋值表达式iX=2*iA+6的值*/
printf("\niY=%d",iY);/*输出变量iY的值*/
iC=iB=iA=4;/*表达式iB=iA=4赋给iC*/
printf("\niB=iA=4is%d",iB=iA=4);/*输出表达式iB=iA=4的值*/
printf("\niA=%d,iB=%d,iC=%d",iA,iB,iC);/*输出变量iA,iB,iC的值*/
getch();
}
Ex210
逗号运算符和逗号表达式用法演示
/***************************************************
问题2.11(第36页):
逗号运算符和逗号表达式
知识点说明:
1)格式:
表达式,表达式,......,表达式
2)运算优先级:
最低
3)运算结合性:
从左到右
****************************************************/
#include"stdio.h"
voidmain()
{intiA=2,iB=3;
intiX,iY;
floatfC;
iX=(iA*2+1,iY=iB+2,iA*iY);/*iX取得的值为表达式iA*iY的值*/
fC=(iA+5,2.0*iX);/*fC取得的值为表达式2.0*iX的值*/
printf("iX=%d,iY=%d\n",iX,iY);
printf("fC=%f\n",fC);
getch();
}
Ex211
/***************************************************
问题2.12(第39页):
温度转换,将华氏温度转换为摄氏温度
知识点说明:
1)变量定义;
2)格式输入scanf函数;
3)算术表达式与赋值语句;
4)摄氏温度=5/9(华氏温度-32)
****************************************************/
#include"stdio.h"
voidmain()
{floatfF,fC;
printf("PleaseinputthedegreesFahrengeit:
");
scanf("%f",&fF);
fC=5.0/9*(fF-32);
printf("ThedegreesCelsiusis%f\n",fC);
getch();
}
Ex212
/***************************************************
问题2.13(第39页):
变量交换,交换两个变量的值。
知识点说明:
1)变量定义;
2)格式输出printf函数;
3)赋值语句
****************************************************/
#include"stdio.h"
voidmain()
{intiX,iY;
intiTemp;
iX=1,iY=2;/*2个变量分别赋值*/
printf("iX=%d,iY=%d\n",iX,iY);/*显示2个变量的值*/
iTemp=iX;/*以下3句进行变量值得交换*/
iX=iY;
iY=iTemp;
printf("iX=%d,iY=%d\n",iX,iY);
getch();
}
Ex213
/***********************************
Function:
自增、自减、复合赋值运算的应用
1)a++
2)a--
3)a+=2
************************************/
#include"stdio.h"
#include"conio.h"
#include"math.h"
main()
{
inta=5;
intb,c,d;
floatx1,x2;
printf("before,ais:
%d\n",a);
a++;
/*a--;
a+=2;*/
printf("after,ais:
%d",a);
getch();
}
学习过程
任务1(P201.c):
已知圆的半径为5,求该圆的周长和面积。
任务2(P202.c):
输入两个数,求它们的和、差、积、商以及余数。
任务3(P203.c):
从键盘上输入一个4位数,求该数个位、十位、百位、千位上的数的和。
任务4(P204.c):
输入三个实数a,b,c(满足a≠0且b2-4ac≥0),解一元二次方程ax2+bx+c=0。
注:
1)求根公式:
2)平方根函数sqrt(),头文件math.h
任务5(P205.c):
从键盘上输入一个小写字母,将其本身及相对应的大写字母输出。
有2种方法将小写字母转换为大写字母:
1)用toupper(c)函数,加头文件string.h;
2)或者,利用字母的ASCII编码大小关系,例如:
大写A的编码是65,小写a是97。
任务6(P206.c):
发工资现金2187元,用100元、50元、20元、10元、5元和1元的票子,问各多少张?
答案:
P201
#include"stdio.h"
intmain()
{
intiNum,r=5,c,s;
printf("r=%d\nc=%f\ns=%f",5,2*3.14*r,3.14*r*r);
getch();
}
P202
#include"stdio.h"
voidmain()
{
inta,b,A,B,C,D;
printf("Pleaseinputab:
");
scanf("%d%d",&a,&b);
A=a+b;
B=a-b;
C=a*b;
D=a%b;
printf("a+b=%d\t,\na-b=%d\t,\na*b=%d\t,\na8Yb=%d\t",A,B,C,D);/*为使模运算‘%‘不被%d干扰,改为8Y;*/
getch();
}
P203
#include"stdio.h"
voidmain()
{
intiNum;
inti1,i2,i3,i4,iSum;
printf("pleaseinputainteger(1000-9999):
");
scanf("%d",&iNum);
i1=iNum%10;
i2=iNum/10%10;
i3=iNum/100%10;
i4=iNum/1000;
iSum=i1+i2+i3+i4;
printf("thesumis:
%d",iSum);
getch();
}
P203
#include"stdio.h"
#include"math.h"
voidmain()
{inta,b,c;
floatx1,x2;
printf("pleaseenter3nombers");
scanf("%d%d%d",&a,&b,&c);
x1=(-b+sqrt(b^2-4*a*c))/(2*a);
x2=(-b-sqrt(b^2-4*a*c))/(2*a);
printf("%f%f",x1,x2);
getch();
}
P204
#include"stdio.h"
#include"math.h"
voidmain()
{inta,b,c;
floatx1,x2;
printf("pleaseenter3nombers");
scanf("%d%d%d",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("%f%f",x1,x2);
getch();
}
P205
#include"stdio.h"
voidmain()
{chars;
printf("pleaseenteranecharacteramonys-z:
");
s=getchar();
s=s-32;
printf("%c",s);
getchar();
getch();
}
P206
1:
#include"stdio.h"
#include"conio.h"
main()
{inta,b,c,d,e,f;
a=2187/100;
b=2187%100/50;
c=2187%100%50/20;
d=2187%100%50%20/10;
e=2187%100%50%20%10/5;
f=2187%100%50%20%10%5/1;
printf("%d\t%d\t%d\t%d\t%d\t%d",a,b,c,d,e,f);
getch();
}
2
#include"stdio.h"
#include"conio.h"
voidmain()
{inta,b,c,d,e,f,k1,k2,k3,k4,k5;