
c语言指针选择题?
1.对于类型相同的指针变量,不能进行哪种运算?(单选)A.+B.-C.=D.==2.若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素的错误引用?(单选)int...
1.对于类型相同的指针变量,不能进行哪种运算?(单选)
A. + B. - C. = D. ==
2. 若有以下说明和语句,且0<=i<10, 则下面哪个是对数组元素的错误引用?(单选)
int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;
p=a;
A. *(a+i) B. a[p-a] C. p+i D. *(&a[i])
3. 若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?(单选)
int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;
p=a;
A. &(a+1) B. a++ C. &p D. &p[i]
4. 以下程序的输出结果是___。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
A. 0,5 B. 1,5 C. 0,6 D. 1,6
5. 以下程序的输出结果是哪一项?(单选)
#include <stdio.h>
main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
for(i=0;i<4;i++)
p[i]=&a[i*3];
printf("%d\n",p[3][2]);
}
A. 输出项不合法 B. 6 C. 8 D. 12
6. 如果有以下的定义:(多选)
struct person
{
char name[20];
int age;
char sex;
};
struct person a={"xiao min",20,'m'},*p=&a;
则对字符串"li ning"的引用方式可以是下面哪些?
A. (*p).name B. p.name C. a.name D. p->name
7. 下面哪些定义的结构在内存分配是等价的。(单选)
(1)struct abc{
char x;
char y;
int data;
};
(2)struct abc{
char x,y;
int data;
};
(3)struct abc{
int data;
char x;
char y;
};
A. (1)和(2) B. (2)和(3)
C. (1)和(3) D. (1)(2)和(3)
8. 若有以下说明和语句,, 则p1-p2的值为多少?(单选)
int a[10], *p1, *p2;
p1=a;
p2=&a[5];
A. 5 B. 6 C. 10 D. 没有指针与指针的减法
9. 读程序,并写出正确结果。
#include <stdio.h>
struct stustruct{
char name[10];
int score[3];
};
void main()
{
struct stu student={
"xiaowang",
{99,87,90}
};
struct stu *p1=&student;
int *p2=student.score;
printf("%d\n",student.score[0]);//屏幕显示___
printf("%s\n",p1->name); //屏幕显示___
printf("%d\n",p2[2]); //屏幕显示___
printf("%d\n",*(p2+1)); //屏幕显示___
}
10. 已知有以下的说明,
int a[]={8,1,2,5,0,4,7,6,3,9};
那么a[*(a+a[3])]的值为___.
11. 已知有以下的说明,那么执行语句a=p+2;后, a[0]的值等于多少?(单选)
float a[3]={1.2,45.6,-23.0};
float *p=a;
A. 1.2 B. 45.6
C. -23.0 D. 语句有错 展开
A. + B. - C. = D. ==
2. 若有以下说明和语句,且0<=i<10, 则下面哪个是对数组元素的错误引用?(单选)
int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;
p=a;
A. *(a+i) B. a[p-a] C. p+i D. *(&a[i])
3. 若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?(单选)
int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;
p=a;
A. &(a+1) B. a++ C. &p D. &p[i]
4. 以下程序的输出结果是___。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
A. 0,5 B. 1,5 C. 0,6 D. 1,6
5. 以下程序的输出结果是哪一项?(单选)
#include <stdio.h>
main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
for(i=0;i<4;i++)
p[i]=&a[i*3];
printf("%d\n",p[3][2]);
}
A. 输出项不合法 B. 6 C. 8 D. 12
6. 如果有以下的定义:(多选)
struct person
{
char name[20];
int age;
char sex;
};
struct person a={"xiao min",20,'m'},*p=&a;
则对字符串"li ning"的引用方式可以是下面哪些?
A. (*p).name B. p.name C. a.name D. p->name
7. 下面哪些定义的结构在内存分配是等价的。(单选)
(1)struct abc{
char x;
char y;
int data;
};
(2)struct abc{
char x,y;
int data;
};
(3)struct abc{
int data;
char x;
char y;
};
A. (1)和(2) B. (2)和(3)
C. (1)和(3) D. (1)(2)和(3)
8. 若有以下说明和语句,, 则p1-p2的值为多少?(单选)
int a[10], *p1, *p2;
p1=a;
p2=&a[5];
A. 5 B. 6 C. 10 D. 没有指针与指针的减法
9. 读程序,并写出正确结果。
#include <stdio.h>
struct stustruct{
char name[10];
int score[3];
};
void main()
{
struct stu student={
"xiaowang",
{99,87,90}
};
struct stu *p1=&student;
int *p2=student.score;
printf("%d\n",student.score[0]);//屏幕显示___
printf("%s\n",p1->name); //屏幕显示___
printf("%d\n",p2[2]); //屏幕显示___
printf("%d\n",*(p2+1)); //屏幕显示___
}
10. 已知有以下的说明,
int a[]={8,1,2,5,0,4,7,6,3,9};
那么a[*(a+a[3])]的值为___.
11. 已知有以下的说明,那么执行语句a=p+2;后, a[0]的值等于多少?(单选)
float a[3]={1.2,45.6,-23.0};
float *p=a;
A. 1.2 B. 45.6
C. -23.0 D. 语句有错 展开
1个回答
展开全部
BBDDD(AD)AD
9. 99,xiaowang,90,87
10. 0
11. D
9. 99,xiaowang,90,87
10. 0
11. D
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询