内容发布更新时间 : 2024/12/22 23:27:56星期一 下面是文章的全部内容请认真阅读。
字符数组习题
1 9 2 10 3 11 4 12 5 13 6 14 7 15 8 一、单项选择题 1.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; 2.以下定义语句中,错误的是________。
A) int a[]={1,2}; B) char a[]={\C) char s[10]={\ D) int n=5,a[n];
3、当接受用户输入的含有空格的字符串时,应使用______函数。
A) gets( ) B) getchar( ) C) scanf( ) D) printf( ) 4、设有数组定义:char array[]=\则strlen(array)的值为______ 。
A) 4 B) 5 C) 6 D) 7
5、设有数组定义:char array[]=\则数组array所占的存储空间为________。 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 6、设有数组定义:char array[10]= \则数组array所占的存储空间为__ _____。 A) 4个字节 B) 5个字节 C) 6个字节 D) 10个字节 7.有如下程序 main()
{ char ch[80]; int j;long s=0;
printf(\ gets(ch); for(j=0;ch[j]>'\\0';j++) s=10*s+ch[j]-'0'; printf(\ }
如果运行时,从键盘上输入由数字组成的字符串, 该程序的功能是______。
A) 测字符数组ch的长度 B) 将数字字符串ch转换成十进制数 C) 将字符数组中的小写字母转换成大写 D) 将字符数组中的大写字母转换成小写 8.以下程序的输出结果是______。 main()
{ char a[10]={'1','2','3',0,'5','6','7','8','9','\\0'}; printf(\ }
A) 123 B) 1230 C) 123056789 D) 1230567890 9.若有定义语句:char s[100],d[100]; int j=0,i=0; ,且s中已赋字 符串,请在划线处填______以实现将字符串s中的内容拷贝到字符串d
1
中。(注意:不得使用逗号表达式) while(s[i]) { d[j]=__ _______; j++; } d[j]=0;
A) s[i] B) s[++i] C) s[i++] D) s[j] 10.当执行下面的程序时,如果输入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); }
11.下列程序执行后的输出结果是
A) you&ne B) you C) me D) err mai()
{ char arr[2][4];
strcpy(arr,\); strcpy(arr[1],\); arr[0][3]='&';
printf(\); }
12.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main()
{ char s[100]; int c, i;
scanf(\); scanf(\); scanf(\); printf(\); }
13.下列描述中不正确的是
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 14. 不能把字符串:Hello!赋给数组b的语句是
A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b=\C) char b[10];strcpy(b,\); D) char b[10]=\15.函数调用:strcat(strcpy(str1,str2),str3)的功能是 A) 将串str1复制到串str2中后再连接到串str3之后 B) 将串str1连接到串str2之后再复制到串str3之后
C) 将串str2复制到串str1中后再将串str3连接到串str1之后 D) 将串str2连接到串str1之后再将串str1复制到串str3中 二、程序分析题
1、分析程序运行的结果 main()
2
{ char ch[80]=\ int j;long s=0; puts(ch);
for(j=0;ch[j]>'\\0';j++)
if(ch[j]>='a'&&ch[j]<='z') ch[j]=ch[j]-'b'+'B'; puts(ch); } 2、main()
{ char s[ ]=\ int i,j=0;
for(i=1;i<6;i++) if(s[j]>s[i]) j=i;
printf(\ } 3、main()
{ char a[]=\ int i,j,k; k=strlen(a); for(i=0;i<=k-1;j+=1) for(j=i+1;j
{t=a[i];a[i]=a[j];a[j]=t;} puts(a);
printf(\ }
4、main( )
{ char ch[2][5]={\ int i,j;long s=0; for(i=0;i<2;i++)
for(j=0;ch[i][j]>'\\0';j++) s=10*s+ch[i][j]-'0'; printf(\ }
5、#include
{ char str[ ]=\ int i; for(i=0;str[i]!='\\0';i++)
if(str[i]<'0' || str[i]>'9') printf(\ printf(\6、main()
{ char ch[7]={65a2b321\int i,s=0
for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf(\); }
3
7、以下程序输出的结果是 #include #include main()
{ char w[][10]={\int k;
for (k=1;k<3;k++)
printf(\); }
8、main()
{ char a[]=\int v[5]={0},k;
for(k=0;s[k];k++) switch(s[k])
{ default:v [s[k]] ++; case '1': v [s[k]]++; case '3': v [s[k]]++; case '2': v [s[k]]++; }
printf(\); }
9、下列程序中字符串中各单词之间有一个空格,则程序的输出结果是 【31】 。 #include “string.h” main( )
{ char strl[]=\, *p1=strl; strcpy(strl+strlen(strl)/2,\); printf(\,pl); }
三、程序填空题
1、以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串:no!,并在主函数中输出.所谓回文即正向与反向的拼写都一样,例如:adgda.请填空. #include \
char *huiwen(char *str) {
char *p1,*p2; int i,t=0;
p1=str; p2= for(i=0;i<=strlen(str)/2;i++) if(*p1++!=*p2--) { t=1; break; }
if( ) return (\); else return (\); }
main()
4