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