C语言问题。这道题看不懂啊,求大神详细解释下,谢谢

2020-12-11 21:05:54 字数 5949 阅读 5341

1楼:烟火夜空

这是 统计 字符串 中字符个数的。

还有 goodbye 写错了。如果 中间没有 空格,那么 这个结果应该是 8;

2楼:

s中存放的是字符串的首地址,指针p从字符串开始搜索到末尾,返回p—s就是字符串的长度

c语言题目。这道题看不懂。。求大神详细解释下,谢谢

3楼:匿名用户

答案选b。

定义结构体数组c

未执行f(c)时,c[0]为 qian,f,95,92 c[1]为 sun,m,98,99

执行f(c)时,将c作参数传递

执行f(c)后将c[1]的值改变为 zhao,m,85,90f()函数作用就是对c[1]重新赋值

如图所示,c语言编程题目,这道题中的for之后就看不懂了,求解释

4楼:匿名用户

p从s字串第一个字符开始,每次循环输出其后全部字符,每次循环结束向后移动一个字符

一共循环4次。

因此输出为"abcdbcdcdd"

5楼:遂自荐

s是什么,是指针,就相当于char *s="abcd",for循环当中将s的首地址给p,就相当于将'a'字符所在的地址给p,循环控制是偏移四个地址,这题实际上就是地址的偏移。

6楼:匿名用户

定义了一个 指针 p,指向了 s 数组的 开始地址, 到 s+4 前, 也就是 便利 数组

p 里的内容 就是 s 的内容

所以啊,应该会 打印 abcd

bcdcdd

7楼:开封小笼灌汤包

p=s这时p等于a,条件是p小与s+4就是说p小与e,p步长为1,下面的输出语句就是每次输出p,答案是abcd

求大神讲解一下这道题,答案根本看不懂

8楼:咪众

3、4两题,前者用对称,后者用平移,对称、平移的性质:之前与之后的角度、边长相同

9楼:漫控

请问是例3还是例4?

望采纳!谢谢

10楼:匿名用户

你想求周长,就得求rp,qp长度,得找两个点确定r,q位置,你就只能利用轴对称,轴对称的性质就是:中线到两边的距离相等,所以可以得到mr=pr,qp=qn,其实m,n就是p点关于ob,oa的轴对称点,连接mn,两间之间直线最短,这样就能确定r,q的位置了,确保三角形周长最短。

至于怎么判断∠mon是直角的,也是有关中线的性质∠mob=∠pob,∠poa=∠noa,所以∠mon=2∠pob+2∠poa=2∠aob。

这道题看不懂,求c语言大神教,谢谢

11楼:匿名用户

因为next是本类型的指针,所以理

论上可以不断连环。

比如一个结构体数组 list[50]。

list [0].next = &list[1] ;

list[0].next ->next = list[1].next = list[2] ;

...if(!head)

当malloc内存分配失败时,可以理解为 head 的值为 0 ,及条件成立。

exit( 1 ); 表示强行结束程序。

c语言题求解析过程看不懂

12楼:风火轮

v是一个二维字符数组,可以看成数组的数组;p是数组指针,它指向包含4个char类型的版

一维数组,权p的增量以它所指向的一维数组长度为单位;t是一个临时指针变量。

在该定义下,v[0]=,v[1]=,v[2]=,v[3]=。

p[i]=v[i]就是把v的内容赋值给p。

接下来的带嵌套的for循环,会用strcmp()比较前后两个字符串(strcmp()比较规则)决定是否调换顺序。将字母对应的ascii码小的放在前面,大的放在后面,也就是比较efg和abcd的时候,由于e比a大,所以两个数组里面的内容调换顺序,从efg abcd变成abcd efg。

最后就是输出字符。

c语言问题,请问大神这道题为什么输出one呀,谢谢

13楼:gta小鸡

%s以制表符、空格和回车符为结束标记,因此只有one会被读入。

c语言的一道程序题!!!看不懂为什么!!求解释详细,谢谢!! 5

14楼:召走刀文

这个主要涉及到变量作用域的问题,两个原则

局部变量与全局变量重名时,屏蔽全局变量

{}里声明的局部变量的作用域就是{}的范围。本质上跟函数的{}是一个道理

**中,会屏蔽掉外面的全局变量a,此时函数f的参数是5,所以计算后s 为5。

之后的s+=f(&a);中,a是全局变量a(因为int a=5的作用范围是那个{}),所以s为7

在printf中的a是全局变量的a,因为经过上面f函数的计算,所以a为3

15楼:周洁伦之谜

注意3点:全局变量和局部变量(局部变量优先级高),传地址和传参数,++操作

int f(int *a) //传地址,会改变传入的参数比如 int c = 2; int d = f(&c); 结果d=2,c=3

所以:int s=0;

s+=f(&a); s=7,a=3;这里是全局aprintf("%d %d\n",a,s);

16楼:w休息的风

首先你定义了一个全局变量int a=2;

然后函数f(int *a)目的是把你传递过来的实参数加1.注意:return (*a)++;这句是先执行返回,先把指针a指向的值返回,然后再把该指向的对象进行加1操作。

主函数里面是这样运行的,

定义了一个s,后面有个括号,里面又定义了个局部变量a,初始化为5;然后你调用函数f,运行完以后,s的值变成5,而临时变量a的值变成了6,继续运行,临时变量的a被释放了。后面又调用了函数f,但是这个变量a是你定义的全局变量,值为2,调用完以后,s的值就变成了7,而a的值加1变成了3.所以最后输出值为:

3 7.

明白了吗?

注意两点:1是函数f返回值那,是先返回后,再把指向的对象加1,2、就是主函数里面的局部变量a,和全局变量a的区别和使用。

17楼:匿名用户

#include

#include

inta=2;

