单选题若字符指针p所指向的字符串为“abcdefg”,在执行语句char* ap=new char[strlen(p)+1];之后,ap指向的字符数组的元素个数为(  )。A9B8C7D6

单选题
若字符指针p所指向的字符串为“abcdefg”,在执行语句char* ap=new char[strlen(p)+1];之后,ap指向的字符数组的元素个数为(  )。
A

9

B

8

C

7

D

6


参考解析

解析:
字符指针p指向的字符串为“abcdefg”,则strlen(p)= 7,因此ap指向的字符数组的元素个数为8个。

相关考题:

以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首地址 , 例如 : st r所指字符串为 : Hello! , c 中的字符为 e ,则函数返回字符串 : ello! 的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL 。请填空。char *fun(char *str,char c){ int n=0; char *p=str;if(p!=NULL)while(p[n]!=cp[n]!='\0') n++;if(p[n]=='\0') return NULL;return( 【 1 2 】 );}

已定义以下函数: fun(char*p2,char*p1) {while((*p2=*p1)!=’\0’){p1++;p2++;}} 函数的功能是( )。A.将p1所指字符串复制到p2所指向内存空间B.将p1所指字符串的地址赋给指针p2C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有’\0’

若有说明语句char a[]="It is mine";char *p="It is mine";则以下不正确的叙述是A.a+1表示的是字符t的地址B.p指向另外的字符串时,字符串的长度不受限制C.p变量中存放的地址值可以改变D.a中只能存放10个字符

已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有'\0'

有如下类定义:classA{char*a;public:A( ):a(O){}A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间a=__;strcpy(a,aa);}~A( ){delete[]a;}};横线处应填写的表达式是( )。A.Newchar[strlen(aa)+1]B.char[strlen(aa)+1]C.char[strlen(aa)]D.newchar[sizeof(aa)-1]

假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:除了尾部的,:号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。例如,若字符串中的内容为****A*BC*DEF*G******,删除后,字符串中的内容应当是ABCDEFG******。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<conio. h>include<stdio. h>void fun(char *a, char *p){}main ( )char s[81],*t;printf ("Enter a string: \n ");gets (s);t=s;while (*t)t++;t--; /*指针t指向字符串尾部* /while (*t== '*' )t--; /*指针t指向最后一个字母*/fun (s, t);printf ("The string after deleted: \n");puts (s);}

阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。【说明】本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。【代码】include<stdio.h>include<stdlib.h>include<string.h>char*replace(char *s1, char *s2,char *s3){ char *p, *q, *r, *s; int |2,|3, i=0;|2=strlen(s2);|3=strlen(s3);p=s1;while((p=strstr(p,s2))!=NULL){ i++; /* 统计s2串出现的次数*/(1);}i=(2);s=r=(char*)malloc(i); /*分配动态内存存放新字符串*/p=s1;while(1){ q=strstr(p, s2); /* s2串是否在s1中出现,q是首次出现的位置*/if(q!=NULL){ i=q-p;(3);r+=i;(4);r+=|3;p=q+|2; /*将指向s1串的指针移到s2子串出现的位置后,为下一次循环做好准备*/}else /*q为空,表示剩余的s1串中已经没有s2*/{ (5);break; /*终止循环*/}}return(s); /*返回指向所形成的新串的指针*/}void main(){ char *a="sabcababde", *b="ab", *c="efg", *d;d=replace(a, b, c); printf("result=%s\n", d); free(d);}

