c语言。
试编写一个程序,显示指定文件中的内容,要求每行中显示的字符数不超过30个。
基本思想:fgets(a,30,fp).读30个显示30个。
void print(char *p)
file *fp;
char buffer[30];
if((fp=fopen(p,"r"))null)
while(fgets(buffer,30,fp)!=null) /文件位置指针会自动往后移动。
printf("%s",buffer);
fclose(fp);
编写函数将str1中的第i个字符到第j个字符替换成str2
基本思想:str1:0--i拷到str3,str2拷到str3,str1:j-最后拷到str3
char *stuff(char *str1,char *str2,int i,int j)
int m;
char *str3;
for(m=1;m<=i;m++)
while(*str2!='0')
*str3++=str2++;
while(*str1!='0')
*str3++=str1++;
str1=str3;
3.试找出二位数组中的鞍点,也有可能没有鞍点。
void getpoint(int a[m][n])
for(i=0;i /找到行最大a[i][k]
for(l=0;lif(a[l][k]>a[i][k])
if(tag=1)
printf("鞍点不存在!")数据结构。
整数序列作为输入顺序,当输入数据位0时表示输入结束。编写算法,将数据按递增顺序。
用单链表存放。
void main()
int a;
char ch;
l=(linklist)malloc(sizeof(lnode));建立头结点,用l指向。
while(getchar(ch)!=0')
//pre指向第一个比a大的结点的前趋。
r->next=p;
pre->next=r;
二叉树采用二叉链表作为存储结构。求出二叉树第i层和第i+1层叶结点个数之和。
基本思想:改造层序遍历算法。在遍历过程中记录当前所处理的结点所在的层数。
int getnum(bitree t)
if(!t) return 0;
int num=0;
int front=-1,rear=-1;
int last=0,level=1;//last首先指向第一行的最后一个元素。
bitree q[maxsize]; 队列。
q[++rear]=t; /尾结点是实的。
bitree p;
while(front
return num;
求邻接表无向图的连通分量。
基本思想:深度优先遍历。
void dfs(graph &g,int u)
arcnode *p;
visited[v]=1;
printf("%d",v);
for(p=>nextarc)
void getpart(graph &g)
for(v=0;i<
visited[v]=0;
for(v=0;i<
if(!visited[v])
printf("此连通分量包含结点:")
dfs(g,v);
东北大学2023年考研程序题
1.写出将循环单链表中结点x的直接前驱删除的算法,x为指针,且从x出发进行删除。void delete linklist l,lnode x p x while p next next x p p next q p next p next x free q 设计算法将二叉树的左右孩子互换。void ...
东北大学2023年考研程序题
c语言。输入n个数,编写递归函数,求出n个数中的最大值。基本思想 将当前数组划分为第一元素和剩下元素。第一元素与剩下元素当中的最大值就是最大元素。剩下元素成为当前数组。直到数组中只有一个元素。运行通过 include int max int a,int n if i m 1 else return ...
东北大学2023年考研程序题
c语言。三。有一个已排序的英文词典文件,每一个词条的格式为 词语 词性 例句。例如 book n this is a book student n i am a student 编写程序根据二分查找远离在文件查找制定单词的词条并输出 四。n个人围成一圈。从第1个人开始计数,凡是数到1,2,4.2 k...