C语言第七次作业练习

标签: c语言
275人阅读 评论(0) 收藏 举报
分类:

以下程序教材基于 谭浩强C程序设计(第四版)

第1题 完成例6.9,有3个字符串,要求找出其中最大者。

# include<stdio.h>  
# include<string.h>  

int main(void)  
{  
    char str[3][20];//定义二维数组(存放三个字符串)  
    char string[20];//定义一维数组  
    int i;  
    for(i=0;i<3;i++)  
    {  
        gets(str[i]);//每换行输入一个字符串  
    }  
    if(strcmp(str[0],str[1])>0)  
        strcpy(string,str[0]);  
    else  
        strcpy(string,str[1]);  

    if(strcmp(str[2],string)>0)  
        strcpy(string,str[2]);  

    printf("输入的三个字符串中最大的字符串是%s\n",string);  

    return 0;  
}  

第2题 教材P.169习题10。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[3][80];
    int i,j,daxie,xiaoxie,num,space,other;
    daxie=xiaoxie=num=space=other=0;

    for(i=0;i<3;i++)
    {
        printf("请输入一行字符\n");
        gets(a[i]);
        for(j=0;j<80&&a[i][j]!='\0';j++)
        {
            if(a[i][j]>='A'&&a[i][j]<='Z')
                daxie++;
            else if(a[i][j]>='a'&&a[i][j]<='z')
                xiaoxie++;
            else if(a[i][j]>='0'&&a[i][j]<='9')
                num++;
            else if(a[i][j]==' ')
                space++;
            else
                other++;
        }
    }
    printf("\n大写字母:%d\n小写字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",daxie,xiaoxie,num,space,other);

    return 0;
}

第3题 教材P.169习题13。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[100],b[50];
    int i=0,j=0;

    printf("请输入第一行字符串:\n");
    gets(a);
    printf("请输入第二行字符串:\n");
    gets(b);

    while(a[i]!='\0')
        i++;
    while(b[j]!='\0')
    a[i++]=b[j++];
    a[i]='\0';
    printf("字符串相连的结果为:%s\n",a);

    return 0;
}

第4题 教材P.169习题15。

# include<stdio.h>
# include<string.h>

int main(void)
{
    char a[100],b[100];
    int i;

    printf("请输入第二个字符数组内容:");
    gets(b);
    for(i=0;i<100;i++)
        a[i]=b[i];
    printf("第一个字符数组内容为:%s\n",a);

    return 0;
}

第5题 实现顺序查找算法,规定数组长度为10。

/*实现顺序查找算法*/

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

int main(void)
{
    int i,val,a[10],ret;
    char ch;

    for(i=0;i<10;i++)
        a[i]=rand()%100;  //产生100以内的随机整数//
    for(i=0;i<10;i++)
        printf("%3d",a[i]);  //输出产生的随机整数//

    do
    {
        printf("\n请输入所要查找的元素:");
        scanf("%d", &val);

        for(i=0;i<10;i++)
        if(val==a[i])
            ret=1;

        if(1 == ret)
            printf ("匹配成功,存在该元素!\n");
        else
            printf ("匹配失败,不存在该元素!\n");

        printf("您想继续么(Y/N): ");
        scanf(" %c", &ch);  

    }
    while ('y'==ch || 'Y'==ch);

    return 0;
}

第6题 教材P.169习题9。实现折半查找算法,规定数组长度为11。

# include<stdio.h>

int main(void)
{
    int i,number,top,bott,mid,loca,a[11],flag=1,sign;
    char c;printf("由大到小输入11个数 :\n");

    for(i=0;i<11;i++)
    {
        scanf("%d",&a[0]);
        i++;
        while(i!=-1&&i<11)
        {
            scanf("%d",&a[i]);
            if(a[i]<a[i-1])
                i++;
            else
            {
                printf("输入有误,请重新输入:\n");
                i=-1;
            }
        }
    }
    printf("\n");
    for(i=0;i<11;i++)
        printf("%4d",a[i]);
    printf("\n");
    while(flag)
    {
        printf("寻找:");
        scanf("%d",&number);
        sign=0;
        top=0;
        bott=11-1;
        if((number<a[0])||(number>a[11-1]))
            loca=-1;
        while((!sign)&&(top<=bott)){mid=(bott+top)/2;
        if(number==a[mid])
        {
            loca=mid;
            printf("已找到%d,它是第%d个数\n",number,loca+1);
            sign=1;}
        else if(number>a[mid])
            bott=mid-1;
        else
            top=mid+1;
        }
        if(!sign||loca==-1)
            printf("无此数\n");
        printf("如继续寻找,请输入数字;否则按n/N结束");
        scanf("%c",&c);
        if(c=='N'||c=='n')
            flag=0;
    }
    return 0;
}

第7题 教材P.169习题8。找出二维数组中的鞍点,规定二维数组大小为3行4列。

/*找出二维数组中的鞍点,规定二维数组大小为34*/

# include<stdio.h>

int main(void)
{
    int i,j,k,a[3][4],b,c,d;
    printf("请输入3*4数组:\n");
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);
        for(i=0;i<3;i++)
        {
            b=a[i][0];
            c=0;
            for(j=0;j<4;j++)
                if(a[i][j]>b)
                {
                    b=a[i][j];
                    c=j;
                }
            d=1;
            for(k=0;k<3;k++)
                if(b>a[k][c])
                {
                    d=0;
                    continue;
                }
                if(d)
                {
                    printf("第%d行,第%d列的%d是鞍点\n",i+1,c+1,b);
                    break;
                }
        }
        if(!d)
            printf("不存在鞍点!\n");

        return 0;
}
查看评论

第七次 HTML作业

  • tanluzhouyuanyuan
  • tanluzhouyuanyuan
  • 2016-04-13 22:13:32
  • 151

程序语言设计概论7次作业标准答案

  • 2014年03月13日 11:14
  • 90KB
  • 下载

C语言练习作业(一)

练习作业
  • RangerRus
  • RangerRus
  • 2015-11-06 16:10:00
  • 254

C语言第七次作业

/*----------------------------------------------- 名称:用函数加密数组 编写:钱钰 51131523 班级:电子科学与工程学院 电子...
  • u013589337
  • u013589337
  • 2014-11-26 22:42:01
  • 639

if语句的练习

if语句的练习——星期 需求:根据用户指定的具体数据,判断该数据对应的星期。 1——星期——Monday 思路: 用户输入无法获取但是那只是具体数据的一种获取手段而已, 而我们要做的功能仅仅是对用户指...
  • qq_36440274
  • qq_36440274
  • 2016-10-20 00:04:58
  • 386

C语言入门级练习(敲代码)

今天和昨天我大概花了4个多小时来完成老师布置的作业:将《程序设计基础》这本书和第三章到第五章所有例题在自己电脑上重新打一遍,昨天的第一次做花了三个多小时,一次性通过率及低(0.3%);今天再重新打了一...
  • grj2007
  • grj2007
  • 2014-08-06 00:41:28
  • 1701

高级编程技术课后作业 第三章练习

3-2 问候语代码:names = [&quot;Amy&quot;, &quot;John&quot;, &quot;Mike&quot;]for name in names:    print(&...
  • weixin_38291163
  • weixin_38291163
  • 2018-03-18 09:24:29
  • 12

习题(简单IF~else)

如果用户名等于“青”,且密码为“123”,则输出欢迎你青,否则 对不起,你不是青import java.util.*;public class Qing { public static void ma...
  • wsbbdbjay
  • wsbbdbjay
  • 2018-03-27 17:28:55
  • 28

安徽大学计算机作业答案

  • 2013年11月09日 01:19
  • 134KB
  • 下载

初学的c语言一些简单的练习题(自我练习)

1.打印99乘法表#include int main(){ int i, j; for (i = 1; i
  • Cell_KEY
  • Cell_KEY
  • 2016-03-28 22:31:56
  • 10924
    个人资料
    持之以恒
    等级:
    访问量: 4690
    积分: 210
    排名: 36万+
    文章存档