C语言实验报告 五、六

实验名称

实验五  数组应用和字符串处理程序设计

实验六  指针应用程序设计

实验目的和要求

  1. 理解数组在程序设计中的作用:存储相同类型的批量数据;
  2. 掌握数组的定义、初始化和数组元素的引用方法;
  3. 掌握与数组有关的算法,如:求最大(小)值,排序等;
  4. 理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数;
  5. 理解指针概念,掌握指针变量的定义和赋值;
  6. 理解使用指针的目的:通过指针访问内存。掌握使用指针访问内存(数据)的方法;
  7. 学会使用指针访问数组中的数据,学会用指针处理字符串。

实验内容

  1. 输入10个整型数据,存入数组a中,找出其最大值、最小值及其所在元素的下标。
  2. 有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
  3. 输入10个整型数据,存入数组a中,用选择法或冒泡法对数组中的数据从小到大排序。
  4. 输出一个含有10行的杨辉三角形。
  5. 输入一个英文句子,统计句子中单词的个数。
  6. 输入并运行第5章例5-1、例5-2中的程序,观察输出结果,理解指针变量的用法。
  7. 输入并运行第5章例5-5中的程序,掌握使用指针访问数组元素的方法。
  8. 编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。(使用指针)

主要仪器设备

台式或笔记本电脑

实验记录(写出实验内容中2,4,5,8的程序代码和运行结果)(可分栏或加页)

2.有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数

组中。

#include <stdio.h>

int main()

{

     int a[10]={0,1,2,3,4,9,14,36,45};    //一个已经从小到大排好序的数组

     int i,t,m;

     printf("请输入一个数:\n");

     scanf("%d",&m);

     for(i=0;i<10;i++)

     {

         if(m<a[i])

         {

             t=m;

             m=a[i];

             a[i]=t;

         }

         else if(m>a[8])

         {

a[9]=m;

   }

 }

    printf("排序后:\n");

for(i=0;i<10;i++)

    {

  printf("%3d",a[i]);

  }

return 0;

}

4.输出一个含有10行的杨辉三角形。

#include<stdio.h>

int main(void)

{

    int i,j;

    int a[10][10];

    for(i=0;i<10;i++)

    {

        a[i][0]=1;

        a[i][i]=1;

    }

    for(i=2;i<10;i++)

    {

for(j=1;j<i;j++)

{

            a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

    for(i=0;i<10;i++)

    {

        for(j=0;j<=i;j++)

{

printf("%d ",a[i][j]);

}

        printf("\n");

    }

return 0;

}

5.输入一个英文句子,统计句子中单词的个数。

#include <stdio.h>

int main()

{

char a[100];

int i,j;

printf("请输入一个英文句子:\n");

gets(a);

j=1;

for(i=0;a[i]!='\0';i++)

{

if(a[i]==' ')

{

j++;

}

}

printf("英文句子中有%d个单词",j);

return 0;

}

8.编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。(使用指

针)

#include <stdio.h>

#include<string.h>

int main()

{

char t[100],*p;

printf("输入有一个英文句子:\n");

gets(t);

for(p=t;*p!='\0';p++)

{

if(p==t&&*p>='a'&&*p<='z')

*p=*p-32;

if(*p==' ')

{

if(*(p+1)>='a'&&*(p+1)<='z')*(p+1)=*(p+1)-32;

}

}

puts(t);

return 0;

}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值