《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容:

1.运行程序

#include <stdio.h>

void main( )

{ int i,j,iRow=0,iCol=0,m;

  int x[3][4]={{1,11,22,33},{2,28,98,38},{3,85,20,89}};

  m=x[0][0];

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

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

         if (x[i][j]>m)

   {  m=x[i][j];

    iRow=i;

    iCol=j;

   }

  printf("%d,%d,%d\n",m,iRow,iCol);

}

要求:

(1)输入并调试上述源程序,对源程序进行编译、连接。

(2)运行并将结果填入表4-3。

(3)分析数组的定义、初始化过程以及程序的作用。

(4)将“if (x[i][j]>m)”改为“if (x[i][j]<m)”,再次编译、连接、运行程序,分析其功能及结果。

表4-3程序测试及结果分析

#include <stdio.h>

#include<string.h>

void main( )

{ char str1[80]={"Hefei"},str2[80]="Anhui";

  int i=0;

  while(str1[i]!='\0')

  {

   if(str1[i]>='a' && str1[i]<='z')

    str1[i]-=32;

   i++;

  }

  strcat(str1,str2);

  puts(str1);

}

要求:

(1)输入并调试上述源程序,对源程序进行编译、连接、运行。

(2)运行并将结果填入表4-4。

(3)分析数组的定义、初始化过程,比较str1和str2赋初值的差别。

(4)将while循环中的str1修改为str2的运行结果,分析循环的作用。

(5)写出判断字符数组结束的3种方法。

(6)列出所学的字符串处理函数,分析其功能。

表4-4 程序测试及结果分析

3. 程序填空

下面程序的功能是将二维数组所存储的矩阵a进行转置,并保存到数组b中。请在横线处填上正确的内容,以实现程序功能。

#include <stdio.h>

#include<string.h>

void main( )

{  int i,j;

   int a[4][3],b[3][4];

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

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

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

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

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

                            

   for(                  )

   {

    printf("\n");

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

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

   }

   printf("\n");

}

要求:

(1)输入并完善源程序,对源程序进行编译、连接。

(2)运行并将结果填入表4-5。

(3)如果a是方阵,比如4行4列,不定义数组b,如何实现转置?

表4-4 程序测试及结果分析

4.编写程序

编写一个程序,统计从键盘输入的10个字符,英文字母(不区分大小写)和数字(0~9)字符出现的次数。

程序:

int main()

{

 system("color f3");

 char c;

 int letters = 0, digit = 0;

 printf("请输入一行字符:");

 while ((c = getchar()) != '\n')

 {

  if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')

  {

   letters++;

  }

  else if (c >= '0' && c <= '9')

  {

   digit++;

  }

 }

 printf("字母数:%d\n数字数:%d\n", letters, digit);

 return 0;

}

5.编写程序

输入一行字符,统计26个字母(不区分大小写)的个数。

程序:

int main()

{

    int i;

    int a[26] = { 0 }; // 计数

int b[26] = { 0 }; // 计数

  

  char c;

while ((c = getchar()) != '\n' && c != EOF)

    {

        if ((c >= 'A') && (c <= 'Z')) {

            a[c - 'A']++;

        }

        else if ((c >= 'a') && (c <= 'z')) {

            b[c - 'a']++;

        }

    }

    for (i = 0; i < 26; i++) {

        if (a[i] > 0)

            printf("%c:%d\n", i + 'A', a[i]);

        if (b[i] > 0)

            printf("%c:%d\n", i + 'a', b[i]);

    }

    return 0;

}

6.编写程序

编写一个程序,打印杨辉三角形的前7行,即输出:

1

1  1

1  2  1

1  3  3  1

1  4  6  4  1

1  5  10  10  5  1

1  6  15  20  15  6  1

要求及提示:

(2)先找出杨辉三角形中各行数的特点、行间数的关系,然后利用二维数组处理。

程序:

void main()

{

    system("color f3");

int a[7][7], i, j;

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

    {

        a[i][0] = 1;

        a[i][i] = 1;

    }

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

    {

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

        {

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

        }

    }

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

    {

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

        {

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

        }

        printf("\n");

    }

}

7.编写程序

编写一个程序,求4×6整型矩阵的外围元素之和。

程序:

int main()

{

    system("color f3");

    int i = 0, j = 0;

    int a[4][6];

    printf("请输入4*6矩阵元素:\n");

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

    {

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

        {

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

        }

    }

j = 5;

    int temp = 0;

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

    {                          

        temp = temp + a[i][i] + a[i][j];

        j--;

    }

    printf("\n%d\n", temp);

    printf("\n4*4矩阵:\n");

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

    {

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

        {

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

        }

        printf("\n");

    }

    return 0;

}

   8.编写程序

已经一个班级有45个学生。用一个三列的二维数组存放学生的信息。第一列存放学号,第二列存放物理成绩,第三列存放数学成绩。要求编程实现:

1数学及物理课程的平均成绩。

2输出两门课程都低于平均成绩的同学的学号和成绩。