intf(int*a)

voidmain()

中起作用

内起作用。建议写程序不要写成与全局变量同名。

s+=f(&a);//在这个{}内,s=s+f(&a)=0+5=5

//然后(*a)内值再加1,此时在这个{}内a变成了6}s=s+f(&a); //此时s=5,整个文件内全局变量inta=2,在上一个{}内局部变量不起作用了。

//s=s+f(&a)=5+2=7//此时(*a)内值加1,a=2+1=**rintf("a=%d,s=%d\n",a,s);//所以输出结果a=3,s=7

}以下是codeblock内运行结果

a=3 s=7

18楼:匿名用户

这部分里面重新声明了变量a,使用的就是局部的这个变量;

出了}之后,这个a的生命期结束,再使用变量a时用的就是外面声明的全局变量。

return(*a)++;

++在后,返回值是自加之前的值,然后自身加1,所以第一次返回5,然后局部变量a变成6,第二句函数f返回2,加上5就是7,全局变量a变成3。

19楼:吴龙

主要还是定义的变量作用域的问题。

还有一个容易忽略的问题,return (*a)++;这句话的意思是 先返回*a,然后*a++,即最后*a增一。不是直接返回(*a)++。

进入main函数,定义变量s=0;

下面这里有个,相当于一个作用域,也就是里定义的变量只在这里面有效,出了,针对的就是外一个作用域。由于在定义变量a=5,是局部变量,所以s+=f(&a),s=0+5=5,同时内的a加以1,a=6;然后出了,作用域消失,内定义的a,销毁。

然后s+=f(&a),此时的a就是全局变量的a=2,所以s+=f(&a),s=5+2=7,同时a+1=3;

最后输出,a=3,s=7.

20楼:匿名用户

这里有2个a变量 一个是全局

变量 一个是函数内的变量。

第一行全局变量a=0 (下面我们用a1表示他)在main函数中

int a=5;

s+=f(&a);

这个a = 5 是局部变量 (我们用a2表示)经过上面计算后 s=5 ;a2=6, ; 下面s+=f(&a);

printf("%d %d\n",a,s);

都是a1 ;所以s = 7 ,a1 = 3了结果就是c答案

21楼:周生

这涉及到两个问题

1 return之后是不会再执行++操作的

2 局部优先原则,但是局部变量只在声明他的局部有效,出了这个局部就失效了

22楼:匿名用户

在main函数中{}中的int a的作用域仅限于这个{}内,所以出了这{}后s=5,而a仍然等于2,然后s+=f(&a); 就使得s=7,a=3了。这题主要考察的是变量的定义域,第一个a=2是全局的,第二个是局部的,只限于那个{}内。起始说白了就是

int a;

}这种情况,局部定义有效,但是出了{}就是外层的定义有效了。

23楼:使者

输出的a是全局的a,第一个s+ 计算的s= 0 + 5;第二个s = 5 +2

24楼:匿名用户

这是一道函数调用题,void main()为主函数。程序先执行主函数,所以到第一个 s+=f(&a);又因为它是调用的,要看到这里 int f(int *a)

实参把a=5;赋给形参,由于是return(*a)++;所以s=5;

到第二个 s+=f(&a);

而第一个 int a=2; 是全局变量

所以s=7;

第一个 int a=2; 经过 return(*a)++;后也变成3了

25楼:小拇指亦有爱

int a=2; 全局变量

int f(int *a)

void main()

//局部失去作用,

s+=f(&a); //相当于s=5+2 ,然后a+1=2+1=3

printf("%d %d\n",a,s);

}a:2 7

b:2 10

c:3 7

d:3 11

26楼:匿名用户

我认为是3,9,求大神解答

27楼:张禄

在看看指针和引用那里

28楼:匿名用户

局部变量全局变量 呵呵 上面解释的很清楚

29楼:pprain_水杯

第二个s+=f(&a);使a+1

c语言题目,求大神告诉我这题为何选b,我有点笨,希望具体点,谢谢

30楼:匿名用户

宏定bai义与函数不同,它是编译

du器对源码进行编zhi译的过程中对宏定义进行原封dao不动的替换,回本题中会将程序中的答f(x)替换为x*x,所以f(3+3)/f(3+3)被替换为3+3*3+3/3+3*3+3,所以结果就是25

如果想要得到正确的结果,可以这样定义:

#define f(x) (x)*(x)

C语言题!这道题怎么做,新手,求大神详细讲解一下,谢谢啦

1楼 匿名用户 变量w是一个共用体v 一个单浮点数组,一个双浮点变量,共用体共享内存单元,字节数为共用体内变量占用内存最大的字节数,即为6字节 单浮点变量4个字节,数组5个元素,共20个字节 双浮点8个字节,故结构体变量共34个字节 这道题怎么做?欢迎高手讲解一下,谢谢啦! 2楼 设x小时追上 得 ...

求C语言大神,帮忙解释一下这道题的选项,刚入门C语言

1楼 匿名用户 a选项2的二进制是010,5的二进制是101,所以2与5的结果是0,即条件为假,所以不能形成死循环 bwhile中是逗号表达式,取最后一个表达式3的值为真,所以是死循环 cd中 0 是字符的ascii值为0的转义字符,所以为假,不构成死循环条件 2楼 天云一号 a2 5 0 所以不会...

C语言问题答案,这题c语言问题答案是什么啊?详细点的解答。谢谢

1楼 自我编程 9 a 1 b 3 c 2 必须按scanf格式输入 10 a 1 1 的值是0 初值赋值只给了每行第一个元素,其余元素未指定值,默认0。 11 1 逻辑表达式 12 循环结构 13 这个题目有问题,变量a,b没有指定类型, 是整除符号整数除以整数,只保留整数部分。浮点数参与运算,就...