麻烦回答以下几道题 执行下列程序段后,*p的值是char *p="asdf";printf("%c",*(p+strle
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 07:52:49
麻烦回答以下几道题
执行下列程序段后,*p的值是
char *p="asdf";
printf("%c",*(p+strlen(p)));
(p+strlen(p)是什么意思 strlen不是测试字符串长度么
有以下程序
#include
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
程序运行后的结果是_______
怎么算的?
分别用十进制表示整形常量-ox1f为
答案是-31 怎么算的?
以下由for语句构成的循环执行了______次
#include
#difine N 2
#difine M N+1
#difine NUM(M+1)*N/2
main()
{int i,n=o;
for(i=1;i
执行下列程序段后,*p的值是
char *p="asdf";
printf("%c",*(p+strlen(p)));
(p+strlen(p)是什么意思 strlen不是测试字符串长度么
有以下程序
#include
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
程序运行后的结果是_______
怎么算的?
分别用十进制表示整形常量-ox1f为
答案是-31 怎么算的?
以下由for语句构成的循环执行了______次
#include
#difine N 2
#difine M N+1
#difine NUM(M+1)*N/2
main()
{int i,n=o;
for(i=1;i
执行下列程序段后,*p的值是
char *p="asdf";
printf("%c",*(p+strlen(p)));
答案是a
(p+strlen(p)是什么意思 strlen不是测试字符串长度么 答案为什么是a啊?
答案是错误的,应该显示空格.
strlen(p)是返回字符串有效字符长度,所以应该为4,而非5
p为字符串指针,其值为字符串内存地址首地址,即指向'a';
p + strlen(p)会对指针p加上偏移量strlen(p),即p + 4*sizeof(char),这时指向"asdf"后面一个字符,这个字符应为系统添加的那个字符串结束符'/0',屏幕显示应该为空格.
有以下程序
#include
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
程序运行后的结果是_______
答案是15 怎么算的?
答案应该为15,
p=s; // 首先字符串指针p指向字符串数组s首地址,即'1'
printf("%c",*p++); // 由于是后置++,此时p的值仍然为s首地址,
// 所以*解引用指针p,输出字符串第一个字符'1'
printf("%c",*p++); // 现在p的值已经增加了1*sizeof(char)了,同理是后置++
// 所以输出第二个字符'5',此函数运行完后,p的值再增加1*sizeof(char)
分别用十进制表示整形常量-ox1f为
答案是-31 怎么算的?
-0x1f为16进制常量-1f(注意前面的0x表示16进制),转换为10进制:
-(1*16 + 15) = -31
以下由for语句构成的循环执行了______次
#include
#difine N 2 // 定义宏常量N为2
#difine M N+1 // 定义宏M 为 N+1,即为3
#difine NUM(M+1)*N/2 //定义宏NUM 为(M+1)*N/2,即为4
main()
{int i,n=o;
for(i=1;i
char *p="asdf";
printf("%c",*(p+strlen(p)));
答案是a
(p+strlen(p)是什么意思 strlen不是测试字符串长度么 答案为什么是a啊?
答案是错误的,应该显示空格.
strlen(p)是返回字符串有效字符长度,所以应该为4,而非5
p为字符串指针,其值为字符串内存地址首地址,即指向'a';
p + strlen(p)会对指针p加上偏移量strlen(p),即p + 4*sizeof(char),这时指向"asdf"后面一个字符,这个字符应为系统添加的那个字符串结束符'/0',屏幕显示应该为空格.
有以下程序
#include
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
程序运行后的结果是_______
答案是15 怎么算的?
答案应该为15,
p=s; // 首先字符串指针p指向字符串数组s首地址,即'1'
printf("%c",*p++); // 由于是后置++,此时p的值仍然为s首地址,
// 所以*解引用指针p,输出字符串第一个字符'1'
printf("%c",*p++); // 现在p的值已经增加了1*sizeof(char)了,同理是后置++
// 所以输出第二个字符'5',此函数运行完后,p的值再增加1*sizeof(char)
分别用十进制表示整形常量-ox1f为
答案是-31 怎么算的?
-0x1f为16进制常量-1f(注意前面的0x表示16进制),转换为10进制:
-(1*16 + 15) = -31
以下由for语句构成的循环执行了______次
#include
#difine N 2 // 定义宏常量N为2
#difine M N+1 // 定义宏M 为 N+1,即为3
#difine NUM(M+1)*N/2 //定义宏NUM 为(M+1)*N/2,即为4
main()
{int i,n=o;
for(i=1;i
麻烦回答以下几道题 执行下列程序段后,*p的值是char *p="asdf";printf("%c",*(p+strle
下面程序段的运行结果是( ).char *p="abcdefgh"; p+=3; printf("%d\n",strle
192.以下程序段运行后,表达式*(p+4)的值为( ).char a[]="china"; char *p; p=a;
C语言题 执行下列语句后,*(p+1)的值是【1】.char s[3]="ab",*p; p=s;
若有下面的程序段: char s[]="china"; char *p; p=s; 则下列叙述正确的是________
1.已知int a=3,b=7,c,*p=&a;,则执行语句*p=5,c=a+b;后,c的值是______.2.以下程序
#include; char *p="ABC" printf("%d",strlen(p)+*p);
已知下面程序段char b[]="CBAFG"*p;p=b;则下面叙述正确的是()
char *p[4]={1,2,3,4}; 而输出是printf("%d",p[0]) ;printf("%d",p[1
执行以下程序段后,输出结果和a的值是().int a=10; printf("%d",a++); A、11 和 10 B
以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}
详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(s