请高手帮我解决一下这道C语言题目,谢谢!

请高手帮我解决一下这道C语言题目,谢谢!~

最终会输出7,这是一个递归调用。首先第一次调用sub函数n=8k=1,然后第二次n=4,k=2然后第三次n=2,k=4然后不满足if的条件执行*a+=k;x=4然后返回到第二次执行的sub函数执行*a+=k;x=6(4+2)然后到第一次执行的sub函数x=7(4+2+1)

给你稍改了下,如有不明,可留言


#include
#include
#include
main()
{
int i,num=0;
int a,b,c;
float d,d_answer;
int answer;
int choose;
char ch='Y';
srand(time(0));
while(ch=='y'||ch=='Y')
{
printf(" 菜单
");
printf("1.10加法题
");
printf("2.10减法题
");
printf("3.10乘法题
");
printf("4.10除法题
");
printf("5.退出
");
printf("请选择相应的选项
");
scanf("%d",&choose);
switch(choose)
{
case 1:
for(i=1;i<=10;i++)
{
a=rand()%10;
b=rand()%10;
c=a+b;
printf("%d. %d+%d=
",i,a,b);
scanf("%d",&answer);
if(c==answer){printf("回答正确
"); num++;}
else printf("回答错误
");
}break;
case 2:
for(i=1;i<=10;i++)
{
do{
a=rand()%10;
b=rand()%10;
c=a-b;
}while(c<0);
printf("%d. %d-%d=
",i,a,b);
scanf("%d",&answer);
if(c==answer){printf("回答正确
"); num++;}
else printf("回答错误
");
}break;
case 3:
for(i=1;i<=10;i++)
{
a=rand()%10;
b=rand()%10;
c=a*b;
printf("%d. %d*%d=
",i,a,b);
scanf("%d",&answer);
if(c==answer){printf("回答正确
"); num++;}
else printf("回答错误
");
}break;
case 4:
for(i=1;i<=10;i++)
{
a=rand()%10;
b=rand()%10;
if(b!=0)
{
d=(float)a/b;
printf("%d. %d/%d=
",i,a,b);
scanf("%f",&d_answer);
if(d==d_answer){printf("回答正确
"); num++;}
else printf("回答错误
");
}
}break;
case 5:exit(0);
default:printf("无效指令!
");exit(0);
}
fflush(stdin);
printf("**************************************
");
printf("答对%d题
",num);
printf("**************************************
");
printf("再来一次?(Y/N)
");
scanf("%c",&ch);
system("cls");
}
}



如果对你有所帮助,请记得采纳最佳答案,谢谢!

这道题答案选:C
#include<stdio.h>
fun(int x)
{
static int a=3; //a为静态变量(局部变量),该变量只能刚开始进行初始化。
a+=x;
return(a);
}
main( )
{
int k=2, m=1,n;
n=fun(k); //调用函数此时得到n=5,上面的a=5了!!!
n=fun(m); //继续调用,因为a=5了,所以n=a+m=5+1=6;
printf("%d",n);//此程序的输出结果为6,所以答案选C
}

A

B fun(1)=n=4 看最后的赋值 所以是B

应选C:本人没分析,直接拷贝到VC6.0调试,运行,结果为6

选C 6
因为static int a=3;
a静态变量,只是在首次调用时定义并初始化
并每次调用完后并不会消失,而是a的值保持不变

请高手帮我解决一下这道C语言题目,谢谢!
答:1、1234567 s1指针指向1,s2指针指向7 t=*s1++ s1指针指向2(t得到1的值 1)s1=*s2-- s2指针指向6(值发生改变1734567)s2=t; (值发生改变1734517)2、s1指针指向2,s2指针指向6 t=*s1++ s1指针指向...

我是学计算机的,有几道C语言的题目,请高手帮忙解答一下(关于指针的...
答:c语言中,函数形参为指针,则想函数传递的是实参的地址,对 *指针 的操作会反映到实参上 就像 1题中 sub(10,5,&a); 向形参z传递的是 a的 地址,在 函数中对 *z 的操作就是对a的操作 因此 a,b,...

我这有C语言的题,哪位大侠能解决一下,必有重谢!
答:A B C D 6、若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为( )。本题(1分)A:j*m+iB:i*m+jC:i*m+j-1D:j*m+i-1 A B C D 7、当a=2,b=3,c=4,d=5时, 执行下面一段程序后x的值为( )。

C语言求助,哪位大佬帮我看看这道题?一直搞不清楚
答:帮助的人:5.2万 我也去答题访问个人页 关注 展开全部 这是一道C语言的增删改查的链表操作操作的典型题目,同时考察对结构体的理解程度。最简单的就是使用顺序链表做。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...

请c语言高手帮我解决问题?
答:第四题的执行过程已经加上,在第四题部分!第一题:先计算a-1,然后计算a++,最后将开始计算的a-1的值赋值给c;例如:a=6,则执行此条语句后a的值为7,c的值为5;第二题:?:即条件运算符,是c中唯一的三目...

C语言问题!请各位高手帮一下忙。
答://好无聊的代码,简单解释下//包含系统自带的头文件,这样可以用对应头文件所申明并实现的函数#include <stdio.h>//两个函数的申明void scalarMultiply (int nRows, int nCols, int matrix[nRows][nCols], int scalar)...

C语言程序设计 我是C语言初学者,有一道看程序的题我有些弄不懂,还请...
答:答案:C A:是如果a>b,则一程序一直执行到“b=c;”,效果是换a与b的值;B:是如果a>b,则执行{ }里的语句,效果是交换a与b的值;C:是如果a>b,则执行c=a; 无论a是否大于b,c的值都要给a,a-b;没什么...

有没有高手帮忙解一下C语言的题,谢谢!
答:url=vnoIuYCVawprcnuo-IK0D4w6_Qjv7rgE5xh3Ileb0Th7hfRyvfBwOsbsDRh8C7sQQ6ul9yNhEv7_8TtIa2KyKa D、break就只有break;这么一条语句,可没有参数哟 5、B C语言可以嵌套调用函数,不可以嵌套定义函数,所以一下子...

c语言有一道题不会做,求高手解,最好分析一下。
答:答案是:C 因为scanf("%c%c",&a,&b);接收的是1和2,在输入后按了“回车”这个回车符会传递到下一句,也就是:c=getchar(); ,这样 c 赋值为回车符了;d=getchar(); 接着就是这句,你输入34的时候,d 只...

高手看一下C语言的这道题
答:如果要计算c=a+6,可以写成c=*b+3。问题②:解析中 为什么说*是指针运算符,在那个位置不应该是指针类型说明符吗,不应该是运算符呀 前面分析过,“指针运算符“与”间址运算符“是同一个意思的两种叫法,在变量声明...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网