在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → C语言经典习题及其答案详解

C语言经典习题及其答案详解

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.36M
  • 下载次数:5
  • 浏览次数:81
  • 发布时间:2021-01-14
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
谭浩强版C语言经典配套习题集,适用于大学本科计算机专业C语言学习及C语言初学者学习。
低,又先计算a=-b因a,b均为0后,所以比铰以,上述表达式计算使m的值变为0,而n的值没 结果值为1将1赋给变量m,使变量m的值变为1.有变,依旧为1,所以解答是②)。 同时这个赋值运算的结果也是1,这样逻辑运算的 10,设有代码“inta=3;”,则执行了语句 左运算分量的值为1由于逻或运算的左运算分量“a+a=a+a;“后,变量a的值是() 值为1,按照C语言对逻辑或运算优化计算的规定, ①3②0③9④-12 不再计算逻辑或的右运算分量,而直接得到逻辑或 「解」由」赋值运算符的结合性自右至左,语 运算的结果为1于逻辑或的右运算分量不曾计句a+=a-=a*a:”的执行是先计算a*a,得到值9 算过,所以变量n的值也不为变化。这样,上述表再计算a=a*a,使a的值为-6,接着计算a|=a, 达式计算后,变量m的情为1,变量n的值为0所使a的值为12所以解答是④。 以解答是③ 11.在以下一组运算符中,优先级最高的运算符 7设a为5,执行下列计算后,b的值不为2的是() 是() ①<=②2=③%④&8 ①b=a/2②b=6-(-a)③b=a%2④b 「解」常规运算符的优先级自高到低的排列顺 =a<3?3:2 序是算术运算符、移位运算符、关系运算符。按位 「解」因两个整型数据相除,结果是整数,当运算符、逻辑运算符、条什运算符、赋值运算符、 a的值为5时,计算表达式b=a/2后,使b的值为逗号运算符。所以问题所给的四个运算符按优先级 2计算表达式b-6-(-a)是先计算子表达式(=a)自高到低的排列顺序是%,<一,&&,一。所以 的,先让a的值减1变成4,并以减l后的a为子解答是③。 表达式的结果,所以子表达式的结果为4,最后使 12.设整型变量i的值为3,则计算表达式i-i b的值为2在计算表达式b=a%2时,求余运算a%后表达式的值为() 2的结果为1,最后使变量b的值为1计算表达式b ①0②l③2④表达式出错 a<3?3:2时,先计算条件表达式a<3?3:2, 解」有些运算符只有一个字符,也有许多运 以2为结果,最后也使变量b的值为人所以解答是算符由两个字符组成。特别是有些字符既可是单个 (3 字符的运算符,乂能组成双字符的运算符。编译系 8执行语句“x-(a-3,b-a-);”后,X,a,统在识别源程序时,通常是尽量多地读八字符,能 b的值依次为() 组成多字符单词的先尽量组成多字符单词。所以表 ①3,3,2②2,3,2③3,2,3④2,3,3达式i-,被编详器理解为(i-)i另外,当表达 「解」计算表达式x=(a=3,b=a-)时,先计式中某变量有后缀自增和自减运算时,先按变量的 算赋值号右端圆括号内的逗号衣达式。逗号表达式原值计算表达式,然后再对变量进行自增和自减运 要求各子表达式顺序计算,并以最后予表达式的值算。同样地,当表达式中某变量有前缀自增和自减 为整个逗号表达式的结果。所以该表达式计算时,运算时,先对变量进行自增和自减运算,然后再按 先让变量a的值为3,a-的值是a当时的值,以该变量的新值计算表达式。按这个约定,求表达式 值为结果赋给变量b,并以该值为逗号表达式的值(i-)i是计算ii的值为0,然后再对i作自减运 赋给变量x,然后a的值被减少1所以计算该表达算。这样,衣达式(-)i的值为0所以解答是①。 式后,使变量ⅹ,a,b的值依次为3,2,3.所以解 13.设整型变量a、b、c均为2,表达式 答是③。 a+++b+++c+的结果是() 9设整型变量m,n,a,b,c,d均为1,执行“(m ①6②9③8④表达式出错 a>b)&&(n-a>b)”后m,n的值是() 「解」与上一小题解答的理由相同,表达式 ①0,0②0,1③1,0④1,1 +++b+++c→+被系统理解成:(a++)+(b++)) 「解|表达式(m=日>b)&&(n=>b)+++)。表达式“变量+”的值是变量的原来值,所 是一个逻辑表达式,它的计算过程是先计算逻辑与以在变量a、be均为2的前题下,执行上述表达式 的左分量(m=a>b,其中又是先计算a>b因a>b得到结果为6所以解答是① 不成立,结果为0,将0赋给变量m,最后逻辑与 14若已定义x和y为 double类型,则表达式 的左分量结果为0由于逻辑运算采用特别的优化计x=L,y=x+3/2结果是() 算规则,当逻辑与的左分量结果为0时,不再计算 ①1l②22③32.0④2.5 逻辑与的石分量,而直接以0为逻辑与的结果。所 「解」由于变量ⅹ和y都是 doublc类型,表达 式x=1,y=x+3/2是先计算x=1,由于1是最后将该结果赋给变量a.表达式a=7+b,c=a 整型的,x是 double类型的,该计算先将整数1转+7则不是一个赋值表达式,而是一个逗号表达式, 换成dobe类型的10,并将10赋给变量x计算y它由两个赋值子表达式组成。所以解答是③ x+3/2是先求3/2的值,因是两整数相除 18若有以下定义: char a;intb; float c; double 结果是整型值1,然后在计算x+1时,也先将1d;则表达式a+b+dc值的类型为() 转换成1.0,然后求得x+1的值为2.0,最后将该 ①noa②int③char④ double 佰赋给变量y,并得到整个表达式的值为20,所以 邳」基本类型的数据可以混合运算,但运算 解答是③。 时,对要求运算分量类型相同的运算来说,如运算 15设a=1,b=2,c=3,d=4则表达式a<b?分量的类型不是全相同,则会有自动类型转换发 c<d?a:d的结果为() 生。类型自动转换规则规定类型低(简单)的向类 ①4②3③2④l 型晑(复杂)的转换。各类型由高到低的排列顺序 解|条件运算符的优先级比关系运算符的优是:1 ong double、foat、 unsigned long、long、 unsigned 先级低,并且它的结合性是自右向左的,所以表达int、int这样,若有定义: char a;intb; float c 式a<b?a:c<d?a:d可用圆括号等价地写成( adouble d:则表达式at"bdc的值的类型是 double <b?a:(cD)?A:D)。因A<B成立,计算的。首先计算a*b,得到it类型的值,接着计算 结果为A的值1所以解答是④。 a*b+d,得到 double类型的值,最后计算a*b+d-c, 16改a为整型变量,下列C表达式中,不能表得到dube类型的值。所以解答是④ 达数学关系式:10<a<15的是() 19表达式9!=7”的值是() ①10<a<15②a==1la==12a==13‖a ①urue②非0值③0④l 14 「解」关系运算的结果只有0和1,若关系成 ③a>10&&a<15④!(a<=10)&&!(a立,则结果为1;若关系不成立,则结果为0因关 >>=15) 系式9!=7成立,所以表达式的结果为1.虽然 解」数学关系式10<a<15表示。只能是也是非0值,在供选择的答案中有1,所以最确切 11,12,13,14四个值之 的解答是④ 用C表达式表示这个条件,可写成a>10&8 21设字符型变量a-3,b-6,计算表达式C <15,或!(a<=10)&&!(a>=15),或 (a^b)<<2后C的二进制值是() ll|a--12|a=13|a--14等。若写成10<a<15, ①0001110②0000011③00000001(4 该算式的计算顺序是先求出10<a的结果0或1 00010100 然后以这个结果与15比较,是否小于15,显然这 解」a的值为3,写成8位二进制数形式是 与数学式子的意义是不一致的。所以解答是①。 000001,b的值为6,写成8位二进制数形式是 17.下列表达式中,正确的C赋值表达式是()0000楼式c=(a^b)<<2,先计算a与b ①4=7+b+c=a+7②a=7+b++=a+7的按位加,得到结果00001将这结果向左移2 a=(7+b,b++,a+7)④a=7+b,位,得到二进位的位串信息是00010100解答 c=a+7 是④ 「铎」赋值运算符是运算符之一,赋值运算也 22设a,b和c都是int犁变量,且a=3,b 可以出现在一般表达式中。赋值运算时,出现在赋=4,c=5,则下面的表达式中值为0的是() 值运算符左边的表达式应该是引用一个存储对象, ①a&&b②a<=b③lbc&&b-c④! 例如变量。不可以是一个数值计算表达式。如表达(aB)&&!) 式a=7+b十c=a+7因算术运算符比赋值运算符 「解」对于衣达式a'&&‘b’,两个非O运算 的优先级高,要把a+7的结果赋给7+b+c,这是分量的逻辑与结果为1,对于表达式a<=b,由于关 错误的。同样理由,表达式a=7+b++=a+7系式成汽,结果也为此又由于变量a为非0,表达 也是错误的。前表达式a=(7+b,b++,a+7)式abc&&b的结果也为1对于表达式!(a<b) 就是正确的赋值表达式,它是先计算赋值号左边的&&!cl),先是计算(a<b)得到结果1:计算! 指号内的表达式,括号表达式内是一个逗号表达C得到结果为0:再计算它们的逻辑与,结果为0 式,远号表达式要求顺序逐一计算各子表达式,并继续与1求逻辑或,得到结果为1最后,对1求逻 以最后一个子表达式的值作为远号表达式的结果,辑非,得到结果为0所以解答是④ 23设c是char型变量,其值为A',则下面表|的变量,其一般形式是:存储类型符数据类型符变 达式的值是() 量名1,变量名2 ch=(ch>=‘A&&ch<=‘Z)?(ch+32) 7设有下列运算符 十、+、&& 其中优先级最高的是,优先级最低的 ①A②a③7’④'7 是 「解」由」宇符型变量ch的值为‘A’,计算表 「解」对运算符<≤、十、十十、&& 达式的h=h>=A&&ch<=z”)?(ch+32):按它们的优先级白高到低的顺序排列为:++、+ ch,先计算其中条件表达式,由于条件(ch>=A<<、<=、&&所以,优先级最高的是,优先 &&h<=2z)成立,该条件表达式以ch+32-97级最低的是&&。 为结果,将该值斌给变量ch,以字符表达这个值 8设二进制数A是0A10111,若想通过异或运 为a‘。所以解答是②。 算A^B使A的高4位取反,低4位不变,则二 进制数B应 填充题 「解」按位加运算的一个重要应用是让某个整 1在内存中,存储字符串X要占用个字型变量的二进位位串信息的某些位信息反向,0变 节,存储字符“X要占用个字节。 成1,而1变成0.这只要设计这样一个位串信息, 「解」计算机存储一个字符用1个字节,存储让要变反的位为1,不要收变的位为0,用这个位 字符串时,每个字符要占用1个字节,另在字符串串信息与整型变量按位加就能得到希望的结果要 的有效字符之后存储1个字符串的结束标记符。所使字节的高4位取反,低4位不变,则需要位申信 以存储字符率“X要占用2个字节,存储字符x只息11000进数是0360,写成六进 要1个字节。 制数为0xFO. 2.在C程序中,判逻辑值时,用表示逻辑 9设a=3,b=2,C=1,则c>b的值为 值“貞”,又用_表示逻辑值假"“在求逻辑值时,a>b>c的值为 用表示逻辑表达式佰为”真“,又用表示 解」因a的值为3,b的值是2,条件a>b 逻辑表达式值为”假“。 为真,其值为1.表达式a>b>c的求值顺序是计算 「解」在C程序中,判週辑值时,用非0值表a>b,结果为1,接着计算1>c,因c的值为1, 示真;而判逻辑值时,用值0表示假。但逻辑表达条件1>c为假,结果为0 式计算结果,逻辑达式值为貞是用1衣示的,而 10.已知a-10,b-20,则表达式!a<b的值 逻辑表达式的值为假,则用0表示 为 3定义符号常量的一般形式是 「解」计算衣达式!a<b,先计算!a,因 「解」定义符号常量用预处理命令的宏定义,的值为10,1a的值为关系表达式0≤20为真 其定义的一般形式是: 所以表达式!a<b的值为1. define符号常量名常量 11设x和y均为in型变量,且x=1,y=2, 4在函数内,说明变量时,若省略存储类型符,则表达式10+x/y的值为_一 系统默认其为储类别,该存储类别的类型 解」计算衣达式1.0+x/y,先求x/y,因x 符为 和y是整型变量,其中的除运算是整除,1/2的 「解」在函数内,说明变量时,若省略存储类结果为0接着计算10+0,计算时,先将右分量转 型符,系统就默认其为自动存储类别,该存储类别换成00,最后得到结果10. 用auto标识 12.设整型变量x、y、z均为5: 5无符号基本整型的数据类型符为,双精度 ①执“x-=y-x”后,x 实型数据类型符为,宇符型数据类型符为 ②2执行“x%=y+z”后,x= 解|无符号的基本整型的类型符为 unsigned ③执行x=(y>7)?x+2:x-2,3,2后, nt,或简写成 unsigned.双精度实型数据类型符为x double,字符型数据类型符为char. 「解」在变量x、y、z的值均为5的情况下, 6定义指定数据类型的变量时,较完整的一般计算各表达式。由于表达式x=yz等价于表达式 形式是 x=x-(y-z),所以计算后x的值为5表达式x%y 「解|要指定变量的存储类型,定义指定类型+z等价于表达式x=x%(y+),所以计算后x的 值也为5表达式x=(y>z)?x+2:x-2,3, 解」格式输入函数的格式字符串中的字符可 2的计算过程用圆括号描述其计算顺序是 以分成三类:空格类字符、其它普通字符和格式转 (x=(y>z)?x+2:x-2),3),2 换说明。其中空格类字符用米珧过一个空格类字符 即这是一个逗号运算表达式,由一个赋值表达序列,直至下一个非空格类字符。普通字符要求输 式和两个数值构成,逗号表达式要求顺序求各子表入字符与其完全相同。格式转换说明对输入字符列 达式的值。表达式x=(y>∠)2?x+2:x-2的按格式转换说明进行转换,得到内部值存储到对应 计算是先求赋值号右边的条件表达式,因条件 输入项所指定的存储位置中。函数调用 scanf(“x >z)为假,求出x-2的值为3,将该值赋给变量=%,y=%f,&x,&y)以普通字符x=开头,输 x,使ⅹ的值为3. 入时也要先输入ⅹ一。接着是一个浮点数输入式, 13,能表述20<x<30或x<-109的C言所有能构成一个浮点数125的字符序列都能满足 衣达式是 要求。接着是普通字符列,y=“,在输入的浮点数 「解|首先表述20<X<30的C表达式可写成之后也要有字符列”,y=“。最后又是浮点数输入格 20<x&&x<30所以表述20<x<30或x<-100式,同样所有能构成一个浮点数125的字符序列都 的C表达式为20≤x&&x<30|x<-10 能满足要求。问题给出的供选择答案中只有 14,请写出数学式xy*7的C语言表达式x=125,y=125是能满足上述要求的。所以正确选 择是③。 「解」数学式子表述的是x除以y乘z的积, 3设有inti-010,j10;则执行“ printf(”od 写成C表达式可以写为x/(y*z),或可等价址写%d、n,+i,j-):的输出是() 成x/y/ ①l,10②9,10③010,9④10,9 15C语言中运算结果可以当成逻辑值使用的 「解」变量i和j的初值分别为八进制数010 表达式有:衣达式、衣达式 和十进制数10,函数调用 Print(od,%d\n”, 表达式 表达式 表达式、++,j—)中,+的值是变量i增1后的值,原 表达式 来值是八进制数010,等于十进制数8,输出9 「解」在C语言中,逻辑判断以非0值为真,以0的值是变量减1之前的值,输出10.格式字符中中 值为假。所以,几乎所有的表达式的运算结果都可的逗号是普通字符照原样输出。所以问题给出的格 以当成逻辑值使用,如算术表达式、关系表达式、式输出函数调用将输出9,10.正硝的解答是② 逻辑表达式、赋值表达式、逗号表达式、条件表达 4.改a,b为字符型变量,执行“ scanf("a-%c, 式等 b=%c,&a,&b)”后使a为^A,b为‘B',从键 盘上的正桷输入是() 第三章程序结构 ①A“B'②A,B'③A-A,B=B④aA,b B 单项选择题 「解」函数调用 scanl(“c=%c,b=%”,&c: 1.设a=3,b=4执行“ printi(“%d,%d’,(a, &b)中,普通字符必须按格式字符串要求照原样输 b),(b,a)):”的输出是() 入,c格式对紧接的仼何字符都输入。所以实现问 ①3,4②4,3③3,3④4,4 题的要求,输入字符列应为“a=A,b=B”。另外要 「解」在调用格式输出函数的语伺中,其中每 特别指出,在程序中,为表示字符常量,字符前后 个格式符对应一个输出项,格式符d要求输出项内需加单引号。但用字符格式输入字符时,在要输入 谷以十进制整数形式输出。第个输出项(a,b) 字符前后不必另键人单引号。若键人单引号,则这 是一个逗号表达式,该表达式的值是b的值,输出个单引号也将作为字符被输入。正确的解答是④ 4接着输出字符逗号。第二个输出项(b,a)的值 5设x、y、z、t均为int型变量,则执行以下 是a的值,输出3.所以语句执行将输出4,3.正解 语句后,t的值为() 的选择是②。 X=y=∠=1;t=++x|++y&&++∠; 2使用“ scant(”x-%of,y=%“,&x,&y)”,要使 ①不定值②2③l(40 x,y均为1.25,正确的输入是() 解」语句序列“x=y=z=1;t= ①.25,1.25②1.251.25③x=1,25,y=1.5+y&&++z;”使变量x的值为1,变量t是赋 一个逻辑表达式的值。在C语言中,由逻辑与和逻 ④X=125y=1.25 辑或构成的逻辑表达式有特别的计算规则,顺序计 while(表达式)语句 算各逻辑子表达式,并当一且能得到逻辑表达式的 这里的表达式可以是任何合理的表达式,语句 结果时,就立即结束逻辑表达式的计算,不再计算可以是任何语句,包括空语句,或表达式语句。可 后继辑子表达式。本题的辑表达式是两个运算能书写的wh句没有任何意义,如供选择的① 分量的逻辑或,而且左运算分量++x的值为非0 whilc(x=y)5;和③ whilc(0);但这两个语句 立即得到逻辑或运算的结果为1,并将1赋给变量的句法没有任何错误。 do-while语句的一般形式是: t,所以变量t的值为1.正确鐸答为③ do语句 while(表达式); 6设x、y、z均为int型变量,则执行以下语句 其中的成分语句也可以是任何语句,但供选择 后,x、y,z的值为() 答案②dox++whie(x=10);中的代码x+是 x=1:;y=0:z=2:y++&&+++x;个表达式,不是语句,语句必须要以分号结束,所 ①2、1、3②2、0、3③2、1、3④2、1、2 以是错误的。止确解答是②。 解|语句序列“x 2 0,循环语句“for(x=0,y=0: yH&Hz1x;”先使变量x的值为1,变量y的(x<4);x++);”的循环执行() 值为0,变量z的值为2.由逻辑与和逻辑或构成的 ①无限次②不确定次③4次④3次 逻辑表达式的特别计算规则,顺序计算各逻辑子表 「解」for循环话句的初始化部分置变量x和y 达式,并当旦能得到逻辑了表达式的结果时,就的初值为0,循环条件是(y!=123)‖(x<4), 立即结束逻辑子表达式的计算,不再计算该子每次循环后变量X的值增1由于循环过程中变量y 表达式。计算y因y的值为0,使y&&z的的值未被修改过,循环条件又是一个逻辑或,其左 结果为0,立即去计算++x,这次计算使变量y的值分量(y!=123)永远成立,也就是循坏条件永远 变成1,而变量z的值本改变。接着计算+x,使x成立。所以该循环语句将循环执行无限次。正确解 的值变为2.所以经上述语句执行后,x、y、z的值答是①。 依次为2、1、2.正硝解答为④。 11若i、j已定义为int类型,则以下程序段中 7假定所有变量均已正确定义,下列程序段运的内循环体的执行次数是() 行后x的值是() or a=b=c=0;x=35; for(j-0;j<4;j+){……} if(! a)- else if(b): if(c)x=3: else x=4 ①20②24③25④30 ①34②4③35(④3 「解」问题所给的程序段的外循环是一个阶循 「解」以变量a,b,c的值均为0,变量x的环语句,它的初始化部分置变量i的初值为5,循 值为35,语句 环条件简写成i,即i!=0,每次循环后变量i的值 if(!a)x-; else if(b);if(c)x-3;esex减1所以外循环共控制5次循环。内循环也是一个 4 循环语句,它的初始化部分置变量j的初值为0 由两个语句维成。首先执行前一个语句“r循坏条件是j4,每次循坏后变量j的值增1所以内 if(b);”,因变量a的值为0,条循环共控制4次循环。这样,如内循环的体内未曾 件!a成立,执行x-使x的值变为34接着执行后对变量i和j有修收,在内、外循环起控制下, 继的i语句“if(c)x=3: else x=4;”,因变量c内循环体共被重复执行20次。正确解答是① 的值为0,条件不成立而执行x=4,最终使变量x 12假定a和b为int型变量,则执行以下语气 的值为4正确解答是②。 后b的值为() 注意前一个if语句的else部分的成分语句只有 a=1;b=10 “if(b);”,这是个单分支i语句,且其成分语 do b 句为空语句 B while (b-<0) 9下列语句中,句法错误的是(不考虑语义) ①9②-2③-1④8 ) 解」在这个程序段中,循环廾始前变量a的 ①whl(xy)5;②dox++whie(x-值为1,b的值为10,每次循环从变量b减去a, =10); 并让a增1,并在循环条件判定时,又让b减去1 ③ while(0);④do2; while(a==b) 第一次循环后,变量b的值变成9,变量a的值变 「解」 while语句的一般形式是: 为2,循环判断时,因b的值大于0,循环条件不 成立,结束循环。但在循坏判断时,让b减去了1, 填充题 所以循环结束时,变量b的值为8.正确的解答是④ 13.设x和y为int型变量,则执行下面的循环 1结构化程序设计规定的三和基本结构是 后,y的值为() 结构,选择结构和 结构。 for (y=1 l;y<=50;y++) 解」结构化程序设计的三种基本控制结构是 序结构、选择结构和循环结构。 if (x>=10) break 2若有定义inta=25,b=14,c=19;”,以 if(x%2=1)[X+=5; continue; i 下语句的执行结果是 if(a++<-25&&b-<=2&&c++) printf(“**a=%d,b=%d,c=%d、n”,a, ①2②24③6④8 b,c); 「解」for循环语句的初始化部分置变量x和 else printf(“+#Ha=%d,b=%d,c=%d、n”, y的初值为L,循环条件是(y<=50),每次循环|a 后变量y的值增1,控制循坏最多执行50次。循坯 「鲜」问题所给的i语句中,条件a++<=25 体有三个语句:首先在发现变量x的值大于等于10&&b-<=2&&C是先求逻辑与的第一个运算 时,结束循环:接着是当变量x除2的余数为1(即分量,它是个关系式,关系成立。接着判定第二 变量x是奇数)时,让变量x值增5,让x变成偶个逻辑与运算分量,又是一个关系式,由于变量b 数,并直接进入下一轮循环;如变量x是偶数,则的值是14,b不小于等于2,运算分量的关系式不 从变量x减去3,让变量x变成奇数。由上述分析成立,导致江语句的条件为假,执行ee部分。在 知,每两次循环使变量x的值增加2第一次循环后,求且语句的条件时,计算了2个逻与分量,使变 变量x的值变成6第二次循环后,变量x的值变成量a的值增了1,变量b的值被减了1所以输出内 3.第三次循环后,变量x的位变成8第四次循环后,容是:###a=26,b-13,.-19 变量x的值变成5第五次循环后,变量x的值变成 3以下两条i语句可合并成一条i语句为 10第六次循坯时,因变量x的位大于等于10,直 接跳出循环,这次循环是非正常结束,对变量y的 if (a<=b)x-1 修正只执行了5次。所以循环结束后,变量y的值 else y=2 增全6.正确的解答是③ if(a>b) print(“**y=%dn”,y) 14在C语言中,下列说法中正确的是() clsc printf(“并#x=%dmn”,x); ①不能使用“do语句 while(条件)”的循环 解」在以上两条i语句中,两个条件刚巧相 ②"d语句Wie(条件)”的循环中必须使用反。若将前一个语句的第一个成分语句与第二个 break'语句退出循环 if语句的第二个成分语句合并;第一个i语句的第 ③o语句whie(条件)“的循坏中,当条件二个成分语句与第二个活句的第一个成分语句 非0时将结束循环 并,写成一条i语句如下 ④“do语句 while(条件)”的循环中,当条件 if(a<=b){x=1; printf(“#计#x=%dd,x);} 为0时将结束循环 else{y=2; printf(“*y=%dmn”,y);} 解」do- while语句的一殷形式是: 4设i,j,k均为int型变量,则执行完下面的 do语句 for语句后,k的值为 Whle(表达式) for (i-0,j-10: i<=j: i++,j--)k-itj 其语义是重复执行其成分语句,直至表示条件 「解」该for语句以i为0、j为10初始化, 的表达式值为0时结束。 do-while it句是正常使用循环条件是i≤=,每次循环后i增1、j减1, 的一种循环结构之一。d-whi语句的循环结束条循环体是将i与的和赋给k这样变量k将保存的 件由wile后的表达式值为0所控制,并不一定要是最后一次斌给它值。一次循坏后i为1j为9 有 break语句跳出循环来结束循环。do-whle语句 次循环后i为2j为8,……,五次循环后i为 在条件值非0时,将继续循环,而不是结束循环。5j为5,继续第六次循环,将i与j的和10存于k 条件佰为0时,才结束循环。所以正确的选择是④。后,i为6、j为4,结束循环。所以循环执行后k 为10 5下列程序的功能是输入一个整数,判断是不10,b的值为20,ok1为5,ok2为0 是素数,若为素数输出1,否则输出0,请为程序 程序中给出的i语句可以写成更结构化的形式 填空 main ( if (asb) i int i,x, y=I if(b!=15){ scan/(“0 d”,&x); if(! ok1) x=1: for(i=2;i<=x/2;i++) else( y=0; break; if (ok2) 0 printf(%d\n”,y) else x 「解」为判数x是否是素数,预置变量y的值 为1(x可能是素数),然后用循环,用2至x/2 的整数i测试对ⅹ的整除性,若能被其中的某个整 由于条件a<b成立,并且条件b!=15也成立, 数整除,则x是合数,置y的值为0(不是素数),而ok1不等」0,执行else后的语句。又因ok2等 结束测试循环。若都不能整除,则x为素数。i能于0,执行cs后的语句赋-1给x.所以程序输出1 否整除x,可用求余运算κ‰i等于0来判定。所以 3阅读下列程序,写出程序的输出结果 程序中的空框可填x%i==0测试X为素数的代 main ( 码可写成: for(: y>0; y-) for(i-2;i<=x/2;i++) if(y%3--0){ printf(“%d”,-y); continue;} if (x%i==0)y=0; bleak; 3 解」循环前,变量y的值为9,其中的循J 程序分析题 语句在y大于0情况下循环,每次循环后y的值减 阅读程序,写出运行结果。 1循环体是当y能被3整除时输出表达式-y,输出 main () 的是减1后的y值。这样,第一次循环因y为9, inta=10,b=4,c=3; 能被3整除,输出8,y也变成8.又经两次循环,y if(a<b) a=b 的值变为6,又让y减1变成5,并输出5:又经两 if (a<c) a=c 次循环,y的值变成3,让y减至变成2,输出2; pinr(%d,%d,%dm,a,b,c;|再经两次循环后,y的值变成0,结束循环。所以 程序输出852. 「解」稈序中,第一个i语句i(a<b)a=b, 当a<b时,让b值置a,该语句确保a的值不比b 程序设计题 小。同样第二个IF语句i(a<c)a=c,当a<c 1编一个程序,输入华氏温度(F),按下列公 时,让C值置A,使A的值不比C小。实际;情式计算并输出对应的摄氏温度(C):C=5(F 况是a木来就b和c都大,所以a的值没有变,32)/9 稈序输出a、b和c的原来值:10,4,3. 「解」利用公式:C=5(F-32)/9,输入F 2阅读下列程序,写出程序的输出结果。 氏温度,计算并输出对应的C氏温度,程序要引入 main ( 两个变量,分别用于存储F氏温度和C氏温度,计 N{intx=10,a=10,b=20,ok=5,0k2算时应采用浮点型,包括公式中的常数也应写成浮 点数,不能采用整型和把常数写成整数。因采用整 if (asb) if (b!=15) if(! ok1) x=1 型编写,公式中的除运算变成整除,会得出与实际 else if (ok2) x=10: 要求不一致的结果。程序如下: else x--: t include<stdio. h> printf(“%d、n”,x); main ( { Doat f,c;/*变量定义* 解」程序预置变量x的值为100,a的值为 printf(“输入F氏温度”) scanr(“%6,&); mIn =5.0*(f-32.0)/9.0 if (min>y) min=y: printf(“对应的C氏温度%62fn?”,c); if (min>z) min printf(“浮点数%f,%f,%f中的最小值是%fn 2编一个程序,输入一个整数,输出其符号(若x,y,z,min) 0,输出1;若<0输出-1)。 「解程序可用if语句判断输入数的符号,并 5编一个程序,求出所有各位数字的立方和等 控制输出1或-1.程厅如下: 于1099的3位数。 #t include<stdio.he> 「解」找出所有各位数字的立方和等于1099 main() 的3位整数。3位整数是100至999范围内的整数 {intc;/*变量定义*/ 设分别用a,b,c存储3位数的百位、十位和个位 printf(输入一个整数”); 的数字,程序用三重循环求出a,b,c的立方和为 scanf(“%d”,&c); 1099的3位数a*100b*10+c程序如下 0) printl(1n”); tt incl clsc printf(“-lin”); main () {inta,b,c;/*变量定义*/ 3编一个程序,输入ⅹ的值,按下列公式计算 for(a=1;a<=9;a++) 并输出y的值 for(b=0;b<=9;b++) for(c≡0 9;c++) y=2x-1(1<X<10) if (a*a*a+b*b*b+c*c*c-=1099) 3x-11(10<x) printf(“%odn”,(10*a+b)*10+c); 解」输入x,按公式计算y这可用一个嵌套 的if语句分段判断并计算出y的值。然后输出y值。 若用一个变量i表示3位数,循环体将3位数 程序如下: 变量i分拆出它的白位、|位和个位共3个数字 tt include< stdio.h> 然后判这三个数字的立方和是否是1099,若是就输 mail 出该变量的值。程序如下 {intx,y:/*变量定义*/ #include<stdio. h printf(输入一个整数”); main () scant(“%d”,&x); {inti,a,b,c;/*变量定义* if( x<-=1y=x for(i-100;j<999;i++){ else if (x<10) y=2*xl; a=i/100 else y b=(i%10)/10;或b=(i/10)%10* printf(y=%dn”,y) i%10 if(a*a*a+b*bb+c半c半c==1099) 4编一个程序,输入三个单精度数,输出其中最 printf(%dmn”’,i) 小数。 「解」设最小数存于变量min中,为求三个数 中的最小数,可分以下多步完成,先预置min为x,6编一个程序,输入10个整数,统计并输出其中正 然后分别将其余两个数逐与mn比较,当它们中数、负数和零的个数。 的某个值比存于min中的佰更小时,就用它们更新 「解丨输入10个整数,统计其中正数、负数 min写出程序如下: 和零的个数。程序引入3个计数器变量,用于统计 t include<stdio. h> 大于以小于0和等」0的整数的个数。廾始时,这 main o 3个计数器都置0,然后用循环逐一输入10个整数, float x,y,z,min;泮*变量定义* 并判定当前输入的整数是大于0,或小于0,或等 printf(“输入三个单精度浮点数”) 于0,并按判定结果累加相应计数器。最后,程序 scanf(“%ofg%Gf”,&x,&y,&7) 输出这3个计数器的值。程序如下 【实例截图】
【核心代码】

标签:

实例下载地址

C语言经典习题及其答案详解

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警