计算与人工智能概论-问题求解、科学计算与AI应用方法 习题及答案 第7章参考答案_第1页
计算与人工智能概论-问题求解、科学计算与AI应用方法 习题及答案 第7章参考答案_第2页
计算与人工智能概论-问题求解、科学计算与AI应用方法 习题及答案 第7章参考答案_第3页
计算与人工智能概论-问题求解、科学计算与AI应用方法 习题及答案 第7章参考答案_第4页
计算与人工智能概论-问题求解、科学计算与AI应用方法 习题及答案 第7章参考答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编写一个程序,首先定义两个整型变量并给出初值,然后定义两个指向它们的指针变量,接着输出变量的值和指针变量的值(地址),最后通过指针操作,交换两个变量的值,交换之后再输出变量的值和指针变量的值(地址)。#include<iostream>usingnamespacestd;intmain(){inta=10,b=20;int*p1=&a,*p2=&b;cout<<"交换前:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;cout<<"p1="<<p1<<",p2="<<p2<<endl;inttemp=*p1;*p1=*p2;*p2=temp;cout<<"交换后:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;cout<<"p1="<<p1<<",p2="<<p2<<endl;return0;}编写一个程序,使用指针遍历一维整型数组,计算数组中所有元素的和。#include<iostream>usingnamespacestd;intmain(){constintN=6;intarr[N]={10,20,30,40,50,60};int*p=arr;//p指向数组首元素intsum=0;for(inti=0;i<N;i++){sum+=*(p+i);}cout<<"数组元素之和为:"<<sum<<endl;return0;}编写一个程序,使用指针遍历二维整型数组,找出数组中的最大值和最小值。#include<iostream>usingnamespacestd;intmain(){constintROWS=3,COLS=4;intarr[ROWS][COLS]={{12,45,78,23},{67,34,89,10},{56,91,22,5}};int*p=&arr[0][0];//指向二维数组首元素intmaxVal=*p,minVal=*p;inttotal=ROWS*COLS;for(inti=1;i<total;i++){if(*(p+i)>maxVal)maxVal=*(p+i);if(*(p+i)<minVal)minVal=*(p+i);}cout<<"最大值:"<<maxVal<<endl;cout<<"最小值:"<<minVal<<endl;return0;}编写一个函数ReverseString(),使用指针将输入的字符串逆序输出。#include<iostream>#include<cstring>usingnamespacestd;voidReverseString(char*str){intlen=strlen(str);char*start=str;char*end=str+len-1;while(start<end){chartemp=*start;*start=*end;*end=temp;start++;end--;}}intmain(){chars[100];cout<<"请输入一个字符串:";cin.getline(s,100);cout<<"原字符串:"<<s<<endl;ReverseString(s);cout<<"逆序后:"<<s<<endl;return0;}编写一个函数CopyArray(),使用指针将一个一维数组的内容复制到另一个一维数组中。#include<iostream>usingnamespacestd;voidCopyArray(int*src,int*dest,intn){for(inti=0;i<n;i++){*(dest+i)=*(src+i);}}intmain(){constintN=5;intarr1[N]={1,2,3,4,5};intarr2[N];CopyArray(arr1,arr2,N);cout<<"原数组:";for(inti=0;i<N;i++){cout<<arr1[i]<<"";}cout<<"\n复制后:";for(inti=0;i<N;i++){cout<<arr2[i]<<"";}cout<<endl;return0;}6.编写一个函数TransposeMatrix(),使用指针将一个二维数组表示的矩阵进行转置。例如,输入矩阵为:12345678输出其转置矩阵:15263748#include<iostream>usingnamespacestd;voidTransposeMatrix(int*src,int*dest,introws,intcols){for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){*(dest+j*rows+i)=*(src+i*cols+j);}}}intmain(){constintROWS=2,COLS=4;constintTRANS_ROWS=COLS,TRANS_COLS=ROWS;intmatrix[ROWS][COLS]={{1,2,3,4},{5,6,7,8}};inttransposed[TRANS_ROWS][TRANS_COLS];TransposeMatrix(&matrix[0][0],&transposed[0][0],ROWS,COLS);cout<<"原矩阵:"<<endl;for(inti=0;i<ROWS;i++){for(intj=0;j<COLS;j++){cout<<matrix[i][j]<<"";}cout<<endl;}cout<<"转置矩阵:"<<endl;for(inti=0;i<TRANS_ROWS;i++){for(intj=0;j<TRANS_COLS;j++){cout<<transposed[i][j]<<"";}cout<<endl;}return0;}编写一个程序,使用动态内存分配函数malloc来创建一个一维整型数组,让用户输入数组的元素并打印输出。#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){intn;cout<<"请输入数组元素个数:";cin>>n;int*arr=(int*)malloc(n*sizeof(int));if(arr==nullptr){cout<<"内存分配失败!"<<endl;return1;}cout<<"请输入"<<n<<"个整数:";for(inti=0;i<n;i++){cin>>*(arr+i);}cout<<"数组元素为:";for(inti=0;i<n;i++){cout<<*(arr+i)<<"";}cout<<endl;free(arr);return0;}编写一个程序,使用动态内存分配函数calloc来创建一个二维整型数组,让用户输入数组的元素并打印输出。#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){introws,cols;cout<<"请输入行数:";cin>>rows;cout<<"请输入列数:";cin>>cols;int**matrix=(int**)calloc(rows,sizeof(int*));if(matrix==nullptr){cout<<"行指针内存分配失败!"<<endl;return1;}for(inti=0;i<rows;i++){matrix[i]=(int*)calloc(cols,sizeof(int));if(matrix[i]==nullptr){cout<<"第"<<i<<"行内存分配失败!"<<endl;for(intj=0;j<i;j++){free(matrix[j]);}free(matrix);return1;}}cout<<"请输入"<<rows<<"x"<<cols<<"的整数矩阵:"<<endl;for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){cin>>matrix[i][j];}}cout<<"输入的矩阵为:"<<endl;for(inti=0;i<rows;i++){for(intj=0;j<cols;j++){cout<<matrix[i][j]<<"";}cout<<endl;}for(inti=0;i<rows;i++){free(matrix[i]);}free(matrix);return0;}编写一个函数CountCharacter(),使用指针统计字符串中某个字符出现的次数,在main()中验证该函数的功能。#include<iostream>usingnamespacestd;intCountCharacter(char*str,charch){intcount=0;while(*str!='\0'){if(*str==ch){count++;}str++;}returncount;}intmain(){chars[100];chartarget;cout<<"请输入一个字符串:";cin.getline(s,100);cout<<"请输入要统计的字符:";cin>>target;intresult=CountCharacter(s,target);cout<<"字符'"<<target<<"'出现了"<<result<<"次。"<<endl;return0;}编写一个函数AddOneToElements(),使用指针遍历一维整型数组,并将数组中的所有元素加10,在main()中验证该函数的功能。#include<iostream>usingnamespacestd;voidAddOneToElements(int*arr,intn){for(inti=0;i<n;i++){*(arr+i)+=10;}}intmain(){constintN=5;intarr[N]={1,2,3,4,5};cout<<"修改前:";for(inti=0;i<N;i++){cout<<arr[i]<<"";}AddOneToElements(arr,N);cout<<"\n修改后:";for(inti=0;i<N;i++){cout<<arr[i]<<"";}cout<<endl;return0;}设计一个函数ModifyMatrix(),函数的参数是一个指向二维整型数组的指针,函数将数组中的所有元素值增加10,在main()中验证该函数的功能。#include<iostream>usingnamespacestd;voidModifyMatrix(int*matrix,introws,intcols){inttotal=rows*cols;for(inti=0;i<total;i++){*(matrix+i)+=10;}}intmain(){constintROWS=2,COLS=3;intmat[ROWS][COLS]={{1,2,3},{4,5,6}};cout<<"修改前:"<<endl;for(inti=0;i<ROWS;i++){for(intj=0;j<COLS;j++){cout<<mat[i][j]<<"";}cout<<endl;}ModifyMatrix(&mat[0][0],ROWS,COLS);cout<<"修改后:"<<endl;for(inti=0;i<ROWS;i++){for(intj=0;j<COLS;j++){cout<<mat[i][j]<<"";}c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论