您的当前位置:首页正文

华中科技大学 考研复试 上机题 答案

2023-07-01 来源:步旅网
1.输入一串数,然后,建立链表,排序输出。 #include typedef struct Node{ int data; struct Node* next;

}linknode,*linklist; linklist Create(linklist L) {

int a;

linknode *p,*q,*k;

L=(struct linknode*)malloc(sizeof(linknode)); L->next=NULL; p=L;

scanf(\"%d\ while(a!=0) { q=(struct linknode*)malloc(sizeof(linknode)); q->next=NULL; q->data=a; if(L->next!=NULL) {

k=L; p=L->next; if(p->data>a) { k->next=q; q->next=p; } else { while(p->data<=a&&p->next!=NULL) { k=p;

p=p->next; }

if(p->next==NULL&&p->data<=a) p->next=q; else { k->next=q; q->next=p; } } }

else

p->next=q; scanf(\"%d\ }

return L; }

void Print(linklist L) {

linknode *p; p=L->next; if(p==NULL) return ; while(p!=NULL) { printf(\"%d \ p=p->next; } }

void Insert(linklist L) { } main() {

linklist L; L=Create(L); Print(L); }

2.计算26个字母的输入次数,好像不区分大小写。 #include #include main() {

char f[200];

int i,b,k,s[200]; scanf(\"%s\ b=strlen(f)-1;

for(k=65;k<=90;k++) s[k]=0;

for(k=65;k<=90;k++) for(i=0;i<=b;i++) {

if(f[i]==k||f[i]==(k+32)) s[k]++; }

for(k=65;k<=90;k++) printf(\"%c和%c出现的次数为 %d \\n\}

3.用一维数组存储学号和成绩,然后,按成绩排序输出。 #include struct student{ int sno; int grade; }a[100]; main() {

int i=0,j,k,temp; do{

printf(\"请输入学号:\"); scanf(\"%d\ if(a[i].sno==0) break;

printf(\"请输入成绩:\"); scanf(\"%d\ i++; }

while(1); for(j=0;jfor(k=1;kprintf(\"学号 成绩\\n\"); for(j=0;jprintf(\" %d %d\\n\}

(1)输入一个十进制数,将其先转化为八进制数,然后再输出 #include main() {

int k,i,j,m=0,a[100]; scanf(\"%d\ if(k==0) {

printf(\"%d\ return; }

while(k!=0) {

i=k/8; j=k%8; k=i; a[m]=j; m++;

// printf(\"%d\ }

for(i=m-1;i>=0;i--) printf(\"%d\ printf(\"\\n\"); }

(2)用户输入一个文本名,编程实现输出文本中最长的一行和最短的一行。如果最长和最短的不止一行,请全部输出。 #include #include main() {

FILE *fp;

char w[255],s[255][255],*filename; int a[255],i=0,k,j,temp=0; // gets(filename);

if((fp=fopen(\"test1.txt\ printf(\"Error!\"); else {

while(fgets(w,255,fp)!=NULL) { a[i]=strlen(w); if(tempprintf(\"%s\ } }

(1) 采用命令行方式复制任意多个文件内容到一个文件中,如下所示:

命令行形式:mycopy 1.txt 2.txt 3.txt 4.txt ... 功能:复制2.txt 3.txt 4.txt …的内容到1.txt中 #include #include main() {

int i=0;

FILE *fp1,*fp2; char ch;

char *filename[2]={\"test2.txt\ if((fp1=fopen(\"test1.txt\ { printf(\"Error!\"); return; }

while(i<2) {

if((fp2=fopen(filename[i],\"r\"))==NULL) { printf(\"Error!\"); return; } else

while((ch=fgetc(fp2))!=EOF) fputc(ch,fp1); fputs(\"\\n\ i++;

fclose(fp2); } fclose(fp1); }

(2) 判定一个C语言变量的命名是否正确 #include #include main() {

char name[100],ch1,ch2;

int i,k;

scanf(\"%s\ k=strlen(name); if(k>32) {

printf(\"Error!\\n\"); return ; }

if(name[0]=='_') {

printf(\"OK!\\n\"); return; }

for(i=65;i<90;i++) { ch1=i; ch2=i+32; if(name[0]==ch1||name[0]==ch2) {

printf(\"OK!\\n\"); break; } }

if(i==90)

printf(\"Error!\\n\"); }

中序建立一个树,中序输出 #include typedef struct tree{ int data; struct tree *lchild; struct tree *rchild; }Tree;

Tree * Create() {

int k; Tree *T;

scanf(\"%d\ if(k==0) return NULL; else {

T=(struct Tree*)malloc(sizeof(Tree));

T->data=k;

T->lchild=Create(); T->rchild=Create(); return T; } }

void print(Tree *T) {

if(T==NULL) return NULL; else {

printf(\"%d \ print(T->lchild); print(T->rchild); } }

main() {

Tree *t; t=Create(); print(t); }

因篇幅问题不能全部显示,请点此查看更多更全内容