计算机二级

下列程序段没有错误的是( )。A.int*p;cin>>*p;B.int*s,k;*s=100C.int *s ,k; char *p ,c; s=&k; p=&c; *p='a'; *s=1;D.int *s,k; char *p,c; s=&k; p=&c; s=p;

题目

下列程序段没有错误的是( )。

A.int*p;cin>>*p;

B.int*s,k;*s=100

C.int *s ,k; char *p ,c; s=&k; p=&c; *p='a'; *s=1;

D.int *s,k; char *p,c; s=&k; p=&c; s=p;

参考答案和解析
正确答案:C
解析:指针变量一定要让它指向某个内存单元才能给它赋值、参加运算等,选项A和选项B都是因为没有先让指针指向某个内存单元;选项D把不同数据类型的指针变量相互赋值是错误的。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请选出下面正确的程序段( )。

A.int *s; scanf("%d",s); ┆

B.int *s,k; *s=100; ┆

C.int *s,k; char *p, c; s=&k; p=&c; *p='a'; ┆

D.int *s,k; char *p, c; s=&k; p=&c; s=p; *s=1; ┆


正确答案:C
解析:本题的选项A)和B)犯了一个同样的错误,即指针变量s定义后并没有指向具体的变量。也就是说,s中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第2题:

请选出正确的程序段

A.int *p; scanf("%d",p); …

B.int *s, k; *s=100; …

C.int *s, k; char *p, c; s=&k; p=&c; *p=′a′; …

D.int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; …


正确答案:C
解析:本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第3题:

请选出正确的程序段

A.int *p; scanf("%d",p); …

B.int *s,k; *s=100; …

C.int *s,k; char *p,c; s=&k; p=&c; *p='a'; …

D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; …


正确答案:C
解析:本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是血型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第4题:

以下正确的程序段是______。

A.int*p; scanf("%d",p);

B.int *s,k *s=100;

C.int*s,k; char*p,c; s=&k; p=&c; *p='a';

D.int*s,k; char*p,c; s=&k; p=&c; s=p; *s=1;


正确答案:C

第5题:

请选出正确的程序段

A.int*p; scanf("%d",p); …

B.int *s,k; *s=100; …

C.int *s,k; char *p,c; s=&k; p=&c; *p='a'; …

D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; …


正确答案:C
解析: 本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第6题:

请选出正确的程序段______。

A.int*p scanf("%d"",p); ……

B.int*s,k; *s=100; ……

C.int*s,k; char *p,c; s=&k; p=&c; *p='a'; ……

D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; ……


正确答案:C
解析:本题的A和B犯了一个同样的错误,即指针变量p定义后并没有指向具体的变量,因此不能进行赋值操作。另外,在选项D中,s是int指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第7题:

请选出正确的程序段A.int*p; scanf("%d",p); …B.int*s,k; *s=100; …C.int *s,k; char*p,c; s=&am

请选出正确的程序段

A.int*p; scanf("%d",p); …

B.int*s,k; *s=100; …

C.int *s,k; char*p,c; s=&k; p=&c; *p='a'; …

D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; …


正确答案:C
解析:本题的选项A)和B)犯了一个同样的错误,即指针变量p定义后并没有指向具体的变量。也就是说,p中没有确定的地址值,它的值是不可预见的,所指向的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第8题:

请选出正确的程序段______。

A.int *p scanf(""%d"",p); ……

B.int *s,k; *s=100; ……

C.int *s,k; char *p,c; s=&k; p=&c; *p='a'; ……

D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; ……


正确答案:C
解析:本题的A和B犯了一个同样的错误,即指针变量p定义后并没有指向具体的变量,因此不能进行赋值操作。另外,在选项D中,s是int指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

第9题:

请选出正确的程序段

A.int *p;

scanf("%d",p);

B.int *s, k;

*s=100;

C.int *s, k;

char *p, c;

s=&k;

p=&c;

*p=′a′;

D.int *s, k;

char *p, e;

s=&k;

p=&c;

s=p;

*s=1;


正确答案:C