3对数学成绩从高到低排序。

程序:

#include<stdio.h>

int main()

{

    system("color f3");

    int a[3][3], i, j, b;

    float x, y;

    printf("输入学号,物理成绩,数学成绩:\n");

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

    {

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

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

    }

x = (float)(a[0][1] + a[1][1] + a[2][1]) / 3;

    y = (float)(a[0][2] + a[1][2] + a[2][2]) / 3;

    printf("物理平均成绩为:%f\n数学平均成绩为:%f\n", x, y);

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

    {

        if (a[i][1] < x && a[i][2] < y)

            printf("学号为%d的同学物理成绩为%d数学成绩为%d都低于平均成绩的\n", a[i][0], a[i][1], a[i][2]);

    }

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

        if (a[i][2] < a[i + 1][2])

        {

            b = a[i][2]; a[i][2] = a[i + 1][2];

            a[i + 1][2] = b;

        }

    printf("数学成绩从高到低排序:");

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

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

    return 0;

}

9.编写程序

将一个二维数组行和列元素互换,存到另一个二维数组中。

   

程序:

int main()

{

    system("color f3");

    int i, j, a[2][3] = { {1,2,3},{4,5,6} }, b[3][2];

    printf("array a:\n");

    for (i = 0; i <= 1; i++)//处理a数组中的一行中各元素

    {

        for (j = 0; j <= 2; j++)//处理a数组中某一列元素

        {

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

            b[j][i] = a[i][j];

        }

printf("\n");

    }

    printf("array b:\n");

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

    {

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

        {

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

        }

        printf("\n");

    }

    return 0;

}

10.编写程序

求出4*4矩阵中最大和最小元素值及其所在行、列的行下标和列下标。再求出两条对角线元素之和。

程序:

int main()

{

    system("color f3");

    int sum = 0;

    int max, min;

    int max1, max2;//记录最大值的坐标

    int min1, min2;//记录最小值的坐标

    int i, j;

    int a[4][4];//为数组赋值

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

    {

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

        {

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

        }

    }

max = min = a[0][0];//初始化最大值最小值都为数组的第一个元素值a[0][0]

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

    {

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

        {

            if (max <= a[i][j])//需要把=写上

{

                max = a[i][j];

                max1 = i, max2 = j;

            }

            if (min >= a[i][j])

            {

                min = a[i][j];

                min1 = i, min2 = j;

            }

        }

    }

    printf("%d %d\n", max, min);

    printf("max(%d,%d)  min(%d %d)\n", max1, max2, min1, min2);

    //求两条主对角线元素之和

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

    {

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

        {

            if (i == j || (i + j == 3))//关键(j==3-i)

                sum = sum + a[i][j];

        }

    }

    printf("sum=%d\n", sum);

    return 0;

}

程序测试及运行结果:

4.

5.

6.

7.

8.

.9.

10.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/363712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix“专家坐诊”第225期问答汇总

来源&#xff1a;乐维社区 问题一 Q&#xff1a;当系统负荷顶不住时&#xff0c;比如4个cpu&#xff0c;load average 特别高&#xff0c;比如100。这时候这段时间zabbix的所有指标数据会丢失&#xff0c;不知道原因是什么&#xff0c;有没有办法去处理&#xff0c;保存这块指标…

2024年【危险化学品经营单位主要负责人】报名考试及危险化学品经营单位主要负责人免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位主要负责人报名考试参考答案及危险化学品经营单位主要负责人考试试题解析是安全生产模拟考试一点通题库老师及危险化学品经营单位主要负责人操作证已考过的学员汇总&#xff0c;相对有效帮助危险化…

PostGIS空间数据库之空间数据融合实践

目录 前言 一、ST_Union()简介 1、方法说明 2、参数介绍 二、ST_Collect()简介 1、方法说明 2、参数介绍 3、两者区别 三、实际案例实践 1、不重叠融合 2、空间重叠融合 总结 前言 众所周知&#xff0c;熟悉GIS桌面软件的同学一定都知道&#xff0c;想要对空…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包&#xff1a;官网 或者点击下载&#xff1a;postgresql-12.12-1-windows-x64.exe Tip&#xff1a;此时若报错&#xff1a;There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

(一)hadoop搭建之环境准备1

1.参考http://www.fogsvc.com/97.html文档设置三台虚拟机并固定ip 192.168.1.10 hadoop-master 192.168.1.11 hadoop-slave1 192.168.1.12 hadoop-slave2 2.配置hosts vi /etc/hosts 添加内容 192.168.1.10 hadoop-master 192.168.1.11 hadoop-slave1 192.1…

HIS预约挂号系统源码 看病挂号快人一步

提到去大型医院机构就诊时&#xff0c;许多人都感到恐惧。有些人一旦走进医院的门诊大厅&#xff0c;就感到迷茫&#xff0c;既无法理解导医台医生的建议&#xff0c;也找不到应该去哪个科室进行检查。实际上&#xff0c;就医也是一门学问&#xff0c;如何优化时间分配&#xf…

