C语言程序设计

下面关于指针用法形式正确的是()A、char*string="helloword";printf("%c",string[1]);B、char*string="helloword";printf("%s",string);C、intstuid=1001,*id;id=&stuid;D、charstusex=’m’,*gander;&stusex=gander;

题目

下面关于指针用法形式正确的是()

  • A、char*string="helloword";printf("%c",string[1]);
  • B、char*string="helloword";printf("%s",string);
  • C、intstuid=1001,*id;id=&stuid;
  • D、charstusex=’m’,*gander;&stusex=gander;
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若输入bcdefgh、m、abcdefg,以下程序的输出结果为()。includeincludemain(){i

若输入bcdefgh、m、abcdefg,以下程序的输出结果为( )。 #include<stdio.h> #include<string.h> main() { int i; char string[20],str[3][20]; for(i=0;i<3;i++)gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf("%s",string); }

A.bcdefgh

B.m

C.abcdefg

D.bcdefgh或abcdefg


正确答案:B

第2题:

下面程序执行后,输出结果为:true请在程序的每条横线处填写一个语句,使程序的功能完整。

注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。

public class TestStringCompare{

{public static void main(String ____________________ args)

{char charl[]={'t','e','s','t'};

char char2[]={'t','e','s','t','1'};

String str1=new String(___________________);

String str2=new String(char2,0,4);

System.out.println(__________________________);

}

}


正确答案:[ ] char1 str1.equals(str2)
[ ] char1 str1.equals(str2) 解析:本题主要考查main()主方法的使用、String类的使用。解答本题的关键是熟练掌握main()主方法的使用、String类的使用。在本题中,public static void main(String[]args)中的[]是定义数组的标志,str1.equals(str2)语句的功能是判断字符串str1和字符串str2的内容是否相等。

第3题:

设有定义: char *c; ,以下选项中能够使字符型指针 c 正确指向一个字符串的是

A ) char str[ ]= "string";c=str;

B ) scanf("%s",c);

C ) c=getchar();

D ) *c="string";


正确答案:A

第4题:

对于下面的程序includeincludechar * scmp(char * s1,char * s2){if(strcm

对于下面的程序 #include<stdio.h> #include<string.h> char * scmp(char * s1,char * s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i;char string[20],str[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为 ______。

A.abcd

B.abba

C.abc

D.abca


正确答案:B
解析:本题自定义函数scmp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执行strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

第5题:

对于下面的程序includeincludechar *scmp(char*s1,char*s2){if(strcmp(s1,

对于下面的程序 #include<stdio.h> #include<string.h> char *scmp(char*s1,char*s2) { if(strcmp(s1,s2)<0)return(s1); else return(s2); } main() { int i:char string[20],sb[3][20]; for(i=0;i<3;i++)gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[21)); printf("%s\n",string); } 若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。

A.abcd

B.abba

C.abc

D.abca


正确答案:B
解析:本题自定义函数scrnp()的作用是比较字符串s1和s2的大小,如果s1s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执打strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。

第6题:

下面的程序执行后,屏幕上显示的应是 public class Exam{ public static void main(String[]args){ char char1[]={'t','e','s','t'}; char char2[]={'t','e','S','t','1'}; String s1=new String(char1); String s2=new String(char2,0,4); System.out.println(s1.equals(s2)); } }

A.true

B.false

C.test

D.编译错误


正确答案:A
解析:首先可以通过字符数组来生成一个字符串对象:String(char[]value)和 String(char[]value,int startIndex,int numChars),其中,startIndex指定字符串在数组中的起始下标, numChars表示字符个数。然后再测试字符串是否相等,可调用equals()方法,两个字符串相等则返回 true,否则返回false。题目中s1和s2都是“test”,所以最后返回是true,选项A正确。

第7题:

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写对应栏内。

【说明】

下面的程序实现了类String的构造函数、析构函数和赋值函数。

已知类String的原型为:

class String

{

public:

String(coust char * str = NULL); //普通构造函数

String( const String &other); //拷贝构造函数

~String(void); //析构函数

String & perate =(const String &other); //赋值函数

private:

char * m_data; // 用于保存字符串

};

//String 的析构函数

String:: ~String (void)

{

(1);

}

//String 的普通构造函数

String: :String( const char * str)

{

if (2)

{

m_data = new char[1];

*m_data = '\0';

}

else

{

int length = strlen(str);

m_data = new ehar[ length + 1 ];

strepy(m_data, str);

}

}

//拷贝的构造函数

String:: String( const String &other)

{ int length = strlen(other. m_data);

m_data = new char[ length + 1 ];

strepy(m_data, other, m_data); //赋值函数

String & String::operate = (eonst String &other) //

{

if (3)

return * this;

delete [] m_clara; //释放原有的内存资源

int length = strlen( other, m_data);

m_data = new chart length + 1 ];

(4);

return (5);

}


正确答案:(1)delete[]m_data或者delere m_data
(1)delete[]m_data或者delere m_data 解析:由于m_data 是内部数据类型,也可以写成delete m_data。

第8题:

设有定义:char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是( )

A)char str[]="string";c=str;

B)scanf("%s",c);

C)c=getchar;

D)char str[]="string";strcpy("c,str")


正确答案:A

第9题:

定义一个表示10个值为null的字符串数组,下面选项正确的是

A.String [] a;

B.String a[];

C.char a[10][];

D.String a[]=new String[10];


正确答案:D
解析:本题考查字符串数组变量的声明。选项A和选项B的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题B-要求。选项C是一个二维的字符数组,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在Java中,字符char是基本类型,字符串String则是以对象的形式来表示的。选项D正确,它定义了一个含有10个元素的字符串数组,如果没有给字符串数组赋值,则默认为null。

第10题:

下面程序的运行结果是()。includeincludemain(){char*s1="abDuj";char*s2="

下面程序的运行结果是( )。 #include<stdio.h> #include<string.h> main() {char*s1="abDuj"; char*s2="ABdUG"; int t; t=strcmp(s1,s2); printf("%d",t); }

A.正数

B.负数

C.零

D.不确定的值


正确答案:A

更多相关问题