0713c语言练习(作业4)

1.题目:编写程序,打印出9×9乘法表(这道题相对而言比较简单,用两次for循环就行了,我写了三种不同样式的)
(1)代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

int main()
{
    int i,j;
    int a;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=9;j++)
        {
            printf("%d*%d=%d\t",i,j,i*j);
        }
        printf("\n");
    }

    return 0;
}

结果图:
在这里插入图片描述
(2)代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%d\t",i,j,i*j);
        }
        printf("\n");
    }

    return 0;
}

结果图:
在这里插入图片描述
(3)代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=9;j++)
        {
            if(j<i)
            {
                printf("      ");
            }
            else
                printf("%d*%d=%2d",i,j,i*j);
        }
        printf("\n");
    }


    return 0;
}

结果图:
在这里插入图片描述
2.题目:编写程序,实现strcmp()相同功能myStrcmp()函数。(首先我们要知道strcmp()的功能,strcmp是比较两个字符串的,但是是从左向右追个进行比较,直到出现两个不同的字符时开始比较,前者大于后者是输出一个正数,后者大于前者时输出一个负数,如果两个字符串相等时则输出0,因此知道了这个strcmp的功能后就不难写出这个代码了。)
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
int main()
{
    char a[100],b[100];
    int i,p=0;
    gets(a);
    gets(b);
    for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
    {
        if(a[i]==b[i])
        {
            continue;
        }
        if(a[i]>b[i]) 
        {
            p=1;
            break;
        }
        if(a[i]<b[i])
        {
            p=-1;
            break;
        }
        if(a[i]=='\0'&&b[i]=='\0')
        {
            p=0;
        }
        else if(a[i]=='\0')
        {
            p=-1;
        }
        else 
        {
            p=1;
        }
    }
    printf("%d\n",p);

    return 0;
}

结果:
在这里插入图片描述
3.题目:编写程序,将十进制转换为8进制并输出(不允许使用printf("%o"))。(这道题目要求我们把一个十进制数转换为八进制输出,还不允许我们使用%o,因此我们就得想其他的办法了,十进制转化为八进制有一个公式就是求他的余数,也就是n%8,n/8不停的循环,然后把余数存进一个数组,最后n=0的时候停止循环并退出。)
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
#include <math.h>
int main()
{
    int n,m,i,sum;
    sum=0;
    i=0;
    printf("请输入一个十进制数:");
    scanf("%d",&n);
    while(n)
    {
        m=n%8;
        n=n/8;
        sum+=m*pow(10,i);
        i++;
    }
    printf("这个十进数的八进制数为:%d\n",sum);

    return 0;
}

结果:
在这里插入图片描述
4.题目:编写程序,打印菱形星号组合
*
* *

  • *
    
 *(这道题我使用的笨办法做的,找规律就行)

代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

int main()
{
    int i,j,k;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=7;j++)
        {
            if(j-i==3||j+i==5)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }
    for(i=5;i<8;i++)
    {
        for(j=1;j<8;j++)
        {
            if(i-j==3||j+i==11)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }
        printf("\n");
    }

    return 0;
}

结果:
在这里插入图片描述
5.题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。(google面试题)(这道题目我之前有过一个类似的是算9出现的次数的,关键是算法,可以用do while或者while来写,先是对a%10的余数进行跟1比较,相等就+1,不等就a/10,毕竟有时候a不可能是一位数,可能是两位三位四位等等,所以逐步/10,再求余直到a=0退出循环,这样每位数都能计算到内)

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
int Find(int n)
{
    int i,nu,t=0;
    for(i=1;i<=n;i++)
    {
        nu=i;
        do{
            if(nu%10==1)
            {
                t++;
            }
            nu=nu/10;
        }while(nu!=0);
    }
    return t;
}
int main()
{
    int n,m;
    printf("请输入n:");
    scanf("%d",&n);
    m=Find(n);
    printf("1-n之间1的个数:%d\n",m);

    return 0;
}

