[求助]几个C编程的小问题
现有几道复习题不会做 请高人指点!!!!万分感谢!1.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志。请填空。
??#include
??main( )
??{ FILE * fp;
?? char ch,fname [10];
?? printf("Input the name of file\n");
?? gets(fname);
?? gets(fname);
?? if((fp=[5])= =NULL)
?? { printf("Cannot open\n"); exit(0); }
?? printf("Enter data\n");
?? while((ch=getchar())!='#')
?? fputc([6],fp);
?? fclose(fp);
??}
2.设有以下定义:
??int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
??int (*prt)[3]=a, * p=a[0];
??则下列能够正确表示数组元素a[1][2]的表达式是
??A)*((* prt + 1)[2]) B)*(*(p+5)) C)(* prt + 1)+2 D)*(*(a+1)+2)
3.改错题
??下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如:若a中的字符串为:aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH.请改正程序中的错误,使它能得到正确结果,注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
??试题程序:
??#include
??#include
??void fun (char *p, char *q, char *c)
??{ int k=1;
?? while(*p! = *q)
?? { if ( *p!< *q) c[k]= *q;
?? else c[k]= *p;
?? if(*p) p++;
?? if(*q) q++;
?? k++;
?? }
??}
??main( )
??{ char a[10]="aBCDeFfH",b[10]="ABcd",c[80]={"\ 0"};
?? fun (a,b,c);
?? printf("The string a:");puts (a);
?? ptintf("The string b:");puts (b);
?? printf("The result :");puts(c);
}