本文整理自博主本科大一《C/C++程序设计》专业课的课内实验报告,适合C语言初学者们学习、练习。
编译器:gcc 10.3.0
----
注:
1.虽然课程名为C++程序设计,但实际上当时校内该课的内容大部分其实都是C语言,C++的元素最多可能只是体现在输入输出。
2.博主当时给出的实验代码可能并不是最优解,这里只是整理并未重编,因此各位前来学习的小伙伴们注意辨别。
目录
一、实验目的
二、实验内容
1、编写程序,键盘输入10个整数,对其进行冒泡排序。
2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。
3、利用二维数组实现杨辉三角形的输出。
4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.
三、实验总结
一、实验目的
- 熟悉掌握一维数组的定义和使用。
- 掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。
- 掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。
- 进一步学习调试程序。
二、实验内容
1、编写程序,键盘输入10个整数,对其进行冒泡排序。
源代码:
#include<iostream>
#define ARR_SIZE 10
using namespace std;
//编写程序,键盘输入10个整数,对其进行冒泡排序。
int main(){int a[ARR_SIZE];int i,j;cout<<"please input 10 integer: "<<endl;for(i=0;i<ARR_SIZE;i++){cin>>a[i];}//升序排序int xch;for(i=0;i<ARR_SIZE-1;i++){xch = 0;for(j=0;j<ARR_SIZE-1-i;j++){int tmp;if(a[j]>a[j+1]){tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;xch = 1;}}if(!xch){break;}}cout<<"After convert,the ordered array is: "<<endl;for(i=0;i<ARR_SIZE;i++){cout<<a[i]<<'\0';}return 0;
}
运行结果:
2、输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。有序数组的内容可以通过数组赋初值设定。
源代码:
#include<iostream>
#define ARR_SIZE 6
using namespace std;
//输入一个整数,将其插入一个有序整型数组,保证插入后依然有序,并输出插入后的数组。
//有序数组的内容可以通过数组赋初值设定。
int main(){int a[ARR_SIZE];int i,j;cout<<"please input 5 integer: "<<endl;for(i=0;i<ARR_SIZE-1;i++){cin>>a[i];}for(i=0;i<ARR_SIZE-2;i++){for(j=0;j<ARR_SIZE-2-i;j++){int tmp;if(a[j]>a[j+1]){tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}}}cout<<"After convert,the ordered array is: "<<endl;for(i=0;i<ARR_SIZE-1;i++){cout<<a[i]<<'\0';}cout<<endl;int n;cout<<"please enter one more integer: ";cin>>n;for(i=ARR_SIZE-2;i>=0;i--){if(n<a[i]){a[i+1]=a[i];}else{a[i+1]=n;break;}}cout<<"the new array is: "<<endl;for(i=0;i<ARR_SIZE;i++){cout<<a[i]<<'\t';}return 0;
}
运行结果:
3、利用二维数组实现杨辉三角形的输出。
源代码:
#include<iostream>
#define NUMBER 15
using namespace std;
int main(){int a[NUMBER][NUMBER];int i,j;a[0][0]=1;a[1][0]=1;a[1][1]=1;cout<<a[0][0]<<endl;cout<<a[1][0]<<'\t'<<a[1][1]<<endl;for(i=2;i<NUMBER;i++){a[i][0]=1;a[i][i]=1;cout<<a[i][0]<<'\t';for(j=1;j<i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];cout<<a[i][j]<<'\t';}cout<<a[i][i]<<endl;}return 0;
}
运行结果:
4、删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.
说明:
- 通过字符数组实现
- 字符串和待删除字符都通过键盘输入
源代码:
#include<iostream>
#include<string.h>
using namespace std;//删除字符串中某一个字符,如this is a boy.删除字符‘i’后,变成:ths s a boy.
//说明:1)通过字符数组实现
//2)字符串和待删除字符都通过键盘输入
int main(){char str[101];char c;int i;gets(str);cout<<"您输入的字符串为:"<<endl;puts(str);cout<<"请输入您要删去的一个字符:"<<endl;cin>>c;char tmp=127;for(i=0;str[i]!='\0';i++){if(str[i]==c){str[i]=tmp;}}for(i=0;str[i]!='\0';i++){cout<<str[i];}
// 字符串中的第i个字符恰好是输入的字符
// 就把该字符替换成127
// 如果字符串中的第二个字符恰好是输入的字符
// 就把该字符替换成127
// 如果字符串中的第三个字符恰好是输入的字符
// 就把该字符替换成127return 0;
}
运行结果:
三、实验总结
1.通过本次实验,我能够独立且顺畅地完成以上所有实验任务。
2.我熟悉掌握了一维数组、二维数组的定义和使用。
3.能掌握一维数组的常见算法(冒泡排序,有序数组的插入等)。
4.掌握利用字符数组存放字符串,以及字符串的常见操作(复制,比较,连接等)。
5.能够使用调试程序来debug寻找问题。