指针字符串练习题及答案Word下载.docx

上传人:b****7 文档编号:22967033 上传时间:2023-02-06 格式:DOCX 页数:33 大小:37.88KB
下载 相关 举报
指针字符串练习题及答案Word下载.docx_第1页
第1页 / 共33页
指针字符串练习题及答案Word下载.docx_第2页
第2页 / 共33页
指针字符串练习题及答案Word下载.docx_第3页
第3页 / 共33页
指针字符串练习题及答案Word下载.docx_第4页
第4页 / 共33页
指针字符串练习题及答案Word下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

指针字符串练习题及答案Word下载.docx

《指针字符串练习题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《指针字符串练习题及答案Word下载.docx(33页珍藏版)》请在冰豆网上搜索。

指针字符串练习题及答案Word下载.docx

4165

阅读下面程序,程序执行后的结果为().

#include"

stdio.h"

{char*str="

abcdefghijklmnopq"

;

while(*str++!

='

e'

);

printf("

%c\n"

*str);

A、f

B、q

C、e

D、a

A

4167

关于指针概念说法不正确的是().

A、指针变量可以由整数赋,不能用浮点赋

B、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中,

C、一个指针变量只能指向同一类型变量

D、一个变量的地址称为该变量的指针

4173

设有以下定义:

intw[2][3],(*pw)[3];

pw=w;

则对w数组元素非法引用是().

A、pw[0][0]

B、*(pw[1]+2)

C、*(pw+1)[2]

D、*(w[0]+2)

C

4532

若有定义:

chars[3][10],*k[3],*p;

则以下赋值语句正确的是().

A、k=s;

B、p=k;

C、p=s;

D、p=s[0];

4174

当运行以下程序时输入OPENTHEDOOR<

CR>

则输出结果是

#include<

stdio.h>

charfun(char*c)

{if(*c<

Z'

&

&

*c>

A'

*c-='

-'

a'

return*c;

{chars[8],*p=s;

gets(s);

while(*p)

{*p=fun(p);

putcahr(*p);

p++;

putchar('

\n'

A、OpenTheDoor

B、OPENTHEDOOR

C、openthedoor

D、oPENtHEdOOR

4175

下列程序执行后的输出结果是().

voidfunc(int*a,intb[])

{b[0]=*a+6;

{inta,b[5]={0};

a=0;

b[0]=3;

func(&

a,b);

%d\n"

b[0]);

A、8

B、9

C、7

D、6

4390

已知有声明"

chara[]="

prongram"

*p=a+1;

"

则执行以下语句不会输出字符a的是()o

A、putchar(*p+4);

B、putchar(*(p+4));

C、putchar(a[sizeof(a)-3]);

D、putchar(*(a+5));

4181

定义语句int*swap();

指的是

A、其他说法都不对

B、swap是一个返回指向整型值指针的函数

C、swap是一个返回整型值的函数

D、swap是一个指向函数的指针

4184

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;

*x=*y;

*y=t;

{char*s1="

abc"

*s2="

123"

swap(s1,s2);

%s,%s\n"

s1,s2);

程序执行后的输出结果是().

A、1bc,a23

B、123,abc

C、321,cba

D、abc,123

4211

若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

则输出结果不为5

的语句为().

A、printf("

p[5]);

B、printf("

*p[5]);

C、printf("

*(a+5));

D、printf("

*(p+5));

4215

voidfun(int*a,inti,intj)

{intt;

if(i<

j)

{t=a[i];

a[i]=a[j];

a[j]=t;

fun(a,++i,--j);

{inta[]={1,2,3,4,5,6},i;

fun(a,0,5);

6;

i++)

a[i]);

执行后输出结果是().

A、654321

B、214365

C、324156

D、123456

4113

以下程序运行后的输出结果是().

main(){charch[]="

uvwxyz"

*pc;

pc=ch;

*(pc+5));

A、字符y的地址

B、0

C、元素ch[5]地址

D、z

4695

有以下程序

{inta[]={1,2,3,4},y,*p=&

a[3];

--p;

y=*p;

y=%d\n"

y);

程序的运行结果是().

A、y=0

B、y=2

C、y=1

D、y=3

4298

若有语句:

char*line[5];

下列叙述中正确的是().

A、定义line是一个指针数组,语句中的*号称为间址运算符

B、定义line是一个数组,每个数组元素是一个基类型为char的指针变量

C、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

D、定义line是一个指向字符型函数的指针

2457

设有数组定义:

chararray[]="

China"

则数组array所占的空间为().

A、5个字节

B、4个字节

C、6个字节

D、7个字节

2468

下述对C语言字符数组的描述中错误的是().

A、字符数组中的字符串可以整体输入,输出.

B、不可以用关系运算符对字符数组中的字符串进行比较.

C、字符数组中可以存放字符串.

D、可以通过赋值运算符"

="

对字符数组整体赋值.

2479

以下程序:

string.h>

{charstr[]="

abcd\n\123\xab"

strlen(str));

运行后的输出结果是().

A、10

C、14

D、7

2485

chars[20]="

Hello"

在程序运行过程中若要想使数组s中的内容修改为"

Good"

则以下语句能够实现此功能的是().

A、strcpy(s,"

B、strcat(s,"

C、s[20]="

D、s="

2499

以下程序段的输出结果是

pritnf("

strlen("

ATS\n012\1\\"

));

A、11

B、8

C、9

D、10

2510

chara1[]="

a2[80]="

1234"

将a1串连接到a2串后面的语句是().

A、strcat(a2,a1);

B、strcpy(a2,a1);

C、strcpy(a1,a2);

D、strcat(a1,a2);

2530

设有以下语句,若0<

k<

4,下列选项中对字符串的非法引用是().

charstr[4][2]={"

aaa"

"

bbb"

ccc"

ddd"

},*strp[4];

intj;

for(j=0;

j<

4;

j++)

strp[j]=str[j];

A、*strp

B、strp

C、strp[k]

D、str[k]

2543

选择正确的输入语句().

(其中:

charstring[10];

)使得string的内容为"

.

%s"

string);

B、scanf("

%c"

string);

C、scanf("

D、scanf("

2874

下列数组说明中正确的是().

A、staticcharstr1[5],str2[]={"

};

str1=str2;

B、staticcharstr[];

str="

C、staticcharstr1[],str2[];

str2={"

strcpy(str1,str2);

D、staticcharstr[]="

2633

已定义charstring[20];

使得string的内容为"

Youarestudent"

的正确输入语句是().

B、gets(string);

填空题

==================================================

4875

charch;

定义指针p,并使其指向变量ch的初始化语句是_____。

(必须使用一条语句)

空1:

char*p=&

ch;

【或】char*p=&

ch

4101

在c程序中,只能给指针变量赋NULL值和_____值.

指针【或】地址

4235

inta[3][2]={{1,2},{3,4},{5,6}},*p=a[0];

,则执行语句"

{printf("

%i

d\n"

,*(p+4));

后的输出结果为______。

5

4313

执行语句chars[3]="

ab"

*p;

p=s;

*(p+_____)的值是'

\0'

2

4363

设变量定义为"

intx=3,*p=&

x;

设变量x的地址为2000,则*p=_____,&

(*p)=_____(填数字)

3

空2:

2000

4399

若有程序段“inta[10],*p=a,*q;

q=&a[5];

”,则表达式q-p的值是(______)。

2707

chars[]="

china"

则C编译系统为数组s开辟_____个字节的内存单元.

6

2708

以下findmax返回s中最大元素的下标,数组中元素的个数由t传入。

请填空。

fndmax(ints[],intt)

{intk,p;

for(p=0,k=p;

p<

t;

p++)

if(s[p]>

s[k])

_____;

return_____;

k=p

k

2799

已知chars[]={'

H'

'

l'

o'

则s数组中含有_____个元素.

2820

C语言中,二维数组在内存中的存放方式为按_____连续存放.

程序填空

547

/*给定程序中,函数fun的功能是:

找出N×

N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

不得增行或删行,也不得更改程序的结构!

*/

#include<

#defineN4

voidfun(int(*a)[N],int*b)

{inti,j;

for(i=0;

i<

N;

i++){

/**********FILL**********/

b[i]=__1__;

for(j=1;

j<

j++)

if(b[i]__2__a[j][i])b[i]=a[j][i];

}

{intx[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],i,j;

\nThematrix:

\n"

i++)

{for(j=0;

j++)printf("

%4d"

x[i][j]);

fun(__3__);

\nTheresultis:

i++)printf("

%3d"

y[i]);

位置1:

a[0][i]

位置2:

<

位置3:

x,y

565

判断形参s所指字符串是否是"

回文"

(Palindrome),

若是,函数返回值为1;

不是,函数返回值为0。

是正读和反读都一样的字符串(不区分大小写字母)。

例如,LEVEL和Level是"

,而LEVLEV不是"

ctype.h>

intfun(char*s)

{char*lp,*rp;

lp=__1__;

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp))&

(lp<

rp)){

lp++;

rp__2__;

if(lp<

rp)__3__;

elsereturn1;

{chars[81];

Enterastring:

"

scanf("

s);

if(fun(s))printf("

\n\"

%s\"

isaPalindrome.\n\n"

elseprintf("

isn'

taPalindrome.\n\n"

s

--

return0

561

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

输出连接后的字符串。

-------------------------------------------------------*/

#include"

/***********FILL***********/

_____

{

charss[10]="

12345"

strcat(ss,"

6789"

/***********FILL***********/

printf(_____,ss);

【或】#include"

string.h"

%s\n"

【或】"

568

本程序用printf函数输出字符串"

Iamstudent"

,完善程序。

inti;

char*s1="

s1[i]!

_____'

_____"

s1[i]);

}

\0

%c

689

对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。

ss所指字符串数组中共有M个字符串,且串长<

N。

#defineM5

#defineN20

voidfun(char(*ss)[N])

{inti,j,k,n[M];

chart[N];

M;

i++)n[i]=strlen(ss[i]);

M-1;

{k=i;

for(j=___1___;

if(n[k]>

n[j])___2___;

if(k!

=i)

{strcpy(t,ss[i]);

strcpy(ss[i],ss[k]);

strcpy(ss[k],___3___);

n[k]=n[i];

{charss[M][N]={"

shanghai"

guangzhou"

beijing"

"

tianjing"

cchongqing"

\nTheoriginalstringsare:

ss[i]);

fun(ss);

\nTheresult:

i+1

k=j

t

程序改错

694

/*给定程序中函数fun的功能是:

将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。

例如:

把3个串:

,"

CD"

EF"

连接起来,结果是"

abcCDEF"

请改正程序中的错误,使它能得出正确的结果。

不要改动main函数,不得增行或删行,也不得更改程序的结构!

voidfun(charstr[][10],intm,char*pt)

/**********ERROR**********/

Intk,q,i;

for(k=0;

k<

m;

k++)

{q=strlen(str[k]);

for(i=0;

q;

pt[i]=str[k,i];

pt+=q;

pt[0]=0;

{intm,h;

chars[10][10],p[120];

\nPleaseenterm:

&

m);

gets(s[0]);

\nPleaseenter%dstring:

m);

for(h=0;

h<

h++)gets(s[h]);

fun(s,m,p);

\nTheresultis:

%s\n"

p);

intk,q,i;

pt[i]=str[k][i];

704

比较两个字符

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

当前位置:首页 > 总结汇报 > 学习总结

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

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