西安建筑科技大学2013年814程序设计

二话不说,直接原题呈现

1、请编写字符串反转函数mystrrev()该函数功能为将指定字符中的字符顺序颠倒排列,并编写主函数验证之。

 (基础题)


#include <stdio.h>
char mystrrev(char *str);
int main(){
    char str[50];
    printf("输入字符串\n");
    gets(str);
    mystrrev(str);
}
char mystrrev(char *str)
{
    int *p;
    p=str;
    printf("反转:\n");
    for(int i=strlen(str);i>=0;i--)
    {
        printf("%c",str[i]);
    }
    
}

运行结果:

2、编程实现:输入5个用户的姓名和电话号码,按姓名的字母顺序排列后,输出用户的姓名和电话号码。输入数据可自行设定。

基础题,可能改编成链表.参考2020压轴2020年833


#include <stdio.h>
//#include <string.h>
struct st{
    char name[30];
    char  tel[30];
};
//stu[5]={"chen","185551000","zhang","18999998787","hei","13444446775","ji","17856519888","luo","1101201309"};//数据多,直接定义好省时省力
int main()
{
    struct st stu[5];
    int i,j;
    for(i=0;i<5;i++)
    {
        printf("输入第%d个总统的信息:\n",i+1);
        scanf("%s%s",stu[i].name,stu[i].tel);
    }
    for(i=0;i<4;i++)//冒泡
    {
        for(j=0;j<5-i-1;j++)
        {
            if(strcmp(stu[j].name,stu[j+1].name)>0)
            {
                char st[30],tt[30];
                strcpy(st,stu[j].name); //姓名和号码都要换
                strcpy(stu[j].name,stu[j+1].name);
                strcpy(stu[j+1].name,st);
                
                strcpy(tt,stu[j].tel);
                strcpy(stu[j].tel,stu[j+1].tel);
                strcpy(stu[j+1].tel,tt);
            }
        }
        
    }
    
    printf("简简单单排个序:\n");
    for(i=0;i<5;i++)
    {
        printf("%s\t%s\n",stu[i].name,stu[i].tel);
    }
    
    
    
}
 
 
 

运行结果:

3、求解猴子吃桃问题。 猴子在第1天摘下一堆桃子,当即就吃了一半,又觉不过瘾,于是又多吃了一个。以后每天如此,到第10天时,就只剩下了一个桃子。请编程计算第1天猴子摘得桃子数,并给出计算结果。

(吃个桃桃,好凉凉!!!基础题)

#include <stdio.h>
int main()
{
    int n=1;                 //第十天🍑🌲
    for(int i=9;i>0;i--)//已知第十天🍑,直接从第九天算就完事了
        n=(n+1)*2;    
    printf("%d",n);
}

运行结果:

4、用指针编写冒泡排序程序。

(基础入门)

#include <stdio.h>
#define N 10
int sort(int *p)
{
    for(int i=0;i<N-1;i++)
    {
        for(int j=0;j<N-i-1;j++)
        {
            if(*(p+j)>*(p+j+1))
            {
                int t;
                t=*(p+j);
                *(p+j)=*(p+j+1);
                *(p+j+1)=t;
            }
        }
    }
}
int main()
{
    int a[N];
    int i;
    printf("输入10个数:\n");
    for(i=0;i<N;i++){
        scanf("%d",&a[i]);
    }
    sort(a);
    printf("简简单单排个序:\n");
    for(i=0;i<N;i++)
    {
        printf("%d\t",a[i]);
    }
}

运行结果:

5、通过键盘输入一个整数n,然后调用递归函数fun(int n)计算 1+2+3+4+n并输出计算结果

请编程实现之。

(一看就会,一做就废 基础题)

 

#include <stdio.h>
int fun(int n)
{
    if(n == 1) 
    return 1;
    else
    return fun(n - 1)  + n;
}
int main()
{
    int n;
    printf("输入一个数\n");
    scanf("%d", &n);
    printf("%d",fun(n));
}

运行结果:


​​​​​​​

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值