📄 xt2.htm
字号:
程序的三种基本控制结构是什么?<BR>答:程序的三种基本控制结构是:顺序程序结构、分支程序结构、循环结构程序结构。</P>
<P class="xt12 style1">2.20
C++语言中的语句分哪几类?<BR>答:C++语言中的语句分为6类,即:说明语句、控制语句、函数调用语句、表达式语句、空语句、复合语句。</P>
<P class="xt12 style1">2.21
怎样区分表达式和语句?<BR>答:表达式与语句的区别是:表达式不需要用分号结尾,而语句必须以分号结尾。</P>
<P class="xt12 style1">2.22
程序的多路分支可通过哪二种语句来实现?说出用这两种语句实现多路分支的区别。<BR>答:程序的多路分支可用if语句与switch语句来实现。switch语句只能用于条件表达式的值为整型或字符型的场合,而if语句可用于条件表达式为任意类型值的场合。</P>
<P class="xt12 style1">2.23 使用switch
开关语句时应注意哪些问题?<BR>答:使用switch
开关语句应注意:<BR>(1)必须用break才能退出当前case语句;<BR>(2)表达式值与常量值只能是整型或字符型;<BR>(3)每个case后面的常量表达式的值必须互不相同;<BR>(4)case后可有多个语句,而不必用花括号。<BR>2.24
用于实现循环结构的循环语句有哪三种?
分别用于实现哪二种循环结构?这三种循环语句在使用上有何区别?<BR>答:实现循环结构的循环语句有while 、do
while、for三种语句。while、for语句分别用于实现当型循环结构。do
while用于实现直到型循环结构。while、for语句用于先判断循结束后执行循环体场合,而do
while用于先执行循环体后判断循环结束的场合。</P>
<P class="xt12 style1">2.25
分支程序与循环程序常用于解决哪些实际问题?<BR>答:能够用分支与循环结构程序解决的实际问题有:累加和、连乘积、求一批数的和及最大值与最小值、求数列的前n项、判素数、求两个整数的最大公约数和最小公倍数、用迭代法求平方根、用穷举法求不定方程组的整数解、打印图形等等。</P>
<P class="xt12 style1">2.26
continue语句与break语句均用于循环结构,在使用上有何区别?<BR>答:break语句只能用在循环语句和switch语句中,其功能是终止循环语句和switch语句的执行。continue语句只能用在循环语句中,其功能是结束本次循环,重新开始下一次循环。</P>
<P
class="xt12 style1">2.27程序的正常终止与异常终止有何区别,分别用什么函数来实现?使用这些函数时应包含什么头文件?<BR>答:程序的正常终止用exit()函数来完成,此时系统要做终止程序执行前的收尾工作,如关闭该程序打开的文件。释放变量所占用的存储空间(不包括动态分配的存储空间)等。<BR>程序的异常终止用abort
()函数来完成,系统不做结束程序前的收尾工作,直接终止程序的执行。<BR>使用这两个函数时应包含stdlib.h头文件。</P>
<P class="xt12 style1">2.28 写出下列程序的运行结果:<BR>#include
<iostream.h><BR>void main(void)<BR>{ int
a=2,b=-1,c=2;<BR> if (a<b)<BR> if (b<0) c=0;<BR> else
c=c+1;<BR> cout<<c<<endl;<BR>}<BR>解:运行结果:2</P>
<P class="xt12 style1">2.29写出下列程序的运行结果:<BR>#include
<iostream.h><BR>void main(void)<BR>{ int
i=10;<BR> switch (i)<BR> { case 9:i=i+1;<BR> case
10:i=i+1;<BR> case 11:i=i+1;<BR> default
:i=i+1;<BR> }<BR> cout<<i<<endl;<BR>}<BR>解:运行结果:13</P>
<P class="xt12 style1">2.30
设计一个程序,判断从键盘输入的整数的正负性和奇偶性。<BR>解:<BR># include
<iostream.h><BR>void main()<BR>{ int
i;<BR> cout<<"请输入一个整数:";<BR> cin>>i;<BR> if
(i>0) <BR> if (i % 2==0)<BR> cout<<i<<" is
positive even
number"<<endl;<BR> else<BR> cout<<i<<" is
positive odd number"<<endl;<BR> else if (i %
2==0)<BR> cout<<i<<" is negative even
number"<<endl;<BR> else<BR> cout<<i<<" is
negative odd number"<<endl;<BR>} </P>
<P class="xt12 style1">2.31
什么是枚举类型?如何定义枚举类型?枚举类型中元素的默认序号值是如何确定的?序号值是否一定要惟一?用枚举类型定义的枚举变量只能进行哪二种运算?枚举变量能否用cin输入元素值?能否用cout输出枚举变量的值?若能则输出的内容是什么?<BR>答:<BR>(1)枚举类型是某类数据可能取值的集合;<BR>(2)定义枚举类型<BR>enum
<枚举类型名> <BR>{ <枚举元素表>
};<BR>(3)默认序号从0开始依次加1;<BR>(4)序号值不要求惟一;<BR>(5)用枚举类型可定义枚举变量或枚举数组,枚举变量可进行赋值运算与比较运算。<BR>(6)枚举变量不能用cin输入枚举元素值或序号值,只能用赋值运算符将枚举元素值赋给枚举变量。<BR>(7)用cout可以输出枚举变量,但输出的是其序号而不是元素值。</P>
<P class="xt12 style1">2.32
定义一个描述学生成绩等级的枚举类型{A,B,C,D,E},成绩等级与分数段的对应关系为A:90~100 ,B:80~89
,C:70~79 ,D:60~69 ,E:0~59。
在主函数中定义全班学生成绩枚举类型数组,输入全班学生的分数,并转换成等级赋给枚举数组元素。最后输出全班学生的成绩等级。<BR>解:<BR>#
include <iostream.h><BR># define N 5<BR>enum
grade<BR>{A,B,C,D,E};<BR>void main(void)<BR>{ grade g[N];
<BR> int i,score;<BR> for(i=0;i<N;i++)<BR> {
cout<<"Input
score["<<i<<"]=";<BR> cin>>score;<BR> if
(score>100 || score<0 )<BR> { cout<<"enter score
error!"<<endl;<BR> i--;<BR> }<BR> else<BR> switch
(score/10)<BR> { case 9:;<BR> case 10:
g[i]=A;break;<BR> case 8: g[i]=B;break;<BR> case 7:
g[i]=C;break;<BR> case 6: g[i]=D;break;
<BR> default:g[i]=E;<BR> }<BR> }<BR> cout<<"Student
score:"<<endl;<BR> for(i=0;i<N;i++)<BR> { switch
(g[i])<BR> { case A : cout <<"G["<<i<<"]=A"
; break;<BR> case B : cout
<<"G["<<i<<"]=B" ; break;<BR> case C :
cout <<"G["<<i<<"]=C" ; break;<BR> case D
: cout <<"G["<<i<<"]=D" ; break;<BR> case
E : cout <<"G["<<i<<"]=E" ;
break;<BR> }<BR> cout<<'\n';<BR> }<BR>}</P>
<P class="xt12 style1">2.33
从A、B、C、D四个字母中任取3个不同的字母,共有多少种取法?编写程序,输出所有取法中字母排列。<BR>解:<BR>#
include <iostream.h><BR>enum
letter<BR>{A,B,C,D};<BR>void show(letter c)<BR>{
switch(c)<BR> { case A : cout<<"A";break; <BR> case B :
cout<<"B";break;<BR> case C :
cout<<"C";break;<BR> case D :
cout<<"D";break;<BR> }<BR> cout<<'\t';<BR>}<BR>void
main(void)<BR>{ letter c1,c2,c3;<BR> for(c1=A
;c1<=D;c1=letter(int (c1) +1))<BR> for(c2=A
;c2<=D;c2=letter(int (c2) +1))<BR> for(c3=A
;c3<=D;c3=letter(int (c3) +1))<BR> { if (c1!=c2 &&
c1!=c3 && c2!=c3)<BR> {
show(c1);<BR> show(c2);<BR> show(c3);<BR> cout<<'\n';<BR> }<BR> }<BR>}</P>
<P class="xt12 style1">2.34
定义学生档案结构体,描述一个学生的档案信息有:学号、姓名、性别、年龄、家庭地址、邮政编码、电话号码。<BR>解:<BR>struct
student<BR>{ int no ;<BR> char name[8];<BR> char sex;<BR> int
age;<BR> char addr[20];<BR> int post;<BR> char
photo[15];<BR>};</P>
<P
class="xt12 style1">2.35定义学生成绩结构体,描述学生成绩信息有:学号、英语、数学、物理、总分、名次。<BR>解:<BR>struct
grade<BR>{ int no ;<BR> float eng,math,phy;<BR> float
total;<BR> int order;<BR>};</P>
<P
class="xt12 style1">2.36用习题8.4中的学生档案结构体定义一个学生的档案结构变量。用初始化方式输入学生档案内容,并输出学生档案。<BR>解:<BR>#
include <iostream.h><BR>struct student<BR>{ int no
;<BR> char name[8];<BR> char sex;<BR> int age;<BR> char
addr[20];<BR> int post;<BR> char photo[15];<BR>};<BR>void
main(void)<BR>{ student
s={101,"Zhou",'M',23,"wuxi",214073,"0510-5414727"};<BR> cout<<"学号:"<<s.no<<'\n';<BR> cout<<"姓名:"<<s.name<<'\n';<BR> cout<<"性别:"<<s.sex<<'\n';<BR> cout<<"年龄:"<<s.age<<'\n';<BR> cout<<"地址:"<<s.addr<<'\n';<BR> cout<<"邮编:"<<s.post<<'\n';<BR> cout<<"电话:"<<s.photo<<'\n';<BR>}</P>
<P class="xt12 style1">2.37
用习题8.5中的学生成绩结构体定义班级成绩结构体数组。编写四个函数分别用于:
(1)输入全班学生的学号、英语、数学、物理成绩。<BR>(2)计算每一个学生的总分。<BR>(3)按总分降序排序,并给每个学生填入名次。<BR>(4)输出全班学生的学号、三门课成绩、总分、名次。<BR>在主函数中定义学生成绩数组,调用四个函数完成输入、计算总分、排名、输出工作。<BR>解:<BR>#
include <iostream.h><BR># include <iomanip.h><BR>#
define N 5<BR>struct grade<BR>{ int no ;<BR> float
eng,math,phy;<BR> float total;<BR> int order;<BR>};<BR>void
input(grade s[],int n)<BR>{ int i;<BR> cout<<"Input
Score:"<<endl;<BR> for(i=0;i<n;i++)<BR> cin>>s[i].no>>s[i].eng>>s[i].math>>s[i].phy;<BR>}<BR>void
sum(grade s[],int n)<BR>{ int
i;<BR> for(i=0;i<n;i++)<BR> s[i].total=s[i].eng+s[i].math+s[i].phy;<BR>}<BR>void
sort(grade s[],int n)<BR>{ int i,j,k;<BR> grade
temp;<BR> for(i=0;i<n-1;i++)<BR> { k=i;<BR> for
(j=i+1;j<n;j++)<BR> if (s[k].total<s[j].total)
k=j;<BR> if (k!=i)<BR> {
temp=s[i];s[i]=s[k];s[k]=temp;}<BR> }<BR> for(i=0;i<n;i++)<BR> s[i].order=i+1;<BR>}<BR>void
output(grade s[],int n)<BR>{ int
i;<BR> cout<<setw(6)<<"No"<<setw(6)<<"Eng"<<setw(6)<<"Math"<<setw(6)<<"Phy"<BR> <<setw(6)<<"Total"<<setw(6)<<"Order"<<'\n';
<BR> for(i=0;i<n;i++)<BR> cout<<setw(6)<<s[i].no<<setw(6)<<s[i].eng<<setw(6)<<s[i].math<<<BR> setw(6)<<s[i].phy<<setw(6)<<s[i].total<<setw(6)<<s[i].order<<'\n';<BR>}<BR>void
main(void)<BR>{ grade
stu[N];<BR> input(stu,N);<BR> sum(stu,N);<BR> sort(stu,N);<BR> output(stu,N);<BR>}</P>
<P class="xt12 style1">2.38
定义描述复数类型的结构体变量,编写减法函数Sub()与乘法函数Mul()分别完成复数的减法与乘法运算。在主函数中定义四个复数类型变量c1、c2、c3、c4,输入c1、c2的复数值,调用Sub()完成c3=c1-c2
操作,调用Mul( )完成 c4=c1*c2操作。 最后输出c3、c4复数值。<BR>解:<BR># include
<iostream.h><BR># include <iomanip.h><BR>struct
complex<BR>{ float r;<BR> float i;<BR>};<BR>complex
Sub(complex c1,complex c2)<BR>{ complex
c;<BR> c.r=c1.r-c2.r;<BR> c.i=c1.i-c2.i;<BR> return
c;<BR>}<BR>complex Mul(complex c1,complex c2)<BR>{ complex
c;<BR> c.r=c1.r*c2.r-c1.i*c2.i;<BR> c.i=c1.r*c2.i+c1.i*c2.r;<BR> return
c;<BR>}<BR>void main(void)<BR>{ complex
c1,c2,c3,c4;<BR> cout<<"c1=";<BR> cin>>c1.r>>c1.i;<BR> cout<<"c2=";<BR> cin>>c2.r>>c2.i;<BR> c3=Sub(c1,c2);<BR> c4=Mul(c1,c2);<BR> cout<<"c3="<<c3.r<<"+("<<c3.i<<")i"<<'\n';<BR> cout<<"c4="<<c4.r<<"+("<<c4.i<<")i"<<'\n';<BR>}</P>
<P><SPAN class="xt12 style1">2.39
定义描述矩形的结构体类型,该结构体类型的数据成员为矩形的左上角坐标(x1,y1)与右下角(x2,y2)。编写函数Area()计算出矩形的面积。在主函数中定义矩形结构体变量,输入矩形的左上角坐标与右下角坐标,调用Area()计算出矩形面积,并输出矩形面积。<BR>解:<BR>#
include <iostream.h><BR># include
<math.h><BR>struct Rectangle<BR>{ float x1,y1;<BR> float
x2,y2;<BR>};<BR>float Area(Rectangle a)<BR>{ float
area;<BR> area=abs((a.x1-a.x2)*(a.y1-a.y2));<BR> return
area;<BR>}<BR>void main(void)<BR>{ Rectangle
Rect;<BR> cout<<"Ipunt
Rect(x1,y1):";<BR> cin>>Rect.x1>>Rect.y1;<BR> cout<<"Ipunt
Rect(x2,y2):";<BR> cin>>Rect.x2>>Rect.y2;<BR> cout<<"Area="<<Area(Rect)<<endl;<BR>}<BR></SPAN></P></TD></TR></TBODY></TABLE><!-- InstanceEndEditable --></TD></TR></TBODY></TABLE></TD></TR>
<TR vAlign=center bgColor=#eeeeee>
<TD colSpan=3 height=28>
<DIV align=center><A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.nuist.edu.cn')"
href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt2.htm#"><SPAN
class=mb14>设为首页</SPAN></A><STRONG>|</STRONG><A class=mb14
href="javascript:addme()">加入收藏</A><STRONG>|</STRONG><A
href="http://www.nuist.edu.cn/"><SPAN
class=mb14>学校首页</SPAN></A><STRONG>|</STRONG><A
href="http://www.nuist.edu.cn/jsj"><SPAN
class=mb14>计科系首页</SPAN></A></DIV></TD></TR>
<TR>
<TD class=mb14 vAlign=top bgColor=#176bab colSpan=2 height=88>
<DIV align=center><BR><FONT color=#ffffff>Copyright© 2004-2005 Depart of
Computer Science & Technology Nuist</FONT></DIV></TD>
<TD width=15 bgColor=#176bab> </TD></TR>
<TR>
<TD height=1></TD>
<TD width=581></TD>
<TD></TD></TR></TBODY></TABLE><MAP name=Map><AREA shape=RECT coords=9,9,75,25
href="http://www.nuist.edu.cn/JSJ/syjx/index.htm"><AREA shape=RECT
coords=86,9,150,26 href="http://www.nuist.edu.cn/JSJ/syjx/jxdg.htm"><AREA
shape=RECT coords=157,9,220,27
href="http://www.nuist.edu.cn/JSJ/syjx/skja.htm"><AREA shape=RECT
coords=230,9,310,26 href="http://www.nuist.edu.cn/JSJ/syjx/dmt.htm"><AREA
onclick="MM_goToURL('parent','../xt.htm');return document.MM_returnValue"
shape=RECT coords=320,10,397,26
href="http://www.nuist.edu.cn/JSJ/syjx/xt.htm"><AREA
onclick="MM_showHideLayers('Layer1','','hide','Layer2','','show')" shape=RECT
coords=405,10,469,25 href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt2.htm#"><AREA
onclick="MM_showHideLayers('Layer1','','show','Layer2','','hide')" shape=RECT
coords=476,10,538,26 href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt2.htm#"><AREA
shape=RECT coords=549,10,612,26
href="http://www.nuist.edu.cn/JSJ/syjx/ckwx.htm"><AREA shape=RECT
coords=620,9,684,26
href="http://www.nuist.edu.cn/JSJ/syjx/zlxz.htm"></MAP></CENTER><!-- InstanceEnd --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -