复试上机题集(3)

版权声明:转载请注明出处 https://blog.csdn.net/nanhuaibeian/article/details/88868262
  1. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个?
    第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
    以后每天早上都吃了前一天剩下?的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    思路逆推
#include "stdio.h"

void main(){
	int sum=1,i;
	for(i=9;i>0;i--){
		sum=sum+1;
		sum=sum*2;
		printf("%d-->%d\n",i,sum);
	}
} 
  1. 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
    有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
#include "stdio.h"
void main(){
	char i,j,k;//i->x,j->y,k->z
	for(i='a';i<='c';i++){
		for(j='a';j<='c';j++){
			for(k='a';k<='c';k++){
				if(i!=j&&i!=k&&j!=k){
					if(i!='a'&&i!='c'&&k!='c')
					printf("x->%c,y->%c,z->%c\n",i,j,k);
				}
			}
		}
	}	
}
  1. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
#include "stdio.h"
void main(){
	int a[5];
	int data=12333421;
	int k=0,temp=data,i,flag=1;
	while(temp!=0){
		a[k++]=temp%10;
		temp=temp/10;
		printf("%d\n",a[k-1]);
	}
	for(i=0;i<k/2;i++){
		if(a[i]!=a[k-1-i]) flag=0;
	}
	if(flag)	printf("yes");
	else printf("no");
		
}
  1. 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中
#include "stdio.h"
#include "string.h"

void main() {
	FILE *in1,*in2,*out;
	if((in1=fopen("1.txt","r"))==0) {
		printf("error");
		return;
	}
	if((in2=fopen("2.txt","r"))==0) {
		printf("error");
		return;
	}
	if((out=fopen("3.txt","w"))==0) {
		printf("error");
		return;
	}
	char ch[100],c,temp;
	int k=0,i,j;
	while(!feof(in1)) {
		c=fgetc(in1);
		if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
			ch[k++]=c;
	}
	while(!feof(in2)) {
		c=fgetc(in2);
		if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
			ch[k++]=c;
	}
	for(i=0;i<strlen(ch);i++){
		k=i;
		for(j=i;j<strlen(ch);j++){
			if(ch[k]>ch[j]) k=j;
		}
		if(k!=i){
			temp=ch[i];
			ch[i]=ch[k];
			ch[k]=temp;
		}
	}
	for(i=0;i<strlen(ch);i++){
		fputc(ch[i],out);
		fputchar(ch[i]);
	}
	fclose(in1);
	fclose(in2);
	fclose(out);
}
  1. 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,
    9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
#include "stdio.h"
void main(){
	int a;
	for(a=10;a<100;a++){
		if(8*a>=10&&8*a<100){
			if(9*a>=100&&9*a<1000){
				if(809*a==800*a+9*a)
				printf("%d,%d",a,809*a);
			}
		}		
	} 
}

猜你喜欢

转载自blog.csdn.net/nanhuaibeian/article/details/88868262