C语言综合练习题 下载本文

{

++n; s+=n*n; }

/**********FOUND**********/

printf(\ // printf(\}

6、功能:在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),后输出矩阵第一行

与第三行元素之积,并在fun()函数中输出。 #include int fun(int a[3][3]) {

int i,j,sum;

/**********FOUND**********/ sum=0; // sum=1;

/**********FOUND**********/ for(i=0;i<3;i++) // for(i=0;i<3;i+=2) // 或for(i=0;i<3;i=i+2) // 或for(i=0;i<3;i++,i++) for(j=0;j<3;j++)

/**********FOUND**********/ sum=*a[i][j]; // sum=sum*a[i][j]; // 或sum*=a[i][j]; return sum; }

main() {

int i,j,s,a[3][3];; for(i=0;i<3;i++) {

for(j=0;j<3;j++) scanf(\ }

s=fun(a);

printf(\}

7、功能:输入两个双精度数,函数返回它们的平方和的平方根值。例如:输入:22.936 和

14.121,输出为:y = 26.934415。 #include #include #include

/**********FOUND**********/

double fun (double *a, *b) // double fun (double *a, double *b)

- 25 -

{

double c;

/**********FOUND**********/

c = sqr(a*a + b*b); // c = sqrt(*a * *a + *b * *b); /**********FOUND**********/ return *c; // return c; }

main ( ) {

double a, b, y;

printf (\ scanf (\ y = fun (&a, &b);

printf (\}

五、程序设计题

1、功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,

求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。 #include #include #define M 3 #define N 4 void wwjt();

void fun(int tt[M][N],int pp[N]) {

/**********Program**********/ int i,j;

for(j=0;j

pp[j]=tt[0][j]; for(i=1;i

if(tt[i][j]

/********** End **********/ }

main() {

int t[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}}; int p[N],i,j,k;

printf(\ for(i=0;i

- 26 -

{

for(j=0;j

fun(t,p);

printf(\

for(k=0;k

void wwjt()

{ int i,j, array[3][4],p[4]; FILE *rf, *wf ;

rf = fopen(\ wf = fopen(\ for (i=0; i < 3; i++)

for (j=0; j < 4; j++) fscanf(rf, \ fun(array,p);

for (j=0; j < 4; j++) {

fprintf(wf, \ fprintf(wf, \ }

fclose(rf); fclose(wf); }

2、如果一个两位数是质数(也称为素数),将组成它的两个数字交换位置后形成的整数仍为质数,则称这样的数为绝对质数。例如,13就是一个绝对质数。请编程找出所有两位绝对质数。

#include #include int isprime(int n) {

/**********Program**********/

int i,a,b; a=n;

b=n/10+n*10; /* (或b=n*10+n/10); */ for( i=2; i<=a/2; i++)

if(a%i==0) return 0;

for(i=2; i<=b/2; i++)

if(b%i==0) return 0;

return 1 ;

/********** End **********/

- 27 -

}

void main() { int i ;

for(i=10;i<100;i++)

if(isprime(i)) printf(\ \ printf(“\\n”); wwjt(); }

void wwjt()

{ int i,j, array[3][4],p[4]; FILE *rf, *wf ;

rf = fopen(\ wf = fopen(\ for (i=0; i < 3; i++)

for (j=0; j < 4; j++) fscanf(rf, \ fun(array,p);

for (j=0; j < 4; j++) {

fprintf(wf, \ fprintf(wf, \ }

fclose(rf); fclose(wf); }

3、功能:用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大

值,如果不存在则返回0。 #define N 30

#include \#include void wwjt();

int find(int arr[],int n) {

int m=0;

/**********Program**********/ int i;

for(i=0;i

if(arr[i]%5==0 && arr[i]>m) m=arr[i]; /********** End **********/ return(m); }

main() {

int a[N],i,k;

- 28 -