第十章 指针Word格式文档下载.docx
- 文档编号:20283542
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:12
- 大小:18.72KB
第十章 指针Word格式文档下载.docx
《第十章 指针Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第十章 指针Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
4、有以下程序
main(intargc,char*argv[])
{intn,i=0;
while(argv[1][i]!
='
\0'
)
{n=fun();
i++;
%d\n"
n*argc);
intfun()
{staticints=0;
s+=1;
returns;
假设程序经编译、连接后生成可执行文件exam.exe若键入以下命令行:
exam123<
回车>
则运行结果为
A)6B)8C)3D)4
5、有以下程序
{inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
3;
2)pa[1][i]=pa[1][i]-1;
elsepa[1][i]=1;
a[0][1]+a[1][1]+a[1][2])}
A)7B)6C)8D)无确定值
6、有以下程序
{charstr[]="
xyz"
*ps=str;
while(*ps)ps++;
for(ps--;
ps-str>
=0;
ps--)puts(ps);
7、阅读以下函数
fun(char*s1,char*s2)
{inti=0;
while(s1[i]==s2[i]&
&
s2[i]!
)i++;
return(s1[i]=='
&
s2[i]=='
);
此函数的功能是
A)将s2所指字符串赋给s1
B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
8、有以下程序
{intx[8]={8,7,6,5,0,0},*s;
s=x+3;
s[2]);
A)随机值B)0C)5D)6
9、若有以下定义和语句
#include<
stdio.h>
inta=4,b=3,*p,*q,*w;
p=&
a;
q=&
b;
w=q;
q=NULL;
则以下选项中错误的语句是
A)*q=0;
B)w=p;
C)*p=a;
D)*p=*w;
10、有以下程序
int*f(int*x,int*y)
{if(*x<
*y)
returnx;
else
returny;
{inta=7,b=8,*p,*q,*r;
r=f(p,q);
%d,%d,%d\n"
*p,*q,*r);
A)7,8,8B)7,8,7C)8,7,7D)8,7,8
11、有以下程序
{char*s[]={"
one"
"
two"
three"
},*p;
p=s[1];
%c,%s\n"
*(p+1),s[0]);
A)n,twoB)t,oneC)w,oneD)o,two
12、以下程序运行后输入:
3,abcde<
,则输出结果是【】
string.h>
move(char*str,intn)
{chartemp;
inti;
temp=str[n-1];
for(i=n-1;
i>
0;
i--)str[i]=str[i-1];
str[0]=temp;
{chars[50];
intn,i,z;
%d,%s"
n,s);
z=strlen(s);
for(i=1;
=n;
i++)move(s,z);
%s\n"
s);
13、若有定义:
int*p[3];
,则以下叙述中正确的是
A)定义了类型为int的指针变量p,该变量有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
14、以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
char*scmp(char*s1,char*s2)
{if(strcmp(s1,s2)<
0)
return(s1);
elsereturn(s2);
{inti;
charstring[20],str[3][20];
i<
i++)gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
string);
若运行时依次输入:
abcd、abba和abc三个字符串,则输出结果为
A)abcdB)abbaC)abcD)abca
15、有以下程序段
{inta=5,*b,**c;
c=&
b=&
……
}
程序执行了c=&
b=&
语句后,表达式:
**c值是
A)变量a的地址B)变量b中的值
C)变量a中的值D)变量b的地址
16、有以下程序
{charstr[][20]={"
Hello"
Beijing"
},*p=str;
strlen(p+20));
程序运行后的输出结果是
A)0B)5C)7D)20
17、已定义以下函数
fun(char*p2,char*p1)
{while((*p2=*p1)!
){p1++;
p2++;
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有'
18、有以下程序
{inta[3][3],*p,i;
a[0][0];
9;
i++)p[i]=i+1;
%d\n"
a[1][2]);
A)3B)6C)9D)2
19、已定义以下函数
fun(int*p)
{return*p;
该函数的返回值是
A)不确定的值B)形参p中存放的值
C)形参p所指存储单元中的值D)形参p的地址值
20、下列函数定义中,会出现编译错误的是
A)max(intx,inty,int*z)B)intmax(intx,y)
{*z=x>
y?
x:
y;
}{intz;
z=x>
returnz;
C)max(intx,inty)D)intmax(intx,inty)
{intz;
{return(x>
y?
x:
y);
return(z);
21、下列选项中正确的语句组是
A)chars[8];
s={"
};
B)char*s;
C)chars[8];
s="
;
D)char*s;
22、有以下程序
voidfun(char*a,char*b)
{a=b;
(*a)++;
{charc1='
A'
c2='
a'
*p1,*p2;
p1=&
c1;
p2=&
c2;
fun(p1,p2);
%c%c\n"
c1,c2);
A)AbB)aaC)AaD)Bb
23、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是
A)int*i=NULL;
B)float*f=NULL;
scanf("
%d"
i);
*f=10.5;
C)chart='
m'
*c=&
t;
D)long*L;
*c=&
L='
24、有以下程序
voidf(inty,int*x)
{y=y+*x;
*x=*x+y;
main()
{intx=2,y=4;
f(y,&
x);
printf(“%d%d\n”,x,y);
执行后输出的结果是【】。
25、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)chars[10]=”abcdefg”;
B)chart[]=”abcdefg”,*s=t;
C)chars[10];
s=”abcdefg”;
D)chars[10];
strcpy(s,”abcdefg”);
26、有以下定义
#include
chara[10],*b=a;
不能给数组a输入字符串的语句是
A)gets(A)B)gets(a[0])C)gets(&
a[0]);
D)gets(B);
27、有以下程序
main()
{char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
执行后输出结果是
A)2B)3C)4D)5
28、有以下程序
inta=2;
intf(int*A)
{return(*A)++;
{ints=0;
{inta=5;
s+=f(&
A);
}
printf(“%d\n”,s);
A)10B)9C)7D)8
29、有以下程序
voidsum(int*A)
{a[0]=a[1];
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;
i--)&
nb
sp;
sum(&
aa[i]);
printf(“%d\n”,aa[0]);
执行后的输出结果是
A)4B)3C)2D)1
30、有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],b;
b=p[5];
b中的值是A)5B)6C)8D)9
31、设有定义:
intn=0,*p=&
n,**q=&
p;
则以下选项中,正确的赋值语句是
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
32、以下程序中,函数sumColumM的功能是:
求出M行N列二维数组每列元素中的最小值,并计算它们的和值。
和值通过形参传回主函数输出。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
N;
I++)
{k=0;
for(j=1;
j<
M;
J++)
if(a[k]>
a[j])k=j;
s+=_______;
*sum=s;
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(_______);
printf("
33、以下程序运行后的输出结果是_____。
main()
{chara[]="
Language"
b[]="
Programe"
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
k<
=7;
k++)
if(*p1+k)==*(p2+k))printf("
%c"
*(p1+k));
34、以下程序运行后的输出结果是_______。
123456789"
*p;
inti=0;
p=a;
while(*p)
{if(i%2==0)*p='
*"
p++;
i++;
puts(a);
35、程序中对fun函数有如下说明
void*fun();
此说明的含义是:
A)fun函数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
36、有以下程序
main()
{chars[]"
Yes\n/No"
*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
程序运行后的输出结果是_______
37、有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i<
{t=a;
a=a[j];
a[j]=t;
i++;
j--;
fun(a,i,j);
{intx[]={2,6,18},i;
fun(x,0,3);
for(i=0;
4;
i++)printf("
%2d"
x);
printf("
\n"
A)1268B)8621C)8162D)8612
38、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);
{charstr1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s\n”,str1);
39、下列程序的运行结果是:
【】
#include
char*ss(char*s)
{returns+strlen(s)/2;
{char*p,*str=”abcdefgh”;
p=ss(str);
printf(“%s\n”,p);
40、以下程序中给指针p分配三个double型动态内存单元,请填空。
#include<
main()
{double*p;
p=(double*)malloc(【18】);
p[0]=1.5;
p[1]=2.5;
p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十章 指针 第十