三道C语言题目,求大神(用指针的方法)。
第三题A x[3]为3无疑问,B p1为x[3]的地址 ++是后++不需考虑 也是3 C p1为x[2]地址,后面的++无论括号与否都是表达式执行完最后执行,D 先++之后也是x[3]的地址 明显正确。
. 变量的指针,其含义是指该变量的(B)。A. 值 B. 地址 C. 名 D. 一个标志 5. 若有说明语句:int a, b, c, *d=,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。
看不太清。3题:改错 第4行代码:a=*x 这里应该改成 a=&x 倒数第2行代码:printf(。。
A之所以错是因为代码中有一句q=NULL,也就是说q是一个空指针了,你再向里面写东西就错了,而且你在vc0中可以试一下,马上会出现一条0xc000 0005的写异常。是的,你不管给它赋值多少都是4的。
题:解析:先看返回值,b和d选项,函数没有定返回值,但是return 有返回。再看a和c的返回值类型,a需要返回double,但是为int行,只有c符合。
第一题:fun(a,5),则p指向数组a的首地址,然而在fun函数里面的for循环,p=b,则指向b数组的首地址,跟a无关了。其次,printf(%s\n,A); A哪里来的?C语言是区分大小写的。
C语言关于指针的一题。
. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。A. p=q; B. *p=*q; C. a=*q; D. q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针。
答案是D。int *p=a; // 将指针p指向数组a的首地址,即a[0]所在内存的地址 for(i=0;i4;i++) // 四次循环 a[i]=*p; // 将p所指向的内存的值,赋值给a[i]。
答案是D 在循环开始,ptr指向了数组的首地址,经过一次循环,指针指向了下一个字节。第一次循环 ptr指向该数组第一个字节,通过printf函数,输出了指针所指的字符串“ABCDE”一次循环,每次指针后移一个字节。
pp = //这里pp重新指向了变量b的地址,也就是pp指向的内存里面的值是b的值了。printf(%d, %d\n, *p, *pp);//*p的意思是取p指向的内存里面的值,*pp同理。
p——p指针指向的变量的值。而一个普通变量x只有两个要素:&x、x &x——系统分配给x的内存地址;x——x的地址中存放的值,我们把这个值称为变量x的值。特别说明:*x是无意义的。
c语言选择题(指针)
1、. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。A. p=q; B. *p=*q; C. a=*q; D. q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针。
2、答案是A,首先定义p是一个指向int类型的指针,不过这个指针没有初始化,也就是没有指向。然后定义了一个int类型的变量i,这里千万不要认为i也是个指针,如果i跟p一样,要在前面也加个*号。
3、第三题A x[3]为3无疑问,B p1为x[3]的地址 ++是后++不需考虑 也是3 C p1为x[2]地址,后面的++无论括号与否都是表达式执行完最后执行,D 先++之后也是x[3]的地址 明显正确。
4、选C。int a,*p;定义了一个整型变量a以及整型指针p;因此p=p可以存放a的地址。选B。int a,*p=因为a是一个变量,不存在*a这一个用法。选D。pp未定义错误。C是正确的,pp2以及p都是整型指针。
5、左:D是错误的,选D——因为p是int *型而n是int型,=号两边类型不匹配。右:A正确,选A——因为,*p1==4,*p2==6,*p1/*p2==4/6==0,所以a=(*p1)/(*p2)+7==0+7==7。
6、sizeof (指针变量名),计算的指针变量类型的的size,结果是C 正确,int a[5];int *p=a; *p++,*(p++),*(++p)是可以的 D正确,数组country[]元素存放的每个字符串的首地址。
C语言程序设计指针雨数组三道题?
1、ps=str是正确的,因为你的ps在上边定义的是一个指针。那么下边的赋值运算中就应该是地址之间的传递,str作为数组名,它本身就是一个地址。同时ps也是一个指针。
2、int a[2][3]; 定义了一个二维函数,每一维数组有三个元素。
3、malloc在没有足够空间申请的时候会返回NULL,也就是0 因为&是取址运算符,注意,是运算。
4、static int a[10],i;不要返回栈中的指针。
5、在函数p内部,x=2,*y指向全局变量x,x,z是局部变量。
C语言关于指针的三道简单选择题,来个大神解释下,谢谢
1、D选项,*x本身就错误,因为x是int类型,没法使用*操作符。
2、首先这里所谓的2维数组,在内存中是按照一维数组方式来存放的,所以这里int a[4][4]可以理解成int a[16],*p又是指向a的指针,所以C是正确的。对于A是指针的指针的了,明显是错误的。B,D和A是一样的。
3、.1 选择题 1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。
4、(1)int *p[4],p是一个指针数组,包含4个指向整形数据的指针。(2)int (*p)[5],p是一个数组指针,指向一个有5个元素的整形数组。(3)int *p(int),p是一个函数,参数为整形的,饭后一个整形的指针。
5、int a[2][3]; 定义了一个二维函数,每一维数组有三个元素。
有一个关于c语言指针的题,求详解,具体见内容
1、答案是D 在循环开始,ptr指向了数组的首地址,经过一次循环,指针指向了下一个字节。第一次循环 ptr指向该数组第一个字节,通过printf函数,输出了指针所指的字符串“ABCDE”一次循环,每次指针后移一个字节。
2、p2是指针变量,指向的是字符型数据。第二句话表示p2这个指针变量指向的是包含有abc等三个元素的字符型数组。
3、} //说明:我在VC++0编译环境里运行通过了。