C语言程序的设计教程第三章练习题题目
- 格式:doc
- 大小:63.50 KB
- 文档页数:20
第3章习题解答一、选择题1.以下叙述中错误的是。
A)C语言是一种结构化程序设计语言B)结构化程序由顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单回题D)结构化程序设计提倡模块化的设计方法解析:结构化程序由顺序结构、循环结构和选择结构三种基本结构组成,并且由三种基本结构组成的算法结构可以解决任何复杂问题。
答案:C2.在下列选项中,不正确的赋值语句是。
A)++t; B)nl = (n2 = (n3 = 0)); C)k = i = j; D)a = b + c = 1;解析:选项A中“++t;”相当于“t = t +1;”,是正确的;选项B相当于“nl = n2 = n3 = 0;”,也是合法的;在选项C中,“k = i == j;”相当于“k = (i == 1)”,也就是将括号内关系表达式的值赋给k,是正确的;选项D相当于“b+c=1;a=b+c;”,第一个语句中赋值号的左边出现了表达式,是错误的。
答案:D3.有以下程序:/* 文件路径名:ex3_1_3\main.c */#include <stdio.h> /* 包含库函数printf()所需要的信息*/int main(void) /* 主函数main() */{int a = 0, b = 0; /* 定义变量*/a = 10; /* 给a赋值*/b = 20; /* 给b赋值*/printf("a+b=%d\n", a + b); /* 输出计算结果*/return 0; /* 返回值0, 返回操作系统*/}程序运行后的输出结果是。
A)a+b=10 B)a+b=30 C)30 D)出错解析:“printf("a+b=%d\n", a + b);”用于输出a+b的值,输出形式为a+b=30。
答案:B4.以下叙述中正确的是。
A)调用printf()函数时,必须要有输出项B)调用putchar()函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码解析:对于选项A,调用printf()函数时,不一定总有输出项,所以A错误;对于选项C,C语言中,整数可以以十进制、八进制和十六进制表示,而不存在十二进制的表示形式,所以B错误;对于选项D,getchar()读入字符时,从键盘输入的均被认为是字符形式存入到变量中,而不能输入该字符对应的ASCII码。
第三章课后练习题一、单项选择题1.根据C语言的语法规则,不能做变量名的是:A)doB)NameC)R5D)_exam2.下列四组选项中,全是C语言关键字的选项是:感觉没有答案A)define IF typeB)getc char printf :printf是函数名C)include case scanf :同上D)while go pow :同上3.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符:A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符4.在C语言中,合法的字符常量是:A) 3B)‘S’C)'ab'D)"A"5.若已定义x和y为double类型,则表达式:x=1,y=x+3/2中y的值是:A) 1B) 2C) 3D) 2.56.C语言提供的不合法的数据类型关键字是:A)doubleB)shortC)integerD)char7.合法的C语言中,合法的字符串是:A)'\t'B)"A"C)‘a’D)‘a\t’8.执行语句int a=5; a++;后,a的值是:A)7B) 6C) 5D) 4A)9.以下选项中属于C语言的数据类型是:A)复合型B)双精度型C)数学型D)集合型10.Vc6.0下各种基本数据类型的存贮空间正确的长度排列是:A)int< Char<=float<doubleB)Double<float <=int<charC)Char<int<=float<doubleD)Float<=int <char<double11.下面的变量说明中正确的是:A)char:a, b, c;B)char a; b; c;C)char a, b, c;D)char a, b, c12.sizeof(double) 语句执行结果的数据类型是A)一种函数调用B)一个双精度型表达式C)一个整型表达式D)一个不合法的表达式13.以下程序的输出结果是:int a=1,b=4,c=2;float x=10.5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x; pritnf("%f\n",z);A.14.000000B.15.400000C.13.700000D.14.90000014.下面四个选项中,均是不合法的整型常量的选项是:A)--0f1 -0xffff 0011B)-0Xcdf 017 12,456C)-018 999 5e2D)-0x48eg -068 03f15.下面四个选项中,均是不合法的浮点数的选项是:A)160.0.12 e3B)123 2e4.2 .e5C)-.18 123e4 0.0D)-e3 .234 1e316.下面四个选项中,均是不合法的转义字符的选项是:A)‘\‛’‘\\’‘\xf’B)‘\1011’‘\’‘\a’C)‘\011’‘\f’‘\}’D)‘\abc’‘\101’‘xlf’17.若有说明语句:char c=‘\72’;则变量c:A)包含1个字节B)包含2个字节C)包含3个字节D)说明不合法,c的值不确定18.表达式18/4*sqrt(4.0)/8值的数据类型为:A)int B)float C)double D)不确定19.设有如下的变量定义:int i=8, k, a, b; unsigned long w=5; double x=1.42, y=5.2;则以下符合C语言语法的表达式是:没有答案????A)k=k/0;:除数不为0B)x%(-3);:浮点数不能参加%运算C)a*3=2;:左边不能为表达式D)y=float(i);:(float)i20.假定有以下变量定义,int k=7,x=12;则能使值为3的表达式是:A)x%=(k-5)B)x= x% (k-k%5)C)x= x-k-k%5D)(x/k)-(k%5)21.设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是:A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值22.以下程序int a=12,b=12; printf("%d,%d\n",--a,++b);的输出结果是:A)10 10B)12 12C)11 10D)11 1323.以下程序int a=5;float x=3.1; a=x*(‘E’- ‘A’);printf(‚%f\n‛,(float)a);输出结果是A)12.000000B)12.800000C)13.000000D)1224.下面不正确的赋值语句是:A)a=a+1B)a= =bC)a+=bD)a=125.已知字母A的ASC II码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为:A)DB)68C)不确定的值D) C26.下列关于单目运算符++、--的叙述中正确的是A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量27.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是: A)int a=b=c=5; B)int a,b,c=5;C)a=5,b=5,c=5; D)a=b=c=5;28.已知ch是字符型变量,下面不正确的赋值语句是:A)ch=‘a+b’;B)ch=‘\0’; C)ch=‘7’+‘9’; D)ch=5+9;29.已知ch是字符型变量,下面正确的赋值语句是:A)ch=‘123’; B)ch=‘\xff’; C)ch=‘\08’;D)ch=‚\‛;30.若有以下定义,则正确的赋值语句是:int a,b; float x;A)a=1,b=2, B)b++; C)a=b=5 D)b=int(x); 31.设x、y均为float型变量,则以下不合法的赋值语句是:A)++x; B)y=(x%2)/10;C)x*=y+8; D)x=y=0;32.设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y 和z的值是:A)x=10 B)x=10 C)x=10 D)x=10y=15 y=10 y=10 y=5z=10 z=10 z=15 z=10二、判断题×1.在 C 程序中, APH 和 aph 代表不同的变量。
习题三参考答案(1)从键盘输入一个年份值,判断是否闰年。
设iYear为某一年份,iYear为闰年的条件为:iYear可以被4整除且不可以被100整除,或者iYear可以被400整除。
#include "Stdio.h"#include "Conio.h"int main(void){int iYear;printf("please input the year:");scanf("%d",&iYear);if(iYear%400==0||(iYear%4==0&&iYear%100!=0))printf("%d is leap",iYear);elseprintf("%d is not leap",iYear);getch();return 0;}(2)从键盘输入三个整数,按由小到大的顺序输出。
#include "stdio.h"main(){int i,j,k,max;scanf("%d%d%d",&i,&j,&k);max=i>j?i:j;max=max>k?max:k;printf("max=%d",max);getch();}(3)假设星期一至星期五每工作一小时的工资是20元,星期六和星期日每工作一小时的工资是平时的3倍,其中工资的4.5%是税金。
试编一程序从键盘输入星期序号(1,2,3,4,5,6,7,分别表示星期一至星期天)和工作小时数,计算该日的工资及应交税金。
#include "Stdio.h"#include "Conio.h"int main(void){int iWeek,iHours ;float fSalary,fTaxes;printf("please input the week number(1-7):");scanf("%d",&iWeek);printf("please input the work hours(1-12):");scanf("%d",&iHours);switch(iWeek){case 1:case 2:case 3:case 4:case 5:fSalary=20*iHours;fTaxes=fSalary*0.045;break;case 6:case 7:fSalary=3*20*iHours;fTaxes=fSalary*0.045;break;}printf("the salary is %f ,the taxes is %f",fSalary,fTaxes);getch();return 0;}(4)从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积并输出;如不能,输出不能构成三角形的信息。
《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
C语言程序设计-第3章-习题习题1、选择题(1)以下选项中属于C语言的数据类型的是()。
A. 复数型B. 逻辑型C. 双精度型D.集合型(2)在C语言中,不正确的int型的常数是()A. 32768B. 0C. 037D.0XAF(3)以下所列的C语言常量中,错误的是()A. 0xFFB. 1.2e0.5C. 21D. '\72'(4)C语言中的基本类型包括()A. 整型、实型、逻辑型B. 整型、实型、逻辑型、字符型C. 整型、逻辑型、字符型D. 整型、实型、字符型(5)以下所列的C语言常量中,错误的是()A. 'abc'B. "12`12"C. "0"D. ""(6)以下有关C语言标识符的描述中,正确的是()A. 标识符可以由汉字组成B. 标识符只能以字母开头C.关键字可以作为用户标识符D. Area与area是不同的标识符(7)以下不正确的转义字符是()A. '\\'B. '0101'C. '\n'D. '\xlf''(8)C语言中,下列常量不正确的为()A.543210LB.05078C.-0x41D.12345(9)下面程序片段的输出结果是()int i=65536;printf("%d\n,i");A.65535B.0C.有语法错误,无输出结果D.-1(10)在符号常量定义"# define MAX 1000"中,符号常量MAX 代表的是()A.实型数B.整型数C.常量D.字符串(11)以下程序的输出结果是()# define SQR(X) X*Xmain(){int a=10,k=2,m=1;a=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A.1B.7C.8D.9(12)运行以下程序时,从键盘输入24,16,80?,则输出结果是()main( ){int a1,a2,a3;scanf("%d,%d,%d",&a1,&a2,&a3) ;printf("a1+a2+a3=%d\n", a1+a2+a3) ;}A.a1+a2+a3=120B. a1+a2+a3=24C. a1+a2+a3=80D.不确定(13)若有以下定义和语句,则输出结果是()char c1='b',c2='e';printf("%d,%c",c2-c1,c2-'a'+'A') ;A.2,MB. 3,EC. 2,ED.输出项对应的格式控制一致,输出结果不确定(14)为使下列程序段输出“123,456,78”,要由键盘输入数据,正确的输入是()int i,j,k;scanf("%d,3%d%d", &i,&j,&k);printf("%d,%d,%d\n", i,j,k) ;A.12345678B.123,456,78C.123,45678D.123,*456782、填空题(1)C语言的基本类型为、、、。
第3章程序设计初步第1-7节一、选择题1、C语言中用于结构化程序设计的3种基本结构是( D )A) for,while,do-while B) if,for,continueC) if,switch,break D)顺序结构、选择结构、循环结构2、流程控制语句的基本控制结构有三种,不属于这一种结构的是( D )。
A) 顺序结构 B) 选择结构 C) 循环结构 D) 计算结构3、输入输出格式控制是在哪个头文件中定义的?( B )。
A) iostream B) iomanip C) istream D) ostream4、输入输出时需要包含哪个头文件?( A )。
A) iostream B) iomanip C) istream D) ostream5、对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是( D )。
A)”cout”是一个输出流对象 B) ”endl”的作用是输出回车换行C)”x”是一个变量 D) ”<<”称作提取运算符解析:”>>”称作提取运算符. ”<<”称作插入运算符6、下列有关输入、输出的说法错误的是( C )。
A) C++语言本身没有提供输入、输出语句B) C++语言中输入输出功能是通过输入输出流库中的流对象cin和cout实现的C) 函数putchar()只能用来输出字符型变量的内容D) 函数getchar()一次只能输入一个字符7、在ios中提供控制格式的标志位中,哪个是转换为十六进制形式的标志位?(A )。
A) hex B) oct C) dec D) left8、关系表达式的求值结果为( B )。
A)1或-1 B)1或0 C)任意正整数或0 D)任意负整数或09、设变量a和b的值满足a<b,判断变量x的值是否位于闭区间[a,b]的表达式是(C )。
A)a<x<y B)a<=x<=b C)x>=a&&x<=b D)a<x&&x<b10、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。
练习3-1答案一、选择题1.在C语言库函数中,可以输出double型变量x值的函数是( D )。
A.getchar B.scanf C.putchar D.printf 2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后输出是( D )。
A.The program's name is c:tools book.txtB.The program's name is c:\tools book.txtC.The program's name is c:\\tools book.txtD.The program's name is c:\toolook.txt3.以下程序的输出结果是( D )。
(注:□表示空格)main(){printf("\n*s1=%15s*", "chinabeijing");printf("\n*s2=%-5s*", "chi");}A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□*s2=**chi* *s2=chi□□*C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□*4.选择程序的运行结果,①是( B )、②是( B )、③是( D )、④是( C )。
#include<stdio.h>main(){int a=-10, b=-3;printf("%d\n", a%b); /*输出①*/printf("%d\n", a/b*b); /*输出②*/printf("%d\n", -a%b); /*输出③*/printf("%d\n", a-=b+++1); /*输出④*/}①A.-2 B.-1 C.0 D.1②A.-10 B.-9 C.-8 D.0③A.-2 B.-1 C.0 D.1④A.-10 B.-9 C.-8 D.-75.以下C程序正确的运行结果是( D )。
单选题1、若定义a=3,b=4,执行printf(“%d, %d”,(a,b),(b,a));的输出结果为()。
A.3,4B.4,3C.3,3D.4,42、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是()。
A.a<>0B.!aC.a=0D.a3、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前尚未配对的最近的ifD.同一行上的if4、有定义int t = 0;则有循环while(t=1){…},则下列关于while循环语句的描述中正确的是()。
A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式的值不合法D.以上说法都不对5、若有定义:int x ,i;则下列for循环语句:for(i = 0,x = 0; i<= 9 && x!=876;i++)scanf(“%d”,&x);下列选项中,描述正确的是()A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行6、关于下面的for循环语句int i,k;for(i = 0,k = -1;k = 1;i++,k++) printf(“*****”);下列选项中,描述正确的是()A.判断循环结束的条件非法B.是无限循环C.只循环一次D.一次也不循环7、C语言程序的三种基本结构是()。
A.顺序结构,选择结构,循环结构B.递归结构,循环结构,转移结构C.嵌套结构,递归结构,顺序结构D.循环结构,转移结构,顺序结构8、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A.a<>0B.!aC.a=0D.a9、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。
void main(){int x;scanf("%d",&x);if (x++ > 5)printf("%d",x);elseprintf("%d\n",x--);}A.7和5B.6和3C.7和4D.6和410、运行以下程序后,如果从键盘上输入china#,那么输出结果为()。
#include<stdio.h>void main(){int v1=0,v2=0;char ch;while ((ch=getchar())!='#')switch (ch){case 'a':case 'h':default:v1++;case '0':v2++;}printf("%d,%d\n",v1,v2);}A.2,0B.5,0C.5,5D.2,511、有如下程序:void main(){int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=212、下面程序的输出是()。
void main(){char *a="12134211";int v1=0,v2=0,v3=0,v4=0,k;for (k=0;s[k];k++)switch (s[k]){default:v4++;case '1':v1++;case '3':v3++;case '2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }A.v1=4,v2=2,v3=1,v4=1B.v1=4,v2=9,v3=3,v4=1C.v1=5,v2=8,v3=6,v4=1D.v1=8,v2=8,v3=8,v4=813、下列程序段的输出结果为()。
int y=1;while(y--);printf("y=%d\n",y);A.y=-1B.y=0C.死循环D.y=914、当输入数据:27 63 时,下面程序的运行结果是()。
#include<stdio.h>int gbs(int a, int b){int c;a=a>0?a:-a;b=b>0?b:-b;c=a*b;if (c==0)return 0;while (a!=b)if (a>b)a-=b;elseb-=a;return c/a;}int gys(int a, int b){if (a*b==0)return 0;a=a>0?a:-a;b=b>0?b:-b;while (a!=b)if (a>b)a-=b;elseb-=a;return a;}void main(){int a,b,c,d;scanf("%d%d",&a,&b);c=gbs(a,b);d=gys(a,b);printf("a=%d b=%d gbs=%d gys=%d\n",a,b,c,d);}A.a=30 b=63 gbs= gys=9B.a=27 b=63 gbs=190 gys=10C.a=27 b=63 gbs= gys=9D.a=27 b=63 gbs=188 gys=1015、假设有程序段:int k=0; while(k=1) k++; while语句的循环次数是()。
A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次16、执行下面程序片段的结果是()。
int x=23;do{printf("%2d",x--);} while (!x);A.打印出321B.打印出23C.不打印任何容D.陷入死循环17、在C语言程序中,若希望结束循环,则do-while语句构成的循环中的条件为()。
A.0B.1C.trueD.非18、以下描述中正确的是()。
A.do-while语句构成的循环不能用其它语句构成的循环来代替B.do-while语句构成的循环只能用break语句退出C.用do-while语句构成的循环,在while后的表达式为非零时结束循环D.用do-while语句构成的循环,在while后的表达式为零时结束循环19、以下循环体的执行次数是()。
void main(){int i,j;for (i=0,j=1; i<=j+1; i+=2,j--)printf("%d\n",i);}A.3B.2C.1D.020、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。
A.6B.3C.死循环D.021、以下程序的输出结果是()。
void main(){int x=10, y=10, i;for (i=0; x>8; y=++i)printf("%d %d ", x--, y);}A.10 1 9 2B.9 8 7 6C.10 9 9 0D.10 10 9 122、下列说法中正确的是()。
A.在switch语句中一定要使用break语句B.在switch语句中不一定要使用break语句C.break语句是switch语句的一部分D.break只能用于switch语句中23、执行下面的程序后,a的值为()。
void main(){int a,b;for (a=1,b=1; a<=100; a++){if (b>=20)break;if (b%3==1){b+=3;continue;}b-=5;}}A.7B.8C.9D.1024、若有以下程序段,w和k都是整型变量:w=k;LB:if (w==0)go to LE;w--;printf("*");goto LB;LE:那么不能与上面程序段等价的循环语句是()。
A.for (w=k; w!=0; w--) printf("*");B.for (w=k; w; --w) printf("*");C.w=k; while (w-- != 0) printf("*"); w++;D.w=k; do { w--; printf("*"); } while (w!=0);多选题1、C语言的程序结构语句包括()。
A.顺序结构语句B.循环结构语句C.选择结构语句D.逻辑结构语句2下列语句哪些属于循环语句()。
A.for语句B.do-while语句C.while语句D.switch语句判断题1、break是跳出当前循环,接着执行循环后面的代码。
2、continue只能用于循环语句。
3、break语句只能在循环语句中使用。
4、在C语言中,跳转语句有break语句、goto语句和continue语句。
简答题1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
void main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}2、请阅读下面的程序,在空白处填写正确的代码,要求输出m和n的值,且每行从头开始。
void main(){int m = 10, n = 20;printf( ,m);printf( ,n);}3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。
void main{int x = 1,y = 1, z = 10;if(z<0)if(y>0) x = 3;else x = 5;printf(“%d\t”,x);if(z = y < 0) x = 3;else if(y==0) x = 5;else x = 7;printf(“%d\t”,x);printf(“%d\t”,z);}4、请阅读下面的程序,在空白处填写正确的代码,实现分段函数:x < 0 y = 2x + 3;x = 0 y = 0;x > 0 y = (x+7)/3;输入x,计算y值,输出y。
void main(){int x, y;scanf(“%d”,&x);if(x < 0) y = 2*x + 3;y = 0;if(x > 0) y = (x + 7) / 3;printf(“%d”,y);}5、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。