c语言编程题

  1. 写一个函数,将3*3矩阵转置(10分)
    #include<stdio.h>
    void change(int a[3][3])
    {
    	int i,j,t;
    	for(i=0;i<3;i++)
    	for(j=0;j<i;j++)
    	{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
    }
     
    int main()
    {
    	int i,j,a[3][3];
    	for(i=0;i<3;i++)
    	for(j=0;j<3;j++)
    	scanf("%d",&a[i][j]);
    	change(a);
    	printf("\n转置矩阵:\n");
    	for(i=0;i<3;i++)
    	{
    	for(j=0;j<3;j++)
    	printf("%-4d",a[i][j]);
    	printf("\n");
    	}
    	return 0;
    }
    

  2. 斐波那契数列指的是这样一个数列1, 1, 2, 3, 5, 8, 13, 21......
#include<stdio.h>
int Fibonacci(int n);
int main (void)
{
    Fibonacci(10);
    return 0;
}
int Fibonacci(int n) {
	int i;
    int fib[n]={1,1};
 
    for(i=2;i<10;i++){
    fib[i]=fib[i-1]+fib[i-2];}
    
     for(i=0;i<10;i++){
        printf("%d ",fib[i]);
    }
}

  1. 单链表反转(10分)
  1. 单链表node的数据结构定义如下:
    class ListNode {
    int val;
    ListNode next;
    }
    //所给题目为java格式构建的链表,故用java写法,递归反转单链表
    public static ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
    }
    

  1. 请实现两棵树是否相等的比较,相等返回0,否则返回其他值。(10分) 

数据结构为

int CompTree(TreeNode &Tree1, TreeNode &Tree2)
 {if(Tree1== NULL && Tree2== NULL)
 return 1;
if(Tree1==NULL|| Tree2==NULL)
	return 0;
if(Tree1&& Tree2)
{if(Tree1->c!= Tree2->c)
return 0;
else return  CompTree(Tree1-> leftchild,Tree2-> leftchild)*CompTree(Tree1-> rightchild,Tree2-> rightchild);
}

  1. 程序设计-排序/查找(20分)(思想对一半,运算一半)


版权声明:本文为qq_41054844原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。