⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 练习(三).txt

📁 谭浩强的C语言题集
💻 TXT
📖 第 1 页 / 共 3 页
字号:
	{
		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 + -