c语言问题 求解

/*Note:YourchoiceisCIDE*/#include"stdio.h"voidmain(){chars[]="2010",*p;for(p=s;p<s+2;... /* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
char s[]="2010",*p;
for(p=s;p<s+2;p++)
printf("%s\n",p);
}
这道题答案是2010
010
很不解 求讲
9、设有以下结构类型说明和变量定义,则变量a在内存所占字节数是__ _,变量p在内存所占字节数是,变量a.age在内存所占字节数是。(以VC编译器对字节数的计算为准)
struct stud
{ char num[8];
int score[5];
double ave;
int age;
} a,*p;
这道题道题int是4个直接还是2个 书上写的是2个的 有人又跟我说是4个 到底哪个为准?
10、设char型变量x中的值为00101111(2),则表达式(2+x)^(~3)的值是。(用二进制表示)

11、若fp已正确定义为一个文件指针,要以只写打开C盘根目录下的二进制文件d1.dat,请填空:
fp=fopen();
展开
 我来答
古今创造
2013-05-12 · TA获得超过354个赞
知道答主
回答量:144
采纳率:0%
帮助的人:46.7万
展开全部
对于 char s[]="2010",*p;这句的意思是定义了一个字符数组,因为定义的时候赋了初值,所以可以省略数组个数用s[],又定义了一个字符指针p,因为s是数组名也就是这个数组首元素的的地址,在 for(p=s;p<s+2;p++)当中将s赋给p,即让p指向这个数组的首元素,而printf("%s\n",p);即输出,当第一次执行for语句的循环体的时候p指向数组首元素,而%s格式输出即遇到'/0'就停止输出,因为数组最后都有一个'/0'即这个数组存放的值依次为‘2’,‘0’,‘1’,‘0’,‘/0’。所以第一次输出2010然后输出换行,接着是p++,即p指向了数组的第二个元素即0,然后从0开始输出,所以又输出010.然后不满足循环,结束!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
推荐于2017-11-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6694万
展开全部
(8)第一次循环p是指向2的,用%s控制输出就是2010,第二次循环p增1指向0了,输出自然是010。这很好理解。
(9)早期的编译器是2字节,后来的编译器是4字节了,所以二者都正确。一般教科书用的是早期的系统,应该是2字节。不要纠结这些,知道就行了,若考试,按几字节算会明示的。
(10)00101111+00000010==00110001,~00000011==11111100,00110001^11111100==11001101。
(11)fp=fopen("C:\\d1.dat","wb");。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2013-05-12 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
for(p=s;p<s+2;p++)
printf("%s\n",p);

这一段是这样看:
printf("%s\n",p);

printf("%s\n",p+1);

其输出就是:
2010 //这个不需解释
010 //p+1就是s+1 ,输出直到'\0'为止
到p+2时,已不满足循环条件,所以退出。

9、VC的int是4字节。变量a在内存所占字节数是__40 _

10、(2+x)^(~3)
=(00110001)^(11111100)
= 11001101

11、fp=fopen("C:\\d1.dat","wb"));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式