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(); 展开
#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(); 展开
3个回答
展开全部
对于 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.然后不满足循环,结束!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(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");。
(9)早期的编译器是2字节,后来的编译器是4字节了,所以二者都正确。一般教科书用的是早期的系统,应该是2字节。不要纠结这些,知道就行了,若考试,按几字节算会明示的。
(10)00101111+00000010==00110001,~00000011==11111100,00110001^11111100==11001101。
(11)fp=fopen("C:\\d1.dat","wb");。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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"));
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"));
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询