2020-11-28

                                                   大创工联部第三次考核

题目 1:
一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙跳上一个 n 级的台
阶总共有多少种跳法(先后次序不同算不同的结果)
示例:
输入 0 输出 0
输入 1 输出 1
输入 10 输出 89

解题思路:根据在草稿纸上列出前几个台阶青蛙跳的方法数可知青蛙跳法有a[i+1]=a[i]+a[i-1],从而得出结果。

代码如下:

#include<stdio.h>
int main()
{
  int a[100],n,i;
  printf("请输入n:");
  scanf("%d",&n);
  a[0]=0;
  a[1]=1;
  a[2]=2;
  for(i=1;i<=n;i++)
    {
        a[i+1]=a[i]+a[i-1];
    }
    printf("共有%d种跳法",a[i]);
  return 0;
}

运行结果:
在这里插入图片描述
在这里插入图片描述
题目 2:
顺时针螺旋矩阵
给定一个包含 mxn 个元素的矩阵(m 行,n 列),请按照顺时针螺旋顺序,返回矩
阵中的所有元素。
示例 1:
输入:
[1,2,3],
[4,5,6],
[7,8,9]
输出:[1,2,3,6,9,8,7,4,5]

解题思路:通过观察发现若要顺时针输出所有元素,则需对各行和列计数,因为每输出一行或者一列,那么下一次输出时就不应该重复输出已经输出过的数了,每输完一行或者一列就对其进行减一。

代码如下:

int main()
{
   int a[10][10],i,j,m,n,k=0;
   scanf("%d",&m);
   scanf("%d",&n);
   for(i=0;i<m;i++)
    for(j=0;j<n;j++)
       scanf("%d",&a[i][j]);
    int s=0,d=m,f=0,g=n;
 while(k<n*m)
 {for(i=s,j=f;j<g;j++)
        {if(k==m*n)
           break;
       printf("%d ",a[i][j]);
        k++;}
       s++;
  for(i=s,j=g-1;i<d;i++)
             {if(k==m*n)
           break;
      printf("%d ",a[i][j]);
       k++;}
       g--;
  for(i=d-1,j=g-1;j>=f;j--)
     {if(k==m*n)
           break;
       printf("%d ",a[i][j]);
        k++;}
       d--;
  for(i=d-1,j=f;i>=s;i--)
          {if(k==m*n)
           break;
        printf("%d ",a[i][j]);
         k++;}
        f++;
  }
    return 0;
}

运行结果:

题目 3:做出一个进制转换,输入一个 Int 范围的十进制整数,输入一个你想转
换的进制(2~16)进制。输出你的计算结果。
实例:
输入 243 2 输出 11110011(输入一个十进制的数 243,对应转换的为 2 进
制,输出结果 11110011)
输入 243 16 输出结果为 F3
输入 243 8 输出结果为 363

解题思路:首先得了解进制转换关系,十六进制的10~15是由A,B,C,D,E,F来代替的,所以这个要特别注意,其他的都按常规来,用你输入的数来除以你要转化的进制,得余数,通过循环继续得余数,最后将所得余数反过来输出。

代码如下:

#include<stdio.h>
int main()
{
    int a[100],i,j,n,t,m=0;
    printf("请输入要转换的进制");
    scanf("%d",&t);
    printf("请输入要转换的数");
    scanf("%d",&j);
    for(i=0;;i++){
             if(j<t)
                {a[i]=j;
                m++;
               break;}
            else
            {a[i]=j%t;
            j=j/t;
            m++;}
    }
  for(i=m-1;i>=0;i--)
    {if(a[i]==10)
        printf("A",a[i]);
    if(a[i]==11)
        printf("B",a[i]);
    if(a[i]==12)
        printf("C",a[i]);
    if(a[i]==13)
        printf("D",a[i]);
    if(a[i]==14)
        printf("E",a[i]);
    if(a[i]==15)
        printf("F",a[i]);
      else
        printf("%d",a[i]);
    }
    return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201128233243752.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RhbGVudHhpYW9saW4=,size_16,color_FFFFFF,t_70)
这是一个 SQL 语句,用于向借阅表中插入数据。该表包含以下字段:借阅编号、读者编号、书籍编号、借阅日期、归还日期、借阅状态。每条数据表示一次借阅记录。其中借阅编号、读者编号、书籍编号、借阅日期和借阅状态是必填项,归还日期为可选项,如果借阅状态为“已还”则必须填写归还日期。 具体插入的数据如下: - 借阅编号:100001,读者编号:123413,书籍编号:0001,借阅日期:2020-11-05,归还日期:NULL,借阅状态:借阅 - 借阅编号:100002,读者编号:223411,书籍编号:0002,借阅日期:2020-9-28,归还日期:2020-10-13,借阅状态:已还 - 借阅编号:100003,读者编号:321123,书籍编号:1001,借阅日期:2020-7-01,归还日期:NULL,借阅状态:过期 - 借阅编号:100004,读者编号:321124,书籍编号:2001,借阅日期:2020-10-09,归还日期:2020-10-14,借阅状态:已还 - 借阅编号:100005,读者编号:321124,书籍编号:0001,借阅日期:2020-10-15,归还日期:NULL,借阅状态:借阅 - 借阅编号:100006,读者编号:223411,书籍编号:2001,借阅日期:2020-10-16,归还日期:NULL,借阅状态:借阅 - 借阅编号:100007,读者编号:411111,书籍编号:1002,借阅日期:2020-9-01,归还日期:2020-9-24,借阅状态:已还 - 借阅编号:100008,读者编号:411111,书籍编号:0001,借阅日期:2020-9-25,归还日期:NULL,借阅状态:借阅 - 借阅编号:100009,读者编号:411111,书籍编号:1001,借阅日期:2020-10-08,归还日期:NULL,借阅状态:借阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值