下面的选项中正确的赋值语句是(char a

2020-11-24 22:09:43 字数 6651 阅读 8005

1楼:匿名用户

*p就指,内存在数据移动的指针,给它赋的值,就是它在内存中所在的位置

下面的选项中正确的赋值语句是(char a[5],*p=a;)( )。 a p=“abcd”; b a=“abcd”; c *p=“abcd”; d

2楼:

正确结果是:a

a p=“abcd”; p是字符型指针,将“abcd”的地址给了p,也就是p指向“abcd"的首地址,也就是 指向‘a'的地址;

b a=“abcd”;a是字符数组的地址,不可赋值;

c *p=“abcd”; *p是字符,不能将字符串赋给它,若是*p='a',则正确。

3楼:倪里特

1、某个变量的内容,只能是一个常量;

2、字符串不是常量,字符才是常量;

3、字符串的首地址也是常量,其实字符串的首地址就是一个指针。

c语言指针编程下面的选项中正确的赋值语句是(char a[5],*p=a;)( )。

4楼:匿名用户

根据c/c++规定,"abcd"可是为字符串的地址;另外就是数组的不可以直接赋值,但可以在初始化时进行赋值,即:

正确:char a[10]="abcd";

错误:char a[10];a[10]="abcd";

对地址的操作当然是和指针相关联,显然a是正确的;

b选项可以排除,其实a可以理解为指针常量;

c选项左右两边不是等级的,左边为变量,右边为指针;

d选项同c选项。

已知char b[5],*p=b; ,则正确的赋值语句是 a. b=“abcd” ; b. *b=“abcd”; c. p=“abcd”; d. *p=“a 5

5楼:匿名用户

答案是c

a,b选项中,对于数组而言,有三种赋值方式,1.在定义的时候赋值(初始化) 2.用for语句,对数组元素一个一个地赋值 3.使用指针,如c

d选项中,错在多了一个“*”,“abcd”赋值给p是将“abcd”的首地址赋给p指针

6楼:金色潜鸟

abcd 都是错的。

题目是否抄错。

字符串 “赋值” 用 strcpy(p,"abcd"); 或者 strcpy(b,"abcd");

或者 for (i=0;i<4;i++) b[i]='a' + i;

7楼:匿名用户

你写个程序跑一下不就行了啊

c语言的一道题,求答案及解释?

8楼:2013努力实现

a)p=p+2;

意思是将a[2]的地址赋给p:p=&a[2];

b)a是个指针常量不能赋值

c)如果将*p的星号去掉就是正确的

d)a是个数组名是一个不能改变的左值

9楼:难得浆糊

aa代表字符数组的首地址, 所以a是固定值. 所以a不能被赋值,选项b的错误的

c. "abcd"是一个字符串数组. 不能赋值给*p

d 同样不对. a的值是不能被改变的.

c语言考试题

10楼:高金山

这些都是最基本的题,但要想全部做对,还真不容易我已经尽量保证我下面的答案都是对的

就算错也错不会超过1-2个的

填空题1.1

2.93.96 `(~键的那个符号,1键前面)

4.a[0] a[1] a[2]

5.1600

6.文本文件 二进制文件

7.fopen fclose fseek

选择题1.c

2.b3.d

4. a

只有a是正确的,bcd都是编译都通不过的

b. a是数组,是不能直接对数组进行赋值的5.c6.c

7.a指针是可以相减,进行比较,指向同一地址的,但相加是不行的8.d9.c

10. b

写出下列程序的运行结果:

1.10,6,23,-90,0,3

2.6 7 8

在 处填入适当内容:

(1)#include

(2)2

(3)break;

(4)k+1

编程求解

1、1*2*3。。。n

#include

void main()

2、1+2+3+…+100

#include

void main()

11楼:匿名用户

我来回答下把:

1.12.9解释:t = (a>b)?a:b等价于t = ((a>b)?a:b),这下应该知道了把

3.96 `(和~键是同一个键)

解释:a=96;96是那个字符的acsii码值的十进制表示,它的十六进制表示的ascii码值为60,你可以对96进行除16取余法得到60,然后你去查看下字符的ascii码 16进制表示的那个表就会发现,它对应的是这个字符,所以就是他了,别和单引号混淆就好,单引号的ascii码十六进制表示为27

4.a[0] a[1] a[2]

5.1600

6.文本文件 二进制文件 [这个拿的不是很准]

7.fopen fclose fseek

下面:1.c

解释:a+=a-=a*=a,首先要知道+=,-=,*=的优先级是相同的,但是他们的结合性是由右向左的,所以,他相当于a+=a-=(a=a*a),你还要知道,这是在同一条语句中多次修改同一个变量的值,这里有结合性,可以保证,但是有的时候并不可以,因为语言中明确规定,求值顺序未定义,一般尽可能不要在同一条语句里多次修改同一个变量的值,有的时候还和编译器有关的,a+=a-=(a=a*a)相当于a+=(a=a-(a=a*a)),在a=(a+(a=a-(a=a*a))),所以为0

2.b3.d解释:你定义一个带参数的宏#define add(x) (x)+(x)

你要知道,宏替换是机械化的替换,不会很智能化的,也就是说

在这里,替换的时候是替换成了这样d=(a+b)+(a+b)*c;所以最后就是80了

4. a

解释:这样理解把, char a[5]; char *p=a;这个是把数组的首地址赋给指针p来初始化指针,你后面再加一句p="abcd";不就是对指针的赋值吗,使指针不再指向数组的首地址,而是指向了字符串的首地址了.相信char *p="abcd";很常见把,呵呵...

5.c解释:因为k=2,然后执行关系表达式k==0,结果显然判断结果为假,所以不执行循环体

6.c7.a指针是不能相加的

8.d解释:这个应该好好解释下,这个题还好了

struct st;

static struct st a[3]=,*p; p=&a[0];

a p++->n b p->n++ c (*p).n++ d ++p->n

分析:首先你要知道,这是定义了一个结构体数组,这个static struct st a[3]=写的易读一点就是static struct st a[3]=,,},是不是明了了好多.

你做这个题目之前还需要明白一点,即箭头操作符的优先级高于++运算符,然后分析选项

选项a.p++是后缀加,所以执行(p++)->n(即p++->n) 相当于执行p->n,即得到的值是5

选项b. p->n++相当于(p->n)++,由于是后缀加,所以得到的值也是5

选项c.(*p).n++ 就是相当于((*p).

n)++,更相当于(p->n)++,所以和上面的是一样的,也是5,为什么它相当于它呢,这就要你看看箭头操作符的由来了,箭头操作符的由来就是为了结合解引用操作符*和点操作符.于一起的.来简化书写,增加可读性

选项d.++p->n 相当于++(p->n),由于是前缀加,所以得到的值为6了

9.c,选择w会格式化

10. b ,数组名其实就相当于一个指针,这里对指针做运算,加1使指针下移

写出运行结果:

1.10623-9003

2.6 7 8

填空题:

1.#include

#include

2. 2

3.break;

4.k+1

编程题:

1.**如下:

#include

int main()

2.**如下

#include

int main()

应该没错把,楼主有什么问题可以发消息给我

12楼:匿名用户

未检查,请后来人指正19

96 a

a[0],a[1],a[2]

1600

二进制 文本

fopen fclose fseekcb

dbcc

bcdb

10,6,23,-90,0,3,

6 7 8

(1)#include

(2)2

(3)break

(4)k+1

#include

int main()

#include

int main()

13楼:真理的寻找

1)1;2)9;3)96,a;4)a[0]a[1]a[2];5)1600;6)文件,函数;7)fopen ,fclose,fgetc

1)c;2)b;3)a;4)b;5)c;6)c;7)b;8)a;9)d;10)b

