CMS专题

填空题下列程序段的输出结果是()。  char str[ ]= “abc/0def/0ghi”, *q=str;  printf(“%s”,q+5);

题目
填空题
下列程序段的输出结果是()。  char str[ ]= “abc/0def/0ghi”, *q=str;  printf(“%s”,q+5);
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下面程序的输出结果是includeincludemain(){char *pl="abc",*p2="ABC",str

下面程序的输出结果是 #include<stdio.h> #include<string.h> main() { char *pl="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n",str);}

A.xyzabcABC

B.zabcABC

C.xyabcABC

D.yzabcABC


正确答案:C
解析: 本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串),其中”字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。
使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\0'一起复制;②不能用赋值运算符“:”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数处理。
另外,本题还考查连接字符串的strcat()函数,其调用方

第2题:

下面程序的输出结果是

#include<stdio.h>

#include<string.h>

main()

{ char *p1="abc",*p2="ABC",str[50]= "xyz";

strcpy(str+2,strcat(p1,p2));

printf("%s\n",str);}

A.xyzabcABC

B.zabcABC

C.xyabcABC

D.yzabcABC


正确答案:C
解析:本题考查的重点是拷贝字符串──使用strcpy()函数,该函数的调用方式是:strcpy(字符数组, 字符串),其中"字符串"可以是字符串常量,也可以是字符数组。函数的功能是:将"字符串"完整地复制到"字符数组"中,字符数组中原有的内容被覆盖。
使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\0'一起复制;②不能用赋值运算符"="将一个字符串直接赋值给一个字符数组,只能用strcpy( )函数处理。
另外,本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组, 字符串)。
功能是把"字符串"连接到"字符数组"中的字符串尾端,并存储于"字符数组"中。"字符数组"中原来的结束标志,被"字符串"的第一个字符覆盖,而"字符串"在操作中未被修改。
使用该函数时注意:①由于没有边界检查,编程者要注意保证"字符数组"定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;②连接前两个字符串都有结束标志'\0',连接后"字符数组"中存储的字符串的结束标志'\0'被舍弃,只在目标串的最后保留一个'\0'。

第3题:

当运行以下程序时,输入 abcd ,程序的输出结果是 : 【 9 】 。

insert(char str[])

{ int i;

i=strlen(str);

while(i>0)

{ str[2*i]=str[i];str[2*i-1]='*'; i--;}

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

}

main()

{ char str[40];

scanf(" % s",str);insert(str);

}


正确答案:
(9) 【 9 】 a*b*c*d*
解析 : 在子程序中 , 如果条件成立 , 则执行下面的语句 , 如果不成立 , 跳过。最后的输出结果 是a*b*c*d* 。

第4题:

下列程序的运行结果为()。includevoid abc(char*str){int a,b,i,j; for(i=j=0;str[i]!=

下列程序的运行结果为( )。 #include<stdio.h> void abc(char*str) { int a,b,i,j; for(i=j=0;str[i]!='\0';i++) if(str[i]!='a' str[j++]=str[i]; str[j]='\0'; } void main() { char str[]="abcdef"; abc(str); printf("str[]=%s",str); }

A.str[]=bcdef

B.str[]=abcdef

C.str[]=a

D.str[]=ab


正确答案:A
解析:本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。

第5题:

下面程序段的运行结果是()。includevoid main(){char str[]="ABC",*p=str;pfintf("%d\n

下面程序段的运行结果是( )。 #include<stdio.h> void main() {char str[]="ABC",*p=str; pfintf("%d\n",*(p+3)); }

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析:先定义了一个指向字符型数组str的指针P,指针P指向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

第6题:

下列程序的运行结果为includevoid abc(char*str){int a,b;for(a=b=0;str[a]!='\0';a++

下列程序的运行结果为 #include<stdio.h> void abc(char*str) { int a,b; for(a=b=0;str[a]!='\0';a++) if(str[a]!='c') str[b++]=str[a]; str[b]='\0';} void main() { char str[]="abcdef"; abc(str); printf("str[])=%s",str);}

A.str[]=abdef

B.str[]=abcdef

C.str[]=a

D.str[]=ab


正确答案:A
解析: 本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。

第7题:

下列程序的运行结果为

#include<stdio.h>

void abc(char*str)

{ int a,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

void main()

{ char str[]="abcdef";

abc(str);

printf("str[]=%s",str); }

A.str[]=abdef

B.str[]=abcdef

C.str[]=a

D.str[]=ab


正确答案:A
解析:本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。

第8题:

下列程序的输出结果是______。 include include using namespace std; voi

下列程序的输出结果是______。

include<iostream.h>

include<string.h>

using namespace std;

void fun(const char*s,char &C) {c=s[strlen(s)/2];}

int main()

{

char str[]="ABCDE";

char ch=str[1];

fun(str,ch);

cout<<ch;

return 0;

}


正确答案:C
C

第9题:

以下C程序段的输出结果是(30)。 include void abc(char *str){ int a, b;

以下C程序段的输出结果是(30)。 #include <stdio. h> void abc(char *str){ int a, b; for(a=b=0;str[a]!='\O';a++)if(str[a]!='c') str[b++]=str[a]; str[b]='\O'; } void main(){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }

A.str[]=a

B.str[]=ab

C.str[]=abdef

D.str[]=abcdef


正确答案:C
解析:本试题核心在于子函数的for循环。For循环将整个字符串中的字符处理一遍,每次处理时,函数的基本工作是将除字母c之外的字符重新赋值,然后a++,b++,继续处理下一个字符。对于字母c不赋值,且只有a++而b不变。可见for循环的目的只是将字母c剔除。

第10题:

下列程序段的运行结果是()。includevoid main(){char str[]="ABC",*p=str;printf("%d\n

下列程序段的运行结果是( )。 #include<stdio.h> void main() { char str[]="ABC",*p=str; printf("%d\n",*(p+3)); }

A.67

B.0

C.字符'C'的地址

D.字符'C'


正确答案:B
解析: 先定义了一个指向字符型数组str的指针p,指针p旨向数组str的首地址,p+3将指针指向str[3],又因为字符型数组在存放字符串时会自动在末尾加上'\0',所以*(p+3)=0。

更多相关问题