【2000年4月】(30) 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为
A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节
【答案】C
【2000年4月】(43) 设已有定义: char *st="how are you"; 下列程序段中正确的是
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
【答案】A
【2000年4月】(44) 下列程序执行后的输出结果是
A) you&me B) you C) me D) err
main()
{ char arr[2][4];
strcpy(arr,"you"); strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s \n",arr);
}
【答案】A
【2000年4月】(45) 下列程序执行后的输出结果是
A) hello B) hel C) hlo D) hlm
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf("\n");}
【答案】C
【2000年4月】(12) 下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
#include
#include
main()
{ char a[]="clanguage",t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<=k; 【 】 )
if( 【 】 )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}
【答案】j+=2, a[i]>a[j]
【2000年4月】(14) 以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。
#include
main()
{ char *p, s[6];
int n;
p=s;
gets(p);
n=*p-'0';
while( 【 】字符串函数编程题!='\0')n=n*8+*p-'0';
printf("%d \n",n);
}
【答案】*(++p)
【2001年4月】(43) 当执行下面的程序时,如果输入ABC,则输出结果是
A) ABC6789
B) ABC67
C) 12345ABC6
D) ABC456789
#include “stdio.h”
#include “string.h”
main()
{ char ss[10]=“1,2,3,4,5”;
gets(ss); strcat(ss, “6789”); printf(“%s\n”,ss);
}
【答案】A
【2001年9月】(41) 以下程序的输出结果是
main()
{ char st[20]= “hello\0\t\\”;
printf(“%d %d \n”,strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
【答案】B
【2001年9月】(42) 以下选项中,不能正确赋值的是
A) char s1[10];s1=“Ctest”;
B) char s2[]={‘C’, ‘t’, ‘e’, ‘s’, ‘t’};
C) char s3[20]=“Ctest”;
D) char *s4=“Ctest\n” ;
【答案】A
【2001年9月】(15) 若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while(s[i]){ d[j]= 【 】;j++;}
d[j]=0;
【答案】s[i++]
【2002年4月】(31) 以下程序段的输出结果是
char s[]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A) 9 B) 12 C) 13 D) 14
【答案】A
【2002年4月】(45) 以下程序的输出结果是
#include
#include
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb>=b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A) 8 B) 3 C) 1 D) 7
【答案】D
【2002年4月】(13) 以下程序的输出结果是【 】 。
main()
{ char s[]="abcdef";
s[3]=‘\0';
printf("%s\n",s);
}
【答案】abc
【2002年4月】(18) mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int mystrlen(char *str)
{ int i;
for(i=0; 【 】!=‘\0';i++);
return(【 】);
}
【答案】str[i], i
【2002年9月】(33)有以下程序
main()
{ char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是______。
A) 9,9 B) 8,9 C) 1,8 D) 9,8
【答案】D
【2002年9月】(36)有以下程序
#include <string.h>
main()
{ char *p="abcde\0fghjik\0";
printf("%d\n",strlen(p));
}
程序运行后的输出结果是______。
A) 12 B) 15 C) 6 D) 5
【答案】D
【2002年9月】(50)以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。
#include <string.h>
void f(char p[][10],int n)
{ char t[20]; int i,j;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if(strcmp(p[i],p[j])<0)
{ strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{ char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};int i;
f(p,5); printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是
A) 6 B) 4 C) 5 D) 3
【答案】C
【2002年9月】(17) 函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include <stdio.h>
int sstrcmp(char *s,char *t)
{ while(*s&&*t&&*s==【 】)
{ s++;t++; }
return 【 】;
}
【答案】*t, *s-*t
【2003年4月】(36) 有以下程序
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是
A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6
【答案】C
【2003年4月】(37) 阅读以下函数
fun(char *sl,char *s2)
{ int i=0;
while(sl[i]==s2[i]&&s2[i]!='\0') i++;
return(sl[i]=='\0'&&s2[i]=='\0');
}
此函数的功能是
A) 将s2所指字符串赋给s1
B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论