[C语言]这道题答案为什么是m=4,k=4,i=5,k=5?能解释其中m.k的变化么?谢谢!!

作者&投稿:罗鲁 (若有异议请与网页底部的电邮联系)
一道C语言题,请解释m的初值是多少~

题目有错:printf("%d,",f(++n); 少了个括号
改过来后:
程序运行后的输出结果是1,2
因为这个static int n=0;是静态变量,进过printf("%d,",f(++n));值n会变成1

m 只是一个形参,只是用来接收传过来的实参,没有m的初值这一说法、、、

n/=10 就是 n = n/10 也就是 把 n 除 10 的值 赋值给 n。

由于n和10都是整形,所以/是整除,即舍去了余数,如 100/10 = 10, 101/10 = 10 (余数1舍去了), 99 / 10 = 9 (余数9舍去了), 10/10 = 1, 9/10 = 0 (余数9舍去了)。

你的程序中是判断一个整数有多少位,比如 1234。
第1次 循环开始 n/10后 n = 123, 循环结束 a=2
第2次 循环开始 n/10后 n = 12, 循环结束 a=3
第3次 循环开始 n/10后 n = 1, 循环结束 a=4
第4次 循环开始 n/10后 n = 0, 终止循环(因为非0值,执行循环,0终止循环)

所以结果1234是一个4位数

首先调用fun(i++),因为i=4,所以调用fun(4),此时,i的值也变成了5.

形式参数m=4;k=0.

  1. m+=k,即m=m+k,此时m=4+0=4;

  2. k+=m,即k=k+m,此时k=0+4=4;

  3. 打印m=4,k=4,之后k=5;

然后回到主函数,打印i=5,k=5.

注意:i++表示先使用i的值,然后i再自增1.




C语言:这个题的答案和解法那个大神能给我写一下谢谢!
m=1+1+2+3+4 所以输出m=11

大佬们求教这道c语言的题的答案,谢谢?
答案是:3。首先,注意大括号的位置,switch(b%2)其实是swith(a%3)的case:1的执行内容。一,判断a%3是1,所以执行:case 1:m++;switch(b%2){ default:m++;case 0:m++;break;} 这里switch(b%2),先执行了default,由于没有break语句,又无条件执行了case 0:的内容。所以共执行了3次m+...

请教各位C语言大佬,这道题答案是什么
这是二维数组默认初始化问题。共两行,每行5列。第一行最后两个默认取0.a(0)(7)相对a(0)(0)的偏移为7.从第一个元素开始再顺序数7个元素。这样取一个默认为0的元素。

C语言这题为什么答案是49?
这个结果是49,分析如下:C语言中,int类型占4个字节,char类型占1个字节,float类型占4个字节,指针类型占4个字节。将结构体中定义的各个数据类型所占字节数相加,就能得到结果。根据题目信息,结构体中定义了整型数组,共10个元素,所以有40个字节,在加上其他的几种类型,即 40 + 1 + 4 + 4 ...

C语言的问题,请写明题目的答案和原因,谢谢!
4. 答案:B 指针定义时可以初始化,即 int *p=&a;若定义时不初始化,以后赋值应该为 p=&a;5. 答案:C for循环跳出条件为 i<5 ,所以跳出后 i=5 i++; 和 ++i; 效果一样 但 s=i++; 和 s=++i; 效果有差别,具体请在知道里搜索相关答案,一言难尽 6. 答案:C while(i++<=5)...

这道C语言答案是啥
答案是A?char str[20]; str=“I love China!”; (错误)char str[20]=“I love China!”; (正确)因为str地址是常量而 char *cp; cp=“I love China!”; (正确)因为cp的地址是变量 你说的这个char c[] = "I am happpy"是初始化,不是赋值。

C语言 这题不会写,我觉得是777答案是789?
1、关键在static修饰的int c;普通局部变量存储于进程栈空间,使用完毕会立即释放。而静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。因此,c的值是一直在++的。故答案是789 ...

求这道c语言编程题的答案
include <stdio.h> include <math.h> int main(){ int i,n,sign;double e,sum;while(scanf("%d",&n)==1){ e=pow(10,-n);for(sum=0,i=1,sign=1;1.0\/i>=e;sign*=-1,i+=2)sum+=sign*1.0\/i;printf("%lf\\n",sum*4.0);} return 0;} ...

求大神这个答案到底是啥啊?C语言
1.2.

这个题的答案是什么?C语言程序设计
1、i=30 i*=i+1 相当于 i=i*(i+1)2、x=0 因为 x 为整数 x=1\/4 中等号右边 1\/4 是整数除法,其计算结果是商为0

龙山区15316686070: 这个c语言表达式结果为什么是4?急求 -
沙辰硫酸: 这是“逗号”表达式.“逗号”表达式, 先从左到右走一遍,最后结果等于 最右边的表达式的结果.例如:x = (a+b,18+(b=4)*3,(a/b,a%b)); 执行:(1) a+b(2) 18+(b=4)*3(3) (a/b,a%b) 分成 a/b a%b---------- x 结果 是 a%b 的 结果.由于你前面没有给出 a,b 的初值,从 “从左到右走一遍” ,其中有个 b=4,所以 b 的结果 是 4.a 等于几,我不知道.x = a % b; 整数a除以整数b得余数运算,b=4, 所以 x 的结果 只可能是 0,1,2,3 之一.不可能是 4.要么,你的式子抄错了.

龙山区15316686070: 问一道C语言的题目.其中m%4是什么意思? -
沙辰硫酸: %在C语言中是取模的意思,这里如m%4的意思就是m除以4得到的余数,其取值可能为0, 1, 2, 3

龙山区15316686070: C语言循环体的问题 -
沙辰硫酸: 当i=2;执行第一次循环:j=3:m++是1,i++是3(原先是i=2)j++变成4,符合j<=4,m++是2,i++是4;内循环执行完一次;此时i的值是4了,而不是i=2.然后i+=4变成8(4+4); 符合条件,执行第二次循...

龙山区15316686070: c语言strlen的问题(这个答案为什么是4) -
沙辰硫酸: extern int strlen(char *s)函数其实返回的是以s为首地址,0字符结束的这段内存的大小, 至于楼上说的我认为都不恰当;可以这么给您举例 char a[] = {0, 'a', 'b', 'c'}; 如果使用strlen(a);那么得到的将是0,因为以a为首地址的字符就是0,所以就只...

龙山区15316686070: C语言中这道题的答案为什么不是X< - 5||X>5 ? -
沙辰硫酸: 这道题的答案就是 X<-5||X>5 ----给出的答案是错了的.

龙山区15316686070: c语言:为什么这题的答案是这个?? -
沙辰硫酸: 因为while循环的判断条件, 如果(*x==*y)不满足, 则不再循环. 就是说, 如果第0个字符就不相等, 则不会循环,n=0. 如果第0个字符相等, 则执行 {x++;y++;n++;} 就是x, y都指向第1个字符, 且n=1. 以此类推.

龙山区15316686070: 这是2010年三月二级c语言的笔试题第二十题,为什么答案是m=6
沙辰硫酸: 答案是:m=1 i=1时 j=3,i*j=3>3不成立,跳过break,m=i*j=3; j=2,,i*j=2>3不成立,跳过break,m=2; j=1时同理m=1; i=2时; j=3,i*j=6>3成立,执行break,跳出第二层for循环,回到第一层for循环; i=3<3不成立跳出所有循环,输出结果; 由于最后一次赋给m的值为1,所以最后结果应该是m=1. 望采纳~!

龙山区15316686070: c语言的一道题 答案k=4 a=12 为什么 -
沙辰硫酸: 我来回答一下吧.首先进入循环前k=0,a=0 第一次循环:K++后,K=1,不满足if语句执行条件,所以a=a+(s[1]-'0'),a=0+(32-30)=2 第二次循环:K++后,K=2,满足if语句执行条件,所以a=a+(s[2]-'0'+1),a=2+(31-30+1)=4 第三次循环:K++后,K=...

龙山区15316686070: C语言m__+1等于几?为什么答案是5而不是4? -
沙辰硫酸: 你m的值为4么??这个考虑优先级的问题,m--是在m+1后执行的

龙山区15316686070: 这是一道C语言的编程题,请说明具体原因 -
沙辰硫酸: m=fun(a,4)+fun(b,4)-fun(a+b,3)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网