Java语言程序设计

单选题下列程序段的输出结果是(  )。int data=0;char k=‘a’,p=‘f’;data=p-k;system.out.println(data);A 0B aC fD 5

题目
单选题
下列程序段的输出结果是(  )。int data=0;char k=‘a’,p=‘f’;data=p-k;system.out.println(data);
A

0

B

a

C

f

D

5

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

第1题:

下列程序段的输出结果是( )。 intdata=0; chark='a',p='f' data=p-k; System.out.printlln(data);

A.0

B.a

C.f

D.5


正确答案:D
解析:a和f的ASCII值相差5。

第2题:

执行下列程序后,输出的结果是()。includedefine S(X)X*Xvoid main(){int a=9,k=3,m=2;

执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X)X*X void main() { int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); }

A.(*p) .data.a

B.(*p) .a;

C.p->data.a

D.p.data.a


正确答案:B
解析: 本题主要考查结构指针:p=&data,访问结构体的成员,可以通过结构变量访问,即data.a,也可以用等价的指针形式:(*p).a和p->a来访问结构体变量中的成员。

第3题:

阅读下面程序段,则执行后输出的结果是

#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

第4题:

有如下的程序:includeincludeusing namespace std;int main(){ char s[25]=

有如下的程序:

include<iostream>

include<fstream>

using namespace std;

int main(){

char s[25]="Programming language";

ofstream f1("DATA. TXT");

f1<<"C++Programming";

f1.close();

ifstream f2("DATA.TXT");

if(f2.good())f2>>s;

f2.close();

cout<<s;

return 0;

}

执行上面的程序将输出______。


正确答案:C++
C++

第5题:

执行如下程序后的输出结果是【】。include include using namespace std;int ma

执行如下程序后的输出结果是【 】。

include <iostream>

include <fstream>

using namespace std;

int main ( )

{

char s[25];

ofstream fl("data.txt");

f1<<"C++ Programming";

f1.close ();

ifstream f2 ("data.txt");


正确答案:C++
C++ 解析:程序先在当前目录下建立一个data文本文件,并写入“C++ Programming”。然后打开该文件,将其中的数据输入到变量s中,由于采用提取符“>>”读时遇到空格终止,所以最后字符数组s中存放的是“C++”。

第6题:

有下面程序段

#include "stdio.h"

#include "string.h"

main()

{ char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};

char k[100]={0},*p=k;

int i;

for(i=0;i<3;i++)

{ p=strcat(p,a[i]);}

i=strlen(p);

printf("%d\n",i);}

则程序段的输出结果是

A.18

B.19

C.20

D.21


正确答案:B
解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

第7题:

若有以下程序段: include using namespace std; int main() {char*p="abcdefgh",*r;l

若有以下程序段:

include <iostream>

using namespace std;

int main()

{

char*p="abcdefgh",*r;

long*q;

q=(long*)p;q++;

r=(char*)q;

cout<<r<<end1;

return 0;

}

该程序的输出结果是【 】。


正确答案:efgh
efgh 解析:本题定义了一个字符型指针变量p,并通过赋初值让它指向了一个字符串,还定义了另一个字符型指针变量r和一个长整型指针变量qo首先通过语句“a=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“F(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。

第8题:

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

【说明】

字符串在程序设计中扮演着重要角色。现需要设计字符串基类string,包含设置字 符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edlt_string,派生于string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。

【程序】

include <iostream.h>

include <stdio.h>

include <string.h>

class string

{

int length;

char *data;

public:

int get_length() {return length;}

char *get_data() {return data;}

~string() {delete data;}

int set data(int in_length, char *in_data);

int set_data(char *data);

void print() {cout<<data<<endl;}

};

class edit_string: public string

{

int cursor;

public:

int get_cursor() {return cursor;}

void move_cursor(int dis) {cursor=dis;}

int add_data(string *new_data);

void delete_data(int num);

};

int string::set_data(int in_length,char *in_data)

{

length=in_length;

if(!data)

delete data;

(1)

strcpy(data,in_data);

return length;

}

int string::set data(char *in_data)

{

(2)

if(!data)

delete data;

(1)

strcpy(data,in_data);

return length;

}

int edit_string::add_data(string *new_data)

{

int n,k,m;

char *cp,*pt;

n=new_data->get_length();

pt=new_data->get_data();

cp=this->get_data();

m=this->get_length();

char *news=new char[n+m+1];

for(int i=0; i<cursor; i++)

news[i]=cp[i];

k=i;

for(int j=0; j<n; i++,j++)

news[i]=pt[j];

cursor=i;

for(j=k; j<m; j++,i++)

(3)

news[i]='\0';

(4)

delete news;

return cursor;

}

void edit string::delete_data( int num)

{

int m;

char *cp;

cp=this->get_data();

m=this->get_length();

for(int i=cursor; i<m; i++)

(5)

cp[i]='\0';

}


正确答案:(1)data=new char[length+1]; (2)length=strlen(in_data); (3)news[i]=cp[j]; (4)set_data(news); (5)cp[i]=cp[i+num];
(1)data=new char[length+1]; (2)length=strlen(in_data); (3)news[i]=cp[j]; (4)set_data(news); (5)cp[i]=cp[i+num]; 解析:本题考查C++中字符串的操作。
字符是程序设计中常用的一种数据类型,而字符串表示一串字符,在程序设计中扮演着重要角色,是考试中常出现的内容。题目要求设计一个基类能实现字符串设置、返回字符串长度及内容等功能,设计一个子类能支持在光标处的插入、删除操作。
下面我们来看代码。首先定义了一个string基类,在string基类中,声明了两个成员变量和几个成员函数。接着定义了一个继承string类的派生类edit_string。再下面是对类中成员函数的实现。
第(1)空在set_data()函数体中,int string::set_data()表明此函数是基类中的成员函数,根据基类要实现的功能,此函数要实现返回字符串长度和设置其内容,在函数体中其长度已经给出,但分配存储空间被delete data删除掉了,应该重新分配,在C++中一般用关键字new实现空间的动态分配。因此,第(1)空的答案是data=new char[length+1]。
第(2)空在另一个set_data()函数体中,这两个函数同名,但参数不同,这是C++
中用同名函数实现多态的技巧。此函数功能同上一个函数,但它的形参中没有指明字符串的长度,因此,在函数开始时要求出字符串的长度,用函数strlen()。所以,此空答案为length=strlen(in_data)。
第(3)空和第(4)空在函数add_data()中,此函数是派生类中的成员函数,根据题目要求它要实现的功能是在光标处进行插入。在此函数体中重新分配了一块内存空间,其长度是原有字符串长度和要插入字符串长度之和加1,用来存放这两个字符串。第(3)空所在的位置是循环体下面,根据循环体的判断条件im我们可以想到这是要对长度为m的字符串进行插入。因此,此空答案为news[i]=cp[j]。而第(4)空是在完成了插入工作以后,根据程序上下文推断,应该是计算字符长度并返回,因此,答案为 Set_data(news)。
第(5)空在函数delete_data()中,根据题目要求,此函数应该是实现子类在光标处进行删除的功能。删除一般采用覆盖技术,即将后面的字符往前移动来覆盖掉要删除的字符,第(5)空实现的就是这个功能,要删除num个字符,后面的字符应该往前移动 num,因此,此空答案为cp[i]=cp[i+num]。

第9题:

下列程序的输出结果是______。 includef(char 8s){char *p=s;while(*p!='\0')p++;retur

下列程序的输出结果是______。# include<stdio.h>f(char 8s){ char *p=s; while(*p!='\0')p++; return(p-s);}main(){ printf("%d\n",f("ABCDEF"));}

A.3

B.6

C.8

D.0


正确答案:B

第10题:

以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

以下程序运行后的输出结果是【 】

include <stdio.h>

main ( )

{ char a[] ="123456789", *p;

int i =0;

p=a;

while( * p)

{ if(i%2 ==0) *p='*';

p++;i++;

}

puts(a);

}


正确答案:*2*4*6*8*
*2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

更多相关问题