问题1:为什么这段程序要写(char **p)?这个的用处是什么?问题2:如果把printf函数改

作者&投稿:边鬼 (若有异议请与网页底部的电邮联系)
1.有下列程序段,请选择( ). char a[10]="3821631"; char *p=a; printf("%c",p[1]-'0');~

(B)p[1]语法错误

char *p=a; 可以这样赋值。因为 *p 是指针,而a是数组a[10]的地址。

for 循环里面第一次循环
p 指向 a 的首地址,因此*p为'1',p打印的字符串是"1234",然后p=p+2,p指向a[2]的地址
for 循环里面第一次循环
p 指向 a[2] 的地址,因此*p为'3',p打印的字符串是"34"
所以结果是11234334
a[] 在声明并定义的时候使用,给数组初始化"1234",因此系统会自动给a[]加上数组大小5进去,相当于char a[5]

指针是C/C++语音中的精华,计算机中,数据和程序都是放在内存中的,指针可以看成是内存的索引(Windows中的HANDLE可以看成是分页内存的索引),举个例子,char** p 表示,存放某个字符的首地址放到一个内存单元中,但这个内存单元的地址存放在p中了;程序找到p,就可以知道内存单元地址*p,知道该内存单元地址,可以继续找字符(串),**p;

关于上述程序,*a[]是一个字符串指针,分别a指向M(orning),a+1指向A(fternoon);调用fun函数,实际上就是先将字符串指针偏移一个位置,再输出,所以输出的是Afternoon。

把printf函数放到主函数中,也能实现相同结果。


...到当天的总天数!,为什么程序段一正确,程序段二有问题?
两段程序都能计算出正确的天数 ps:程序段一有个小失误,sum+=a[i];和sum+=b[i];,i要改为j 不过程序段二因为要多次判断if(leap(year)),也就是要多次执行函数int leap(int a)。而程序段一,只判断一次,只执行一次函数int leap(int a)。所以效率程序段一比程序段二高。测试代码:includ...

学生来看这8道C语言谜题你能答对几个
2、下面的程序看起来是正常的,使用了一个逗号表达式来做初始化。可惜这段程序是有问题的。你知道为什么吗?参考答案:这个程序会得到编译出错(语法出错)。逗号表达式是没错可是在初始化和变量声明时,逗号并不是逗号表达式的意义。这点要区分,要修改上面这个程序,你需要加上括号:"int a=(1,2);"...

解释一下这段程序
这段8253的程序少了一段控制字送控制端口的命令,没有控制字送控制端口是不行的。5000并不是5000ms 按你题目所给,应当是5ms 至于5000要根据CLK是多少MHZ来计算。你想知道是如何实现5ms延时的,这个我懂得不多,没有控制字,我的知道范围内说不出来它的工作方式,8253一共6种工作方式,很复杂,我...

