⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 练习(五).txt

📁 谭浩强的C语言题集
💻 TXT
📖 第 1 页 / 共 3 页
字号:
		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 + -