指针习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、填空题

1. 下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。#include

void change(char *a) //1

{

int i=0;

for(i=0;a[i]!=NULL;i++) //2

if(a[i]>='a'&&a[i]<='z')

a[i]-=32;

; //3

}

int main()

{ char p[80];

cout<<" \n";

cin.getline(p,80) ; //读一行字符,中间可以有空格 change(p);

cout<

}

如程序运行时得到以下结果:

请输入一行字符:

This is a book..

THIS IS A BOOK.

答案:(1)char *a 或 char a[80]

(2) a[i] 或a[i]!=’\0’

(3) a[i]= a[i] –32或a[i]-= 32

2. 下列函数swap实现数据交换功能功能,请填空。

#include

void swap(int *p,int *q)

{ int temp;

temp=*p;

; //1

; //2

}

int main()

{ int a,b;

int *p1,*p2;

cout<<"请输入两个正数:";

cin>>a>>b;

p1=&a;

p2=&b;

swap(p1,p2);

cout<<"结果a和b的值:"<

}

如程序运行时得到以下结果:

请输入两个正数:10 20

结果a和b的值:20,10

答案:

(1) *p=*q

(2) *q=temp;

3. 下列函数sort实现对字符串按字典顺序由小到大排序,请填空。

#include

void sort( ) //1

{ char ; //2

int i,j;

for(i=0;i

for(j=0;j

if(strcmp( ) //3

{ temp=p[j];

; //4

p[j+1]=temp;

}

}

int main()

{

char *a[5]={"student","worker","cadre","soldier","apen"};

sort(a,5);

for(int i=0;i<5;i++)

cout<

}

程序运行结果如下:

apen

cadre

soldier

student

worker

答案:(1)char *p[],int n

(2)*temp

(3)p[j],p[j+1])>0

(4)p[j]=p[j+1]

4.函数find功能是:在指针p所指数组中,查找值为x的元素,找到后,返回该元素的下标,否则返回-1,改正程序中语句错误,能够正确运行。

#include

#include

const int N=10;

int find(int *p,int n,int x) //1

{ int i ; // 2

*(p+n)=x; //3

while(*p+i!=x) //4

i++; //5

if(i!=n) //6

return 1; //7

else

return -1; //8

}

int main()

{ int i,pos,x;

int *p=new int [N];

for(i=0;i

*(p+i)=rand()%50;

for(i=0;i

cout<<*(p+i)<<'\t';

cout<<"\ninput x: ";

cin>>x;

pos=find(p,N,x);

if(pos!=-1)cout<<"index= "<

}

答案:(1) 2行语句改为 int i=0;

(2) 4行语句改为 while(*(p+i)!=x);

(3) 7行语句改为 return i 。

四、编程题

1. 写一个函数,将一个n阶方阵转置。具体要求如下:

(1)初始化一个矩阵A(5×5),元素值取自随机函数,并输出。

(2)将其传递给函数,实现矩阵转置。

(3)在主函数中输出转置后的矩阵。(提示:程序中可以使用C++库函数rand( ),其功能是产生一个随机数0~65535,其头文件为stdlib.h)

2.使用指针编写函数strcat(),实现两个字符串的首尾连接(将字符串str2接到str1的后面,str1最后面的‘\0’被取消)。

3.编写从多个字符串中寻找最长串的函数

4.编写一个程序,实现在命令行中以参数的形式接收两个整数,输出这两个整数的和。(提示:程序中可以使用C++库函数atoi(),其功能是将字符串转换成整型值,其头文件为stdlib.h)

相关文档
最新文档