CMS专题

单选题以下程序段运行后*(++p)的值为() char a[5]=”work”; char *p; p=a;A ‘w’B 存放’w’的地址C ’o’D 存放’o’的地址

题目
单选题
以下程序段运行后*(++p)的值为() char a[5]=”work”; char *p; p=a;
A

‘w’

B

存放’w’的地址

C

’o’

D

存放’o’的地址

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序段中,不能正确赋值的是( )。

A.char*p,ch; p=&Ch; scanf("%c",&p);

B.char*p; p=char*)malloc(1); scanf("%c",p);

C.char*p; *p=getchar();

D.char*p,ch; p=&ch; *p=getchar();


正确答案:C
解析:地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。

第2题:

下列程序段的输出结果为()。includemain(){static char a[]="language";char*p;p=a;for

下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

A.1

B.4

C.9

D.0


正确答案:D
解析: 本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下: a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

第3题:

以下与库函数strcpy(char *p, char *q)功能不相等的程序段是()。

A.strcpy1(char *p, char *q)

{ while ((*p++=*q++)!='\0')

}

B.strcpy2( char *p, char *q)

{ while((*p=*q)!='\0')

{p++ q++}

}

C.strcpy3(char*p, char *q)

{ while (*p++=*q++)

}

D.strcpy4(char *p, char *q)

{ while(*p)

*p++=*q++

}


答案:D

第4题:

以下程序运行后的输出结果是 。

include

includc

include

main()

{char*p;int i;

P=(char*)malloc(sizeof(char)*20):

strcpy(p.“welcome”):

for(i=6;i>=0;i一一) putchar(*(p+i));

printf(“\n”);free(P);


正确答案:emoclew
emoclew

第5题:

以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

以下程序运行后的输出结果是【 】

include <stdio.h>

main ( )

{ char a[] ="123456789", *p;

int i =0;

p=a;

while( * p)

{ if(i%2 ==0) *p='*';

p++;i++;

}

puts(a);

}


正确答案:*2*4*6*8*
*2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

第6题:

有以下程序:includevoid fun(char**p){++P;printf("%s\n",*p);}main()char*a[]={"Morn

有以下程序: #include<stdio.h> void fun(char**p) { ++P;printf("%s\n",*p);} main() char*a[]={"Morning","Afternoon","Evening","Night"}; fun(A); } 程序的运行结果是( )。

A.Afternoon

B.fternoon

C.Morning

D.oring


正确答案:A

第7题:

下列程序段的输出结果为()。includemain(){ static char a[]="language";char *p;p=a;f

下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char *p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

A.language

B.lnug

C.有语法错误

D.lang


正确答案:B
解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

第8题:

以下正确的程序段是 ()。

A.char str[2]; scanf("%s",&str);

B. char *p; scanf("%s",p);

C. char str[20]; scnaf("%s",&str[2]);

D. char str[20],*p=str; scanf("%s",p[2]);


参考答案:B

第9题:

以下程序运行后的输出结果是( )。

include

char*ss(char*s)

{char*p,t;

P=s+1;t=*s;

while(*p){ *(P-1)=*P;P++;}

*(P-1)=t;

return s;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}


正确答案:bcdefgha
bcdefgha

第10题:

下列程序段的输出结果为()。includemain(){static char a[]="language"; char*p; p=a;

下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

A.language

B.lnug

C.有语法错误

D.lang


正确答案:B
解析: 本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p= p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

更多相关问题