有如下类定义:class A{char *a;public:A():*(0){}A(char * aA){//把aa所指字符串拷贝到a所指向的存储空间a=________;strcpy(a,aA);}~A(){delete[]a;}};横线处应填写的表达式是A.new char[strlen(aA)+1]B.char[strlen(aA)+1]C.char[strlen(aA)]D.new char[sizeof(aA)-1]

有以下类定义:class A{char*a;public:A( ):a(0){ }A(char*aA) { //把aa所指字符串复制到a所指的存储空间a=______;strcpy(a,aA) ;}~A( ){delete[ ]a;}};画线处应填写的表达式是A.new char[strlen(aA)+1]B.char[strlen(aA)+1]C.char[strlen(aA)]D.new char[sizeof(aA)-1]

以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=cp[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}

使用VC6打开考生文件夹下的工程test31_3。此工程包含一个test31_3.cpp,其中定义了可以动态分配的字符串类,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。(1)定义类tstring的私有数据成员length和p,它们分别是血型的数据和字符型的指针,其中length表示一个字符串的长度。请在注释“//**1**”之后添加适当的语句。(2)完成类tstring的构造函数,使length等于字符串m的长度,并申请由指针p指向的length长的字符型空间,将m所指的字符串复制到该空间。请在注释“//**2**”之后添加适当的语句。(3)完成类tstring的成员函数strcopy(tstringn)的定义,该函数将对象n的值(包括字符串长度和字符串本身)复制给调用该函数的对象(对象n的字符串长度任意)。请在注释“//**3**”之后添加适当的语句。(4)完成类tstring的友元函数strlink(tstring m,tstring n)的定义,该函数将可动态分配的字符串类对象m和n的字符串成员连接在一起(对象m和n的字符串长度任意),并返回该串。请在注释“//**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。程序输出结果如下:hello the world!源程序文件test31_3.cpp清单如下:include<iostream.h>include<conio.h>include <string.h>class tstring{public://** 1 **tstring(char *m){//** 2 **strcpy(p,m);}void strcopy(tstring n);friend char *strlink(tstring m,tstring n);};void tstring::strcopy(tstring n){//** 3 **char *q;q=new char[length];strcpy(q,tstring::p);q=strcat(tstring::p,n.p);tstring::p=q;tstring::length=strlen(tstring::p);}char *strlink(tstring m, tstring n){int length=strlen(m.p)+strlen(n.p);char *p;//** 4 **strcpy(p,m.p);p=strcat(p,n.p);return p;}void main ( ){tstring a("hello ");tstring b("the world");tstring c("!");a.strcopy(b);cout<<strlink(a,c)<<end1;}

若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入; char * p;p= ( ) malloc (sizeof (char));A.charB.char *C.(* char)D.(char *)

以下函数实现的功能是void fun (char *s){ char *p,*q,temp; p=s; q=s+ strlen(s)-1; while (p<q) { temp=*p; *p=*q; *p=temp; p++; q--; }}A.将一个字符串首尾颠倒B.计算字符串的长度C.统计字符串中的空格个数D.将字符串中的小写字母变成大写字母

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明1]函数void fun(char*w,char x,int*n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。[C函数1]void fun(char*W,char x,int*n){ int i,P;p=0;w[*n]=x;while(x>w[p]) (1) ;for(i=*n,i>p;i--)w[i]=(2);w[p]=x;++*n;}[说明2]函数void revstr(char*s)将字符串s逆置。例如:字符串“abcde”,经过逆置后变为“edcba”。[C函数2]void revstr(char*s){ char*p,c;if(s==NULL)return;p=(3); /*p指向字符串s的最后一个有效字符*/while(s<p){ /*交换并移动指针*/C=*s;(4)=*p;(5)=c;}}

语句Char(*P)说明了( )。A.P是指向函数的指针,该函数返回一个Char型数据B.P是指向Char型数据的指针变量C.P是指向数组的指针变量D.P是一个函数名,该函数的返回值是指向Char型数据的指针

已定义以下函数 fun(char*p2,char*p1) { while((*p2=*pl)!='\0'){p1++;p2++;}} 函数的功能是A.将p1所指字符串复制到p2所指内存空间B.将p1所指字符串的地址赋给指针p2C.对p1和p2两个指针所指字符串进行比较D.检查p1和p2两个指针所指字符串中是否有'\0'

变量s的定义为“char *s="Hello world!";”,要使变量p指向s所指向的同一个字符串,则应选取(47)。A.char *p=s;B.char *p=s;C.char *p;p=*s;D.char *p; p=s;

以下函数的功能是( )。fun(char *p2, char *p1) { while((*p2=*p1)!='\0'){ p1++;p2++; }} A、将p1所指字符串复制到p2所指内存空间中B、将p1 所指字符串的地址赋给指针 p2C、对p1和p2两个指针所指字符串进行比较D、检查p1和p2两个指针所指字符串中是否有‘\0’

假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p; p=s;

执行char*p=new char(’a’)操作后,p所指向的数据对象的值为()。

const char *p说明了p是指向字符串常量的指针。

char*const p表明p是一个指针,它只能指向一个字符串常量。

单选题假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。Achar *p=s;Bchar *p=s;Cchar *p;p=*s;Dchar *p; p=s;

单选题若字符指针p所指向的字符串为“abcdefg”,在执行语句char* ap=new char[strlen(p)+1];之后,ap指向的字符数组的元素个数为(  )。A9B8C7D6

填空题执行char*p=new char(’a’)操作后,p所指向的数据对象的值为()。

判断题const char *p说明了p是指向字符串常量的指针。A对B错

单选题有以下程序(其中的strstr()函数头部格式为:char *strstr(char *p1,char *p2)确定p2字符串是否在p1中出现,并返回p2第一次出现的字符串首地址):#include #include char *a=you;char *b=Welcome you to Beijing!;main(){ char *p; p=strstr(b,a)+strlen(a)+1; printf(%s,p);}程序的运行结果是(  )。Ato Beijing!Byou to Beijing!CWelcome you to Beijing!DBeijing!

判断题char*const p表明p是一个指针,它只能指向一个字符串常量。A对B错