if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}
main()
{char*p[5]={“abc”,”aabdfg”,”abbd”,”dcdbe”,
”cd”};f(p,5);printf(“%d\n”,strlen(p[1]));}
程序运行后的输出结果是
A)2B)3C)6D)4
(4)有定义语句:
intb;charc[10];,则正确
的输入语句是_____
A)scanf(“%d%s”,&b,&c);
B)scanf(“%d%s”,&b,c);
C)scanf(“%d%s”,b,c);
D)scanf(“%d%s”,b,&c);
(5)以下能正确定义一维数组的选项是_____
A)inta[5]={0,1,2,3,4,5};
B)chara[]={0,1,2,3,4,5};
C)chara={‘A’,’B’,’C’};
D)inta[5]=“0123”;
(6)已有定义:
chara[]=“xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是_____
A)数组a和b的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)上述说法都不对
(7)以下语句或语句组中,能正确进行字符串赋值的是
A)char*sp;*sp=“right!
”;
B)chars[10];s=“right!
”;
C)chars[10];*s=“right!
”;
D)char*sp=“right!
”;
(8)有以下程序
main()
{chars[]=“159”,*p;
p=s;printf(“%c”,*p++);
printf(“%c”,*p++);}
程序运行后的输出结果是
A)15B)16C)12D)59
(9)有以下函数
fun(char*a,char*b)
{while((*a!
=‘\0’)&&(*b!
=‘\0’)&&(*a==*b))
{a++;b++;}return(*a-*b);}
该函数的功能是
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
(10)有以下程序
point(char*p)
{p+=3;}
main()
{charb[4]={‘a’,’b’,’c’,’d’},*p=b;
point(p);printf(“%c\n”,*p);}
程序运行后的输出结果是
A)aB)bC)cD)d
(11)s12和s2已正确定义并分别指向两个字符
串。
若要求:
当s1所指串大于s2所指串时,
执行语句S;则以下选项中正确的是_____
A)if(s1>s2)S;B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S;D)if(strcmp(s1,s2)>0)S;
(12)有以下程序
main()
{charstr[][10]={“China”,”Beijing”},*p=str;
printf(“%s\n”,p+10);}
程序运行后的输出结果是
A)ChinaB)BejingC)ngD)ing
(13)有以下程序
main()
{chars[]=“ABCD”,*p;
for(p=s+1;p
程序运行后的输出结果是
A)
B)
C)
D)
(14)有以下程序
main()
{chars[]”Yes\n/No”,*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);}
程序运行后的输出结果是(选项D中的第一行
是空行)
A)B)C)D)
(15)有以下定义
#include
chara[10],*b=a;
不能给数组a输入字符串的语句是
A)gets(A)B)gets(a[0])
C)gets(&a[0]);D)gets(B);
(16)有以下程序
main()
{char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));}
执行后输出结果是
A)2B)3C)4D)5
(17)以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)chars[10]=“abcdefg”;B)chart[]=“abcdefg”,*s=t;
C)chars[10];s=“abcdefg”;D)chars[10];strcpy(s,”abcdefg”);
(18)下列选项中正确的语句组是
A)chars[8];s={“Beijing”};B)char*s;s={“Beijing”};
C)chars[8];s=“Beijing”;D)char*s;s=“Beijing”;
(19)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
#include
#include
char*scmp(char*s1,char*s2)
{if(strcmp(s1,s2<0)
return(s1);
elsereturn(s2);}
main()
{inti;charstring[20],str[3][20];
for(i=0;i<3;i++)gets(str[i]);
strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf(“%s\n”,string);}
运行时依次输入:
abcd、abba和abc三个字符串,则输出结果为
A)abcdB)abbaC)abcD)abca
(20)有以下程序
#include
main()
{charstr[][20]={“Hello”,”Beijing”},*p=str;
printf(“%d\n”,strlin(p+20));}
程序运行后的输出结果是
A)0B)5C)7D)20
(21)已定义以下函数
fun(char*p2,char*p1)
{while((*p2=*p1)!
=‘\0’){p1++;p2++;}}
函数的功能是
A)将p1所指字符串复制到p2所指内存空间。
B)将p1所指字符串的地址赋给指针p2。
C)对p1和p2两个指针所指字符串进行比较。
D)检查p1和p2两个指针所指字符串中是否
有’\0’。
(22)有以下程序
main()
{char*s[]={“one”,”two”,”three”},*p;
p=s[1];
printf(“%c,%s\n”,*(p+1),s[0]);}
执行后输出结果是
A)n,twoB)t,oneC)w,oneD)o,two
(23)阅读以下函数
fun(char*s1,char*s2)
{inti=0;
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()
{charstr[]=“xyz”,*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);}
执行后的输出结果是
A)
B)
C)
D)
(25)有以下程序
#include
main()
{char*p=“abcde\Ofghjik\0”;
printf(“%d\n”,strlen(p));}
程序运行后的输出结果是
A)12B)15C)6D)5
(26)有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-’a’+’A’;
s++;}}
main()
{charstr1[100]=“abcddfefdbd”,c=‘d’;
ss(str1,c);printf(“%s\n”,str1);}
程序运行后的输出结果是
A)ABCDDEFEDBDB)abcDDfefDbD
C)abcAAfefAbAD)Abcddfefdbd
(27)以下程序的输出结果是
charcchar(charch)
{if(ch>=‘A’&&ch<=‘Z’)ch=ch-’A’+’a’;
returnch;}
main()
{chars[]=“ABC+abc=defDEF”,*p=s;
while(*p)
{*p=cchar(*p);
p++;}
printf(“%s\n”,s);}
A)abc+ABC=DEFdefB)abc+abc=defdef
C)abcaABCDEFdefD)abcabcdefdef
(28)以下程序段的输出结果是
chars[]=“\\141\141abc\t”;
printf(“%d\n”,strlen(s));
A)9B)12C)13D)14
(29)以下程序的输出结果是
main()
{charcf[3][5]={“AAAA”,”BBB”,”CC”};
printf(“\”%s\”\n”,ch[1]);}
A)”AAAA”B)”BBB”C)”BBBCC”D)”CC”
(30)以下程序的输出结果是
#include
#include
main()
{charb1[8]=“abcdefg”,b2[8],*pb=b1+3;
while(--pb>=b1)strcpy(b2,pb);
printf(“%d\n”,strlen(b2));}
A)8B)3C)1D)7
(31)以下定义语句中,错误的是
A)inta[]={1,2};B)char*a[3];
C)chars[10]=“test”;D)intn=5,a[n];
(32)以下选项中,不能正确赋值的是
A)chars1[10];s1=“Ctest”;
B)chars2[]={‘C’,‘t’,‘e’,‘s’,‘t’};
C)chars3[20]=“Ctest”;
D)char*s4=“Ctest\n”
(33)以下程序的输出结果是
A)
B)
C)
D)
main()
{charw[][10]={“ABCD”,”EFGH”,”IJKL”,
”MNOP”},k;
for(k=1;k<3;k++)printf(“%s\n”,w[k]);}
(34)当执行下面的程序时,如果输入ABC,则输出结果是
A)ABC6789B)ABC67
C)12345ABC6D)ABC456789
#include“stdio.h”
#include“string.h”
main()
{charss[10]=“1,2,3,4,5”;
gets(ss);strcat(ss,“6789”);printf(“%s\n”,ss);}
35)有如下程序同第13题
(36)有如下程序
main()
{charch[2][5]={“6937”,”8254”},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[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)69825B)63825C)6385D)693825
(37)设有数组定义:
chararray[]=“China”;则
数组array所占的空间为
A)4个字节B)5个字节
C)6个字节D)7个字节
(38)设已有定义:
char*st=“howareyou”;下
列程序段中正确的是
A)chara[11],*p;strcpy(p=a+1,&st[4]);
B)chara[11];strcpy(++a,st);
C)chara[11];strcpy(a,st);
D)chara[],*p;strcpy(p=&a[1],st+2);
(39)下列程序执行后的输出结果是
A)you&neB)youC)meD)err
mai()
{chararr[2][4];
strcpy(arr,”you”);strcpy(arr[1],”me”);
arr[0][3]=‘&’;
printf(“%s\n”,arr);}
(40)执行下列程序时输入:
123<空格>456<空格>789<回车>,输出结果是
A)123,456,789B)1,456,789
C)1,23,456,789D)1,23,456
main()
{chars[100];intc,i;
scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,s);
printf(“%c,%d,%s\n”,c,i,s);}
(41)下列描述中不正确的是
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符”=“对字符型数组进行整体赋值
(42)以下程序的输出结果是
A)123456780B)123456780C)12345678D)147
main()
{charch[3][4]={“123”,”456”,”78”},*p[3];inti;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf(“%s”,p[i]);}
(43)以下程序的输出结果是
A)4211B)0008C)4678D)8888
main()
{char*s=“12134211”;intv[4]={0,0,0,0},k,I;
for(k=0;s[k];k++)
{switch(s[k])
{case‘1’:
i=0;
case‘2’:
i=1;
case‘3’:
i=2;
case‘4’:
i=3;}
v[i]++;}
for(k=0;k<4;k++)printf(“%d“,v[k]);}
(44)以下程序的输出结果是
A)AfghdEFGB)AbfhdC)AfghdD)Afgd
#include
main()
{char*p1,*p2,str[50]=“ABCDEFG”;
p1=“abcd”;p2=“efgh”;
strcpy(str+1,p2+1);strcpy(str+3,p1+3);
printf(“%s”,str);}
(45)以下程序运行后,输出结果是
A)cdeB)字符c的ASCII码值
C)字符c的地址D)出错
main()
{char*s=“abcde”;
s+=2;printf(“%ld\n”,s);}
(46)下面能正确进行字符串赋值操作的语句是
A)chars[5]={“ABCDE”};
B)chars[5]={‘A’,’B’,’C’,’D’,’E’};
C)char*s;s=“ABCDEF”;
D)char*s;scanf(“%s”,s);
(47)以下程序运行后,如果从键盘上
输入ABCDE<回车>,则输出结果为
A)8B)7C)6D)5
#include
#include
func{intnum=0;
while(*(str+num)!
=‘\0’)num++;
return(num);}
main()
{charstr[10],*p=str;
gets(p);printf(“%d\n”,func(p));}
(48)下面程序运行的结果是
A)2ba56B)6521C)6D)62
main()
{charch[7]={65ab21”};
inti,s=0;
for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)
s=10*s+ch[i]-’0’;
printf(“%d\n”,s);}
(49)运行下面的程序,如果从键盘上输入:
ab<回车>,c<回车>,def<回车>
则输出结果为
A)
B)
C)
D)abcdef
#include
#defineN6
main()
{charc[N];inti=0;
for(;ifor(i=0;i(50)以下程序运行后,输出结果是
A)8B)7C)6D)5
#include
ss(char*s)
{char*p=s;
while(*p)p++;
return(p-s);}
main()
{char*a=“abded”;
inti;
i=ss(a);
printf(“%d\n”,i);}
(51)以下程序运行后,输出结果是
A)6385B)22C)33D)693825
main()
{charch[2][5]={‘693”,”825”},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]=‘0’&&p[i][j]<=‘9’;j+=2)
s=10*s+p[i][j]-’0’;
printf(“%d\n”,s);}
(52)以下程序运行后,输出结果是
A)1234567B)7654321C)1711717D)7177171
#inchude
#inchude
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1{t=*s1++;*s1=*s2--;*s2=t;}}
main()
{char*p;p=“1234567”;
fun(p,strlen(p));puts(p);}
(53)以下程序运行后,如果从键盘上输入:
book<回车>,book<空格><回车>
则输出的结果是
A)*8B)#9C)#6D)*9
#include
main()
{chara1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);gets(s2);
if(!
strcmp(s1,s2))printf(“*”);
esleprintf(“#”);
printf(“%d/n”,strlen(strcat(s1,s2)));}
(54)给出以下定义:
charx[]=“abcdefg”;
chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
则正确的叙述为
A)数组X和数组Y等价
B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度
D)数组X的长度小于数组Y的长度
(55)有以下程序
main()
{chara[]=“programming”,b[]=“language”;
char*p1,*p2;inti;
p1=a;p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))printf(“%c”,*(p1+i));}
输出结果是
A)gmB)rgC)orD)ga
(56)若有以下定义:
chars[20]=“programming”,*ps=s;
则不能代表字符o的表达式是
A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps
(57)若有以下定义和语句:
char*s1=“12345”,*s2=“1234”;
printf(“%d\n”,strlen(strcpy(s1,s2)));
则输出结果是_____
A)4B)5C)9D)10
(58)下面程序的输出是_____
main()
{char*s=“121”;
intk=0,a=0,b=0;
do{k++;
if(k%2==0){a=a+s[k]-’0’;continue;}
b=b+s[k]-’0’;a=a+s[k]-’0’;
}while(s[k+1]);
printf(“k=%da