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没有指定类型, 是整除符号整数除以整数,只保留整数部分。浮点数参与运算,就...