欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    [工学]C语言练习题3.doc

    • 资源ID:1976605       资源大小:6.30MB        全文页数:274页
    • 资源格式: DOC        下载积分:20
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要20
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [工学]C语言练习题3.doc

    273第一章 绪论1.1 语言的发展及特点1.2 程序的基本结构习 题一、选择题1.1 在每个C程序中都必须包含有这样一个函数,该函数的函数名为A#) main      B) MAIN        C) name        D) function1.2 以下叙述不正确的是A#) C程序书写格式规定,一行内只能写一个语句;B) main( )函数后面有一对花括号,花括号内的部分称为函数体;C) 一个C程序必须有main( )函数;D) C规定函数内的每个语句以分号结束;1.3 C语言程序的基本单位是()。A#)函数 B)过程 C)子程序 D)子例程1.4 一个C程序的执行是从 。A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D#) 本程序的main函数开始,到本程序文件的最后一个函数结束1.5 以下叙述不正确的是 。A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D#) 在C程序中,注释说明只能位于一条语句的后面1.6 一个C语言程序是由 。A)一个主程序和若干个子程序组成B#) 函数组成C) 若干过程组成D) 若干子程序组成二、判断题1.7 一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。F1.8 main函数必须写在一个C程序的最前面。 F1.9 一个C程序可以包含若干个函数。 T1.10 C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。 T1.11 C程序的注释只能是一行。 F三、编程题1.12 上机运行本章三个例题,熟悉使用Turbo C 2.0编译和运行一个程序的步骤。1.13 试编写一个C程序,输出两个数的乘积。第二章 基本数据类型、运算符和表达式2.1 C语言的数据类型C语言包括以下一些数据类型。 2.2 标识符、常量和变量C语言规定,标识符只能由字母、数字、下划线“_” 三种字符组成,并且第一个字符只能是字母或下划线,数字不能作为标识符的第一个字符。习 题一、选择题2.1 以下不合法的用户标识符是A ) f2_G3       B) If           C#) 4d            D )_8 2.2 以下选项中合法的用户标识符是A) long          B )_2Test     C#) 3Dmax   D )A.dat 2.3 以下不是关键字的标识符是A )continue    B) char        C) If          D#) default 2.4 C语言提供的合法数据类型为A) 复数型      B) 逻辑型      C#) 双精度型      D) 集合型 2.5 以下选项中不合法的int整型常数是A#) 32768      B) -56       C) 03      D) 0xAF2.6 下列字符串中,可以作为“字符串常量”的是A) ABC      B#)ABC       C)'abc'      D) 'a'2.7 以下字符串中,合法的长整型常数是A#) 0L        B) 4962710       C) 0.054838743   D) 2.1869e102.8 在下面的运算符中,优先级最高的运算符是A) % B) && C) < D#) !2.9 逗号表达式(x=2*3,x+8,x+12),x+x的值是A)6 B)26 C#)52 D)122.10 设int n=6;表达式n%=n+=n-=n*n的值为 A)10 B)0 C)12 D#)6 2.11 TURBO C中 ,int 类型变量所占字节数是A)1 B#)2 C)3 D)42.12 在 C语言中,下列合法的字符常量是A)039 B#)x76 C)ab D)o二、填空题 2.13 下列程序执行后的结果是_70_。main( )   int  x='f ';printf("%dn",'A'-'a'+x);2.14 把a1、a2定义成长整型变量的定义语句是int a1,a2。2.15在C语言中,实型变量分为两种类型,它们是_float_double flaot_。2.16已有定义:int x; float y;double z;,则计算表达式:x+y*z后,所得数据的类型是_float_。2.17已有定义:float f=13.8;,则表达式:(int)f3的值是_。2.18 若s是int型变量,且s6,则下面表达式的值为_。s%2+(s+1)%22.19 若a是int型变量,则计算下面表达式后a的值为_。 a=25/3%32.20 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为_,n的值为_。x+=n+2.21 若有定义:char c=010;则变量c中包含的字符个数为_。2.22 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为_。 (x+y)%2+(int)a/(int)b2.23 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式的值为_。ch=a+8-3 三、分析以下程序运行结果。 2.24main ( )  int a,b,x,y;  a=5;  b=7;   x=+a;   y=b+;   printf(“%d,%d,%d,%d” ,a,b,x,y);四、简答题2.25 假设m是一个三位数,写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。2.26 已知int x=10,y=12;写出将x和y的值互相交换的表达式。 第三章 顺序结构3.1 格式输入与输出 3.1.1   printf函数(格式输出函数) printf格式控制字符格式字符说 明d,i以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀0x)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数,隐含输出6位小数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串在格式命令的和格式控制字符之间可以加上一些任选的修饰符,用来对输出格式作进一步的限定。这些修饰符如下所示:附加格式说明符(修饰符)修饰符功 能例 子m输出数据域宽度,数据长度<m,左补空格;否则按实际输出%4d:表示输出至少占4列.n对于实数:指定小数点后小数位数(四舍五入)%6.2f:表示输出2位小数对于字符串:表示只输出字符串的前n 个字符%.3s:表示输出字符串前3个字符输出数据在域内左对齐(缺省右对齐)%16d:表示输出数据左对齐+输出有符号正数时,在其前面显示正号(+)%+d:表示输出整数的正号0输出数值时,指定左边不使用的空位置自动填0%08d:表示输出十进制整数,不足8位时左补0#对于无符号数:在八进制和十六进制数前显示前导0,0x或0X%#X:表示输出的十六进制前显示前导0Xl在d、o、x、u前,指定输出为long int型%ld:表示输出长整型数在e、f、g前,指定输出精度为double型(缺省也为double)%lf:表示输出为double型数。 3.1.2 scanf函数(格式输入函数) scanf函数的格式控制符格式控制符字符意义d,i输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串使用scanf函数注意事项 :(1) 如果相邻两个格式控制符之间,不指定数据分隔符(如逗号、冒号等),则相应的两个输入数据之间,至少用一个空格分隔,或者用Tab键分隔,或者输入一个数据后,按回车,然后再输入下一个数据。例如: scanf ("%d%d", &a, &b);假设给a输入2,给b输入6,则正确的输入操作为:2 6 或者 2 6 (2) 格式控制字符串中出现的常规字符(包括转义字符),务必原样输入。 例如:scanf ("%d:%d:%d", &h, &m, &s); 假设要给h输入12,给m输入30,给s输入10,正确的输入操作应为: 12:30:10 3.2 字符数据的输入输出  3.2.1   putchar函数(字符输出函数) 3.2.2 getchar函数(字符输入函数) 3.3 复合语句和空语句1、复合语句。可以用 把一些语句括起来成为复合语句。复合语句的语句形式如下: 语句1;语句2; ; 语句n; 习 题一、选择题3.1 定义变量如下:int x; float y;则以下哪一个输入语句是正确的A)scanf(“%f%f”,&x,&y); B)scanf(“%f%d”,&x,&y);C)scanf(“%f%d”,&y,&x); D)scanf(“%5.2f%2d”,&x,&y);3.2 putchar函数可以向终端输出一个A)字符或字符变量的值 B)字符串C)实型变量 D)整型变量的值3.3 下列叙述正确的是( )。A)赋值语句中的“=”是表示左边变量等于右边表达式B)赋值语句中左边的变量值不一定等于右边表达式的值C)赋值语句是由赋值表达式加上分号构成的D)x+=y;不是赋值语句3.4 执行下列程序片段时输出结果是unsigned int a=65535;printf(“%d”,a);A)65535 B)1 C)32767 D)13.5 对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按那一种方式输入数据。        int k1,k2,k3,k4;        scanf(“%d%d”,&k1,&k2);        scanf(“%d,%d”,&k3,&k4);A)1020 B)10 20 C)10,20 D)10 201020 10 20 10,20 10,203.6 执行下列程序片段时的输出结果是        int x=13,y=5;        printf(“%d”,x%=(y/=2);A)3 B)2 C)1 D)03.7 下列程序的输出结果是        main ( )         int x=023;printf(“%d”,-x);        A)17 B)18 C)23 D)243.7已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的输入方式是        int a1,a2; char c1,c2;        scanf(“%d%d”,&a1,&a2);        scanf(“%c%c”,&c1,&c2);A)1020AB B)10 20 C)10 20 AB D)10 20AB                                     AB3.8 若定义x为double型变量,则能正确输入x值的语句是A)scanf(“%f”,x); B)scanf(“%f”,&x);C)scanf(“%lf”,&x); D)scanf(“%5.1f”,&x);3.9 若运行时输入:12345678,则下列程序运行结果为。main ( ) int a,b;     scanf(“%2d%2d%3d”,&a,&b);     printf(“%dn”,a+b);A)46 B)579 C)5690 D)出错3.10有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是 。A)132 B)1,3,2C)a=1 b=3 c=2 D)a=1,b=3,c=2二、填空题3.11 一个C程序由若干个_文件组成,而一个这样的文件可以由若干个_ 组成。3.12 一个表达式要构成一个C语句,必须_。3.13 复合语句是用一对_界定的语句块。3.14 printf函数和scanf函数的格式说明都使用_字符开始。3.15 scanf处理输入数据时,遇到下列情况时该数据认为结束:(1)_,(2)_ ,(3)_。3.16 C语言本身不提供输入输出语句,其输入输出操作是由_ 来实现的。3.17一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令_ 。三、程序阅读题3.18 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a,问在键盘上如何输入?main ( )  int a,b;   float x,y;char c1,c2;        scanf(“a=%d b=%d”,&a,&b);       scanf(“ %f %e”,&x,&y);scanf(“ %c%c”,&c1,&c2);3.19 写出以下程序的输出结果。        main ( )         int a=12345;           float b=-198.345, c=6.5;           printf(“a=%4d,b=%-10.2e,c=%6.2fn”,a,b,c);        3.20写出下列程序的输出结果main()int x=12; printf(“%d,%o,%x,%u,”,x,x,x,x);3.21写出下列程序的输出结果main()printf(“*n*n*n*n”);3.22写出下列程序的输出结果main()char x=a,y=b; printf(“%e%cn”,x,y); printf(“x=%3x,%-3xn”,x,x); 四、编程题3.23已知一名学生的三门课程考试成绩,计算他总成绩和平均成绩。试编写程序,并画出算法的N-S结构图。 3.24 从键盘上输入公里数,将其转换成米。试编写程序,并画出算法的N-S结构图。3.25 根据商品的原价和折扣率,计算商品的实际售价。试编写程序,并画出算法的N-S结构图。第四章 选择结构程序总是为解决某个实际问题而设计的,而问题往往包含多个方面,不同的情况需要有不同的处理,所以选择结构在我们的实际应用程序中可以说是无处不在,离开了选择结构很多情况将无法处理。C语言提供了可以进行逻辑判断的选择语句,由选择语句构成的选择结构,将根据逻辑判断的结果决定程序的不同流程。 4.1 关系运算符和关系表达式4.1.1 关系运算符在程序中经常需要比较两个数据的大小关系,以决定程序下一步的工作。比较两个数据的运算符称为关系运算符。 在语言中有以下关系运算符:  <   小于  <=   小于或等于  >   大于  >=   大于或等于  = =   等于  !=   不等于关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于= =和!=,= =和!=的优先级相同。例:c>a+b 等价于c>(a+b) a>b!=c 等价于 (a>b)!=c a= =b<c 等价于a= =(b<c) a=b>c 等价于 a=(b>c)4.1.2 关系表达式用关系运算符将两个表达式(算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)连接起来的式子,称关系表达式。关系表达式的一般形式为:表达式 关系运算符  表达式例如:a - b>c +dx<y+6b+2<c(a>b)= =c都是合法的关系表达式。关系表达式的值是真”和“假”,用“1”和“0”表示。如  7>2的值为“真”,即为1。 3<8的值为“假”,即为0。例: int a=3,b=2,c=1,d,f;a>b /* 表达式值为1 */(a>b)=c /* 表达式值为1 */b+c<a /* 表达式值为0 */d=a>b /* d = 1 */f=a>b>c /* f = 0 */(a=3)>(b=5) /* 由于3>5不成立,故其值为假,即为0*/关系表达式通常用于C程序设计的逻辑判断语句的条件表达式中。使用关系表达式要注意以下几点:(1)C语言中,非0值即为“真”,0值即为 “假”;(2)运算符>= 、= =、!=、<=是两个字符构成的一个运算符,用空格从中分开写就会产生语法错误。(3)由于计算机内存放的实数与实际中的实数存在着一定的误差,如果对浮点数进行=(相等)或!=(不相等)的比较,容易产生错误结果。应该尽量避免。 (4)不要将“=”写成“=”, “=”表达式是将其右侧的表达式的值赋值给“=”左侧的变量,它的左侧只能是变量,不能是常量或其他表达式。“=”的左右两侧都可以是变量、常量或表达式,是用来比较“=”两侧的值是否相同。其结果是一个逻辑值。4.2 逻辑运算符和逻辑表达式4.2.1 逻辑运算符语言中提供了三种逻辑运算符:(1) &&  与运算(2) |   或运算(3) !    非运算与运算符&&和或运算符|均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:!(非)&&(与)|(或)“&&”和“|”低于关系运算符,“!”高于算术运算符。如图4-1所示 图4-1按照运算符的优先顺序可以得出:x>y && m>n   等价于    (x>y)&&(m>n)!b= =c|a<d    等价于    (!b)= =c)|(a<d)a-b<c&&x+y<z  等价于    (a-b)<c)&&(x+y)<z)4.2.2逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式的值也分为“真”和“假”两种,用“1”和“0 ”来表示。逻辑表达式求值规则如下:(1)与运算 &&:参与运算的两个量都为真时,结果才为真,否则为假。(2)或运算 |:参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。(3)非运算 !:参与运算的量为真时,结果为假;参与运算的量为假时,结果为真。逻辑运算真值表AB!A!BA && BA | B001100011001100101110011 图4-2例如:6>3 && 8>2 由于6>3为真,8>2为真,与运算的结果也就为真。4>8|5>2 由于4>8为假,5>2为真,或运算的结果也就为真。!(9>1) 由于9>1为真,非运算的结果也就为真。虽然编译系统在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。即将一个非零的数值作为“真”。例:a = 4; b = 5;!a /* 值为0 */a && b /* 值为1*/a | b /* 值为1*/!a | b /* 值为1*/4 && 0 | 2 /* 值为1 */5 > 3 && 2 | 8 < 4 - !0 /* 值为1*/-4&&2 /* 值为1*/c && d /* 值为1*/逻辑运算时要注意:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例 a && b && c 只在a为真时,才判别b的值;只在a、b都为真时,才判别 c的值例 a | b | c 只在a为假时,才判别b的值;只在a、b都为假时,才判别 c的值例 a = 1; b = 2; c = 3; d = 4; m = 1; n = 1; (m = a > b) && (n = c > d) 运行结果:m = 0, n = 14.3 if 语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)来选择执行相应的操作。4.3.1 if语句的三种形式1不含else子句的if语句语句形式为:if(表达式) 语句该语句执行过程为:如果表达式的值为真,则执行其后的if 子句,然后去执行if语句后的下一个语句。否则跳过if 子句,直接执行if语句后的下一个语句。其过程可表示为图4-3。 图4-3例如:(1) if (x>y) printf(“%d”,x); /*如果x>y,则输出x */(2) if (a<b) t=a;a=b;b=t; /*如果a<b,则将a、b相互交换 */if是C语言的关键字,表达式两侧的括号不可缺少,如果在条件成立时需要执行多条语句,则应该使用花括号把一组语句括起来组成复合语句,它等效于一条语句。例4.1 输入两个整数,输出其中的小数。#include “stdio.h”main() int x,y,min; printf("n input two numbers:   ");scanf("%d%d",&x,&y);min=x; if ( y<min ) min=y;printf("min=%d",min);本例程序中,输入两个数x,y。把x先赋予变量min,再用if语句判别min和y的大小,如y小于min,则把y赋予min。因此min中总是小数,最后输出min的值。例4.2 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。#include “stdio.h”main() char ch;printf("Input a character: ");scanf("%c",&ch);if (ch>='A' && ch<='Z') ch=ch+32;printf("ch=%cn",ch);运行情况:AAdd 其中条件(ch>='A' && ch<='Z')是判断ch是否是大写字母,如果是就将ch加32,转换成小写字母,否则不转换。2. ifelse语句语句形式为:if(表达式) 语句1else 语句2该语句执行过程为:如果表达式的值为真,则执行其后的语句1,否则执行else后的语句2。无论如何,对于一次条件判断,语句1和语句2只能有一个被执行,不能被同时执行。这里的语句1和语句2可以是一条语句,也可以是用花括号括起来的复合语句。其执行过程可表示为图4-4。 图4-4例如:下面的程序段同样是输出两个整数中的小数。int x,y,min ;printf("n input two numbers:   ");scanf("%d%d",&x,&y);if (x < y) printf ("min = %dn", x);else printf ("min = %dn",y);例4.3 输入一个数,判别它是否能被7整除,若能被7整除,则输出YES,不能被7整除,则输出NO。#include “stdio.h”main() int num  printf(“input num :”); scanf(“%d”,&num); if ( num%7= =0) printf(“YES”); else printf(“NO”);运行情况:input num :21YES3、if-else-if形式。实际的程序设计中常常面对更多的选择,当有多个分支需要选择时,可采用if-else-if语句,其一般形式为:if(表达式1)语句1else if(表达式2) 语句2else if(表达式3) 语句3 else if(表达式m) 语句melse 语句n其执行过程是:依次判断表达式的值,当出现某个值为真时,则执行其后对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语句的执行过程如图4-5所示。 图4-5例4.4从键盘上输入某个学生某一门课程的成绩。当成绩高于90分时,输出A;成绩在8089之间,输出B;成绩在7079之间,输出C;成绩在6069之间,输出D;而成绩不及格(小于60分)时输出E。程序分析:要想将成绩按等级分类,就必须将输入的成绩与对应的范围进行比较,检查其值是否在对应的范围之内。程序编写如下:#include “stdio.h”main() float score;scanf(“%f”,&score);if (score<=100&&score>=90) printf(“A”);else if (score>=80) printf(“B”);else if (score>=70) printf(“C”);else if (score>=60) printf(“D”);else printf(“E”);运行情况如下:88B对应于题中的ifelse if.的语句格式,也可以采用if语句处理:if (score >= 90) printf("A");if (score >= 80 && score <= 89) printf("B");if (score >= 70 && score <= 79) printf("C");if (score >= 60 && score <= 69) printf("D");if (score <60) printf("E");然而,这里使用了5条if语句,由此看出,使用 ifelse if格式可以提高程序的效率,使程序少做许多逻辑判断。 例4.5 判别键盘输入字符的类别 程序分析:可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值在“0”和“9”之间的为数字字符,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。#include "stdio.h"main()     char c; printf("input a character: ");c=getchar();if(c>='0'&&c<='9')     printf("This is a digitn");else if(c>='A'&&c<='Z') printf("This is a capital lettern");else if(c>='a'&&c<='z') printf("This is a small lettern");else     printf("This is an other charactern");运行情况如下:input a character: kThis is a small letterinput a character: 8This is a digitinput a character: $This is an other character在使用if语句中还应注意以下问题:(1) 在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式、常量、变量等。例如:if (b=2) 语句;if(a) 语句;都是允许的。只要表达式的值为非0,即为“真”。又如,有程序段:if(x=n)    printf("%d",x);else printf("x=0");本语句的语义是,把n值赋予x,如为非0则输出该值,否则输出“x=0”字符串。(2) 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。(3) 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。例如:if (x>y) a+;   b+;else a-;b-;4.3.2 if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。一般有如下形式:(1)if (表达式1) 内嵌if if(表达式2) 语句1 else 语句2else内嵌if if(表达式3) 语句3 else 语句4 (2) if (表达式1) if (表达式2) 语句1 内嵌ifelse 语句2 (3) if (表达式1) 语句1else内嵌if if(表达式2) 语句2 else 语句3 (4) if (表达式1)内嵌if if (表达式2) 语句1 else 语句2嵌套中的if语句可能又是if-else语句,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。例如:  if (表达式1) if (表达式2) 语句1 else 语句2其中的else究竟是与哪一个if配对呢?应该理解为:if (表达式1) if (表达式2) 语句1 else 语句2还是应理解为:if (表达式1) if (表达式2) 语句1 else 语句2为了避免这种二义性,语言规定,else总是与它上面的,离它最近的,未曾配对的if语句配对。因此对上述例子应按前一种情况理解。 例4.6 判断下列两个程序运行结果。 (1)#include <stdio.h>main ( ) int a = 1, b = -1; if (a > 0) if (b > 0) a+; else a-; printf ("a = %dn",a); 运行结果:a = 0(2)#include <

    注意事项

    本文([工学]C语言练习题3.doc)为本站会员(音乐台)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开