📄 练习(五).txt
字号:
p=q;
while( ② ){*p=*(p-1); ③ ;}
*p=max;
puts(p);
}
① (A) p++
(B) p=q
(C) q=p
(D) q++
② (A) p>str
(B) p>=str
(C) *p>str[0]
(D) *p>=str[0]
③ (A) p++
(B) str--
(C) p--
(D) i--
42、以下程序的功能是删除字符串s中的所有空格(包括TAB符,回车符,换行符),请选择填空。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void main()
{
char c,s[80]; int i=0;
c=getchar();
while(c!=EOF){s[i]=c; i++; c=getchar();}
s[i]='\0';
delspace(s);
puts(s);
}
delspace(char *p)
{
int i,t; char c[80];
for(i=0,t=0; ① ; i++)
if(!isspace( ② )) c[t++]=p[i];
c[t]='\0';
strcpy(p,c);
}
① (A) p[i]
(B) !p[i]
(C) p[i]='\0'
(D) p[i]=='\0'
② (A) p+i
(B) *c[i]
(C) *(p+i)
(D) *(c+i)
43、下面程序的功能是将字符串s中的内容按逆序输出,但不改变串中的内容,请选择填空。
#include<stdio.h>
vodi main()
{
char s[10]="hello!";
inverp(s);
}
inverp(char *a)
{
if( ① ) return 0;
inverp(a+1);
printf("%c", ② );
}
① (A) *a!='\0'
(B) *a1=NULL
(C) !*a
(D) !a*==0
② (A) *(a-1)
(B) *a
(C) *(a+1)
(D) *(a--)
44、下面程序的功能是用递归法将一个整数存放到一个字符数组中。存放时按逆序存放。如483存放成"384",请选择填空。
#include<stdio.h>
void convert(char *a,int n)
{
int i;
if((i=n/10)!=0) convert(①,i);
*a=②;
}
void main()
{
int number;
char str[10]=" ";
scanf("%d",&number);
convert(str,number);
puts(str);
}
① (A) a++
(B) a+1
(C) a--
(D) a-1
② (A) n/10
(B) n%10
(C) n/10+'0'
(D) n%10+'0'
45、下面程序的功能是用递归法将一个整数转换成字符形式输出。例如输入483,应输出字符串"483"。请选择填空。
#include<stdio.h>
void convert(int n)
{
int i;
fi(( ① )!=0) convert(i);
putchar(②+'0');
}
void main()
{
int number;
scanf("%d",&number);
if(number<0){putchar('-');number=-number;}
convert(number);
}
① (A) i=n/10
(B) i=n%10
(C) i=n--
(D) i=--n
② (A) n
(B) n/10
(C) n%10
(D) i%10
46、下面程序的功能是按字典顺序比较两个字符串s,t的大小,如果s大于t则返回正值,等于则返回负值。请选择填空。
#include<stdio.h>
s(char *s,char *t)
{
for( ;*s==*t; ①) ir(*s=='\0') return 0;
return *s-*t;
}
void main()
{
char a[20],b[10],*p,*q;
int i;
p=&a; q=&b;
scanf("%s%s",a,b);
i=s( ② );
printf("%d",i);
}
① (A) s++
(B) t++
(C) s++;t++
(D) t++,s++
② (A) p,q
(B) q,p
(C) a,p
(D) b,q
47、下面程序的功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。请选择填空。
#include<stdio.h>
#include<string.h>
void main()
{
char string[100],*p,*q,*r,c;
printf("Please input a string:");
gets(string);
for(p=string;*p;p++)
{
for(q=r=p;*q;q++) if( ① ) r=q;
if( ② ){c=*r; *r=*p; *p=c;}
}
for(p=string; *p; p++)
{
for(q=p; *p==*q; q++);
strcpy(③,q);
}
printf("result:%s\n",string);
}
① (A) *r>*q
(B) *r>*p
(C) r>q
(D) r>p
② (A) r==q
(B) r!=q
(C) p!=q
(D) r!=p
③ (A) p++
(B) p
(C) p-1
(D) p+1
48、下面程序的功能是将字符串a的所有字符传送到字符串b中,要求每传送三个字符后再存放一个空格,例如字符串a为"abcdefg",则字符串b为"abcdefg",请选择填空。
#include<stdio.h>
void main()
{
int i,k=0;
char a[80],b[80],*p;
p=a;
gets(p);
while(*p)
{
for(i=1; ① ; p++,k++,i++) b[i]=*p;
if( ② ){b[k]=' ';k++;}
}
b[k]='\0';
puts(b);
}
① (A) i<3
(B) i<=3
(C) i<3&&*p!='\0'
(D) i<=3&&*p
② (A) i==4
(B) *p=='\0'
(C) !*p
(D) i!=4
49、当运行以下程序时,从键盘输入Happy!<CR>(<CR>代表回车),则下面程序的运行结果是( )
#include<stdio.h>
#include<string.h>
void main()
{
char str[10],*p=str;
gets(p);
printf("%d\n",stre(p));
}
stre(char str[])
{
int num=0;
while(*(str+num)!='\0') num++;
return num;
}
(A) 7
(B) 6
(C) 5
(D) 10
50、下面程序的运行结果是( )
#include<stdio.h>
void main()
{
static char a[]="Language",b[]="programe";
char *p1,*p2; int k;
p1=1; p2=b;
for(k=0; k<=7; k++)
if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k));
}
(A) gae
(B) ga
(C) Language
(D) 有语法错误
51、下面程序的运行结果是( )
#include<stdio.h>
void main()
{
int a=28,b;
char s[10],*p;
p=s;
do{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}while(a>0);
*p='\0';
puts(s);
}
(A) 10
(B) C2
(C) C51
(D) \0
52、下面程序的运行结果是( )
#include<stdio.h>
void delch(char *s)
{
int i,j;
char *a;
a=s;
for(i=0,k=0;a[i]!='\0';i++)
if(a[i]>='0'&&a[i]<='9') {s[j]=a[i];j++;}
s[j]='\0';
}
void main()
{
char *item="a34bc";
delch(item);
printf("\n%s",item);
}
(A) abc
(B) 34
(C) a34
(D) a34bc
53、下面程序的运行结果是( )
#include<stdio.h>
#include<string.h>
void main()
{
char *s1="AbDeG";
char *s2="AbdEg";
s1+=2; s2+=2;
printf("%d\n",strcmp(s1,s2));
}
(A) 正数
(B) 负数
(C) 零
(D) 不确定的数
54、当运行以下程序时,从键盘输入MyBook<CR>(<CR>表示回车),则下面程序的运行结果是( )
#include<stdio.h>
char fun(char *s)
{
if(*s<='Z'&&*s>='A') *s+=32;
return *s;
}
void main()
{
char c[80],*p;
p=c;
scanf("%s",p);
while(*p){*p=fun(p); putchar(*p); p++;}
printf("\n");
}
(A) mYbOOk
(B) my book
(C) my
(D) My Book
55、下面程序的运行结果是( )
#include<stdio.h>
#include<string.h>
fun(char *s)
{
char a[7];
s=a;
strcpy(a,"look");
}
void main()
{
char *p;
fun(p);
puts(p);
}
(A) look (look后面有三个空格)
(B) look
(C) look (look后面有两个空格)
(D) 不确定的值
56、下面程序的运行结果是( )
#include<stdio.h>
#include<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;}
}
void main()
{
char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
(A) 7654321
(B) 1714171
(C) 1711717
(D) 7177171
57、下面程序的运行结果是( )
#include<stdio.h>
void main()
{
char *p,s[]="ABCDEFG";
for(p=s; *p!='\0'; )
{
printf("%s\n",p);
p++;
if(*p!='\0') p++;
else break;
}
}
(A) ABCDEFG
ABCDE
ABC
A
(B) ABCDEFG
BCDEF
CDE
D
(C) A
C
E
G
(D) ABCDEFG
CDEFG
EFG
G
58、下面程序的运行结果是( )
#include<stdio.h>
#include<string.h>
void main()
{
char *p1,*p2,str[50]="abc";
p1="abc"; p2="abc";
strcpy(str+1,strcat(p1,p2));
printf("%s\n",str);
}
(A) abcabcabc
(B) bcabcabc
(C) aabcabc
(D) cabcabc
59、下面程序的运行结果是( )
#include<stdio.h>
void main()
{
char str[]="cdalb";
abc(str);
puts(str);
}
abc(char *p)
{
int i,j;
for(i=j=0; *(p+i)!='\0'; i++)
if(*(p+i)>='d'{*(p+j)=*(p+i);j++;}
*(p+j)='\0';
}
(A) dalb
(B) cd
(C) dl
(D) c
60、下面程序的运行结果是( )
#include<ctype.h>
fun(char *p)
{
int i,t;
char ts[81];
for(i=0,t=0;p[i]='\0';i+=2)
if(!isspace(*p+i)&&(*(p+i)!='a'))
ts[t++]=toupper(p[i]);
ts[t]='\0';
strcpy(p,ts);
}
void main()
{
char str[81]={"a b c d ef g"};
fun(str);
puts(str);
}
(A) abcdeg
(B) bcde
(C) ABCDE
(D) BCDE
61、若有以下定义,则对a数组元素的正确引用是( )
int a[5],*p=a;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -