55.以下程序段给数组所有的元素输入数据,则以下正确答案为( A )。
main()
{int a[10], i=0;
while (i<10) scanf(“%d”, );
…
}
A) a+(i++)
B) &a[i+1]
C) a+i
D) &a[++i]
56.在下列叙述中,正确的一条是( B )。
A) 语句int *pt中的*pt是指针变量名
B) 语句int *p=a;等价于int *p; p=&a[0];
C) 运算符*和&都是取变量地址的运算符
D) 已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值
57.下列语句执行后的结果是( A )。
y=5; p=&y; x=*p++;
A) x=5,y=5
B) x=5,y=6
C) x=6, y=5
D) x=6, y=6
58.在下列语句中,其含义为“p为带回一个指针的函数,该指针指向整型数据”的定义语句是( A )。
A) int *p();
B) int **p;
C) int (*p)();
D) int *p;
59.在下面关于指针的说法中,错误的一条是( B )。
A) 变量的指针就是变量的地址
B) 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量
C) 一个指针变量只能指向同一个类型的变量
D) 指针变量中只能存放地址
60.在下列程序中,输出结果与其它程序不同的是( D )。
A) main()
{int a[10];
int i;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“\n”);
for(i=0;i<10;i++) printf(“%d”,a[i]);
}
B) main()
{int a[10];
int i;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“\n”);
for(i=0;i<10;i++) printf(“%d”,*(a+i));
}
C) main()
{int a[10];
int i, *p;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“\n”);
for(p=a;p<(a+10);p++) printf(“%d”,*p);
}
D) main()
{int a[10];
int i, *p;
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“\n”);
for(i=0;i<10;i++) printf(“%d”,*(p+i));
}
61.以下程序的输出结果是( D )。
sub(int *s, int y)
{static int t=3;
y=s[t]; t--;
}
main()
{int a[ ]={1, 2, 3, 4}, n;
int x=4;
for(n=0; n<4; n++)
{sub(a, x); printf(“%d”, x); }
printf(“\n”);
}
A) 1234
B) 3333
C) 4321
D) 4444
62.以下程序的输出结果为( B )。
#idefine FORMAT “%u, %u”
main()
{int a[3][4]={1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23};
printf(“\n”);
printf(FORMAT, **a, *a[0]);
printf(FORMAT, *(a[0]+1), *&a[0][1]);
printf(FORMAT, a[1][1], *(*(a+1)+1));
}
A) 3,3 5,5 9,9
B) 1,1 3,3 9,9
C) 1,1 3,3 5,5
D) 5,5 7,7 9,9
63.以下程序的输出结果为(D )。
f(char *s)
{char *p=s;
while(*p!=‘\0’) p++;
return(p-s);
}
main()
{ printf(“%d\n”, f(“12345678”)); }
A) 12345678
B) 7
C) 1
D) 8
64.以下程序的输出结果为( C )。
move(int array[6], int n, int m)
{int *p, array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end;
m--;
if(m>0) move (array, n, m);
}
main()
{static int number[6]={1, 2, 3, 4, 5, 6};
int m=4, j;
move(number, 6, m);
for(j=0;j<5;j++)
printf(“%d,”, number[i]);
printf(“%d”, number[5]);
}
A) 1,2,3,4,5,6
B) 6,5,4,3,2,1
C) 3,4,5,6,1,2
D) 6,1,2,3,4,5
65.在下列叙述中,正确的一条是( B )。
A) 以下程序运行结果为Computer and c:
main()
{char str[4];
str=“Computer and c”;
printf(“%s\n”, str);
}
B) 下面两种表示方式等价
(1) int fun(int x,int y)
(2) int fun(x,y)
int x,y;
C) 若输入1、2,以下程序的运行结果为12
main()
{int *p,i,a[2];
p=a;
for(i=0;i<2;i++) scanf(“%d”,p++);
for(i=0;i<2;i++,p++) printf(“%d”,*p);
}
D) 以下程序的运行结果为3
main()
{int *p,a[5]={1,3,4,5,6};
p=a;
printf(“%d”,*p++);
}
66.以下程序的输出结果是( A )。
point(char *pt);
main()
{char b[4]={‘a’, ‘c’, ‘s’, ‘f’}, *pt=b;
point(pt);
printf(“%c\n”, *pt);
}
point(char *p)
{p+=3;
}
A) a
B) c
C) s
D) f
67.以下程序的输出结果为( A )。
void move(int *pointer)
{int i, j, t;
for(i=0; i<3; i++)
for(j=i; j<3; j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
main()
{int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, *p, i;
p=&a[0][0];
move(p);
for(i=0; i<3; i++)
printf(“%d%d%d”, a[i][0], a[i][1], a[i][2]);
}
A) 147258369
B) 123456789
C) 987654321
D) 127485639
68.以下程序的输出结果是( A )。
sub(int x, int y, int *z)
{*z=y-x+2;}
main()
{int a, b, c;
sub(16, 7, &a); sub(9, a, &B); sub(a, b, &C);
printf(“%d, %d, %d\n”, a, b, C);
}
A) –7,-14,-5
B) –7,-16,-9
C) –7,-12,-9
D) –9,-14,-5
69.变量p为指针变量,若p=&a,下列说法不正确的是( D )。
A) &*p==&a
B) *&a==a C) (*p)++==a++
D) *(p++)==a++
70.若输入10,以下程序的输出结果是( B )。
#define MAX 50
main()
{int i, k, m, n, num[MAX], *p;
scanf(“%d”, &n);
p=num;
for(i=0; i *(p+i)=i+1; i=0; k=0; m=0; while(m {if(*(p+i)!=0) k++; if(k= =3) {*(p+i)=0; k=0; m++;} i++; if(i= =n) i=0; } while(*p= =0) p++; printf(“%d\n”, *p); } A) 10 B) 4 C) 50 D) 60 71.以下程序的输出结果是( B )。 main() {char *alpha[5]={“a”, “bc”, “def”, “1”, “23”}, **p; int i; p=alpha; for(i=0; i<3; i++, p++) printf(“%s”, *p); printf(“\t”); p=p-3; for(i=0; i<3; i++, p++) printf(“%c\t”,**p); } A) abcdef d e f B) abcdef a b d C) abcdef 1 23 D) defabc 1 23
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |