`

第五届开源小组招新题目

阅读更多
这是学校的开源小组招新题。
08年时我是第二届的组长,不知不觉已经过了两年多,
但自己也没有多少成长,长江后浪推前浪,前浪死在沙滩上
这是我第三次出题了吧,也是最后一次了。

1、找出规律,打印出下面的图案:

         *
        ***
       *****
      *******
       *****
        ***
         *


2、编写index函数,返回查找字符串中第一个出现的指定字符地址:


3、本程序演示编一个函数fun(char *s),函数的功能是把字符串中的内容逆置。
例如:字符串中原有的内容为:abcdefg,则调用该函数后,串中的内容为:gfedcba


4、要求程序的功能是:把10个随机数(1~999)存入一个数组,然后输出该数组中的最小值。
其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。


5、编写strcpy函数,拷贝字符串。函数原型:char *mystrcpy(char *dest,const char *src, int n);

/*****************************
    By   : xlong
    date : 2010-11-5
******************************/
#include <stdio.h>

void putCharNum(char c, int n)
{
    static int i;
    for (i = 0; i < n; ++i)
        putchar(c);
}

void fun(int n) 
{
    static int mid;
    static int i;
    static int j;

    if (n < 3 || (n % 2) == 0)  return ;
    mid = n/2 + 1;  
    for (i = 1; i <= n; ++i)
    {
        j = abs(i - mid);
        putCharNum(' ', j);
        putCharNum('*', n - 2*j);
        putCharNum(' ', j);
        putchar('\n');
    }
}


int main(int argc, char *argv[])
{
    fun(9);
    getchar();
    return 0;
}


/*****************************
    By   : xlong
    date : 2010-11-5
******************************/
#include <stdio.h>
#include <string.h>

char *index(char *str, int c)
{
    static int i;
    if (str == NULL) return NULL;
    int size = strlen(str);

    for (i = 0; i < size; ++i)
        if (*str++ == c) return --str; 

    return NULL;
}

int main(int argc, char *argv[])
{
    char str[] = "abcd123";
    
    printf("sour string : %s\nfind char is '1'\n", str);
    printf("%s\n", index(str, '1'));

    getchar();
    return 0;
}


/*****************************
    By   : xlong
    date : 2010-11-5
******************************/
#include <stdio.h>
#include <string.h>

char *backString(char *str)
{
    static int i;
    static int c;
    static int n;
    static int size;

    size = strlen(str);
    if (str == NULL || size == 1) return str;
    n = size/2;

    for (i = 0; i < n; ++i)
    {
        c = *(str + i);
        *(str + i) = *(str + size - 1 - i);
        *(str + size - 1 - i) = c;
    }
    return str;
}

int main(int argc, char *argv[])
{
    char str[] = "123456\0";
    printf("sour string is %s\n", str);
    printf("back string is %s\n",backString(str));

    getchar();
    return 0;
}


/*****************************
    By   : xlong
    date : 2010-11-5
******************************/

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define VSIZE 10
int vector[VSIZE];

void rankvec()
{
    srand((int)time(0));

    static int i;
    for(i = 0; i < VSIZE; i++)
    {
        vector[i] = 999*rand()/RAND_MAX;
        printf("%3d \t",vector[i]);
    }
}

int fun(int list[], int size)
{
    static int i;
    int j = 0;
    for (i = 1; i < size; ++i)
        if(list[i] < list[j]) j = i;

     return j;
}

int main(int argc, char *argv[])
{
    rankvec();
    int index = fun(vector, VSIZE);
    printf("\nmin value = %d\n", vector[index]);

    getchar();
    return 0;
}


/*****************************
    By   : xlong
    date : 2010-11-5
******************************/
#include <stdio.h>
#include <string.h>

//  一般
char *myStrcpy(char *dest, const char *src)
{
    if (dest == NULL || src == NULL) return NULL;

    char *res = dest;
    while ((*dest++ = *src++) != NULL) {}

    return res;
}

//  较好
char *myStrncpy(char *dest, const char *src, int n)
{
    if (dest == NULL || src == NULL) return NULL;

    int i;
    for (i = 0; i < n; ++i)
        *(dest + i) = *(src + i);

    return dest;
}

int main(int argc, char *argv[])
{
    char str1[20];
    char str2[] = "hello\0";

    printf("%s\n", myStrcpy(str1, str2));

//    printf("%s\n", myStrncpy(str1, str2, strlen(str2)));

    getchar();

    return 0;
}

分享到:
评论

相关推荐

    ThinkSAAS开源小组 v0.9极速版

    ThinkSAAS开源小组是参照“豆瓣小组”的功能开发和设计,保持使用简单,界面简洁的用户体验感受。ThinkSAAS开源小组基于ThinkSAAS最简单APP开发PHP开源框架开发,APP应用扩展方便简单。ThinkSAAS开源小组吸取社会化...

    OS2ATC 2021 第九届开源操作系统年度技术会议PPT合集(45份).zip

    OS2ATC 2021 第九届开源操作系统年度技术会议PPT合集(45份) Kata Containers UniKernel WebAssembly-runtime Demo RISC-V向量编程及编译支持 通用机密计算平台技术初探 Python在大数据领域实践和思考 RT-Thread ...

    最新微信付费进群源码全开源版

    最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新...

    ThinkSAAS 仿豆瓣开源小组 v1.2.1029

    ThinkSAAS开源小组是仿“豆瓣小组”的功能开发和设计,保持使用简单,界面简洁的用户体验感受。ThinkSAAS开源小组基于ThinkSAAS最简单APP开发PHP开源框架开发,APP应用扩展使用方便简单。  ThinkSAAS开源小组后台...

    开源期刊第一期

    ### 开源期刊第一期知识点详述 #### 一、开源期刊背景及意义 - **期刊创刊背景**:《开源》期刊始于2008年,经过五年的酝酿与筹备,正式面向公众发布。这份期刊的诞生标志着中国开源运动进入了一个新的阶段。在...

    PHP实例开发源码-ThinkSAAS 开源小组php社区统.zip

    PHP实例开发源码—ThinkSAAS 开源小组php社区统.zip PHP实例开发源码—ThinkSAAS 开源小组php社区统.zip PHP实例开发源码—ThinkSAAS 开源小组php社区统.zip

    2024全新付费进群系统源码 Thinkphp框架全开源独立版 九块九进群源码 付费入群进群源码

    最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新微信付费进群源码全开源版最新...

    基于PHP的ThinkSAAS 开源小组php社区统.zip

    【标题】"基于PHP的ThinkSAAS开源小组php社区系统" 这个标题暗示了我们要讨论的是一个使用PHP编程语言开发的开源社区系统,名为ThinkSAAS。ThinkSAAS是一款基于PHP框架,专为创建社交网络、在线社区或者小组讨论...

    亲测易支付新版彩虹易支付源码全开源10套模板带风控实名系统下载 全新二开版

    全新二开版,原作者二开版本,新加了很多功能,新功能:API退款,轮训支付,网银支付,京东支付,实名认证更多功能自己登录演示后台,再带11套首页模板,比原版不知道好用多少。 这个比老版本好很多,全新支持2代支付宝...

    开源软件文集:开源革命之声.pdf

    而对于企业来说,本书揭示了如何利用开源软件提高竞争力的途径,甚至是一种新的经济模式的建立。 书中还提到了一些其他重要的开源项目和人物,比如Emacs编辑器和它的作者、Perl脚本语言的创始人等。这些项目的成功...

    最新稳定的货源社区源码丨新版云乐购免费开源

    最新稳定的货源社区全开源源码丨新版云乐购免费开源

    KNX协议第三方开源库

    5. **开源库的应用**:Calimero这样的开源库为开发者提供了便利,他们无需深入了解底层协议细节,只需通过库提供的API就能快速实现KNX设备的控制和通信。这大大降低了开发门槛,促进了KNX技术在更广泛的项目中的应用...

    heidisql 最新开源版本

    heidisql 最新开源版本heidisql 最新开源版本heidisql 最新开源版本heidisql 最新开源版本heidisql 最新开源版本

    19届智能车镜头组c车模TC264迪克旋转队开源代码

    《19届智能车镜头组C车模TC264迪克旋转队开源代码解析》 在智能车竞赛中,各个参赛队伍会采用各种技术手段提升车辆的性能和稳定性,其中19届智能车镜头组的C车模迪克旋转队就以其独特的技术方案脱颖而出。他们的...

    南京邮电大学第十一届网络攻防大赛开源题目.zip

    南京邮电大学第十一届网络攻防大赛开源题目.zip

    PHP实例开发源码—ThinkSAAS 开源小组php社区统.zip

    【标题】"PHP实例开发源码—ThinkSAAS 开源小组php社区统.zip" 提供的是一个基于PHP的开源社区系统源代码,ThinkSAAS是一个知名的PHP开发框架,专为构建社交网络和协同工作平台而设计。这个压缩包内包含了项目的基本...

    南京邮电大学第十一届网络攻防大赛开源题目_NCTF2022.zip

    南京邮电大学第十一届网络攻防大赛开源题目_NCTF2022.zip文件中的NCTF2022-main,是作为南京邮电大学举办的网络攻防大赛中的比赛题目。NCTF,即Network Challenge Tournament for Future,网络攻防挑战赛,是面向...

    17届全国大学生智能汽车竞赛无线充电组开源项目.zip

    17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能汽车竞赛无线充电组开源项目 17届全国大学生智能...

Global site tag (gtag.js) - Google Analytics