内容发布更新时间 : 2024/12/26 20:59:27星期一 下面是文章的全部内容请认真阅读。
}
4.使用指针编写函数strcat(),实现两个字符串的首尾连接(将字符串str2接到str1的后面,str1最后面的‘\\0’被取消)。
void strcat(char *str1,char *str2) {int i,m=0;
while(str1[m]!='\\0') m++; //求数组str1长度 i=0;
while(str2[i]!='\\0')
{str1[m+i]=str2[i];i++;} //将字符串str2中有字符依次装入字符串str1中 str1[m+i]='\\0'; }
5.编写从多个字符串中寻找最长串的函数
char *maxstr(char *str[ ],int n)
其中,str是字符串数组,n是字符串个数。函数返回值为最长串地址。 char *maxstr(char *str[],int n) {int i,len,j=0;
len=strlen(str[j]); //求数组str[0]长度并赋给变量len for(i=1;i
if(strlen(str[i])>len) {j=i;len= strlen(str[i]) ;}
//从第2个字符串开始,只要字符串长度大于len,就赋给len并保留其下标 return str[j]; }
6.写一个函数,将一个n阶方阵转置。具体要求如下:
(1)初始化一个矩阵A(5×5),元素值取自随机函数,并输出。 (2)将其传递给函数,实现矩阵转置。
(3)在主函数中输出转置后的矩阵。(提示:程序中可以使用C++库函数rand( ),其功能是产生一个随机数0~65535,其头文件为stdlib.h)
见本章例15
7.编写一个程序,实现在命令行中以参数的形式接收两个整数,输出这两个整数的和。 (提示:程序中可以使用C++库函数atoi(),其功能是将字符串转换成整型值,其头文件为stdlib.h)
#include #include
void main(int argc,char *argv[]) { int a,b; a=atoi(argv[1]); b=atoi(argv[2]);
cout< 8.使用引用参数编制程序,实现两个字符串变量的交换。例如开始时: char *ap=”hello”; char *bp=”how are you”; 交换后使ap和bp指向的内容别是: ap:”how are you” bp:”hello” #include #include void swap(char *p,char *q) {char temp[20]; strcpy(temp,p); strcpy(p,q); strcpy(q,temp); } void main() {char a[20]=\ char b[20]=\ cout<<\交换前字符串值:\\n\ cout<<\cout<<\swap(ap,bp); cout<<\交换后字符串值:\\n\ cout<<\cout<<\} 9.下列程序能够生成由10个整数组成的安全数组。其中put()函数的作用是将值放入数组中,get()函数的作用是取出数组中某元素的值,如果在put()函数和get()函数中遇到下标越界则给出提示信息 “range error!”并退出程序。请完成put()函数和get()函数的定义。 #include #include int &put(int n); int get(int n); int array[10]; int error=-1; void main() { put(0)=10; put(1)=20; put(9)=40; cout< range error! 请完成put()函数和get()函数的定义。 答: int &put (int m) { if(m>=0 && m<10) return array[m]; else {cout<<\ } int get(int m) { if(m>=0 && m<10) {return array[m];} else { cout<<\} 四、练习题 1. 选择题 (1)若有以下定义,则变量p所占内存空间的字节数是(float *p; A.1 B.2 C.4 D.8 (2) 若有以下定义,则赋值错误的是( )。 int a,*p,*q; A. *p=&a ; B.p=new int ; C.q=NULL; D.p=q (3) 下列程序运行结果是( )。 #include void main() {int a=10,*q; if(q==NULL) cout<<\ else q=&a; cout<<*q< )。