指针字符串练习题及答案.docx
《指针字符串练习题及答案.docx》由会员分享,可在线阅读,更多相关《指针字符串练习题及答案.docx(33页珍藏版)》请在冰豆网上搜索。
指针字符串练习题及答案
指针字符串练习题及答案
单项选择
==================================================
题号:
4074
若有定义语句:
inta[4][10],*p,*q[4];且0<=i<4,则错误的赋值是().
A、p=a
B、p=&a[2][1]
C、q[i]=a[i]
D、p=a[i]
答案:
A
题号:
4333
执行下列语句后的结果为().
intx=3,y;
int*px=&x;
y=*px++;
printf("x=%d,y=%d\n",x,y);
A、x=3,y=3
B、x=4,y=4
C、x=3,y不知
D、x=3,y=4
答案:
A
题号:
4876
下列程序的运行结果是
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A、00
B、36
C、编译出错
D、63
答案:
B
题号:
4116
if(i==0)aa[i][i+1]=*p+1;
else++p;
printf("%d",*p);
}
}
的输出是().
A、25
B、30
C、26
D、23
答案:
D
题号:
4124
若有说明:
inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是().
A、i=*p;
B、*p=*&j;
C、i=**p;
D、i=&j;
答案:
B
题号:
4165
阅读下面程序,程序执行后的结果为().
#include"stdio.h"
main()
{char*str="abcdefghijklmnopq";
while(*str++!
='e');
printf("%c\n",*str);
}
A、f
B、q
C、e
D、a
答案:
A
题号:
4167
关于指针概念说法不正确的是().
A、指针变量可以由整数赋,不能用浮点赋
B、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中,
C、一个指针变量只能指向同一类型变量
D、一个变量的地址称为该变量的指针
答案:
A
题号:
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];
答案:
D
题号:
4174
当运行以下程序时输入OPENTHEDOOR,则输出结果是
#include
charfun(char*c)
{if(*c<='Z'&&*c>='A')
*c-='A'-'a';
return*c;
}
main()
{chars[8],*p=s;
gets(s);
while(*p)
{*p=fun(p);
putcahr(*p);p++;
}
putchar('\n');
}
A、OpenTheDoor
B、OPENTHEDOOR
C、openthedoor
D、oPENtHEdOOR
答案:
C
题号:
4175
下列程序执行后的输出结果是().
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5]={0};
a=0;b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A、8
B、9
C、7
D、6
答案:
D
题号:
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));
答案:
A
题号:
4181
定义语句int*swap();指的是
A、其他说法都不对
B、swap是一个返回指向整型值指针的函数
C、swap是一个返回整型值的函数
D、swap是一个指向函数的指针
答案:
B
题号:
4184
有以下程序:
#include
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是().
A、1bc,a23
B、123,abc
C、321,cba
D、abc,123
答案:
A
题号:
4211
若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则输出结果不为5
的语句为().
A、printf("%d",p[5]);
B、printf("%d",*p[5]);
C、printf("%d",*(a+5));
D、printf("%d",*(p+5));
答案:
B
题号:
4215
有以下程序:
voidfun(int*a,inti,intj)
{intt;
if(i{t=a[i];a[i]=a[j];a[j]=t;
fun(a,++i,--j);
}
}
main()
{inta[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}
执行后输出结果是().
A、654321
B、214365
C、324156
D、123456
答案:
A
题号:
4113
以下程序运行后的输出结果是().
main(){charch[]="uvwxyz",*pc;
pc=ch;
printf("%c\n",*(pc+5));
}
A、字符y的地址
B、0
C、元素ch[5]地址
D、z
答案:
D
题号:
4695
有以下程序
#include
main()
{inta[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是().
A、y=0
B、y=2
C、y=1
D、y=3
答案:
D
题号:
4298
若有语句:
char*line[5];下列叙述中正确的是().
A、定义line是一个指针数组,语句中的*号称为间址运算符
B、定义line是一个数组,每个数组元素是一个基类型为char的指针变量
C、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
D、定义line是一个指向字符型函数的指针
答案:
B
题号:
2457
设有数组定义:
chararray[]="China";,则数组array所占的空间为().
A、5个字节
B、4个字节
C、6个字节
D、7个字节
答案:
C
题号:
2468
下述对C语言字符数组的描述中错误的是().
A、字符数组中的字符串可以整体输入,输出.
B、不可以用关系运算符对字符数组中的字符串进行比较.
C、字符数组中可以存放字符串.
D、可以通过赋值运算符"="对字符数组整体赋值.
答案:
D
题号:
2479
以下程序:
#include
#include
main()
{charstr[]="abcd\n\123\xab";
printf("%d",strlen(str));
}
运行后的输出结果是().
A、10
B、9
C、14
D、7
答案:
D
题号:
2485
已知有声明"chars[20]="Hello";",在程序运行过程中若要想使数组s中的内容修改为"Good",则以下语句能够实现此功能的是().
A、strcpy(s,"Good");
B、strcat(s,"Good");
C、s[20]="Good";
D、s="Good";
答案:
A
题号:
2499
以下程序段的输出结果是
pritnf("%d\n",strlen("ATS\n012\1\\"));
A、11
B、8
C、9
D、10
答案:
C
题号:
2510
chara1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是().
A、strcat(a2,a1);
B、strcpy(a2,a1);
C、strcpy(a1,a2);
D、strcat(a1,a2);
答案:
A
题号:
2530
设有以下语句,若0charstr[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]
答案:
B
题号:
2543
选择正确的输入语句().
(其中:
charstring[10];)使得string的内容为"Hello".
A、scanf("%s",&string);
B、scanf("%c",string);
C、scanf("%c",&string);
D、scanf("%s",string);
答案:
D
题号:
2874
下列数组说明中正确的是().
A、staticcharstr1[5],str2[]={"China"};str1=str2;
B、staticcharstr[];str="China";
C、staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
D、staticcharstr[]="China";
答案:
D
题号:
2633
已定义charstring[20];使得string的内容为"Youarestudent"的正确输入语句是().
A、scanf("%c",&string);
B、gets(string);
C、scanf("%s",&string);
D、scanf("%s",string);
答案:
B
填空题
==================================================
题号:
4875
若有定义:
charch;
定义指针p,并使其指向变量ch的初始化语句是_____。
(必须使用一条语句)
答案:
空1:
char*p=&ch;【或】char*p=&ch
题号:
4101
在c程序中,只能给指针变量赋NULL值和_____值.
答案:
空1:
指针【或】地址
题号:
4235
已知有声明"inta[3][2]={{1,2},{3,4},{5,6}},*p=a[0];",则执行语句"{printf("%i
d\n",*(p+4));"后的输出结果为______。
答案:
空1:
5
题号:
4313
执行语句chars[3]="ab",*p;p=s;*(p+_____)的值是'\0'.
答案:
空1:
2
题号:
4363
设变量定义为"intx=3,*p=&x;",设变量x的地址为2000,则*p=_____,&(*p)=_____(填数字)
答案:
空1:
3
空2:
2000
题号:
4399
若有程序段“inta[10],*p=a,*q;q=&a[5];”,则表达式q-p的值是(______)。
答案:
空1:
5
题号:
2707
若有定义:
chars[]="china";则C编译系统为数组s开辟_____个字节的内存单元.
答案:
空1:
6
题号:
2708
以下findmax返回s中最大元素的下标,数组中元素的个数由t传入。
请填空。
fndmax(ints[],intt)
{intk,p;
for(p=0,k=p;pif(s[p]>s[k])
_____;
return_____;
}
答案:
空1:
k=p
空2:
k
题号:
2799
已知chars[]={'H','e','l','l','o'};则s数组中含有_____个元素.
答案:
空1:
5
题号:
2820
C语言中,二维数组在内存中的存放方式为按_____连续存放.
答案:
空1:
行
程序填空
==================================================
题号:
547
/*给定程序中,函数fun的功能是:
找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
*/
#include
#defineN4
voidfun(int(*a)[N],int*b)
{inti,j;
for(i=0;i/**********FILL**********/
b[i]=__1__;
for(j=1;j/**********FILL**********/
if(b[i]__2__a[j][i])b[i]=a[j][i];
}
}
main()
{intx[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3}},y[N],i,j;
printf("\nThematrix:
\n");
for(i=0;i{for(j=0;jprintf("\n");
}
/**********FILL**********/
fun(__3__);
printf("\nTheresultis:
");
for(i=0;iprintf("\n");
}
答案:
位置1:
a[0][i]
位置2:
<
位置3:
x,y
题号:
565
/*给定程序中,函数fun的功能是:
判断形参s所指字符串是否是"回文"(Palindrome),
若是,函数返回值为1;不是,函数返回值为0。
"回文"是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
*/
#include
#include
#include
intfun(char*s)
{char*lp,*rp;
/**********FILL**********/
lp=__1__;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp))&&(lp