若char a[10];已正确定义,以下语句中不能从键盘上给a数

题目

若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是().

  • A、gets(a);
  • B、scanf("%s",a);
  • C、for(i=0;i<10;i++)a[i]=getchar();
  • D、a=getchar();
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列定义变量的语句中正确的是( )。A)int _int; B)double 3int_;C)char for; D)float US&;


正确答案:A
用户标识符不能为关键字,只能由数字,字母和下划线组成,而且第一个必须为字母或下划线。

第2题:

以下定义语句中正确的是

A.int a=b=0;

B.char A=65+1,b=′b′;

C.float a=1,*b=&a,*c=&b;

D.double a=0.0;b=1.1;


正确答案:B
解析:本题考查变量的定义方法。

第3题:

若有定义 :char *x="abcdefghi"; ,以下选项中正确运用了 strcpy 函数的是

A)char y[10]; strcpy(y,x[4]);

B)char y[10]; strcpy(++y,&x[1]);

C)char y[10],*s; strcpy(s=y+5,x);

D)char y[10],*s; strcpy(s=y+1,x+1);


正确答案:D

答案 D
解析 : 在字符拷贝函数中 strcpy( 字符数组 1 , 字符串 2) 中 , “ 字符数组 1 ” 必须写成数组名的形式,而且,数组 1 的长度要大于树组 2 的长度。因此本题 D 正确。

 

第4题:

若指针ps已正确定义,要使ps指向能够存储8个字符的动态存储单元,以下不正确的语句是( )

A.ps=(char*)malloc(8);

B.ps=(char *)malloc(sizeof(char)* 8);

C.ps=(char*)calloc(8,sizeof(char))

D.ps=8*(char*)malloc(sizeof(char))


正确答案:D

第5题:

若已包括头文件且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串“ABCDE”赋给s

若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串“ABCDE”赋给s1,下列语句错误的是( )。

A.strcpy(s1,s2)

B.strcpy(sl,"ABCDE");

C.s1="ABCDE";

D.for(i=0;i<6;i++) s1[i]=s2[i];


正确答案:C
解析:数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量,因此s1=“ABCDE”的方法是错误的。

第6题:

有以下类定义 class MyClass { private: int id; char gender; char*phone; public: MyClass():id(0),gender('#'),phone(NULL){} MyClass(int no,char ge='#',char*ph=NULL) {id=no;gender=ge;phone=ph;} }; 下列类对象定义语句中错误的是

A.MyClass myObj;

B.MyClass myObj(11,"13301111155");

C.MyClass myObj(12,'m');

D.MyClass myObj(12);


正确答案:B
解析:本题考核构造函数的应用。对象建立用初始化列表对数据成员进行时,列表中的参数类型要与构造函数中形参类型一致。B选项中第二个参数为"13301111155"是字符串,而构造函数中第二个形参为char型,两者不一致造成错误。

第7题:

若有定义:char *x="abcdefghi";,以下选项中正确运用了strcpy函数的是______。

A.char y[10]; strcpy(y,x[4]);

B.char y[10]; strcpy(++y,&x[1]);

C.char y[10],*s; strcpy(s=y+5,x);

D.char y[10],*s; strcpy(s=y+1,x+1);


正确答案:D
解析:选项A中x[4]是取字符e,也就是将字符复制到y中,strcpy实现的是地址的复制所以选项A错误;选项B中++y是错误的,不允许对常量进行自加运算(y是—个确定的地址值),所以选项B错误;选项C指针变量s指向了y向后的第5位,则存放x时会出现越界问题,所以选项C错误;选项D中,指针变量s指向了y向后的第—位,此时s可存放数据的长度为9,而地址“x+1”起的字符串的地址长度也刚好为9(包括“\0”),所以开始复制不会出现地址越界问题,故选项D正确。

第8题:

以下定义语句中正确的是

A)int a=b=0;

B)char A=65+1,b='b';

C)float a=1,*b=&a,*c=&b ;

D)double a=0.0,b=1.1;


正确答案:B

第9题:

以下定义语句中正确的是

A.int a=b=0;

B.char A=65+1,b=′b′;

C.float a=1,*b=&a,*c=&b;

D.double a=00;b=1.1;


正确答案:B
解析:本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。

第10题:

以下定义语句中正确的是( )。

A.char a='A ' b='B';

B.float a=b=10.0;

C.int a=10, *b=&a;

D.float *a, b=&a;


正确答案:C
解析:选项A)中,字符型变量a,b中间缺少逗号;如果对几个变量赋以同一个初值,不能在定义变量时进行,应写成:floata=10.0,b=10.0;所以选项B)不正确;选项D)中,执行b=&a相当于将地址转换成了浮点型,编译时将提示出错信息“无效的类型转换”,所以选项D)不正确。

更多相关问题