计算机二级

有以下程序:includeincludeusing namespace std;int main(){ chara[] = {'a有以下程序: #include <iostream> #include <strinq> using namespace std; int main() { char a[] = {'a'/'b'/'c'/'d','e','f','g','h','\0'}; int i j; i=sizeof(A) ; j=strlen(A) ; cout<<i<<","<<j<<end1;

题目
有以下程序:includeincludeusing namespace std;int main(){ chara[] = {'a

有以下程序: #include <iostream> #include <strinq> using namespace std; int main() { char a[] = {'a'/'b'/'c'/'d','e','f','g','h','\0'}; int i j; i=sizeof(A) ; j=strlen(A) ; cout<<i<<","<<j<<end1; return 0; } 程序运行后的结果是( )。

A.9,9

B.8,9

C.1,8

D.9,8

参考答案和解析
正确答案:D
解析:本题考查sizeof运算符和字符串函数strlen()的区别。①sizeof运算符返回其后表达式或类型标识符所表示的数在内存中所占的字节数。②函数strlen()的功能是返回string的长度,但不包括结束字符'\0'。字符数组a在内存中所占的字节数为9。而字符数组a中不包括结束字符'\0'的字符数为8。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序:includeincludemain(){char a[]={'a','b','c','d','e','f','g'

有以下程序: #include<stdio.h> #include<string.h> main() { char a[]={'a','b','c','d','e','f','g','h','\0'};int i,j; i=sizeof(a);j=strlen(a); printf("%d,%d\b",i,j);} 程序运行后的输出结果是

A.9,9

B.8,9

C.1,8

D.9,8


正确答案:D
解析:本题考查了求数据类型长度的运算符sizeof和求字符串长度的函数strlen的区别。strlen计算的是一个字符串的实际字符个数,如果字符串放在字符数组中,则函数strlen的值为'\0'之前的全部字符个数。而sizeof求出的是数据占据存储空间的字节数,当然也要包括字符串的结束标志符'\0'。

第2题:

以下程序的运行结果是【】。 include include using namespace std; void main()

以下程序的运行结果是【 】。

include<iostream>

include<string>

using namespace std;

void main(){

chara[10]="China",b[]="Chin",c[]="ese";

cout<<strlen(strcat(strcpy(a,b),c))<<endl;

}


正确答案:7
7 解析:本题主要考查C++中字符串函数的使用。strcpy(s1,s2)将s2的内容赋值到s1中; strcat(s1,s2)连接s1和s2两个字符串;strlen(s)返回字符数组s的长度。因此最后输出的结果是b和c进行连接后的字符串长度,即7。

第3题:

有以下程序 include main() { char a=4; printf("%d/n,a=a

有以下程序 #include <stdio.h> main() { char a=4; printf("%d/n,a=a<<1); } 程序的运行结果是______。

A.40

B.16

C.8

D.4


正确答案:C
解析:“”是按位左移运算符,左移一位相当于该数乘以2,左移两位相当于该数乘以2的2次方,所以本题相当于将4乘以2,结果为8。

第4题:

有以下程序:include main ( ){char a :'a',b; printf( "% c," , + + a); printf("%c

有以下程序: #include <stdio. h> main ( ) { char a :'a',b; printf( "% c," , + + a); printf("%c \n" ,b =a++); }程序运行后的输出结果是( )。

A.b,b

B.b,c

C.a,b

D.a,c


正确答案:A
解析:程序中pdntf("%c",++a)是先将a加1,再输a,因此输出的是'b',而pfintf("%c\n",b=a++)是先将a的值赋给b,a再加1,所以输出的也是'b'。

第5题:

阅读下面程序段,则执行后输出的结果是 #include"stdio.h" main() { char fun(char,int); char a='A'; int b=13; a=fun(a,b); putchar(a);} char fun(char a,int b) { char k; k=a+b; return k;}

A.A

B.M

C.N

D.L


正确答案:C
解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符,A,的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。

第6题:

有以下程序:include include main( ) {char a[ 7 ] = "a0 \0a0 \0";int i,

有以下程序:#include <stdio.h>#include <string.h>main( ) { char a[ 7 ] = "a0 \0a0 \0"; int i,j; i = sizeof(a); j = strlen(a); printf(" % d %d \n" ,i,j); }程序运行后的输出结果是( )。

A.22

B.76

C.72

D.62


正确答案:C
解析:C语言.中以,'\0'作为字符串的结束符,且strlen函数计算的是,'\0',字符前的所有字符的个数,故本题中strlen(a)应为2。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof运算符是计算变量或数组所分配到的内存空间的大小,所以本题的sizeof(a)为7。

第7题:

有以下程序:includeincludemain(){char a[]={'a','b','c','d','e','f','g'

有以下程序: #include <stdio.h> #include <string.h> main() { char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\n",i,j); } 程序运行后的输出结果是( )。

A.9,9

B.8,9

C.1,8

D.9,8


正确答案:D
解析:sizeof是求字节运算符,在字符数组a中,“\0”也作为字节保存,是a数组的一个成员,所以sizeof(a)的值应为9;strlen是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括“\0”在内,所以strlen(a)的值为8。

第8题:

下面程序的输出结果为【】。 include main() { char a[]="morning",t; int i,j=0; for(

下面程序的输出结果为【 】。

include<iostream.h>

main()

{

char a[]="morning",t;

int i,j=0;

for(i=1;i<7;i++)

if(a[j]<a[i])

j=i;

t=a[j];

a[j]=a[7];

a[7]=a[j];

cout<<a;

}


正确答案:mo
mo

第9题:

有以下程序: include using namespace std; constxntN=5; int fun(char*s,char a,int

有以下程序:

include <iostream>

using namespace std;

const xnt N=5;

int fun(char *s,char a,int n)

{

int j;

*s=a;j=n;

while(a<s[j])

j--;

return j;

}

int main()

{

char s[N+1];

int k;


正确答案:3
3 解析:函数fun()的功能是在字符数组s中找到大于或等于字符a第1个元素,并返回其下标值。在主函数中,通过for循环给字符数组s分别赋值B、C…J。然后通过调用函数fun(),找到字符'E'的位置。