《C语言程序设计》核心试题(9-1)
(2011-09-13 23:18:46)
标签:
杂谈 |
分类: 教学文件 |
第十部分 :字符串
一、选择题
(1)若有语句:char
A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
(2)有以下程序
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
(3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
A)2
(4)有定义语句:int
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
(5)以下能正确定义一维数组的选项是
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)上述说法都不对
(7)以下语句或语句组中,能正确进行字符串赋值的是
main()
{
}
B)16
C)12
D)59
(9)有以下函数
fun(char
{
}
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
(10)有以下程序
point(char
{
}
main()
{
}
B)b
C)c
D)d
(11) s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
A)
if(s1>s2)S;
C) if(strcmp(s2,s1)>0)
S;
(12)
有以下程序
main()
{char str[][10]={"China","Beijing"},*p=str;
}
A) China
main()
{char s[]="ABCD",*p;
}
A)
ABCD
(14)
有以下程序
main()
{ char s[]"Yes\n/No",*ps=s;
}
A)
n/No
(15)
有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是
A) gets(A)
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
}
A) 2
(17)
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A) char s[10]=”abcdefg”;
C) char s[10];s=”abcdefg”;
(18)
下列选项中正确的语句组是
A) char
(19)
#include
#include
char
{
return(s1);
else
}
main ()
{
for(i=0;i<3;i++)
strcpy(string,scmp(str[0],str[1]));
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
A)
abcd
(20)
有以下程序
#include
main()
{ char
printf("%d\n",strlin(p+20));
}
A)
0
(21)
已定义以下函数
fun(char
{
A)
将p1所指字符串复制到p2所指内存空间
B)
将p1
所指字符串的地址赋给指针 p2
C)
对p1和p2两个指针所指字符串进行比较
D)
检查p1和p2两个指针所指字符串中是否有‘\0’
(22)
有以下程序
main()
{
}
A)
n,two
(23)
阅读以下函数
fun(char
{
while(s1[i]==s2[i]&&
s2[i]!=‘\0’)i++;
return(s1[i]== &&
s2{i}!==‘\0’);
}
A)
将s2所指字符串赋给s1
B)
比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C)
比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)
比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
(24)
有以下程序
main()
{
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
}
A)
yz
(25)
#include <string.h>
main()
{ char *p=“abcde\Ofghjik\0”;
printf(“%d\n”,strlen(p));
}
程序运行后的输出结果是
A)
12
(26)
有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t) *s=t-‘a’+’A’;
}
}
main()
{ char str1[100]=“abcddfefdbd”,c=’d’;
ss(str1,c);
}
A)
ABCDDEFEDBD
C) abcAAfefAbA
(27)
以下程序的输出结果是
char
{
if(ch>=‘A’&&ch<=‘Z')
return
}
main()
{
while(*p)
{ *p=cchar(*p);
p++;
}
printf("%s\n",s);
}
C)
abcaABCDEFdef
(28)
以下程序段的输出结果是
char
printf
(29)
以下程序的输出结果是
main()
{
printf("\"%s\"\n",ch[1]);
}
(30)
以下程序的输出结果是
#include
#include
main()
{
while (--pb>=b1)
printf("%d\n",strlen(b2));
}
(31)
以下定义语句中,错误的是
A) int
(32)
A) char
(33)
A) ABCD
KL
main()
{ char
}
(34)
A)
ABC6789
#include
#include
main()
{ char
}
(35)
main()
{
for(p=s+l; p<s+4;
p++)
}
A)
ABCD
(36)
main()
{
int
for(i=0;i<2;i++)
for(i=0;i<2;i++)
for(j=0;p[i][j]>’\0’;j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%d\n”,s);
}
A)
69825
(37)
设有数组定义: char array [
]="China";
则数组 array所占的空间为
A) 4个字节
(38)
设已有定义: char *st="how are
you";
下列程序段中正确的是
A) char
(39)
A)
you&ne
(40)
A)
123,456,789
(41)
A)
字符型数组中可以存放字符串
B)
可以对字符型数组进行整体输入、输出
C)
可以对整型数组进行整体输入、输出
D)
不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
(42)
以下程序的输出结果是
A)
123456780
(43)
A)4 2 1
1
(44)
(45)
A)
cde
(46)
A) char
s[5]={"ABCDE"};
C) char
*s;s="ABCDEF";
(47)
以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
A)
8
(48)
A)
2ba56
(49)
则输出结果为
A)
a
f
#include<stdio,h>
(50)
A)
8
(51)
A)
6385
(52)
A)
1234567
(53)
A)
*8
(54)
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
则正确的叙述为
A)
数组X和数组Y等价
C)
数组X的长度大于数组Y的长度
(55)
有以下程序
A)
gm
(56)
若有以下定义:
A)
ps+2
(57)
若有以下定义和语句:
char *s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是
A)
4
(58)
下面程序的输出是
(59)
以下程序输出的结果是
#include
#include
main()
{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;
for (k=1;k<3;k++)
printf("%s\n",&w[k][k]);
}
A)ABCD
C)EFG
O
(60)
若有以下程序片段:
char str[]="ab\n\012\\\"";
printf(%d",strlen(str));
A)3
(61)
函数调用:strcat(strcpy(str1,str2),str3)的功能是
A)
将串str1复制到串str2中后再连接到串str3之后
B)
将串str1连接到串str2之后再复制到串str3之后
C)
将串str2复制到串str1中后再将串str3连接到串str1之后
D)
将串str2连接到串str1之后再将串str1复制到串str3中
(62)
不能把字符串:Hello!赋给数组b的语句是
A) char
b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char
b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(63)
下面程序的输出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A)
ABC
(64)
下面程序的输出是
main()
{ char *a="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1':
case '3': v3++;
case '2':
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
C) v1=5,v2=8,v3=6,v4=1
(65)
当执行下面程序且输入:ABC时,输出的结果是
#include<stdio.h>
#include<string.h>
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss);
(66)
下面程序的输出是
#include<string.h>
main()
{ char*a="abcdefgh";
fun(a);puts(a);
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x<y;x++,y--) {
c=s[x];s[x]=s[y];s[y]=c;}
(67)
下述对C语言字符数组的描术中错误的是
A)
字符数组可以存放字符串
B)
字符数组中的字符串可以整体输入、输出
C)
可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)
不可以用关系运算符对字符数组中的字符串进行比较
(68)
设有如下函数定义:
int f(char *s)
{
while(*p!='\0') p++;
return(p-s);
printf("%d\n",f("goodbey!"));
A)
3