计算机二级

设有说明语句如下: static char str[]="Beijing"; 若执行下列输出语句: printf("%d\n",strlen(strcpy(str,"China")));则输出结果为( )。A.5B.7C.12D.14

题目

设有说明语句如下: static char str[]="Beijing"; 若执行下列输出语句: printf("%d\n",strlen(strcpy(str,"China")));则输出结果为( )。

A.5

B.7

C.12

D.14

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

第1题:

设有char str[80]以下不能将输入数据first\nsecond\n读取到数组sir中的语句是A.cin.get(str,

设有char str[80]以下不能将输入数据first\nsecond\n<CR>读取到数组sir中的语句是

A.cin.get(str, strlen(str));

B.cin.getline(str, strlen(str));

C.cin>>str;

D.cin.read(str, strlen(str));


正确答案:B
解析:本题考察C++中输入输出流对象的一些常用成员函数的用法。其中get和getline的区别在于getline读取中以“\n”作为辅入结束符。故本题中getline只能接收第一个换行符之前的字符,即first,后面的字符被丢弃。因此正确答案应为B。

第2题:

执行下列语句后,输出结果为steven的是 Char * str="steven"; cout. 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’多考虑了一次。

第3题:

设有 static char str[]="Beijing"; 则执行 printf("%d\n",strlen(strcpy(str,"China"))); 后的输出结果为_______。

A.5

B.7

C.12

D.14


正确答案:A
解析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlen()函数返回的应当是现在的str字符串的字符个数,即是5。

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

有以下程序: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符合题意。

第6题:

设有char str[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是A.cin.get(str

设有char str[80];以下不能将输入数据first\nsecond\n<CR>读取到数组str中的语句是

A.cin.get(str,strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.cin.read(str,strlen(str));


正确答案:B
解析:本题考察C++中输入输出流对象的一些常用成员函数的用法。其中get和getline的区别在于getline读取中以"\n"作为输入结束符。故本题中getline只能接收第一个换行符之前的字符,即first。后面的字符被丢弃。因此正确答案应为B。

第7题:

执行下列语句后,输出结果为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’多考虑了一次。

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

设有定义char str[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是A.cin.get

设有定义char str[80];以下不能将输入数据first\nsecond\n<CR>读取到数组str中的语句是

A.cin.get(str, strlen(str));

B.cin.getline(str,strlen(str));

C.cin>>str;

D.cin.read(str, strlen(str));


正确答案:D
解析:本题考察cin流对象的几种成员函数get,getline,read及流提取符>>的使用规则。