本文主要是介绍高级语言讲义2021软专(仅高级语言部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.一个二维数组,每一行存放一个字符串,比较字符串并排序。
#include <stdio.h>int strcmp(char *str,char *flag) {int i=0;while(str[i]!='\0'&&flag[i]!='\0') {if(str[i]>flag[i])return 1;else if(str[i]<flag[i])return -1;elsei++;}if(str[i]=='\0'&&flag[i]=='\0')return 0;else if(str[i]=='\0')return -1;elsereturn 1;
}void strcpy(char *flag,char *str) {int i=0;while(str[i]!='\0') {flag[i]=str[i];i++;}flag[i]='\0';
}void sort(char st[][10],int n) {char temp[10];for(int i=0; i<n-1; i++)for(int j=0; j<n-i-1; j++)if(strcmp(st[j],st[j+1])>0) {strcpy(temp,st[j]);strcpy(st[j],st[j+1]);strcpy(st[j+1],temp);}
}int main() {char st[][10] = {"hello","world","python","C","java","R"};int n=6;sort(st,n);for(int i=0; i<n; i++)printf("%s ",st[i]);printf("\n");return 0;
}
2.一行n(n大于等于2)个框,三个颜色,每个相邻的框颜色不能相同,用递归写出有多少种方法
#include <stdio.h>
#include <stdbool.h>bool islegal(int *path,int n) {for(int i=0; i<n; i++)if(path[i]==path[i-1]||path[i]==path[i+1])return false;return true;
}void dfs(int *path,int n,int index,int *num) {if(index==n) {if(islegal(path,n))*num++;return;}for(int i=0; i<=2; i++) {path[index]=i;dfs(path,n,index+1,num);}
}int count(int n) {int path[20];int num=0;dfs(path,n,0,&num);return num;
}
3.定义结构体,链表输入学生数据,再输入到文件中。
#include <stdio.h>
#include <stdlib.h>typedef struct stu {int num;char name[20];int sex;struct stu *next;
} stu;struct stu *create(int n) {struct stu *head=(struct stu*)malloc(sizeof(struct stu));head->next=NULL;struct stu *pre=head;for(int i=0; i<n; i++) {struct stu *p=(struct stu*)malloc(sizeof(struct stu));scanf("%d",&p->num);scanf("%s",&p->name);scanf("%d",&p->sex);while(p->next!=NULL&&pre->next->num<p->num)pre=pre->next;p->next=pre->next;pre->next=p;pre=head;}return head->next;
}
4.将该链表按性别拆分为两个链表并排序,再写到两个文件中
#include <stdio.h>
#include <stdlib.h>typedef struct stu {int num;char name[20];int sex;struct stu *next;
} stu;void save(struct stu *head) {FILE *fileA,*fileB;if((fileA=fopen("man.txt","w"))==NULL) {printf("open error");exit(0);}if((fileB=fopen("woman.txt","w"))==NULL) {printf("open error");exit(0);}struct stu *p=head;struct stu *headA=(struct stu *)malloc(sizeof(struct stu));struct stu *headB=(struct stu *)malloc(sizeof(struct stu));struct stu *rearA=headA,*rearB=headB;while(p!=NULL) {struct stu *flag=p->next;if(p->sex==1) {rearA->next=p;rearA=p;fprintf(fileA,"%d %s",p->num,p->name);fprintf(fileA,"man");} else {rearB->next=p;rearB=p;fprintf(fileB,"%d %s",p->num,p->name);fprintf(fileB,"woman");}p=flag;}rearA->next=NULL;rearB->next=NULL;fclose(fileA);fclose(fileB);}
这篇关于高级语言讲义2021软专(仅高级语言部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!