作业帮 > 综合 > 作业

C语言理论题下列程序段的输出是_____。 int c[]={1, 3, 5}; int *k=c+1; printf(

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 00:15:42
C语言理论题
下列程序段的输出是_____。
int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);
A、 3 B、 5 C、 4 D、6
对于如下说明,语法和语义都正确的赋值是_____。
int c, *s, a[]={1, 3, 5};
A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;
设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是_____。
A.2 B.3 C.4 D.&a[0]+1
下列程序段的输出结果是_____。
int *p, *q, k = 1, j=10 ;
p=&j; q = &k ; p = q ; (*p)++;
printf("%d",*q);
A.1 B.2 C.10 D.11
根据声明int a[10], *p=a;,下列表达式错误的是______。
A.a[9] B.p[5] C.*p++ a++
第1题 B:指针变量k第向数组c的第二个元素,*++k相当于*(++k),执行完++k后,k指向数组c的第三个元素,所以*(++k)就应该等于c[2],即为5
第2题 C:s是一个指向int类型的指针变量,没赋初值的话,*s无意义,故A错,在s没指向一个数组之前,s[0]也是没有意义的,故B错,a是数组a[]的地址,故D错,选C,把a数组的第二个元素的地址赋给指针变量s
第3题 B:声明指针变量p时给他赋值&a[0]+1,故p指向a数组的第二个元素,所以*p应该等于a[2],
第4题 B:q=&k;p=q所以指针变量p和q都指向变量k;所以*p就等于k,所以,(*p)++就是k++,为2
第5题 D:声明完之后,a是常量,常量不能自增自减,所以a++是错的。