printf("%d,",*p);
}
程序运行后的输出结果是 ___A_______
A)1,2,3,4,5,6,7,8,9,0,
B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,
D)1,1,1,1,1,1,1,1,1,,1,
1.5、有以下程序
main()
{
char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是___A_____
A)1 5 B)1 6 C)1 2 D)5 9
1.6、有以下程序
point(char *p)
{
p+=3;
}
int main()
{ char b[4]={'a','b','c','d'}, *p=b;
point(p); printf("%c\n",*p);
}
程序运行后的输出结果是 ____D______
A)a B)b C)c D)d
1.7、设有如下定义语句 int m[ ]={2,4,6,8}, *k=m;
以下选项中,表达式的值为 6的是A
A *(k+2) B k+2 C *k+2 D *k+=2
1.8、若有定义语句:int year=2009,*p=&year;,以下不能使变量 year 中的值增至 2010 的语 句是(A )。
A)*p+=1; B)( *p)++; C)++(*p); D)*p++;
1.9、设有定义:double x[10],*p=x;,以下能给数组 x 下标为 6 的元素读入数 据的正确语句是 D
A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6); D)scanf("%lf",p[6]);
1.10、若有定义语句:char s[3][10], (*k)[3], *p; ,则以下赋值语句正确的是___A_
A)p=s; B)p=s[0]; C)p=k; D)k=s;
1.11、有定义语句:int *p[4]; 以下选项中与此语句等价的是 C
A)int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4];
1.12、若有定义语句:int a[4][10], *p, *q[4]; 且 0≤i<4,则错误的赋值 是 D
A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1]
1.13、若有以下定义
int x[10],*pt=x;
则对 x 数组元素的正确应用是 B
A)*&x[10] B)*(x+3)
3C)*(pt+10) D)pt+3
1.14、有以下程序
#include
main()
{ int a[ ]={1,2,3,4},y,*p=&a[3];
--p; y=*p; printf(“y=%d\n”,y);
}
程序的运行结果是 D
A)y=0 B)y=1 C)y=2 D)y=3
1.15、设char *s = “\ta\017bc”;则指针变量s指向的字符串所占的字节数是____C___
A) 6 B) 2 C) 5 D) 9
1.16、 若有定义语句:char s[3][10], (*k)[3], *p;,则以下赋值语句正确的是C
A)p=s; B)p=k; C)p=s[0]; D)k=s;
2、填空题
2.1以下程序的输出结果是_7______
#include
main()
{ int a[5]={2,4,6,8,10}, *p;
p=a+2;
printf(“%d”,*p++);
}
2.2、以下程序段的定义语句中,x[1]的初值是__2___,程序运行后输出的内容是___2
4
6
7____
#include
main()
{ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{ p[i]=&x[2*i+1]; printf(“%d ”,p[i][0]);
}
printf(“\n”);
}
2.3 以下程序段的输出结果是( )
#include
mian()
{ char *ch[4]={“red”,”green”,”blue”}; int i=0;
while(ch[i]);
{ putchar(ch[i][0]; i++; }
}
答:
r
g
b
2.4、以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。 请在输出语句中填写代表最大值的输出项。
#include
int main()
{ int a[10], *p, *s;
for(p=a; p-a<10; p++)
scanf(“%d”, p);
for(p=a,s=a;p-a<10;p++)
if(*p>*s) s=p;
printf(“max=%d, 序号:%d\n” , _*s, s - a__________ );
}
2.5 有以下程序,输出结果为_____2,5____
main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
}
2.6 以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。 请在输出语句中填写代表最大值的输出项。
#include
int main( )
{ int a[10], *p, *s;
for(p=a;p-a<10; p++)
scanf(“%d”,p);
for(p=a,s=a;p-a<10;p++)
if(*p>*s) s=p;
printf(“max=%d\n” , __*s____ );
3、编程题
3.1、 有一个整型数组int [10] = {10,20,30,40,50,60,70,80,90,100};标准输入一个整型数值m(0
1 #include
2 int main(int argc, const char *argv[])
3 {
4 int a[10] = {10,20,30,40,50,60,70,80,90,100};
5 int m;
6 scanf("%d",m);
7 int x=0;
8 int i=0;
9 for(i=0;i