指针经典练习题含答案版一.doc

上传人:b****1 文档编号:238266 上传时间:2022-10-07 格式:DOC 页数:4 大小:32.50KB
下载 相关 举报
指针经典练习题含答案版一.doc_第1页
第1页 / 共4页
指针经典练习题含答案版一.doc_第2页
第2页 / 共4页
指针经典练习题含答案版一.doc_第3页
第3页 / 共4页
指针经典练习题含答案版一.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

指针经典练习题含答案版一.doc

《指针经典练习题含答案版一.doc》由会员分享,可在线阅读,更多相关《指针经典练习题含答案版一.doc(4页珍藏版)》请在冰豆网上搜索。

指针经典练习题含答案版一.doc

指针一.填空题(20分)

1.指针变量是把内存中另一个数据的地址作为其值的变量。

2.能够直接赋值给指针变量的整数是0。

3.如果程序中已有定义:

intk;

1)    定义一个指向变量k的指针变量p的语句是int*p=&k;。

2)    通过指针变量,将数值6赋值给k的语句是*p=6;。

3)    定义一个可以指向指针变量p的变量pp的语句是int**pp;。

4)    通过赋值语句将pp指向指针变量p的语句是pp=&p;。

5)    通过指向指针的变量pp,将k的值增加一倍的语句是*(*pp)*=2;。

4.当定义某函数时,有一个形参被说明成int*类型,那么可以与之结合的实参类型可以是int型指针、int型数组等。

4.以下程序的功能是:

将无符号八进制数字构成的字符串转换为十进制整数。

例如,输入的字符串为:

556,则输出十进制整数366。

请填空。

45*8

#include

main()

{char*p,s[6];intn;p=s;gets(p);n=*p-'0';

while(*++p!

='\0')//先++,后*

n=n*8+*p-'0';

printf("%d\n",n);

}

二.选择题(22分)

1.以下count函数的功能是统计substr在母串str中出现的次数。

intcount(char*str,char*substr)

{inti,j,k,num=0;

for(i=0;①B;i++)

{for(②B,k=0;substr[k]==str[j];k++,j++)

if(substr[③C]==’\0’)

{num++;break;}

}

returnnum;

}

①A)str[i]==substr[i]B)str[i]!

=‘\0’

C)str[i]==‘\0’D)str[i]>substr[i]

②A)j=i+1B)j=iC)j=i+10D)j=1

③A)kB)k++C)k+1D)++k

2.以下Delblank函数的功能是删除字符串s中的所有空格(包括Tab、回车符和换行符)。

voidDelblank(char*s)

{inti,t;

charc[80];

for(i=0,t=0;A①;i++)

if(!

isspace(D②))c[t++]=s[i];

c[t]=‘\0’;

strcpy(s,c);

}

①A)s[i]B)!

s[i]C)s[i]=‘\0’D)s[i]==‘\0’

②A)s+iB)*c[i]C)*(s+i)=‘\0’D)*(s+i)

3.以下conj函数的功能是将两个字符串s和t连接起来。

char*conj(char*s,char*t)

{char*p=s;

while(*s)①B;

while(*t)

{*s=A②;s++;t++;}

*s=‘\0’;

C③;

}

①A)s--B)s++C)sD)*s

②A)*tB)tC)t--D)*t++

③A)returnsB)returntC)returnpD)returnp-t

4.下列程序的输出结果是B。

#include

main()

{int**k,*a,b=100;a=&b;k=&a;printf(“%d\n”,**k);}

A)运行出错B)100C)a的地址D)b的地址

5.下列程序的输出结果是D。

#include

fun(int*a,int*b)

{int*w;

*a=*a+*a;

*w=*a;

*a=*b;

*b=*w;}

main()

{intx=9,y=5,*px=&x,*py=&y;fun(px,py);printf(“%d,%d\n”,x,y);}

A)出错B)18,5C)5,9D)5,18

6.若定义了以下函数:

voidf(……)

{……

p=(double*)malloc(10*sizeof(double));

……

}

p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是A。

A)double*p B)float**pC)double**p D)float*p

三.编程题

1.编写函数实现,计算字符串的串长。

(10分)

intmyLength(char*ps)

{

intLength=0;

while(*ps)

{

Length++;

ps++;

}

returnLength;

}

2.编写函数实现,计算一个字符在一个字符串中出现的次数。

(20分)

#include

#include

intOccur(char*s,charc);

intOccur(char*s,charc)

{

intcount=0;

while(*s)

{

if(*s==c)

count++;

s++;

}

returncount;

}

3.有n个人围成一圈,顺序排号。

由用户从键盘输入报数的起始位置,从该人开始报数(计数从0开始),凡报数为3的倍数出圈。

问最后剩下的是几号?

(28分)

intmain()

{

int*arr;

intn,start;

cout<<"请输入总共人数N(位置编号从开始):

";

cin>>n;

cout<<"请输入开始位置(不大于N):

";

cin>>start;

arr=newint[n+1];

for(inti=0;i

arr[i]=0;

intj=0,count=0;

for(inti=1;i<=n;i++)

{

if(arr[i]==0)

{

if(j%3==0)

{

arr[i]=1;

count++;

}

j++;

if(count==n-1)

break;

}

if(i==n)

i=0;

}

for(inti=1;i<=n;i++)

if(arr[i]==0)

{

cout<

break;

}

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1