请给出答案,重分感谢
1。以下程序的功能是:计算n的n-1阶乘 ,n由键盘输入。请录入该程序,并在指定空白位置补全所需内容。(要求:不得增行或删行,也不得更改程序的结构;源程序名为prog2.c。)
#include <stdio.h>
main( )
{
int n;
printf("Input data:\n");
scanf("%d",&n);
(1) ;
printf("result:%d\n",n);
}
power(x,y)
int x,y;
{
int p=1;
for(;y>0;--y)
(2) ;
return p;
}
2。以下程序的功能是:求 ax2+bx +c =0 方程的实根。 程序中有1~2处语法错误,请调试运行该程序,并分别输入:①1,2,1②2,6,1等数据验证程序的正确性。要求:不能改动程序。(要求:不得增行或删行,也不得更改程序的结构;源程序名为prog1.c。)
#include <math.h>
main( )
{
float a,b,c,disc,x1,x2,realp,imagp;
printf("Enter three floats:\n");
scanf("%f,%f,%f"&a&b&c);
printf("The equation");
if(fabs(a)<=1e-6)
printf(" is not a quadratic");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("has two equal roots:%8.4f \n",-b/(2*a));
else if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2);
}
}
}
3。以下程序的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。请在指定空白位置补全所需内容。(要求:不得增行或删行,也不得更改程序的结构;源程序名为prog2.c。)
void fun(char p1[],char p2[])
{
int i=0,n=0;
char *p=p1,*q=p2;
while(*p)
{ p++; n++; }
i=n;
while(*q)
{ p1[i]=*q; q++; i++;}
p1[i]='\0';
}
main( )
{ char s1[80],s2[40];
printf("Enter s1 and s2:\n");
scanf("%s%s",s1,s2);
printf("s1=%s\ns2=%s\n",(1));
printf("Invoke fun(s1,s2):\n");
(2) ;
printf("After invoking:\n");
printf("%s\n",s1);
}
4。编程对n*n 矩阵右上半三角形中的元素乘以 ,按格式输出该矩阵及变换后的矩阵。(源程序名为prog3.c。)
例如:若 的值为3,原矩阵为:
1 2 3
4 5 6
7 8 9
则程序的输出结果为:
The original array is :
1 2 3
4 5 6
7 8 9
The new array is:
3 6 9
4 15 18
7 8 27
5.以下程序的功能是:对由键盘输入的两个数按由大到小排序。请在指定空白位置补全所需内容。(要求:不得增行或删行,也不得更改程序的结构;源程序名为prog2.c。)
main( )
{
int a,b;
int *point1,*point2;
void sort( );
scanf("%d,%d",&a,&b);
point1=&a;
point2=&b;
if(a<b)sort( _________);
printf("\n%d,%d\n",a,b);
}
void sort(p1,p2)
int *p1,*p2;
{
int p;
p=*p1;
( ________) ;
*p2=p;
}
6.编程找出一个n*n 矩阵中的最大值元素及最小值元素,输出它们及其所在位置,并按矩阵格式输出该矩阵。(源程序名为prog3.c。)
例如:若 的值为4,原矩阵为:
2 -9 2 0
4 4 7 1
3 5 8 4
7 3 6 7
则程序的运行结果为:
The original array is :
2 -9 2 0
4 4 7 1
3 5 8 4
7 3 6 7
max:8,line:3,col:3
min:-9,line:1,col:2
问题解决马上给分。