下列程序在32位linux或unix中的结果是什么?func(char *str){printf(" %d",sizeof(str));printf(" %d",strlen(str));}main(){char a[]="123456789";printf(" %d",sizeof(a));printf(" %d",strlen(a));func(a);}

题目

下列程序在32位linux或unix中的结果是什么?

func(char *str)

{

printf(" %d",sizeof(str));

printf(" %d",strlen(str));

}

main()

{

char a[]="123456789";

printf(" %d",sizeof(a));

printf(" %d",strlen(a));

func(a);

}

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

第1题:

执行下列语句后,输出结果为steven的是

char*str="steven";

eout.write(str, );

A.strlen(str)

B.sizeof(str)

C.strlen(str+1)

D.sizeof(str-1)


正确答案:A
解析:本题考察在C++中,字符串的存放方式,以及不同的字符串函数的作用。其中,strlen是专门用于求字符串长度的,其自动去掉字符数组后面的那个‘\0’,而sizeof后面求的则是str指针,指针在目前的32位机器中是固定大小的,其值与字符串的长度是没有关系的。故可以排除B和D。而选项C则将‘\0’多考虑了一次。

第2题:

有以下程序:includemain(){ char str[][20]={"Hello","Beijing"),*p=str[0];printf("

有以下程序: #include<string.h> main() { char str[][20]={"Hello","Beijing"),*p=str[0]; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是( )。

A.0

B.5

C.7

D.20


正确答案:C
解析:主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello"、str[1]="Beijng",然后定义一个字符指针变量p并让它指向str[0],即指向数组的首地址,而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p+20);返回的是str[1]中字符串的长度,即"Beijng"的长度7,故4个选项中选项C符合题意。

第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题:

有以下程序includemain(){charstr[][20]={"Hello","Beijing"},*p=str;printf("%d\n",

有以下程序 #include <string.h> main() {char str[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是

A.0

B.5

C.7

D.20


正确答案:C
解析:二维数组的初始化及库函数strlen()的应用,主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]=“Hello”、str[1]=“Beijing”,然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(p +20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7。

第5题:

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

下列程序段的运行结果是( )。

#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。

第6题:

以下程序的输出结果是()includeincludemain(){char str[12]={'s','t','r',

以下程序的输出结果是( ) #include<stdio.h> #include<string.h> main() {char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }

A.6

B.7

C.11

D.12


正确答案:A

第7题:

下列程序段的运行结果是()。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。

第8题:

有以下程序: includemain(){ char str[][20]={"Hello","Beijing"},*p=str;printf("%

有以下程序: # include<string.h> main() { char str[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlen(p+20)); } 程序运行后的输出结果是 ______。

A.0

B.5

C.7

D.20


正确答案:C
解析:本题中定义了一个2×20的二维字符数组str,并且初始化为str[0]="Hello",str[1]="Beijing",p是指向 char型的指针变量,并指向str数组的首地址,strlen(p+20)=strlen(str[1])=7。

第9题:

有以下程序:includemain(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",s

有以下程序: #include <string.h> main() { char str[][20]={"Hello","Beijing"}*p=str; printf("%\n",strlen(p+20)); } 程序运行后的输出结果是

A.0

B.5

C.7

D.20


正确答案:C
解析:本题考核的知识点是二维数组的初始化及库函数strlen()的应用。主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello",str[1]="Beijing",然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

第10题:

以下程序的输出结果,是_______。 main() { char str[12]={'s','t','r','i','n','g'}; printf("%d\n",strlen(str)); }

A.6

B.7

C.11

D.12


正确答案:A
解析:在C语言中,字符串的长度是其首字符到NULL(不含)字符的总字符个数。本题定义字符数组str的同时,对第7个元素,由系统自动加上“\0”,故字符串的长度为6。

更多相关问题