(41) 下列描述中不正确的是
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出
C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
(42) 以下程序的输出结果是
A) 123456780 B) 123 456 780 C) 12345678 D) 147
main( )
{ char ch[3][4]={"123","456","78"}, *p[3]; int i;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0;i<3;i++) printf("%s",p[i]);
}
(43) 以下程序的输出结果是
A)4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8
main( )
{ char *s="12134211"; int v[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) AfghdEFG B) Abfhd C) Afghd D) 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) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错
main()
{ char *s="abcde";
s+=2;
printf("%ld\n",s);
}
(46) 下面能正确进行字符串赋值操作的语句是
A) char s[5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};
C) char *s;s="ABCDEF"; D) char *s; scanf("%s",s);
(47) 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
A) 8 B) 7 C) 6 D) 5
#include<stdio.h>
#include<string.h>
func<char str[])
{ int num=0;
while(*(str+num)!='\0') num++;
return(num);
}
main()
{ char str[10],*p=str;
gets(p); printf("%d\n",func(p));
}
(48) 下面程序运行的结果是
A) 2ba56 B) 6521 C) 6 D) 62
main()
{ char ch[7]={65ab21"};
int i,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) a B) a C) ab D) abcdef
b b c
c c d
d d
e
f
#include<stdio,h>
#define N 6
main()
{ char c[N];
int i=0;
for( ;i<N;c[i]=getchar(),i++);
for( i=0;i<N;i++) putchar(c[i]); printf("\n");
}
(50) 以下程序运行后,输出结果是
A) 8 B) 7 C) 6 D) 5
#include<stdio,h>
ss(char *s)
{ char *p=s;
while(*p) p++;
return(p-s);
}
main()
{ char *a="abded";
int i;
i=ss(a);
printf("%d\n",i);
}
(51) 以下程序运行后,输出结果是
A) 6385 B) 22 C) 33 D) 693825
main()
{ char ch[2][5]={'693","825"},*p[2];
int i,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) 1234567 B) 7654321 C) 1711717 D) 7177171
#inchude <stdio,h>
#inchude <string,h>
fun(char *w, int n)
{ char t, *s1,*s2;
s1=w: s2=w+n-1;
while(s1<s2)
{ t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{ char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
(53) 以下程序运行后,如果从键盘上输入:
book <回车>
book <空格><回车>
则输出的结果是
A) *8 B) #9 C) #6 D) *9
#include<string,h>
main()
{ char a1[80],a2[80],*s1=a1, *s2=a2;
gets(s1); gets(s2);
if(! strcmp(s1,s2)) printf("*");
esle printf("#");
printf("%d/n",strlen(strcat(s1,s2)));
}
(54) 给出以下定义:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
则正确的叙述为
A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同
C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度
(55) 有以下程序
main()
{ char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));
}
输出结果是
A) gm B) rg C) or D) ga
(56) 若有以下定义:
char s[20]="programming",*ps=s;
则不能代表字符o的表达式是
A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps
(57) 若有以下定义和语句:
char *s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是_____
A) 4 B)5 C)9 D)10
(58) 下面程序的输出是_____
main()
{ char *s="121";
int k=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=%d a=%d b=%d\n",k,a,b);
A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3
(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 B)ABCD
FGH EFG
KL IJ
M
C)EFG D)FGH
JK KL
O
(60) 若有以下程序片段:
char str[]="ab\n\012\\\"";
printf(%d",strlen(str));
上面程序片段的输出结果是_____
A)3 B)4 C)6 D)12