字符数组与指针理解练习知识题参备考资料答案解析Word文件下载.docx
《字符数组与指针理解练习知识题参备考资料答案解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《字符数组与指针理解练习知识题参备考资料答案解析Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
B)printf(“%s%s”,a[],b[]);
C)putchar(a,b);
D)puts(a),puts(b);
【题7.34】下面程序段的运行结果是 。
chara[7]=“abcdef”;
charb[4]=“ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A)空格B)\0C)eD)f
复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’,a[4]=‘e’,a[5]=‘f’,a[6]=‘\0’,
【题7.35】有下面的程序段
chara[3],b[]=“China”;
a=b;
printf(“%s”,a);
则 。
A)运行后将输出ChinaB)运行后将输出Ch
C)运行后将输出ChiD)编译出错
数组名是常量
【题7.36】下面程序段的运行结果是 。
charc[]=“\t\n\\\0will\n”;
printf(“%d”,strlen(c));
A)14B)3C)9D)字符串中有非法字符,输出值不确定
strlen函数,求字符数符串的长度。
【题7.37】判断字符串a和b是否相等,应当使用 。
A)if(a==b)B)if(a=b)
C)if(strcpy(a,b))D)if(strcmp(a,b))
只有strcmp函数才能判别2个字符串的关系。
【题7.38】判断字符串s1是否大于字符串s2,应当使用 。
A)if(s1>
s2)B)if(strcmp(s1,s2))
C)if(strcmp(s2,s1)>
0)D)if(strcmp(s1,s2)>
0)
【题7.39】下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空。
charx[]=“programming”;
chary[]=“Fortran”;
inti=0;
while(x[i]!
=‘\0’&
&
y[i]!
=‘\0’)
{
if(x[i]==y[i])printf(“%c”,【1】);
elsei++;
}
【1】A)x[i++]B)y[++i]C)x[i]D)y[i]
【题7.40】下面描述正确的是 。
A)两个字符串所包含的字符个数相同时,才能比较字符串
B)字符个数多的字符串比字符个数少的字符串大
C)字符串“STOP”与“STOP”相等
D)字符串“That”小于字符串“The”
【题7.41】下述对C语言字符数组的描述中错误的是 。
A)字符数组可以存放字符串
B)字符数组的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
【题7.42】有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。
#include<
stdio.h>
main()
chara[20]=“cehiknqtw”;
chars[]=“fbla”;
inti,k,j;
for(k=0;
s[k]!
=‘\0’;
k++)
j=0;
while(s[k]>
=a[j]&
a[j]!
=‘\0’)j++;
for(【1】)【2】;
a[j]=s[k];
puts(a);
【1】A)i=strlen(a)+k;
i>
=j;
i--B)i=strlen(a);
i--
C)i=j;
i<
=strlen(a)+k;
i++D)i=j;
=strlen(a);
i++
【2】A)a[i]=a[i+1]B)a[i+1]=a[i]
C)a[i]=a[i-1]D)a[i-1]=a[i]
【题7.43】下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。
chara[]=“acegikm”;
charb[]=“bdfhjlnpq”;
charc[80],*p;
inti=0,j=0,k=0;
while(a[i]!
b[j]!
=‘\0’)
if(a[i]<
b[j]){【1】}
else{【2】}
k++;
c[k]=‘\0’;
if(【3】)p=b+j;
elsep=a+i;
strcat(c,p);
puts(c);
【1】A)c[k]=a[i];
i++;
B)c[k]=a[j];
C)c[k]=a[i];
j++;
D)c[k]=a[j];
【2】A)c[k]=a[i];
【3】A)a[i]==‘\0’B)a[i]!
=‘\0’
C)a[i-1]==‘\0’D)a[i-1]!
【题7.44】下面程序的功能是将字符串s中所有的字符‘c’删除。
chars[80];
inti,j;
gets(s);
for(i=j=0;
s[i]!
i++)
if(s[i]!
=‘c’)【1】;
s[j]=‘\0’;
puts(s);
【1】A)s[j++]=s[i]B)s[++j]=s[i]
C)s[j]=s[i];
j++D)s[j]=s[i]
【题7.45】下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
chars[80],c1,c2=‘’;
inti=0,num=0;
while(s[i]!
c1=s[i];
if(i==0)c2=‘’;
elsec2=s[i-1];
if(【1】)num++;
i++;
printf(“Thereare%dwords.\n”,num);
【1】A)c1==‘’&
c2==‘’B)c1!
=‘’&
c2==‘’
C)c1==‘’&
c2!
=‘’D)c1!
=‘’
【题7.46】下面程序的运行结果是 。
charch[7]={“12ab56”};
inti,s=0;
for(i=0;
ch[i]>
=‘0’&
ch[i]<
=‘9’;
i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
A)1B)1256C)12ab56D)1
2
5
6
【题7.47】当运行以下程序时,从键盘输入:
aabb<
CR>
ccdd<
(<
表示回车),则下面程序的运行结果是 。
chara1[5],a2[5],a3[5],a4[5];
scanf(“%s%s”,a1,a2);
gets(a3);
gets(a4);
puts(a1);
puts(a2);
puts(a3);
puts(a4);
}
/*提示:
scanf(“%s”)是以空格、回车为结束标志;
gets()仅是以回车作为结束标志,a3中接收到的是‘\n’
puts()函数具有输出结束后自动加换行的功能*/
A)aaB)aaC)aabbD)aabb
bbbbccccdd
ccccdddd
dd
题7.48】当运行以下程序时,从键盘输入:
ab<
c<
def<
#defineN6
charc[N];
for(;
i<
N;
c[i]=getchar(),i++);
i++)putchar(c[i]);
A)abcdefB)aC)bD)ab
Bcc
cdd
d
e
f
【题7.49】当运行以下程序时,从键盘输入:
AhaMAAha<
chars[80],c=‘a’;
scanf(“%s”,s);
if(s[i]==c)s[i]=s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
A)ahAMaB)AhAMaC)AhAMaahAD)ahAMaahA
【题7.50】下面程序的运行结果是 。
chara[80]=“AB”,b[80]=“LMNP”;
strcat(a,b);
while(a[i++]!
=‘\0’)b[i]=a[i];
puts(b);
A)LBB)ABLMNPC)ABD)LBLMNP
【题7.51】下面程序的运行结果是 。
charstr[]=“SSSWLIA”,c;
intk;
for(k=2;
(c=str[k])!
switch(c)
case‘I’:
++k;
break;
case‘L’:
continue;
default:
putchar(c);
putchar(‘*’);
A)SSW*B)SW*C)SW*AD)SW
【题7.52】下面程序的运行结果是 。
chara[]=“morning”,t;
inti,j=0;
for(i=1;
7;
if(a[j]<
a[i])
j=i;
t=a[j];
a[j]=a[7];
a[7]=a[j];
}/*提示:
原a[7]中存放的是‘\0’*/
A)mogninrB)moC)morningD)mornin
参考答案:
【题7.29】D【题7.30】B【题7.31】D【题7.32】B【题7.33】D
【题7.34】D【题7.35】D【题7.36】B【题7.37】D【题7.38】D
【题7.39】A【题7.40】D【题7.41】C【题7.42】BB【题7.43】ADA
【题7.44】A【题7.45】B【题7.46】A【题7.47】B【题7.48】D
【题7.49】A【题7.50】D【题7.51】B【题7.52】B