结构体--共用体--枚举 之难点——链表 奋力学习嵌入式的第十六天

结构体 注意&#xff1a; 1.结构体类型 可以定义在 函数里里面 但是此时作用域就被限定在该函数中 2.结构体定义形式 //形式一 限定一类型 后定义变量 struct stu { ... }; struct stu s; //形式二 定义类型的同时 定义变量 struct stu { ... }s1,s2,*s3,s4[10]; struc…

iMazing 3中文版双平台版本同步,iOS 设备在 Windows 上也能自动备份了

自从WWDC 2019 宣布 iTunes 退役后&#xff0c;也许很多小伙伴都对「上位者」iMazing 有所耳闻。 这款设计更加人性化、功能细致强大的 iOS 备份管理工具。 iMazing 支持在 Windows 及 Mac 上运行&#xff0c;而这个月 Windows 版本更新至 2.17. 之后&#xff0c;iMazing 的双…

09 二叉树链式结构

目录 1.链式结构的创建 2.遍历的方式 3.结点数的计算 4.高度的计算 5.第k层的节点个数 6.查找值 7.判断完全二叉树 8,销毁 9.OJ题 1.链式结构 在学习二叉树基本操作前&#xff0c;需要先创建一颗二叉树。为了快速上手&#xff0c;这里手动擦窗机简单的二叉树。等后面再自动创…

服装行业ERP系统解决方案

我国的服装企业大多属于劳动密集型&#xff0c;主要有三种类型&#xff1a;自有品牌服装生产销售企业、接订单生产型企业及处于产业链下游的零售分销企业。在经营过程中&#xff0c;服装行业面临诸多挑战&#xff0c;如流行周期短、季节性强&#xff0c;市场变化快&#xff1b;…

【HarmonyOS 4.0 应用开发实战】TypeScript入门之元组详讲

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

小程序软件测试应该怎么做?有什么作用?

近年来&#xff0c;随着移动互联网的快速发展&#xff0c;小程序软件的使用越来越广泛。无论是企业推广还是个人创作&#xff0c;小程序软件都具备了很大的潜力和市场空间。然而&#xff0c;在发布之前&#xff0c;进行充分的测试是至关重要的&#xff0c;以确保用户体验的顺畅…

【算法】Partitioning the Array(数论)

题目 Allen has an array a1,a2,…,an. For every positive integer k that is a divisor of n, Allen does the following: He partitions the array into n/k disjoint subarrays of length k. In other words, he partitions the array into the following subarrays: [a1,…

非接触式激光测厚仪 单点/三点/多点在线测厚设备

关键字: 非接触式激光测厚仪, 板材厚度检测,激光测厚仪,单点测厚仪,三点测厚仪,多点测厚仪,扫描式激光测厚仪, 厚度是各类板材品质必检的尺寸之一 在实际测量中&#xff0c;板材厚度的测量&#xff0c;尤其是宽板中间位置的厚度尺寸测量&#xff0c;是一项较为困难的工作。为此…

【笔记】CSDN文本编辑操作(持续更新中......)

文章目录 1、修改字体颜色和字号2、首行悬进两个字符3、图片居中4、字体、文字颜色、居中5、高亮6、重点标注7、加粗 1、修改字体颜色和字号 <html><head><meta http-equiv"Content" content"text/html;charsetutf-8" /><title>修…

C++大学教程(第九版)7.30 打印array对象 7.31 逆序打印字符串(递归练习题)

文章目录 题目代码运行截图题目代码运行截图 题目 (打印array对象)编写一个递归函数printArray它以一个array对象一个开始下标和一个结束下标作为实参&#xff0c;不返回任何值并打印这个array对象。当开始下标和结束下标相等时&#xff0c;这个函数应该停止处理并返回。 代码…

占预算仅20%,却是影响算力性能的关键

作者&#xff1a;林小引 戴尔科技解决方案架构师 ChatGPT迅速火爆全球后&#xff0c;人工智能进入了“暴力美学”时代。所谓暴力美学就是我们把模型的架构做到了超大规模&#xff0c;把算力的需求做到超大规模&#xff0c;训练的数据做到超大规模。 如果说算力是人工智能发展的…

STL标准模版在VS2019中的使用方法

STL标准模版在VS2019中的使用方法 1.STL在VS2019中的位置 1.STL在VS2019中的位置 1.1找到程序安装位置&#xff1a; D:\visual_studio\IDE\VC\Tools\MSVC\14.29.30133\include

重发布

一&#xff1a;作用 在两种路由协议之间&#xff0c;或者一个协议的不同进程之间&#xff0c;借助ASBR &#xff08;同时工作在两种协议或 者协 议的不同进程中&#xff09;学习到两个网络的路由信息&#xff0c;并且通过重发布进行路由共享&#xff0c;最终实现全网可 达。…

车载电子电器架构 —— IP地址获取策略

车载电子电器架构 —— IP地址获取策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自…