请帮我看一下这几道题,谢谢了
1)下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
int add(int x,int y;____z)
{____=x+y}
答案是:1空是int* 2空是*z
为什么不能是 2。
z
2)读程序:
#include
#include
void fun(char *s)
{ char a[10];
strcpy(a,"STRING");
s=a;
}
main()
{ char *p;
fun (p);
printf("%s\n",p);
}
上面程序的输出结果是(D)
A>STRING[][][][] ([]代表空格)
B>STRING
C>STRING[][][]
D>不确定的值
为什么不选A呢
3)下面函数的功能是(A)
int fun1 (char *x)
{ char *y=x;
while(*y++);
return(y-x-1);
}
A>求字符串的长度。
B>比较两个字符串的大小。
C>将字符串x复制到字符串y。
D>将字符串x连接到字符串y后面。
为什么选A呢,他是怎么求字符串的长度了?
4)一直字符0的ASCII码为十六进制的30,下面程序的输出是(B)
main()
{ union{ unsigned char c;
unsigned int i[4];
}z
z。
i[0]=0x39;
z。i[1]=0x36;
printf("%c\n",z。c);
}
A>6 B>9 C>0 D>3
怎么能知道z。c是什么呀????
5)设有如下定义: char *aa[2]={"abcd","ABCD"};
则以下说法正确的是(C)
B>aa是指针变量,他指向含有两个数组元素的字符姓一维数组。
C>aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址。
为什么B不对呀???
6)下面的程序用来统计文件中字符的个数,请填空。
#include
main()
{ FILE *fp;
long num=0;
if((fp=fopen("fname。
dat","r"))==NULL)
{printf('can't open file!\n");exit(0);}
while____
{fgets(fp);num++;}
printf("num=%d\n",num);
fclose(fp);
}
答案是:(feof(fp)==0)或(feof(fp)=='\n')或(feof(fp)==NULL)或(!feof(fp))
feof是什么意思,如何用,
exit(0)是什么意思,exit如何用。