📄 练习(三).txt
字号:
{
float score[10],aver; int i;
printf("\ninput 10 scores: ");
for(i=0;i<10;i++) scanf("%f",&score[i]);
aver=________;
printf("\naverage score is %5.2f\n",aver);
}
70、函数yahui能够按以下形式构成一个扬辉三角形,请填空。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.......................
#define N 11
yahui(int a[][N])
{
int i,j;
for(i=1;i<N;i++) {a[i][1]=1; a[i][i]=1;}
for(________;i<N;i++)
for(j=2;________;j++) a[i][j]=________+a[i-1][j];
}
71、下面程序的功能是:从键盘输入一个整数m(4≤m≤20),则输出如下的整数方阵(存入二维数组aa)。例如,若输入"4"和"5",则分别输出
16 9 4 1 25 16 9 4 1
9 4 1 16 16 9 4 1 25
4 1 16 9 9 4 1 25 16
1 16 9 4 4 1 25 16 9
1 25 16 9 4
请改正程序中的错误语句,使它能得出正确的结果。改正后的语句是________和________。(注意:不得增行或删行,也不得更改程序的结构。)
#include<conio.h>
#include<stdio.h>
#define M 20
void aMatrix(int n,int xx[][M])
{
int i,j;
for(j=0;j<n;j++) xx[0][j]=(n-j)*(n-j);
for(i=1;i<n;i++)
{
for(j=0;j<n;j++) /* 错误语句 */
xx[i][j]=xx[i-1][j+1];
xx[i][n-1]=xx[i-1][0];
}
}
void main()
{
int aa[M][M],i,j,m;
printf("\nPlease enter an integer number between 4 and 20: ");
scanf("%d",&m);
aMatrix(m,aa);
printf("\nThe %d*%d matrix generated: ",m,m);
for(i=0;i<m;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%4f",(*(aa+i))[j]); /* 错误语句 */
}
}
72、以下程序运行结果是________。
void main()
{
int a=1,b=2,c=3;
++a;
c+=++b;
{
int b=4,c;
c=b*3;
a+=c;
printf("first: %d,%d,%d\n",a,b,c);
a+=c;
printf("second: %d,%d,%d\n",a,b,c);
}
printf("third: %d,%d,%d\n",a,b,c);
}
73、以下程序的运行结果是________。
#include<stdio.h>
int k=1;
void main()
{
int i=4;
fun(i);
printf("(1) %d,%d\n",i,k);
}
fun(int m)
{
m+=k; k+=m;
{
char k='B';
printf("(2) %d\n",k-'A');
}
printf("(3) %d,%d\n",m,k);
}
74、以下程序的运行结果是________。
int x1=30,x2=40;
void main()
{
int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d\n",x3,x4,x1,x2);
}
sub(int x,int y)
{
x1=x;
x=y;
y=x1;
}
75、以下程序的运行结果是________。
int i=0;
void main()
{
int i=5;
reset(i/2); printf("i=%d\n",i);
reset(i=i/2); printf("i=%d\n",i);
reset(i/2); printf("i=%d\n",i);
workover(i); printf("i=%d\n",i);
}
workover(int i)
{
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return i;
}
reset(int i)
{
i=i<2?5:0;
return i;
}
76、以下程序的运行结果是________。
int a=5; int b=7;
void main()
{
int a=4,b=5,c;
c=plus(a,b);
printf("A+B=%d\n",c);
}
plus(int x,int y)
{
int z;
z=x+y;
return z;
}
77、以下程序的运行结果是________。
int a=3,b=5;
max(a,b)
{
int c;
c=a>b?a:b;
return c;
}
void main()
{
int a=8;
printf("%d",max(a,b));
}
78、以下程序的运行结果是________。
int x;
void main()
{
x=5;
cude();
printf("%d\n",x);
}
cude()
{
x=x*x*x;
}
79、以下程序的运行结果是________。
void main()
{
incx();
incy();
incx();
incy();
incx();
incy();
}
void incx()
{
int x=0;
printf("x=%d\t",++x);
}
void incy()
{
static int y=0;
printf("\ny=%d\n",++y);
80、以下程序的运行结果是________。
void main()
{
increment();
increment();
increment();
}
void increment()
{
static int x=0;
x+=1;
printf("%d",x);
}
81、以下程序的运行结果是________。
int n=1;
void main()
{
static int x=5; int y;
y=n;
printf("MAIN: x=%2d y=%2d n=%2d\n",x,y,n);
func();
printf("MAIN: x=%2d y=%2d n=%2d\n",x,y,n)
func();
}
void func()
{
static int x=4; int y=10;
x=x+2;
n=n+10;
y=y+n;
printf("FUNC: x=%2d y=%2d n=%2d\n",x,y,n)
}
82、以下程序的功能是________。
int fac(int n)
{
static int f=1;
f=f*n;
return f;
}
void main()
{
int i;
for(i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i));
}
三、编程题
83、已有变量定义和函数调用语句:int a=1,b=-5,c; c=fun(a,b); fun函数的作用是计算两个数之差的绝对值,并将差值返回调用函数,请编写fun函数。
fun(int x,int y)
{
}
84、已有变量定义和函数调用语句:int x=57; isprime(x); 函数isprime()用来判断一个整型数a是否为素数,若是素数,函数返回1,否则返回0。请编写isprime函数。
isprime(int a)
{
}
85、已有变量定义和函数调用语句int a,b; b=sum(a); 函数sum()用以求1+2+3+...+n,和数作为函数值返回。若a的值为10,经函数sum的计算后,b的值是55。请编写sum函数。
sum(int n)
{
}
86、已有变量定义语句double a=5.0; int n=5; 和函数调用语句mypow(a,n); 用以求a的n次方。请编写double mypow(double x,int y)函数。
double mypow(double x,int y)
{
}
87、以下程序的功能是用牛顿法求解方程f(x)=cosx-x=0。已有初始值x0=3.1415/4,要求绝对误差不超过0.001,函数f用来计算迭代公式中Xn的值,请编写f函数。牛顿迭代公式是:Xn+1=Xn-f(Xn)/f'(Xn) 即:Xn+1=Xn-(cosXn-Xn)/(sinXn-1)
#include<stdio.h>
#include<math.h>
#define PI 3.1415
float f(float x0)
{
}
void main()
{
int t=0,k=100,n=0; float x0=PI/4,x1;
while(n<k)
{
x1=f(x0);
if(fabs(x0-x1)<0.001){t=1; break;}
else {x0=x1; n=n+1;}
}
if(t==1) printf("\nFangcheng geng is %10.5f",x1);
else printf("\nSorry,not found1");
}
88、已有函数调用语句c=add(a,b); 请编写add函数,计算两个实数a和b的和,并返回和值。
double add(double x,double y)
{
}
89、以下程序的功能是应用弦截法求方程x*x-5x*x+16x-80=0的根,其中f函数可根据指定的x的值求出f(x1)和f(x2)的连线与x轴的交点;函数root用来求区间(x1,x2)的实根,请编写root函数。
#include<math.h>
float root(float x1,float x2)
{
}
float f(float x) /* 略 */
{
...
}
float xpoint(float x1,float x2) /* 略 */
{
...
}
void main()
{
float x1,x2,f1,f2,x;
do{
printf("input x1,x2: \n");
scanf("%f%f",&x1,&x2);
printf("x1=%5.2f,x2=%5.2f\n",x1,x2);
f1=f(x1);
f2=f(x2);
}while(f1*f2>=0);
x=root(x1,x2);
printf("A root of equation is %8.4f",x);
}
90、以下函数p的功能是用递归方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x); 请编写p函数。递归公式如下:
Px(x)=1 (n=0)
Px(x)=x (n=1)
Px(x)=((2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n (n>1)
float p(int n,int x)
{
}
91、以下程序的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值,函数f2用来计算每项分母的值。请编写f1和f2函数。
e的x次方=1+x+x*x/2!+x*x*x/3!+...(前20项的和)
float f2(int n)
{
}
float f1(int x,int n)
{
}
void main()
{
float exp=1.0; int n,x;
printf("Input a number: ");
scanf("%d",&x); printf("%d\n",x);
exp=exp+x;
for(n=2;n<=19;n++) exp=exp+f1(x,n)/f2(n);
printf("\nThat is exp(%d)=%8.4f\n",x,exp);
}
运行结果:Input a number: 3
That is exp(3)=20.0855
92、a是一个2×4的整型数组,且各元素均已赋值。函数max_value可求出其中的最大元素值max,并将此值返回主调函数。今有函数调用语句max=max_value(a); 请编写max_value函数。
max_value(int arr[][4])
{
}
93、输入若干整数,其值均在1至4的范围内,用-1作为输入结束标志,请编写函数f用于统计每个整数的个数。
例如:若输入的整数为 1 2 3 4 1 2
则统计的结果为 1: 2
2: 2
3: 1
4: 1
#define M 50
void main()
{
int a[M],c[5]={0},i,n,x;
n=0;
printf("Enter 1 or 2 or 3 or 4,to end with-1\n");
scanf("%d",&x);
while(x!=-1)
{
if(x>=1 && x<=4) {a[n]=x; n++;}
scanf("%d",&x);
}
f(a,c,n);
printf("Output the result: \n";
for(i=1;i<=4;i++) printf("%d: %d\n",i,c[i]);
printf("\n");
}
f(int a[],int c[],int n)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -