答案附最后
1.已有定义 int k=2; int *ptr1, *ptr2, 且ptr1和ptr2均已指向变量k , 下面不能执行的赋值语句是
- A k=*ptr1+*ptr2;
- B ptr2=k; //此处编译器会报警报而没有报错
- C ptr1=ptr2;
- D k=*ptr1*(*ptr2);
2.若有定义int i=2,a[10],*p=&a[i];则与*p++ 等价的是 。
- A a[i++]
- B a[i]++
- C a[i]
- D a[++i]
3.int main(int argc, char *argv[]) //这道题在*argv[i]指令解地址的时候只能取到第一位
{
int i, n = 0;
for (i=1; i<argc; i++) {
n = 10*n + *argv[i] – ‘0’;
}
printf(“%d\n”, n);
}
./aout 12 345 678
输出结果为_________。
- A 123
- B 136
- C 678
- D 58
4.char *s=”abcd”,*a=s;则下列语句访问会出错的是 //与题二类似
- A s++
- B *s++
- C *a++
- D *(a)++
5.有两个字符数组a、b,则以下正确的输入语句是 。
- A gets(a,b);
- B scanf(“%s%s”,a,b);
- C scanf(“%s%s”,&a,&b);
- D gets(“a”),gets(“b”);
答案: BABDB