谁能帮我解决下面的C语言问题啊,最好能说明解析过程。
一.第四章选择结构(4题),解题说明。1.以下程序的输出结果是#include<stdio.h>main(){inta=15,b=21,m=0;switch(a%3){c...
一.第四章选择结构(4题),解题说明。
1.以下程序的输出结果是
#include<stdio.h>
main()
{ int a=15,b=21,m=0;
switch(a%3)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
2.设说明语句"int a=1,b=0;",则执行以下语句输出为( )
switch(a)
{ case 1:
switch (b)
{case 0: printf(" * * 0 * * ");break;
case 1: printf(" * * 1 * * ");break;
}
case 2: printf(" * * 2 * * ");break;
}
3. 以下程序输出结果为( )
#include <stdio.h>
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d,%d\n",x,y);
}
4.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是( ) 展开
1.以下程序的输出结果是
#include<stdio.h>
main()
{ int a=15,b=21,m=0;
switch(a%3)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{default:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
2.设说明语句"int a=1,b=0;",则执行以下语句输出为( )
switch(a)
{ case 1:
switch (b)
{case 0: printf(" * * 0 * * ");break;
case 1: printf(" * * 1 * * ");break;
}
case 2: printf(" * * 2 * * ");break;
}
3. 以下程序输出结果为( )
#include <stdio.h>
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d,%d\n",x,y);
}
4.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是( ) 展开
展开全部
1、结果:1
解析:执行switch(a%3),由于a%3=0,满足case 0,因此执行其后语句m++,接着执行break语句,由于break语句有跳出switch语句的功能,因此在此处跳出switch语句,执行printf语句,m自加过一次,故输出结果:1;
2、结果:**0****2**
解析:道理同第1题,执行switch(a),满足条件进入switch(b),接着满足条件执行case 0后语句,break跳出switch(b),由于跳出后没有语句break,因此接着执行switch(a)。记住一点:break语句只能跳出一个switch;
3、至于这题,估计是你输错了,如果题目真这样,就是题目错了。编译都不可能通过,在程序中变量x,y都没定义过;
4、结果:0
解析:此题主要就是个运算符优先级的问题,C中运算优先级从高到低是这样的:
非(!)——算术运算符——关系运算符——与和或——赋值运算符
解析:执行switch(a%3),由于a%3=0,满足case 0,因此执行其后语句m++,接着执行break语句,由于break语句有跳出switch语句的功能,因此在此处跳出switch语句,执行printf语句,m自加过一次,故输出结果:1;
2、结果:**0****2**
解析:道理同第1题,执行switch(a),满足条件进入switch(b),接着满足条件执行case 0后语句,break跳出switch(b),由于跳出后没有语句break,因此接着执行switch(a)。记住一点:break语句只能跳出一个switch;
3、至于这题,估计是你输错了,如果题目真这样,就是题目错了。编译都不可能通过,在程序中变量x,y都没定义过;
4、结果:0
解析:此题主要就是个运算符优先级的问题,C中运算优先级从高到低是这样的:
非(!)——算术运算符——关系运算符——与和或——赋值运算符
展开全部
1、1
2、 * * 0 * ** * 2 * *
3、where is x and y?
4、0
2、 * * 0 * ** * 2 * *
3、where is x and y?
4、0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题. 答案 1.
第二题 * * 0 * ** * 2 * *
第三题 输出的 x ,y 不知道是什么;
第四题 答案 0
第二题 * * 0 * ** * 2 * *
第三题 输出的 x ,y 不知道是什么;
第四题 答案 0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(1)
#include <stdio.h>//头文件
int f(int n)//定义函数f,有一个参数n,为整型
{ int i,c,v;
if(n==1)//如果n等于1,输出1,函数返回值为1
v=n/2;//v等于n除以2,取整
printf("%d ",v);//输出v
c=f(n-v);//调用函数f,递归调用!
return(c+1);返回 c+1
}
数学上的公式就是:
当n为偶数时:f(n)=f(n-n/2)+1
当n为奇数时,f(n)=f(n-(n-1)/2)+1
当n=1时,f(n)=1
main()
(2)#include <stdio.h>
int f(int d[],int n,int i)
{ int j,c;
for(c=j=0;j<n;++j){
if(j==i)continue; //如果j等于i,不需要比较,d[i]肯定能被d[j]整除,直接跳出本次循环,继续判断下一次循环条件是否满足。
if(d[i]%d[j]==0)//如果d[i]能被d[j]整除,c自增1
++c;
}
return(c);//返回c的值,为数组a中能被a[i]整除的元素的个数。
}
main()
; int i;
for(i=0;i<6;++i)printf("%d\n",f(a,6,i));//f(a,6,i)输出能被a[i]整除的元素个数(不包括自身)
}
#include <stdio.h>//头文件
int f(int n)//定义函数f,有一个参数n,为整型
{ int i,c,v;
if(n==1)//如果n等于1,输出1,函数返回值为1
v=n/2;//v等于n除以2,取整
printf("%d ",v);//输出v
c=f(n-v);//调用函数f,递归调用!
return(c+1);返回 c+1
}
数学上的公式就是:
当n为偶数时:f(n)=f(n-n/2)+1
当n为奇数时,f(n)=f(n-(n-1)/2)+1
当n=1时,f(n)=1
main()
(2)#include <stdio.h>
int f(int d[],int n,int i)
{ int j,c;
for(c=j=0;j<n;++j){
if(j==i)continue; //如果j等于i,不需要比较,d[i]肯定能被d[j]整除,直接跳出本次循环,继续判断下一次循环条件是否满足。
if(d[i]%d[j]==0)//如果d[i]能被d[j]整除,c自增1
++c;
}
return(c);//返回c的值,为数组a中能被a[i]整除的元素的个数。
}
main()
; int i;
for(i=0;i<6;++i)printf("%d\n",f(a,6,i));//f(a,6,i)输出能被a[i]整除的元素个数(不包括自身)
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询