c语言指针题库
第五章 指针
一、选择题
1. 以下程序的输出结果是 。
#include
void main( )
{
char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;
int i;
i=8;
p=a+i;
printf ("%s\n",p-3);
}
A)6 B)'6' C)6789 D)789
答案:C
2. 若有语句:char *line[5];,以下叙述中正确的是______。
A)定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是
A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;若有定义:int x=0, *p=&x;,则语句printf("%d\n",*p);的输出结果是______。
A)随机值 B)0 C)x的地址 D)p的地址有以下程序
#include
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;
printf("%d\n", *p + *q);
}程序运行后的输出结果是______。
A)16 B)10 C)8 D)6有以下程序
#include
void main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++) p[i]=i;
for(i=0;i<3;i++) printf("%d",a[1][i]);
}程序运行后的输出结果是______。
A)012 B)123 C)234 D)345以下语句或语句组中,能正确进行字符串赋值的是______。
A)char *sp;*sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";
设有以下语句:struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
则表达式的值是6。 A)p ++ ->n B) p->n ++ C) (*p).n ++ D) ++ p->n
答案:D
9.以下程序的输出结果是#include
struct HAR
{
int x, y;
struct HAR *p;
} h[2];
void main()
{
h[0].x=1;h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1];h[1].p=h;
printf("%d%d \n",(h[0].p)->x,(h[1].p)->y);
}
A) 12 B) 23 C) 14 D) 32答案:D
10.有以下程序#include
struct STU
{
char num[10];
float score[3];
};
void main()
{
struct STU s[3]={{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}
},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是A) 260.00 B) 270.00 C) 280.00 D) 285.00
答案:B
11. 有以下程序#include
#include
struct NODE
{
int num;
struct NODE *next;
};
void main()
{
struct NODE *p,*q,*r;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(