谁能帮我解一下这道高一物理题!!
题意是,一定要在一定时间(或距离)内速度减速到与前面的车速相同.这段路程,是500米加上,从列车减速到与货车相同速度的时间内,前车通过的路程.设,用T时间达到同速.则这段时间内列车通过的路程有:S1=S+S2=S+V2T.(1)而在T这段时间内,列车的速度由20米\/秒变成10米\/秒.平均速度0 15米\/秒.(V...

谁能帮我一下啊,这段程序怎么不行啊?谢谢了.
printf("please input the second word:\\n");{scanf("%c",&m);{ 这里将第二行的 { 移动到第一行前面,删除第三行的{ } else printf("Error");这里删除第一行的} 语法错误就这些。语法错误及其它修正后的程序如下:\/\/\/ include<stdio.h> include <conio.h> void main(){ char c,d,...

一段旅程话题作文
人生中有许多旅程,一段旅程话题作文怎么写?下面是我整理的一段旅程话题作文,欢迎阅读参考! 一段旅程话题作文1 有人道:“五岳归来不看山,黄山归来不看岳。”这话一点不假。在黄山的三天旅途中我着实看到了人间美景。而黄山之旅中给我印象最深的要数在夹溪河别样的漂流旅程了。 爬完了黄山,导游别出心裁地带我们...

我想找六年级的行程问题,带答案的
分析:已知与中心处的距离,即是知道两车行程之差,这是本题关键。解答:甲车在相遇时比乙车多走了:8×2=16(千米),由甲车速度是乙的1.2倍,相遇时所走路程甲也是乙的1.2倍,由此可知乙所走路程为16÷(1.2-1)=80(千米),两地距离为(80+8)×2=176(千米),即两地相距176千米。评注:有效利用各种形式的条件...

这一题的答案竟然是C Lbohvbhf 。我不懂为什么这个程序具体怎么走,求...
define LETTER 1 \/\/这里声明了LETTER include <stdio.h> void main(){ char str[20]="C Language", c;int i=0;while((c=str[i])!='\\0'){ i++;ifdef LETTER \/\/这个表示如果声明了LETTER,就执行下面三行语句 if(c>='a' &&c<'z') \/\/如果字符介于小写字母a~z之间 ...

请谁能帮我解释一下这段程序的意思,特别是最后几行和开头几行,谢谢了...
public class Sum_for { public static void main(String args[]){ int i=1,n=10,s=0; \/\/int代表整型,这里是定义三个整型变量 i,n,s并初始化,分别等1,10,0 for(i=1;i<=n;i++) \/\/for循环开始,每循环一次i就加1,等到i大于n时结束 s+=i; \/\/意思是s=s+i,相当于累加,...

这一题怎么做
经过甲后,火车行了2分钟才与乙相遇。当火车经过了乙,火车一共行驶了2分钟+15秒=135秒。甲行走了2分钟+15秒=135秒。所以火车在此时间段行走了135*V1的路程,甲走了135*V2的路程。那么火车经过乙以后甲乙之间的距离为135V1-135V2=1350V2。所以甲乙走这段路程所需要的时间为1350V2\/(V2+V2)=...

玛纳斯县14767583854: c语言问题,下面这段程序输出为什么是ace? -
贸聪千咳: 1.没有空格时. 首先执行c=getchar();此时c='a'; 然后比较getchar()!=' #';此时,getchar()='b';但是c='a'; 所以输出a 再执行c=getchar();此时c='c'; 然后比较getchar()!=' #';此时,getchar()='d';但是c='c'; 所...

玛纳斯县14767583854: 求助:Visual Basic字符转换程序
贸聪千咳: :1、为什要计算L = Len(Text2.Text),即Text2.Text的字符长度;L在这段程序里面看不出来有什么作用.2、Chr$(),这个函数怎么用;cha()函数是将数字转换成对应的ascii码3、 s = Chr$(KeyAscii + 32)和s = Chr$(KeyAscii - 32)是什么...

玛纳斯县14767583854: C语言 请帮我分析下 万分感谢 非常急 写一个函数,输入一行字符,将此字符串中最长的单词输出 -
贸聪千咳: /* Note:Your choice is C IDE */#include "stdio.h" void scf(char str[]) //输入 这步为什么要这样写 //在这里定义了一个子函数,用来接收用户输入的字符串 {int i; printf("输入一组单词,用空格分隔:\n"); gets(str); i=strlen(str);//为什么要记录...

玛纳斯县14767583854: java写计算器的问题为什么一定要这段代码,双精度浮点数的运算?后面的一段代码为什么会有try catch? -
贸聪千咳: 上面的双精度浮点数的运算可能是因为计算机在进行小数点后面多位的乘除等运算的时候会有极小的计算误差,这个应该是对这个误差有一个判断的操作 下面这个try...catch...是因为Double.valueOf()的时候,将字符串转为double类型,而字符串如果是纯数字则没问题,如果字符串中有非数字的字符则会抛出异常

玛纳斯县14767583854: 单片机 iic 应答信号程序中有一句 while((sda==1)&&(i<250))i++ 我想知道 为什么i<250,250这个数字从哪 -
贸聪千咳: 首先这段程序是一个等待ACK的程序 先看一下IIC规范是怎么说的:IIC总线上的所有数据都是以8位字节传送的,发送端每发送一个字节,就在第9个时钟脉冲期间释放数据线,由接收端反馈一个应答信号.对于有效应答信号ACK的要求是,接收方在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平.好了,现在针对你的程序进行解读:注意这句“接收方在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平”,程序中首先设置了SCL=1,然后开始等待,如果sda一直为1且i 只是我觉得你是初学者吧,说太简略了你肯定不懂,我当初也是这样的,好好用功吧.

玛纳斯县14767583854: c语言问题: #include <stdio.h> int main() { cha -
贸聪千咳: 赋值 '\0' 是为了给字符串加上终结符.不然程序处理时不知道字符串是到哪为止了.没这个符号,下面的strcmp 之类的都不能正常处理了.

玛纳斯县14767583854: 请看下面一段python代码: -
贸聪千咳: 问题一:输出的第一行 bacon local,是第五行的print(cakes)的结果,是被第九行调用的 第二:定义函数还没有执行,除非他被调用,这个和 viod main()不一样.

玛纳斯县14767583854: 编写一个程序,从键盘输入两个整数,输出这两个数之和 -
贸聪千咳: 这才是正确的程序: #include<stdio.h> void main() { int a,b,sum; printf("请输入两个整数\n"); scanf("%d %d",&a,&b); sum=a+b; printf("the sum is:%d\n",sum); } 主函数一般是没有返回值的,应该用void;变量应该先定义,后使用,所以int a,b,sum;要放在 scanf("%d %d"&a,&b);的前面; Scanf那句引号后有个逗号; 输出sum的那一句,冒号:后面应该加个%d ; 还有就是,你main错写成mian了.

玛纳斯县14767583854: C语言问题 急 啊 -
贸聪千咳: cha_1是什么类型的? 定义呢? gets(cha_1)后面的分号呢?我在你的基础上写了一个小程序是可以输入的#include #include main() { struct{ char get[30] ; cha...

玛纳斯县14767583854: C语言问题 查找子数组 -
贸聪千咳: 你的问题是子循环正确识别子串后还在上层循环中没跳出来,只需将 for(i=0;i { if(b[0]==a[i]) { k=i; i++; for(j=1;j { if(b[j]==a[i]) continue; else break; } } } 改为 for(i=0;i { if(b[0]==a[i]) { k=i; i++; for(j=1;j { if(b[j]==a[i]) continue; else break; } } if(j==m) break; } 就好

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