第4次上机作业

发布 2022-09-05 10:57:28 阅读 7643

华中科技大学。

计算机基础与程序设计(c++)

实验报告。实验名称:第四次上机实验实验学时:

姓名学号班级:

实验日期教师批阅签字:

一、实验目的。

掌握一维数组的定义、输入、输出和基本操作。

掌握二维数组的定义、输入、输出和基本操作。

掌握字符串的存储和访问。

使用数组处理解决实际问题的能力。

动态数组的访问。

二、实验内容。

1.阅读程序。

#include

#include

using namespace std;

int main()

int n=5;

int i,a[n];

for(i=0;i

return 0;

运行上述的程序,改正其中的错误,并解释错误原因。

正确**:#include

#include

using namespace std;

int main()

int i;

int a[5];

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

return 0;

调试错误:subscript requires array or pointer type.

原因:数组元素个数不能是实数?

#include

#include

using namespace std;

int main()

int i,a[5]=;

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

cout

运行上述的程序,其结果是否正确,如不确请修改正确,并解释原因。

正确**:#include

#include

using namespace std;

int main()

int i,a[5]=;

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

cout

#include

using namespace std;

int main( )

char rstr[10 ]=abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!=0'; i++)循环条件可以写成 rstr[i]!=0; 或 rstr

dstr[i]=rstr[i];

cout<<"输出字符串dstr:"

上述程序的功能是将字符串rstr复制到目标串dstr中,运行该程序结果是否正确,如不正确请修改正确,并解释原因。

正确**:#include

using namespace std;

int main( )

char rstr[10]="abcdefgh",dstr[10];

int i;

for(i=0; rstr[i]!=0';i++)循环条件可以写成 rstr[i]!=0; 或 rstr

dstr[i]=rstr[i];

dstr[i]='0';

cout<<"输出字符串dstr:"

解释原因:因为赋值时原串的’\0’并没有赋值给目标串,所以循环结束后一定要加上语句dstr[i]='0';否则程序运行会出现异常。

#include

using namespace std;

int main( )

char name1=

char name2=abcd”;

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

cout< cout< cout< cout< return 0;

运行上述程序,比较三种输出的异同,并解释原因。

输出1和输出2:字符数组name1的处理与数值型数组没有差异,因为结尾没有’\0’,没有构成c++字符串,若用输出2语句“cout<输出3:输出的是字符串,初始化时直接用字符串常量赋值。

#include

using namespace std;

int main( )

int a=10, b=20,*p=&a,*q;

cout< cout<<*p< *p=b;

cout< cout<<*p< *q=b;

cout< cout<<*q

编译调试上述程序,如有错误请修改,并解释原因。

5)int a[5]=;

int *p=a;

在上述语句的基础上,请用5种方式输出数组a的各元素。参考教材p142页。

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

cout

cout<<*p+i)<<指针表示法。

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

cout<<*a+i)<<下标表示法。

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

cout

cout<<*p++)通过移动指针p指向不同的元素。

2. 编程题。

1)定义包含 10 个元素的一维数组,输入输出各元素的值,然后求出最大值将其与第一个数交换位置后再输出。

要求: 程序原**。(直接粘贴在此)

#include

#include

using namespace std;

int main()

int a[10];

int i,max,j,temp;

cout<<"请输入10个数:";

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

cin>>a[i];

max=a[0];

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

temp=a[0];

a[0]=a[j];

a[j]=temp;

cout<<"交换后数组"

cout<}

cout

解决本题的算法思路描述。

利用了经典交换语句实现最大值和第一个数交换,其中j是最大值下标:

temp=a[0];

a[0]=a[j];

a[j]=temp;

调试过程的记载(包括出现的错误,以及修改过程)

归纳本题应用的知识点或算法。

2)编写一个程序,定义 5 行 4 列二维数组,并对前 4 行 4 列的元素赋值,计算二维数组前 4 行各列之和,且将每列之和放于各列最后一行的位置,然后输出该二维数组(按行列的格式输出)。

要求: 程序原**。(直接粘贴在此)

#include

#include

using namespace std;

int main( )

int i, j;

int a[5][4];

cout<<"请输入"请输入前四行四列元素:"

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

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

cout <

return 0;

解决本题的算法思路描述。

调试过程的记载(包括出现的错误,以及修改?)

归纳本题应用的知识点或算法。

3)编程输出 10 行的杨辉三角形。(使用二维数组并利用每个系数等于其上两系数之和,要求按等腰三角形的格式输出)

要求: 程序原**。(直接粘贴在此)

#include

#include

#include

using namespace std;

int main()

int i,j,n;

cout<<"请输入行数">n;

int matrix[10][10];

for(i=0;i<=n-1;i++)

for(i=2;i<=n-1;i++)

for(i=0;i<=n-1;i++)

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

cout< cout<}

return 0;

解决本题的算法思路描述。

调试过程的记载(包括出现的错误,以及修改)

归纳本题应用的知识点或算法。

4)编程将一个字符串插入另一个字符串的指定位置。(位置由用户输入)

要求: 程序原**。 (直接粘贴在此)

#include

using namespace std;

int main()

int len1,len2,len4,i,x,k=0;

第4次上机 选择结构上机指导

1 熟练掌握关系表达式和逻辑表达式的使用。2 熟练掌握函数getchar 和函数putchar 的使用。3 熟练掌握if和switch多分枝选择结构程序设计。4 熟练掌握switch语句中break语句的作用。4 1调试示例,输入参数a,b,c,求一元二次方程a x2 bx c 0的根。源程序 有错...

第3次上机作业

在桌面建立自己名字命名的文件夹,将所有作业放入其中,最后打包上传。作业做完就练习打字。打开计算机器,改为 科学型 查看,转换1101110二进制,得出其十进制为多少。按alt printscreen键进行抓图,将结果存为 命名为 参考图如下 请想办法找到以下窗口,并将 隐藏已知文件类型的扩展名 的 ...

2019汇编第4次上机题

第四次上机题 本次实验报告可以打印 一 目的。1 掌握中断矢量表的概念以及中断处理程序设计方法。2 了解win32程序编写方法。3.了解win32程序的编译 连接 调试方法。二 题目。1 直接运行调试工具 观察中断矢量表中的信息,指出中断类型码21h对应的中断处理程序的入口地址。在调试工具下调入以前...