设有char str〔10〕,下列语句正确的是()
第1题:
设有char str[10],下列语句正确的是()
A.scanf("%s"0,&str);
B.printf("%c",str);
C.printf("%s",str[0]);
D.printf("%s",str);
第2题:
下列程序的运行结果为( )。
#include<stdio.h>
voidabc(Char*str)
{ inta,b,i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!='a')
str[j++]=str[i];
str[j]='\0';
}
void main()
{ char str[]="abcdef";
abc(str);
printf("str[]=%s",str);
}
A.str[]=bcdef
B.str[]=abcdef
C.str[]=a
D.str[]=ab
第3题:
阅读下列程序,当运行函数时,输入asd af aa z67,则输出为
#include
#include
#include
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!=′\0′;i++)
if(str[i]!=′ ′)str[j++]=str[i];
str[j]= ′\0′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A.asdafaaz67
B.asd af aa z67
C.asd
D.z67
第4题:
以下C程序段的输出结果是(30)。 #include <stdio. h> void abc(char *str){ int a, b; for(a=b=0;str[a]!='\O';a++)if(str[a]!='c') str[b++]=str[a]; str[b]='\O'; } void main(){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }
A.str[]=a
B.str[]=ab
C.str[]=abdef
D.str[]=abcdef
第5题:
以下程序运行后输入:3,abcde<回车>,则输出结果是【 】
include <string.h>
move(char *str, int n)
{ char temp; int i;
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main( )
{ char s[50]; int n, i, z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1; i<=n; i++) move(s, z);
printf("%s\n",s);
}
第6题:
以下正确的程序段是
A.cgar str[20]; scanf("%s",&str);
B.char*p; scanf("%s",p);
C.char str[20]; scanf("%s",&str[2])
D.char str[20],*p=str; scanf("%s",p[2]);
第7题:
设有char str[10],下列语句正确的是A.scanf("%s",&str); B.printf("%c",str); C.printf("%s",str[0]); D.printf("%s",str);
第8题:
下列程序中,正确的为______。
A.main() { int *pb=&b; float 1>=15.25; print f("%d\n" ,*pb); }
B.amin() { int a,*pa; a=10; *pa=a; prinffC%d",*pa); }
C.main() { char s[20]; char *ps=&s; scanf("%s",*p); printf("%s",*p); }
D.main() { char str[10]; int *ps=str[0]; str="abcdefg"; printf("%s",*p); }
第9题:
当运行以下程序时,输入abcd,程序的输出结果是:( )。
insert(char str[])
{int i;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{char str[40];
scanf("%s",str);insert(str);
}
第10题:
下列程序段的输出结果是()。 char str[ ]= “abc/0def/0ghi”, *q=str; printf(“%s”,q+5);
第11题:
下面语句正确的是()
第12题:
int*p;*p=20
char*s=”abcdef”;printf(“%s/n”,s)
charstr[]=”abcd”;str++
charstr[]={‘a’,’b’,’c’};printf(“%s”,str)
第13题:
以下正确的程序段是
A.cgar str[20]; scanf(“%s",&str);
B.char *p; scanf("%s",p);
C.cha str[20]; scanf("%s",&str[2])
D.char str[20],*p=str; scanf("%s",p[2]);
第14题:
下列程序的运行结果为
#include<stdio.h>
void abc(char*str)
{ int a,b;
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';}
void main()
{ char str[]="abcdef";
abc(str);
printf("str[]=%s",str); }
A.str[]=abdef
B.str[]=abcdef
C.str[]=a
D.str[]=ab
第15题:
当输入a1b2c3d4e时,下列程序的运行结果为______。main(){ char str[40]; printf("请输入含有4个数字字符的字符串:\n"); scanf("%s",&str); insert(str);}insert(str)char str[];{ int i; for(i=strlen(str);i>0;i--) { str[2*i)=str[i]; str[2*i-1)=' '; } printf("\n结果是:%s",str);}
A.a 1 b 2 c 3 d 4 e
B.1 2 3 4
C.a 1 b 2
D.因输入错误,程序出错
第16题:
若有以下说明,则能打印出“Yu”的语句是______。 struct samp { char name[10]; int number; }kk[3]={{"WarBin",1},{"LiYu",2},{"LuHui",3}}; struct samp*str[3]; str[0]=&kk[0];str[1]=&kk[1];str[2]=&kk[2];
A.printf("%s\n",str[1].name[2]);
B.printf("%s\n",str[1]->name+2);
C.printf("%s\n",str[2].name[2]);
D.printf("%s\n",str[2]->name+2);
第17题:
下列程序的输出结果是______。 char*fun(char*str,int n) { int i; char*p=str; for(i=0;i<10;i++,str++) *str='a'+i; return++p; } main() { char a[10]; printf("%s\n",fun(a,10)); }
A.ABCDEFGHIJ
B.abcdefghij
C.bcdefghij
D.不确定的值
第18题:
以下程序: #include<stdio.h> main() {char str[10]; scanf("%s",&str); printf("%s\n",str); } 运行上面的程序,输入字符串how are you,则程序的执行结果是( )。
A.how
B.how are you
C.h
D.howareyou
第19题:
下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdio。h> include<string.h> void proc(char*strl,char*str2,char*str) { int i,j;char ch; i=0;j=strleu(str2)-1; //****found**** while(i>j) { ch=str2[i];str2[i]=str2[j];str2[j]=ch; i++;j--; } while(*str1||*str2) { if(*str1){*str=*str1;str++;str1++;) if(*str2){*str=*str2;str++;str2++;) } //****found**** *str=0: } void main { char s1[100],s2[100],t[200]; system("CLS"); printf("\nEnter s1 string:"); scanf("%s",sl); printf("\nEnter s2 string:"); scanf("%s",s2); proc(s1,s2,t); printf("\nThe result is:%s\n",t); }
(1)错误:while(i>j)
正确:while(i<j)
(2)错误:*str=0;
正确:*str='\0 ';
【解析】由函数proc可知,变量i和j分别存放的是字符串str前面和后面第i个字符的位置,当i<j时,两个位置的字符交换。因此,“while(i>j)”应改为“while(i<j)”;交叉合并完成后,要为新的字符串添加结束符,因此,“*str= 0;”应改为“*str='\0';”,
第20题:
阅读下列程序,当运行函数时,输入asd af aa z67,则输出为
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!=′ \0′;i++)
if(str[i]!=′ ′)str[j++]=str[i];
str[j]= ′\0′;
}
main()
{
char str[81];
int n;
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A.asdafaaz67
B.asd af aa z67
C.asd
D.z67
第21题:
用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#define N 10
char str[N];
main()
{ int i,flag;
for(flag=1;flag==1;)
{ scanf("%s",str);
flag=0;
printf("\n");
}
sort(___(4)___);
for(i=0;i<N;I++)
printf("%c",str[i]);
printf("\n");
}
sort(char str[N])
{ int i,j;
char t;
for(j=1;j<N;J++)
for(i=0;(i<N-J)&&(STR[I]!='\0');I++)
if(str[i]>str[i+1])
{ t=str[i];
____(5)____;
____(6)____;
}
}
第22题:
已有定义:charstr1[15]={“university”},str2[15];则以下语句中正确的是()
第23题:
scanf(”%s”,&str);
print[(”%c”,str);
printf(”%s”,str〔0〕);
printf(”%s”,str);