1)10623

-900

32)6,7,8

在处填入适当内容

1)stdio;2)i=2;3)m++;4)m编程求解:

1)int i,t=1;

main()

{ for(i=0;i这分可是真不好拿阿

14楼:雏龙

1.设x的值为15,n的值为2,则表达式x%n运算后,表达式的值为(1 )。

2.设 int a=7,b=9,t;执行完表达式t = (a>b)?a:b后,t的值是( 9)。

3.下面程序段的输出结果是(96,` )。

int a=96; printf(“%d %c\n”,a,a);

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是(a[0] a[1] a[2]

)。 char a[3];

5.设有以下宏定义,则执行赋值语句 a=pp*20;(a为int型变量)后,a的值是(1600 )。

#define pp 80

6.在c文件中,数据存在的两种**形式是(ascⅱ和二进制

)。 7.c语言中调用(fopen )函数打开文件,调用(fclose )函数关闭文件,调用(fseek )函数可实现文件的随机读写。

1.设 int a=12; 表达式a+=a-=a*=a的值是(c )。

a 12 b 144 c 0 d 132

2.以下程序的输出结果是( b)。

main( )

a 96 b 97 c a d b

3.以下程序的输出结果是(d )。

#define add(x) (x)+(x)

main()

a d=70 b d=140 c d=280 d d=80

4.下面的选项中正确的赋值语句是(char a[5],*p=a;)(c )。

a p=“abcd”; b a=“abcd”; c *p=“abcd”; d *a=“abcd”;

5.若k为整形,则while循环执行( c)次。

k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”);

a 10 b 9 c 0 d 1

6.数组名作为实参传递给形参时,数组名被处理为该数组的(c )。

a长度 b元素个数 c首地址 d各元素的值

7.两个指针变量不可以(a )。

a. 相加 b 比较 c 相减 d 指向同一地址

8.若有以下程序段,则值为6的表达式是(d )。

struct st;

static struct st a[3]=,*p; p=&a[0];

a p++->n b p->n++ c (*p).n++ d ++p->n

9.要打开一个已存在的非空文件”file”用于修改,选择正确的语句( d)。

a fp=fopen("file","r"); b fp=fopen("file","w");

c fp=fopen("file","r+"); d fp=fopen("file","w+");

10. 9.若有int a[3]=;则a+1是( b)。

a a[0]的地址 b a[1]的地址 c a[1]的值 d a[0]的值加1

写出下列程序的运行结果:

1.main( )

,i;for(i=0;i<6;i++) printf(“%d,”,a[i]);

printf(“\n”);

}/* 结果:10,6,23,-90,0,3*/

2.f1(int a)

main()

/*6 7 8*/

在 处填入适当内容:

求100~200间的全部素数。

(1)main() }

} 编程求解

1*2*3。。。n

///int main()

1+2+3+…+100

//#include

int main()

下面正确的赋值语句是A.X+Y 30 B.Y X+30 C

1楼 南瓜苹果 赋值语句中,赋值号左边必须是一个变量,而不能是其它表达式。所以a选项没有意义,x y不是一个变量,所以错了。 不是一个合法的变量名。所以d选项也没有意义。 3y不是一个合法的变量名。所以c选项也没有意义。 正确答案是b,意思是把x加上30后的值赋给y。 扩展资料赋值语句的特性 1 赋...

不小心,脚踩在钉子上,立刻抬脚,下面叙述中正确的是A

1楼 匿名用户 a试题分析 脊髓包括灰质和白质两部分,灰质在 ,呈蝶形,在脊髓的灰质里,有许多低级的神经中枢,可以完成一些基本的反射活动,如抬脚反射的神经中枢位于脊髓的灰质里,脊髓里的神经中枢是受大脑控制的 不小心,脚踩在钉子上后,脚部 里的感受器受到钉子的刺激产生神经冲动,神经冲动沿着传入神经冲动...