结果:
在这里插入图片描述
6.题目请编写一个c函数,该函数给出一个字节中被置为1的位的个数。(一个字节那我们可以理解为输入一个字符型的量,因为字符型所占的就是一个字节,而且字符都有各自的ascii码值,所以将这个字符的ascii值赋值给一个整型变量,那么这个整型变量就得到这个字符的acii值,然后再将这个十进制的数转化为二进制,将每一位存入数组中,然后在统计一的个数)
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
int fun(char n)
{
    int i,m,t=0;
    for(i=0;i<8;i++)
    {
        m=(n>>i)&1;
        if(m==1)
        {
            t++;
        }
    }
    return t;
}
int main()
{
    char n;
    int m;
    printf("请输入一个字符:");
    scanf("%c",&n);
    m=fun(n);
    printf("被置1的位的个数:%d\n",m);

    return 0;
}

结果:
在这里插入图片描述
7.题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
void fun(int a,int p1,int p2)
{
    int i,t;
    for(i=p2;i>=p1;i--)
    {
        t=(a>>i)&1;
        if(t==1)
        {
            printf("1");
        }
        else
        {
            printf("0");
        }
    }
    printf("\n");
}
int main()
{
    int a,p1,p2;
    printf("请输入一个整数:");
    scanf("%d",&a);
    printf("请输入p1,p2(p1<p2<32):");
    scanf("%d%d",&p1,&p2);
    fun(a,p1,p2);

    return 0;
}

结果:
在这里插入图片描述
8.题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

void fun(int a,int p1,int p2)
{
    int i;
    int t,m=0;
    int p[32];
    if(a>=0)
    {
        for(i=p2;i>=p1;i--)
        {
            t=(a>>i)&1;
            if(t==0)
            {
                printf("1");
            }
            else
            {
                printf("0");
            }
        }
    }
    else 
    {
        i=0;
        a=abs(a);
        while(i<32)
        {
            m=a%2;
            a=a/2;
            p[i]=m;
            i++;
        }
        p[31]=1;
        for(i=p2;i>=p1;i--)
        {
            p[i]=1-p[i];
            printf("%d",p[i]);
        }

    }
    printf("\n");
}
int main()
{
    int a,p1,p2;
    printf("请输入一个整数a:");
    scanf("%d",&a);
    printf("请输入两个整数p1,p2(p1,p2<32):");
    scanf("%d%d",&p1,&p2);
    fun(a,p1,p2);

    return 0;
}

结果:
在这里插入图片描述
9.题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>

int main()
{
    int a,p,v,m,i,n;
    int num[32];
    printf("请输入一个整数a:");
    scanf("%d",&a);
    printf("请输入一个p(p<32)和一个v(0或1):");
    scanf("%d%d",&p,&v);
    if(a>=0)
    {
        for(i=31;i>=0;i--)
        {
            num[i]=(a>>i)&1;
        }
    }
    else
    {
        a=abs(a);
        for(i=31;i>=0;i--)
        {
            num[i]=(a>>i)&1;
        }
        num[31]=1;
    }
    num[p]=v;
    printf("p位置为v之后:\n");
    for(i=31;i>=0;i--)
    {
        printf("%d",num[i]);
    }
    printf("\n");

    return 0;
}

结果:
在这里插入图片描述
10.题目:输入一个32位的整数a,使用按位异或^运算,生成一个新的32位整数b,使得该整数b的每一位等于原整数a中该位左右两边两个bit位的异或结果
提示:0 ^ 0 = 0; 1 ^ 1 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1;
代码:

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
#include <math.h>
int main()
{
    int a,anum[32],bnum[32],b=0,i;
    printf("请输入一个整数a:");
    scanf("%d",&a);
    for(i=31;i>=0;i--)
    {
        anum[i]=(a>>i)&1;
    }
    for(i=31;i>=0;i--)
    {
        bnum[i]=anum[i]^anum[i-1];
    }
    for(i=31;i>=0;i--)
    {
        b+=bnum[i]*pow(2,i);
    }
    printf("b=%d\n",b);

    return 0;
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
基于hal库的OLED显示屏驱动C语言实现源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值