金湖清水湾二手房出售:C语言编程题?

来源:百度文库 编辑:高考问答 时间:2024/05/07 05:15:45
设已有定义:char *st="how are you";下列语句中正确的是
A char a[11],*p;strcpy(p=a+1,&st[4])
B char a[11],strcpy(++a,st);
C char a[11],strcpy(a,st);
D char a[11],,*p;strcpy(p=&a[1],st+2);
选什么?为什么
函数调用语句fseek(fp,10,1)的含义是?

选A和D呀
分别说明:
A.strcpy(p=a+1, &st[4])作用相当于strcpy(a+1,st+4);
a+1后面还有10个字节空间,而st+4为从s[4]开始,即"are you",占8个字节,
所以a+1可以容纳下。
B. a是个指针常量,不能执行++自增操作
C. a只有11个字节,无法容纳"how are you"
D. p=&a[1]即地址是a+1,后面还有10个字节,st+2指向"w are you",刚刚好10个字符(加上\0)
P.S:如果你A后面没有分号只是漏打的话,才能选A,要是原题就没有分号就选D咯。要是D的*p前面两个逗号也是手误的话。

fseek(fp,10,1);把fp文件指针移动到当前位置的后10个字节。
最后一个参数1代表当前位置,如果是0则是文件开头,2则是文件末尾

选c
因为strcpy()函数参数是指针型的
字符串数组名就是指向这个字符串的指针名