#include<stdio.h下载> void fun(int x) {if(x/2>0)fun(x/2); printf(“%d”,x); } main() {fun(3); pri

C++,急急急求。分析下列程序的输出结果。 #include &stdio.h& void fun1( ) {int x=5; printf(“x=%d\n”_百度知道
C++,急急急求。分析下列程序的输出结果。 #include &stdio.h& void fun1( ) {int x=5; printf(“x=%d\n”
++x);printf(“x=%d\n”;fun2(x),x);n”;fun1( );}fun2(int x){printf(“x=%d\}main(){int x=2;n”,x).h&gt。#include &printf(“x=%d\void fun1( ){int x=5分析下列程序的输出结果
提问者采纳
x=%d\===========直接输出x;x=%d&#92,哪里不清楚再问;printf(&quot?}fun2(int x){printf(&/fun2(x);x=%d\==========++x表示先把x加1再使用x,x),换行}希望回答能帮到你,换行;;&#47,于是x等于2+1=3main(){int x=2;n&printf(&n&================直接输出x;;&#47.h&/;n&/fun1( ),x);void fun1( ){int x=5;}&#47,++x),哪有疑问#include &lt
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
如何分析得来
如何分析得来?
5就 不用说了啦 3是函数fun2()访问参数main()的参数X=2 执行print打印3
而后返回这时fun2()的X参数是不可见的
执行MAIN()的print还是访问的是MAIN()的参数
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁3.1.2 例题解析_新编C语言习题与解析_红黑联盟读书频道
3.1.2 例题解析
本文所属图书&>&
本书根据计算机专业C语言程序设计课程的教学大纲编写,全书共分9章,分别介绍了C语言概述、数据类型及其运算、选择语句和循环语句、数组、指针、函数、结构体和共用体、预处理和位段、文件。每章由基本知识点和例...&&
1. 单项选择题
【例3-1-1】以下错误的语句为&&&&& 。
A. if(x&y);
B. if(x=y)&&(x!=0) x+=y;
C. if(x!=y) scanf(&%d&,&x);else scanf(&%d&,&y);
D. if(x&y) {x++;y++;}
&解:if语句的条件表达式必须包含在一个括号中。本题答案为B。
【例3-1-2】以下错误的if语句形式是&&&&& 。
A. if(x&y&&x!=y);
B. if(x==y) x+=y;
C. if(x!=y) scanf(&%d&,&x) else scanf(&%d&,&y);
D. if(x&y) {x++;y++;}
&解:选项C中if后面的scanf函数之后掉了一个语句结束符&;&。本题答案为C。
【例3-1-3】C语言的if语句中,用作判断的条件表达式为&& &&&。
A. 任意表达式&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. 逻辑表达式
C. 关系表达式&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. 算术表达式
&解:在C语言中没有逻辑型变量,它是一种&表达式&化了的语言,故任何类型的表达式都可以用作类型判断,且判断的标准是零值为假,非零值即真。本题答案为A。
【例3-1-4】为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else 子句总是与&&& 配对。
A. 缩排位置相同的if &&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. 同一行上的if
C. 其之后最近的if&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&& D. 其之前最近的if
&解:本题答案为D。
【例3-1-5】已知int a,b;,对于以下if语句:
if (a=b) printf(&a=b\n&);
在编译时,C编译程序&&&&& 。
A. 能指出该语句有语法错误&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. 不能指出该语句有语法错误
C. 编译正确,其功能是当b为0时输出&a=b&& D. 以上都不对
&解:&a=b&可以看成是一个条件表达式,由b的值决定其真假,当b为0时,a=b返回0表示条件为假,不会输出&a=b&。本题答案为B。
【例3-1-6】若执行以下程序时从键盘上输入9,则输出结果是&&&&& 。
#include &stdio.h&
void main()
&&& scanf(&%d&,&n);
&&& if(n++&10) printf(&%d\n&,n);
&&& else printf(&%d\n&,n--);
A. 11& &&&&&&&&&&&&&&&&&&&&&&&&&&& B. 10&&&&& &&&&&&&&&&&&&&&&&&&& C. 9&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. 8
&解:n=9,执行n++返回9,n=10,所以n++&10为真,输出n值。本题答案为B。
【例3-1-7】以下程序的输出结果是&&&&& 。
#include &stdio.h&
void main()
{ &&int x=2,y=-1,z=2;
&&& if(x&y)
&&&&&&& if(y&0) z=0;
&&&&&&& else z+=1;
&&& printf(&%d\n&,z);
A. 3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. 2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& C. 1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. 0
&解:x&y为假,直接执行printf语句。本题答案为B。
【例3-1-8】有如下程序:
#include &stdio.h&
void main()
{& &float x=2.0,y;
&&& if(x&0.0) y=0.0;
&& &else if(x&10.0) y=1.0/x;
&&& else y=1.0;
&&& printf(&%f\n&,y);
该程序的输出结果是&&&&& 。
A. 0.000000 &&&&&&&&&&&&&&&&& B. 0.250000&&&&&&&&&&&&&&&& C. 0.500000&&&&&&&&&&&&&&&& D. 1.000000
&解:依条件执行y=1.0/x=0.5。本题答案为C。
【例3-1-9】有以下程序:
#include &stdio.h&
void main()
{& &int &i=1,j=1,k=2;
&&& if((j++ || k++) && i++)
&&&&&&& printf(&%d,%d,%d\n&,i,j,k);
执行后输出结果是&&&&& 。
A. 1,1,2&&&& &&&&&& &&&&&& &&&&&& B. 2,2,1&&&&&&&&&&&&&&&&&&&&&& C. 2,2,2&&&&&&&&&&&&&&&&&&&&&& D. 2,2,3
&解:执行j++,j=2,返回1为真,不执行k++,k值不变,再执行i++,i=2,返回1为真,所以表达式((j++ || k++) && i++)为真,执行printf语句。本题答案为C。
【例3-1-10】有以下程序:
#include &stdio.h&
void main()
{&& int&&& a=5,b=4,c=3,d=2;
&&& if(a&b&c)
&&&&&&& printf(&%d\n&,d);
&&& else if((c-1&=d)==1)
&&&&&&& printf(&%d\n&,d+1);
&&&&&&& printf(&%d\n&,d+2);
执行后输出结果是&&&&& 。
A. 2&&&&&&&&&&&&&&&&&&&&&&& B. 3&&&&&&&&&&&&&&&&&&&&&&&&&&& C. 4&&&&&&&&&&&&&&&&&&&& D. 编译时有错,无结果
&解:a&b为真即1,1&c为假,c-1&=d为真即1,执行printf(&%d\n&,d+1)语句。本题答案为B。
【例3-1-11】以下程序的运行结果为&&&&& 。
#include &stdio.h&
void main()
{&& int a=2,b=-1,c=2;
&&& if (a&b)
&&& &&&&if(a&b) c=0;
&&& &&&&else c+=1;
&&& printf(&%d\n&,c);
A. 0&& &&&&&&&&&&&&&&&&&&&&&&&&&&& B. 1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& C. 2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. 3
&解:a&b为假,直接执行printf语句。本题答案为C。
【例3-1-12】有一函数,,以下程序段中不能根据x值正确计算出y值的是&&&&& 。
A. if(x&0) y=1;&&&&&&&&&&&&&& &&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&& B. y=0;
else if(x==0) y=0;&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&& & if(x&0) y=1;
else y=-1;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&& & else if(x&0) y=-1;
C. y=0;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&& &&&&&&&&&&&&& D. if(x&=0)
if(x&=0);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&& &if(x&0) y=1;
if(x&0) y=1;&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&& &else y=0;
else y=-1;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & &&&&&&&&&&&&&else y=-1;
&解:在选项C中,若x=0,先执行y=0,if (x&0)的条件为假,执行else包含的y=-1语句,结果x=0,y=-1,错误。本题答案为C。
【例3-1-13】若a、b、c1、c2、x、y均是整型变量,正确的switch语句是&&&&& 。
A. switch(a+b);&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. switch(a*a+b*b)&&&&&&
& {& case 1:y=a+b;&&&&&&&&&&&&&&&& &{ &&&&& case 3:
&& && case 0:y=a-b;&&&&&&&&&&&&&&&&&& &&&&&& case 1:y=a+b;
& }&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&& case 3:y=b-a,
& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }
C. switch a&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. switch(a-b)
& {&&&& case c1:y=a-b;&&&&&&&&&&&&&&& &{&&&& default:y=a*b;
& &&&&&& &case c2: x=a*d;&&&&&&&&&&&&&&& &&&& case 3:case 4:x=a+b;
& &&&&&& &default:x=a+b;&&&&&&&&&&&&&&&&&&&&&& &&&& case 10:case 11:y=a-b;
& }&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&}
&解:选项A中switch(a+b)后的分号错误,选项B中出现重复的常量表达式;选项C中条件应包含在括号中。本题答案为D。
【例3-1-14】若有定义 int a,,则合法的switch语句是&&&&& 。
A. switch(w)&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& B. switch(a);
& &{ & case 1.0: printf(&*\n&);&&&&&&& &&&&&&& &&&&&&{ &&&&&& case 1 printf(&*\n&);
&& &&&& case 2.0: printf(&**\n&);&&&&&&&& &&&&&&&&&&&&&&&&&& case 2 printf(&**\n&);
& &}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&& &&}
C. switch(b)&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&& D. switch(a+b);
& &{ & case 1: printf(&*\n&);&&&&&&& &&&&&&&&&& &&&&&&{ &&&&&& case 1:printf(&*\n&);
&&& &&default: printf(&\n&);&&&&&&&&&& &&&&&&&&&&&&&&&&&& case 2: printf(&**\n&);
&& &&&case 1.0+2: printf(&**\n&);&&&&&&&& &&&&&&&&&&&&&& default: printf(&\n&);
& &}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & &&&&&&}
&解:选项A中常量表达式不为整型;选项B中&case 常量表达式&后没有&:&号;选项C中&case 1.0+2:&错误。本题答案为D。
【例3-1-15】若a、b均是整型变量,正确的switch语句是&&&&& 。
A. swich(a)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. switch(a)
&&&{ & case 1.0:printf(&i\n&);&&&&&&&&&&&&&&&&&&&&&&&& &{& case b:printf(&i\n&);
&& &&& case 2:printf(&you\n&);&&&&&&&&&&&&&&&&&&&&&&&&&&&&& case 1:printf(&you\n');
& }&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
C. switch(a+b)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& D. switch(a+b)
& {&&&& case 1:printf(&i\n&);&&&&&&&&&&&&&&&&&&&&&&&&&&& & {& case 1:printf(&i\n&);
&& &&& case 2*a:printf(&you\n&);&&&&&&&&&&&&&&&&&&&&&&&&&& case 2:printf(&you\n&);
& }&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&解:选项A中常量表达式不为整型;选项B中常量表达式中包含变量;选项C中&case 2*a:&错误。本题答案为D。
【例3-1-16】有以下程序:
#include &stdio.h&
void main()
{& &int a=15,b=21,m=0;
&&& switch(a%3)
&&& case 0:m++;
&&& case 1:m++;
&&& &&&&&switch(b%2)
&&&&&&& &{
&&&&&&& &default:m++;
&&&&&&& &case 0:m++;
&&&&&&& &}
&&& printf(&%d\n&,m);
程序运行后的输出结果是&&&&& 。
A. 1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& B. 2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& C. 3&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&& D. 4
&解:a%3=0,执行m++和printf语句。本题答案为A。
【例3-1-17】有如下程序:
#include &stdio.h&
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=1&&&&&&&&&&&&&&&&&&&& B. a=1,b=1&&&&&&&&&& C. a=1,b=0&&&&&&&&&&&&&&&&& D. a=2,b=2
&解:执行case 1对应的语句,由于没有break语句,实际执行a++,a++,b++。本题答案为A。
【例3-1-18】有如下程序:
#include &stdio.h&
void main()
{& &float& x=2.0,y;
&&& if (x&0.0) y=0.0;
&&& else if(x&10.0) y=1.0/x;
&&& else y=1.0;
&&& printf(&%f\n&,y);
该程序的输出结果是&&&&& 。
A. 0.000000&&&&& &&&&&&&&&&&&& B. 0.250000&&&&&&&&&&&&&&&& C. 0.500000&&&&&&&&&&&&&&&& D. 1.000000
&解:x&0.0为假,x&10.0为真,执行y=1.0/x=0.5。本题答案为C。
【例3-1-19】若从键盘输入58,则以下程序输出的结果是& &&&&。
#include &stdio.h&
void main()
&&& scanf(&%d&,&a);
&&& if(a&50)& printf(&%d&,a);
&&& if(a&40)& printf(&%d&,a);
&&& if(a&30)& printf(&%d&,a);
&解:a=58,三个if语句的条件都成立。本题答案为585858。
【例3-1-20】下列程序的输出结果是&& &&&。
#include &stdio.h&
void main()
{& &int n='c';
&&& switch(n++)
&&& default: printf(&error&);
&&& case 'a':case 'A':case 'b':case 'B':
&&&&&&& printf(&good&);
&&& case 'c':case 'C':printf(&pass&);
&&& case 'd':case 'D':printf(&warn&);
&解:n为int型变量,执行n++后,n为'd'对应的ASCII码,但该表达式仍返回'c'对应的ASCII码,与case 'c'匹配,由于其后的语句没有break语句,故执行printf(&pass&)和printf(&warn&)两个语句。本题答案为passwarn。
【例3-1-21】根据以下if语句写出与其功能相同的switch语句(x的值在0~100之间)。if语句:
if (a&40) b=1;
else if (a&50) b=11;
else if (a&60) b=111;
else if (a&70) b=1111;
else if (a&80) b=11111;
switch语句:
switch(& ①& )
& ②& &b=1;
case 4:b=11;
case 5:b=111;
case 6:b=1111;
& ③& &b=11111;
&解:本题答案为①a/10 ②case 0:case 1:case 2:case 3:③case 7:。
【例3-1-22】以下程序的输出结果是&&&& 。
#include &stdio.h&
void main()
{&& int x=0,y=2,z=3;
&&& switch(x)
&&& case 0: witch(y==2)
&&&&&&& &&&&{
&&&&&&&&&&& case 1:printf(&*&);
&&&&&&&&&&& case 2:printf(&%&);
&&&&&&&&&&& }
&&& case 1: switch(z)
&&& &&&&&&&&{
&&&&&&&&&&& case 1:printf(&$&);
&&&&&&& &&&&case 2:printf(&*&);
&&& &&&&&&&&default:printf(&#&);
&&&&&&& &&&&}
&解:x=0,y=2,执行外层switch的case 0的语句,输出&*&,再执行执行外层switch的case 1的语句,输出&#&。本题答案为*#。
【例3-1-23】判断以下叙述的正确性。
(1)在&if (表达式) 语句1 else 语句2&的结构中,如果表达式为a&10,则else的条件隐含为a&10。
(2)C语言规定,else总是与它上面、最近的、尚未配对的if配对。
(3)在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。
(4)各种形式的if语句是不能互相嵌套的。
(5)if (a&b) printf(&%d&,a)'else printf(&%d&,b);语句可以用printf(&%d&,a&b?a:b);替代。
&解:(1)错误。else的条件隐含为a&10。
(2)正确。&&&&&&&&&&&&& (3)正确。
(4)错误。各种形式的if语句可以互相嵌套。
(5)正确。
【例3-1-24】判断以下叙述的正确性。
(1)switch&case结构中case后的表达式必须为常量表达式。
(2)可以用swicth结构实现的程序都可以使用if语句来实现。
(3)switch&case结构中条件表达式和常量表达式值可以为float类型。
(4)switch语句在执行break语句或者遇到switch语句的&}&时结束。
(5)由float x=3e-6,y=3e-6;可得x==y的逻辑值总是为真。
&解:(1)正确。&&&& (2)正确。
(3)错误。switch&case结构中条件表达式和常量表达式值都必须是整型或字符型,不允许是浮点型。
(4)正确。&&&&&&&&&&&&& (5)错误。通常不要比较几个浮点数是否相等。
【例3-1-25】下面的程序:
#include &stdio.h&
void main()
{&& int a,b,m,n;
&&& scanf(&%d%d,\n&,&a,&b);
&&& m=1;n=1;
&&& if (a&0) m=m+n;
&&& if (a&b) n=2*m;
&&& else if (a==b) n=5;
&&& else n=m+1;
&&& printf(&m=%d n=%d\n&,m,n);
回答以下问题:
(1)当输入为-1 -2L时,程序的运行结果是什么?
(2)当输入为1 0L时,程序的运行结果是什么?
(3)为了输出n=4,变量a和b应具备什么条件?
&解:(1)m=1,n=1,输入后,a=-1,b=-2,a&0为假,a&b和a==b都为假,执行语句n=m+1=2;所以输出为m=1 n=2。
(2)m=1,n=1,输入后,a=1,b=0,a&0为真,执行语句m=m+n=2;a&b和a==b都为假,执行语句n=m+1=3;所以输出为m=2 n=3。
(3)要使n=4,就应执行语句m=m+n和n=2*m,为此要求满足条件a&0和a&b,即0&a&b。
5. 程序设计题
【例3-1-26】编写一个程序,将给定的百分制成绩转换为成绩等级A、B、C、D、E。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
&解:使用switch语句进行转换。对应的程序如下:
#include &stdio.h&
void main()
&&& printf(&分数:&);
&&& scanf(&%d&,&s);
&&& switch(s/10)
&&& case 9:
&&& case 10:printf(&A\n&);
&& &case 8:printf(&B\n&);
&&& case 7:printf(&C\n&);
&&& case 6:printf(&D\n&);
&&& case 5: case 4: case 3: case 2: case 1: case 0:
&&&&&&& printf(&E\n&);
【例3-1-27】编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?闰年的条件是年份能被4整除但不能被100整除,或者能被400整除。
&解:直接根据闰年的定义求解,如果是闰年,2月份为29天;否则为28天,其他月份相同。规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季。程序如下:
#include &stdio.h&
void main()
{& &int y,m,leap,season,
&&& printf(&年份,月份:&);
&&& scanf(&%d,%d&,&y,&m);
&&& if ((y%4==0 && y%100!=0) || (y%400==0))
&&&&&&& leap=1;&&&&&&&&&&&&&&&&&&& /*为闰年*/
&&&&&&& leap=0;&&&&&&&&&&&&&&&&&&& /*为平年*/
&&& if (m&=3 && m&=5)
&&&&&&& season=1;
&&& else if (m&=6 && m&=8)
&&&&&&& season=2;
&&& else if (m&=9 && m&=11)
&&&&&&& season=3;
&&&&&&& season=4;
&&& switch (m)
&&& case 1:case 3:case 5:case 7:case 8:case 10:
&&& case 12:days=31;&&&&&&& /*1、3、5、7、8、10、12月份为31天*/
&&& case 4:case 6:case 9:
&&& case 11:days=30;&&&&&&& /*4、6、9、11月份为30天*/
&&& case 2:if (leap==1) days=29;
&&&&&&&&&&& else days=28;
&&& printf(&%d年%s闰年\n&,y,(leap==1 ? &是& :& &不是&));
&&& printf(&该季节是&);
&&& switch(season)
&&& case 1:printf(&春季\n&);
&&& case 2:printf(&夏季\n&);
&&& case 3:printf(&秋季\n&);
&&& case 4:printf(&冬季\n&);
&&& printf(&当月天数:%d\n&,days);
【例3-1-28】编写一个程序,根据用户输入的三角形的三条边长判定是何种三角形,对于有效三角形,求其面积。
&解:判定几类三角形的过程如下。
(1)能够组成三角形:满足两边之和大于第三边的条件,又分为以下三种情况。
l等边三角形:三边相等。
l等腰三角形:两边相等(三种情况)。
l直角三角形:两边平方和等于第三边平方(三种情况)。
l一般三角形。
(2)不能组成三角形:不满足两边之和大于第三边的条件。
对应的程序如下:
#include &stdio.h&
#include &math.h&
void main()
{& &float a,b,c;
&&& float s,
&&& printf(&a,b,c=&);
&&& scanf(&%f,%f,%f&,&a,&b,&c);
&&& if (a+b&c && b+c&a && a+c&b)
&&& {&& s=(a+b+c)/2;
&&&&&&& area=sqrt(s*(s-a)*(s-b)*(s-c));
&&&&&&& printf(&area=%f\n&,area);
&&&&&&& if (a==b && b==c)
&&&&&&&&&&& printf(&等边三角形\n&);
&&&&&&& else if (a==b || a==c || b==c)
&&&&&&&&&&& printf(&等腰三角形\n&);
&&&&&&& else if ((a*a+b*b==c*c) || (a*a+c*c==b*b) ||(b*b+c*c==a*a))
&&&&&&&&&&& printf(&直角三角形\n&);
&&&&&&& else
&&&&&&&&&&& printf(&一般三角形\n&);
&&&&&&& printf(&不能组成三角形\n&);
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。求大师解答计算机二级c语言题_百度知道
求大师解答计算机二级c语言题
fun(6);0) fun(x&#47?为什么要把3和6加进去呢;2);#include &);2&%d &printf(&quot.h&\
printf(&}程序运行后的输出结果是_____为什么是1 3 6;fun(int x){
if (x&#47,x);n &quot
提问者采纳
打印出3;开始收缩,展开fun(6),再返回到第一次调用,递归函数的调用的过程包括展开和收缩两个环节,fun(3);打印出1;然后是fun(1),1/2&lt,返回到第二次调用;0,打印出6;结果就是136了fun(int x)是一个递归函数。第一次调用,接着第二次调用
提问者评价
O(∩_∩)O谢谢
其他类似问题
为您推荐:
计算机二级c语言的相关知识
其他1条回答
你好:10×2+10×2=40元40÷5=8元乙原有:8+10=18元甲原有:18+10×2=38元
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁#include &stdio.h& void fun(int x) {if(x/2&1) fun(x/2); printf(&%d&,x); } main() { fun(7); printf(&, #include &stdio.h& void
#include &stdio.h& void fun(int x) {if(x/2&1) fun(x/2); printf(&%d&,x); } main() { fun(7); printf(& 有知道的告诉下啊,7 而不是7为什么答案是3 ,小弟不知为何这样,谢谢了,3呢 云水X禅心 #include &stdio.h& void fun(int x) {if(x/2&1) fun(x/2); printf(&%d&,x); } main() { fun(7); printf(&
fun(7)先递归调用fun(3), fun(3)打印出3,退出返回到fun(7), 打印 7
3);2 & 3)打印3printf(7); 1) fun(7 /
这时是先调用的fun(7 /3)而不是print fun(7 &#47fun(7) {if(7&#47
热心网友#include&stdio.h& main() { int x=1,y=0; if(!x)y++; else if(x==0) if(x) y+=2; else y+=3; printf(%d_百度知道
#include&stdio.h& main() { int x=1,y=0; if(!x)y++; else if(x==0) if(x) y+=2; else y+=3; printf(%d
y应该按y+=3算等于3呀,; printf(&%d\main(){ int x=1; else y+=3;n&}麻烦问一下上面这个程序x=1;,y=0,y);stdio#include&lt.h&gt!x不久应该是0么!x)y++; if(; else if(x==0) if(x) y+=2,为什么结果是0
提问者采纳
if(我整理了一下;因为else总是与尽可能近的if配对,你就清楚了;x=1,你的程序就相当于;%d\n&quot:#include&y+=3;
} } printf(&quot.h&;y+=2,y=0,y)!x)y++; else {
if(x)&}&main(){ int&nbsp
提问者评价
谢谢,我是!X的定义不清楚
来自团队:
相关专业回答
#include &stdio.h&
int x,y,z;
z=x++,y++,++y;
printf(&%d,%d,%d\n&,x,y,z); }
其中x++是表明在执行完z=x后x才会自动加一,z=x++这条语句执行完后z=1,x=2
y++也是在这条语句结束后才会加一,这时y=2;
++y,是在这条语句执行前y自动加一,这时y=3
所以结果会是2,3,1
给你举一个例子:
int a=b=0;
a=++b;因为++b是...
其他类似问题
为您推荐:
其他2条回答
y+=3,其中的每一个判断都不成立;}printf(&else if(x==0){
y+=2.h〉main(){int x=1;if(,y=0;}应该是这样的嵌套,所以y为初始值0;;%d&#92#include〈stdio,y)
你没用{}这个 把语句划分清楚
你用单步调式设断点
一句一句的运行
你就会发现的
printf的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 stdio.h下载 的文章

 

随机推荐