請幫我看一下這幾道題,謝謝了1)下面函數要求用來求出兩個整數之和,并通過形參傳回兩數相加之和值,請填空. int add(int x,int y;____z) {____=x+y} 答案是:1空是int* 2空是*z 為什么不能是 2.z2)讀程序: #include <stdio.h> #include <string.h> 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<stdio.h> 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如何用.
熱心網友
1.因為Z的值是需要改變,所以使用指針傳遞值2.函數完了之后,它對應的變量應該被消除了3.當Y對應的值為0,也就是字符串最后一個字節時,while結束,兩個地址的差值就是長度4.z.c可以通過聯合體對應的值得到5.指針變量怎么可能指向兩個東西?6.feof(FILE *)返回非0值,如果當前文件指針對應的是文件末端時
熱心網友
5,首先說aa是指針變量是沒有錯的,aa指向含有兩個元素的一維數組也是沒有錯的,錯就錯在這個一維數組不是字符型的,而是指針型的。
熱心網友
前面幾道,你在好好領悟一下指針。feof是文件結束:end of file 。exit:程序退出。