本文整理自博主本科大一《C/C++程序设计》专业课的课内实验报告,适合C语言初学者们学习、练习。
编译器:gcc 10.3.0
----
注:
1.虽然课程名为C++程序设计,但实际上当时校内该课的内容大部分其实都是C语言,C++的元素最多可能只是体现在输入输出。
2.博主当时给出的实验代码可能并不是最优解,这里只是整理并未重编,因此各位前来学习的小伙伴们注意辨别。
目录
1、编写函数,实现统计和输出一个正整数中各位数字中零的个数,及各位数字中最大者。
4、自定义函数实现对一个有序数组进行插入操作,保证插入后的数组依然有序。主函数调用。
1.掌握函数定义和调用
2.掌握函数调用时实参与形参的对应关系以及“值传递”的方式
3.掌握函数的嵌套调用和简单递归调用
4.掌握数组作为函数参数的用法
5.进一步学习调试程序
源代码:
- #include
- #include
- using namespace std;
-
- int digitX(int x){
- int dgt=0;
- while(x){
- x /= 10;
- dgt++;
- }
- return dgt;
- }//求数的位数
- void stcs(int x){
- int a[81]={0};
- int i;
- int cnt=0;
- for(i=0;i<digitX(x);i++){
- a[i]=x/(int)pow(10,i)%10;
- if(a[i]==0){
- cnt++;
- }
- }
- cout<<"共有 "<
" 个0"< - int maxI=i;
- for(i=0;i<=digitX(x);i++){
- if(a[i]>a[maxI]){
- int tmp;
- tmp=a[i];
- a[i]=a[maxI];
- a[maxI]=tmp;
- }
- }
- cout<<"最大的数字是 "<//输出最大的数
- }
- int main(){
- //1、编写函数,实现统计和输出一个正整数中各位数字中零的个数,及各位数字中最大者。
- int num,digit;
- cout<<"请输入一个正整数:";
- cin>>num;
- digit=digitX(num);
- cout<<"这个数共有 "<
" 位"< - stcs(num);
- }
运行结果:
2、编写递归函数实现 n!
源代码:
- #include
- #include
- using namespace std;
-
- int facX(int x){
- int fac;
- if(x==0 || x==1){
- fac=1;
- }else{
- fac=facX(x-1)*x;
- }
- return fac;
- }
- int main(){
- int n;
- cout<<"Please enter an integer number:";
- cin>>n;
- while(n<0){
- cout<<"n<0,error!! Please enter another number n: ";
- cin>>n;
- }
- cout<<"n!= "<<facX(n)<
- }
运行结果:
3、自定义函数实现对n个数进行选择法排序,主函数调用。
要求:共自定义3个函数,分别对数组进行输入,排序和输出。
源代码:
- #include
- #define ARR_SIZE 6
- using namespace std;
- //3、自定义函数实现对n个数进行选择法排序,主函数调用。
- //要求:共自定义3个函数,分别对数组进行输入,排序和输出。void
- void cinA(int x[],int n){
- int i;
- for(i=0;i
- cin>>x[i];
- }
- }
-
- void sort(int x[],int n){
- int i,j;
- int selI;
- for(i=0;i
-1;i++){ - selI=i;
- for(j=i+1;j
- int tmp;
- if(x[j]>x[selI]){
- tmp=x[j];
- x[j]=x[selI];
- x[selI]=tmp;
- }
- }
- }
- }
- void coutA(int x[],int n){
- int i;
- for(i=0;i
- cout<
" "; - }
- }
-
- int main(){
- void sort(int array[],int n);
- int a[ARR_SIZE];
- cout<<"enter array:"<
- cinA(a,6);//输入
- sort(a,6);//排序
- coutA(a,6);//输出
- }
运行结果:
4、自定义函数实现对一个有序数组进行插入操作,保证插入后的数组依然有序。主函数调用。
要求:
1)共自定义2个函数,分别对数组进行插入和输出。
2)数组、待插数据在主函数中定义和赋值。
源代码:
- #include
- using namespace std;
- //4、自定义函数实现对一个有序数组进行插入操作,保证插入后的数组依然有序。主函数调用。
- //要求:1)共自定义2个函数,分别对数组进行插入和输出。
- //2)数组、待插数据在主函数中定义和赋值。
-
- void plugX(int x,int a[],int len){
- int i;
- for(i=len-2;i>=0;i--){
- a[i+1]=a[i];
- }else{
- break;
- }
- }
- a[i+1]=x;
- }
- void coutX(int a[],int len){
- int i;
- for(i=0;i
- cout<' ';
- }
- }
- int main(){
- int arr[6]={10,20,30,40,50,0};
- cout<<"please enter a number n:";
- int n;
- cin>>n;
- plugX(n,arr,6);
- coutX(arr,6);
- }
运行结果:
三、实验总结
1.掌握了函数定义和调用。
2.掌握函数调用时实参与形参的对应关系以及“值传递”的方式。
3.掌握函数的嵌套调用和简单递归调用。
4.掌握数组作为函数参数的用法,进一步学习了调试程序。
-
相关阅读:
java运算符
Linux内核 -- 汇编结合ko案例之PMU获取周期技术
BD就业复习第四天
Android 13 骁龙相机点击录像流程分析
用程序计算出钢琴88个键的音高
【数据结构】栈和队列
鲍威尔暗示将继续加息以解决通胀问题 有何影响?
基于单片机智能汽车仪表设计系统
子类对象构造与析构的过程
Leetcode71简化路径
-
原文地址:https://blog.csdn.net/wyd_333/article/details/138008726