华中科技大学。
计算机基础与程序设计(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<<"请输入行数" 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; 1 熟练掌握关系表达式和逻辑表达式的使用。2 熟练掌握函数getchar 和函数putchar 的使用。3 熟练掌握if和switch多分枝选择结构程序设计。4 熟练掌握switch语句中break语句的作用。4 1调试示例,输入参数a,b,c,求一元二次方程a x2 bx c 0的根。源程序 有错... 在桌面建立自己名字命名的文件夹,将所有作业放入其中,最后打包上传。作业做完就练习打字。打开计算机器,改为 科学型 查看,转换1101110二进制,得出其十进制为多少。按alt printscreen键进行抓图,将结果存为 命名为 参考图如下 请想办法找到以下窗口,并将 隐藏已知文件类型的扩展名 的 ... 第四次上机题 本次实验报告可以打印 一 目的。1 掌握中断矢量表的概念以及中断处理程序设计方法。2 了解win32程序编写方法。3.了解win32程序的编译 连接 调试方法。二 题目。1 直接运行调试工具 观察中断矢量表中的信息,指出中断类型码21h对应的中断处理程序的入口地址。在调试工具下调入以前...第4次上机 选择结构上机指导
第3次上机作业
2019汇编第4次上机题