2005年兰州交通大学硕士研究生考试题(计算机编程题)

第三题: 请编程求n 阶方正A的上三角元素之积,其中矩阵A的元素值由键盘输入:

#include "Stdio.h"
#include "Conio.h"

#define n 3

main() {
    int A[n][n];
    int i,j;
    int sum=1;
    for (i=0; i        for (j=0; j            printf("please input a[%d][%d] number : /n", i,j);
            scanf("%d", &A[i][j]);
        }
    }
    for(i=0;i        for(j=0;j            printf("%  d",A[i][j]);
        }
        printf("/n");
    }

    for(i=0;i        for(j=0;j            sum*=A[i][j];
        }
    }
    printf("The result: %d/n",sum);
    getch();

第六题:请编程将不超过1000行,每行不超过65个字符的正文文件f拷贝到文件g,并在文件g的每一行的末端加上该行的编号:

#include
main(){
     FILE *fp1,*fp2;
     char ch;
     char *p;
     int count=0,i=0;
     if((fp1=fopen("C://Win-TC//test//f.txt","r"))==NULL){
         printf("Can't open input file/n");
         exit(1);
     }
     if((fp2=fopen("C://Win-TC//test//g.txt","r+"))==NULL){
         printf("Can't open input file/n");
         exit(1);
     }
     p=(char *)calloc(65,sizeof(char));
     while(1){
         ch=fgetc(fp1);
         if(ch=='/n'||ch=='/r'||ch==EOF){
           count++;
           fwrite(p,sizeof(65),i,fp2);  /*将该行的字符写入g.txt文件中*/
           fprintf(fp2,"%d",count);     /*将每行的编号写在该行的末尾*/
           free(p);                     /*释放p内存空间*/
           p=(char *)calloc(65,sizeof(char)); /*重新分配p的空间并初始化*/
           i=0;
        }
        if(ch==EOF) break;
        p[i++]=ch;
     }
     fclose(fp1);

     /*下面将文件g.txt结果显示在屏幕上*/
     rewind(fp2);   /*将读写指针定位在文件开始初*/
     while((ch=fgetc(fp2))!=EOF)
         putchar(ch);
     fclose(fp2);
     getch();
}

 

第七题:试写出按如下方式进行的排序的程序,第一堂比较将最小的元素放在r[1]中,最大的元素放在r[n]中,第二趟比较将次小的放在r[2]中,将此大的放在r[n-1]中,依次类推。

#include
#define n 10

int max_num(int a[], int m) {
 int k=0;
 int b=a[m];
 for (k=m; k  if (a[k]>b)
   b=a[k];
 }
 return b;
}

int min_num(int a[], int m)
{
 int k=0;
 int b=a[m];
 for (k=m; k  if (a[k]   b=a[k];
 }
 return b;
}

main() {
 int i=0, j=0, max=0, min=0;
 int r[n];
 printf("please input %d numbers: /n", n);
 for (i=0; i  printf("please input r[%d] number: /n", i);
  scanf("%d", &r[i]);
 }

 printf("/n");
 for (i=0; i  printf("%    d", r[i]);
 }

 for (i=0; i

  max=max_num(r, i);
  min=min_num(r, i);

  for (j=i; j   if (r[j]==max) {
    r[j]=r[n-i-1];
    r[n-i-1]=max;
   }
   if (r[j]==min) {
    r[j]=r[i];
    r[i]=min;
   }
  }
 }

 printf("/n");
 for (i=0; i  printf("%    d", r[i]);
 }

 getch();
}

 

 

你可能感兴趣的:(C/C++)