您现在的位置是:首页 > 正文

C语言程序设计

2024-03-01 12:01:12阅读 978
姓 名:毕天硕
学 号:2018510466
班 级:计算机科学与技术一班

C语言程序设计 目录

第一章 程序设计和C语言

例1.1要求在屏幕上输出以下一行信息

#include <stdio.h>
int main()
{
	printf("This is a C program.\n");
	return 0;
 }

运行的结果如下:
在这里插入图片描述

例1.2求两个整数之和

#include<stdio.h>
int main()
{
    int a,b,sum;
    a=123;	
    b=456;
    sum=a+b;
    printf("sum is %d\n",sum);
    return 0;
}

运行的结果如下:
在这里插入图片描述

例1.3求两个整数中较大者

#include <stdio.h>
int main()
{
	int max(int x,int y);
	int a,b,c;
	scanf("%d,%d",&a,&b);
	c=max(a,b);
	printf("max=%d\n",c);
	return 0;
}
int max(int x,int y)
{
	int z;
	if(x>y)z=x;
	else z=y;
	return(z);
}

运行的结果如下:
在这里插入图片描述

第2章 算法——程序的灵魂

例2.1求5的阶乘

#include <stdio.h>
int main()
{
	int i,t;
	t=1;
	i=2;
	while(i<=5)
	{
		t=t*i;
		i=i+1;
	}
	printf("%d\n",t);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例2.2: 求多项式(1-1/2+1/3-1/4+…+1/99-1/100)的值

#include <stdio.h>
int main()
{
	int sign=1;
	double deno=2.0,sum=1.0,term;
	while (deno<=100)
	{
		sign=-sign;
		term=sign/deno;
		sum=sum+term;
		deno=deno+1;
	}
	printf("%f\n",sum);
	return 0;
}

运行的结果如下:
在这里插入图片描述

第3章 最简单的c程序设计——顺序程序设计

例3.1:将华氏温度转换为摄氏温度和绝对温度

#include <stdio.h>
int main()
{
	float f,c;
	f=64.0;
	c=(5.0/9)*(f-32);
	printf("f=%f\nc=%f\n",f,c);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.2:计算存款利息

#include <stdio.h>
int main()
{
	float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;
	p1=p0*(1+r1);
	p2=p0*(1+r2);
	p3=p0*(1+r3/2)*(1+r3/2);
	printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.3:给定一个大写字母,要求用小写字母输出

#include<stdio.h>
int main()
{
	char c1,c2;
	c1='A';
	c2=c1+32;
	printf("%c\n",c2);
	printf("%d\n",c2);
	return 0;
}

运行的结果如下:

例3.4:给出三角形的三边长,求三角形面积

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,s,area;
	a=3.67;
	b=5.43;
	c=5.21;
	s=(a+b+c)/2;
	area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("a=%f\tb=%f\t%f\n",a,b,c);
	printf("area=%f\n",area);
	return 0;
}

运行结果如下:
在这里插入图片描述

例3.5:求ax2+bx+c=0方程的根,设b2-4ac>0

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,disc,x1,x2,p,q;
	scanf("%lf%lf%lf",&a,&b,&c);
	disc=b*b-4*a*c;
	p=-b/(2.0*a);						
	q=sqrt(disc)/(2.0*a);					
	x1=p+q;x2=p-q;
	printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);	
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.6:用%f输出实数,只能得到6位小数

#include <stdio.h>
int main()
{
	double a=1.0;
	printf("%f\n",a/3);
	return 0;
 } 

运行的结果如下:
在这里插入图片描述

例3.7:float型数据的有效位数

#include <stdio.h>
int main()
{
	float a;
	a = 10000/3.0;
	printf("%f\n",a);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.8:先后输出BOY三个字符

#include <stdio.h>
int main()
{
	char a='B',b='O',c='Y';
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.9:从键盘输入BOY三个字符,然后把他们输出至屏幕

#include <stdio.h>
int main()
{
	char a,b,c;
	a=getchar();
	b=getchar();
	c=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

运行的结果如下:
在这里插入图片描述

例3.10:从键盘输入一个大写字母,在显示器上显示对应的小写字母

#include <stdio.h>
int main()
{
	char c1,c2;
	c1=getchar();
	c2=c1+32;
	putchar(c2);
	putchar('\n');
	return 0;
}

运行的结果如下:
在这里插入图片描述

第4章 选择结构程序设计

例4.1:求ax^2+bx+c=0方程的解

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,disc,x1,x2,p,q;
	scanf("%lf%lf%lf",&a,&b,&c);
	disc=b*b-4*a*c;
	if(disc<0)
	printf("This equation hasn real roots\n");
	else
	{
		p=-b/(2.0*a);
		q=sqrt(disc)/(2.0*a);
		x1=p+q;x2=p-q;
		printf("real roots:\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
	}
	return 0;
}

运行的结果如下:
在这里插入图片描述
另一个结果如下:
在这里插入图片描述

例4.2:输入两个实数,按由小到大的顺序输出这两个数

#include <stdio.h>
int main()
{
	float a,b,t;
	scanf("%f,%f",&a,&b);
	if(a>b)
	{
		t=a;
		a=b;
		b=t;
	}
	printf("%5.2f,%5.2f\n",a,b);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例4.3:有三个数a、b、c,要求按由小到大的顺序输出

#include <stdio.h>
int main()
{
	float a,b,c,t;
	printf("请输入三个数:");
	scanf("%f,%f,%f",&a,&b,&c);
	if(a>b)								
	{
		t=a;
		a=b;
		b=t;
	}									
	if(a>c)								
	{
		t=a;
		a=c;
		c=t;
	}									
	if(b>c)								
	{
		t=b;
		b=c;
		c=t;
	}									
	printf("%5.2f,%5.2f,%5.2f",a,b,c);	
	return 0;
}

运行的结果如下:
在这里插入图片描述

例4.4:输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。然后输出最后得到的字符

#include <stdio.h>
int main()
{
	char ch;
	scanf("%c",&ch);
	ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
	printf("%c\n",ch);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例4.5:有一阶跃函数 编写一程序,输入一个x的值输出相应的y值

x<0,y=-1
x=0, y=0
x>0, y=1

#include <stdio.h>
int main()
{
	int x,y;
	scanf("%d",&x);
	if(x>=0)
		if(x>0) y=1;
		else    y=0;
	else        y=-1;
	printf("x=%d,y=%d\n",x,y);
	return 0;
}

运行结果如下:
在这里插入图片描述

例4.6:要求按照考试成绩的等级输出百分制分数段,成绩的等级由键盘输入

#include <stdio.h>
int main()
{
  char grade;
  scanf("%c",&grade);
  printf("your score:");
  switch(grade)
  {  
     case 'A': printf("85~100\n");break;
     case 'B': printf("70~84\n");break;
     case 'C': printf("60~69\n");break;
     case 'D': printf("<60\n");break;    
	   default :  printf("data error!\n");
    }
  return 0;
 }

运行的结果如下:
在这里插入图片描述

例4.7:用switch语句处理菜单命令

#include<stdio.h>
int main()
{
   void action1(int,int),action2(int,int);
   char ch;
   int a=15,b=23;
   ch=getchar();
   switch(ch)
   	{
   		case 'a':
   		case'A':action1(a,b);break;
   		case'b':
   		case'B':action2(a,b);break;
   		default:putchar('\a'); 
   	}
   return 0;
} 
void action1(int x,int y)
{
   printf("x+y=%d\n",x+y);
}
void action2(int x,int y)
{
   printf("x*y=%d\n",x*y);
}

运行的结果如下:
在这里插入图片描述

例4.8:判断某一年是否为润年

#include<stdio.h> 
int main()
{
	int i;
	printf("请输入年份:\n");
	scanf("%d",&i);
	if(i % 4 == 0 && (i % 100 != 0 || i % 400 == 0))
	{
		printf("是闰年\n");
	}
	else
		printf("不是闰年\n");
	return 0;
}

运行的结果如下:
在这里插入图片描述
在这里插入图片描述

例4.9:是例4.1

例4.10:运输公司对用户计算运输费用路程越远,运费越低标准如下

s>250 没有折扣
205<=s<=500 %2折扣
500<=s<=100 %5折扣
1000<=s<=2000 %8折扣
2000<=s<3000 %10折扣
3000<=s %15折扣

#include <stdio.h>	
int main()
{
   int c,s;	
   float p,w,d,f;
   printf("please enter price,weight,discount:");	//提示输入的数据
   scanf("%f,%f,%d",&p,&w,&s);						//输入单价、重量、距离
   if(s>=3000)c=12;								//3000km以上为同一折扣
   else       c=s/250;							//3000km一下各段折扣不同,c的值不相同
   switch(c)
   {
   	case 0:d=0;break;
   	case 1:d=2;break;
   	case 2:
   	case 3:d=5;break;
   	case 4:
   	case 5:
   	case 6:
   	case 7:d=8;break;
   	case 8:
   	case 9:
   	case 10:
   	case 11:d=10;break;
   	case 12:d=15;break;
   }
   f=p*w*s*(1-d/100);
   printf("freight=%10.2f\n",f);
   return 0;
}

运行的结果如下:
在这里插入图片描述

第5章 循环结构程序设计

例5.1:求1+2+3+4+…+100

#include <stdio.h>
int main()
{
	int i=1,sum=0;
	while(i<=100)
	{
		sum = sum + i;
		i++;
	}
	printf("sum=%d\n",sum);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例5.2:用do…while语句求1+2+3+…+100

#include <stdio.h>
int main()
{
	int i=1,sum=0;
	do
	{
		sum=sum+i;
		i++;
	}
	while(i<=100);
	printf("sum=%d\n",sum);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例5.3:while和do…while循环的比较

#include <stdio.h>
int main()
{
	int i,sum=0;
	printf("plesae enter i,i=?");
	scanf("%d",&i);
	while(i<=10)
		{
			sum=sum+i;
			i++;
		}
	printf("sum=%d\n",sum); 
	return 0;
}

运行的结果如下:
在这里插入图片描述

例5.4:在全系1000名学生中矩形慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数以及平均每人捐款的数目

#include <stdio.h>
#define SUM 100000	
int main()
{
	float amount,aver,total;
	int i;
	for(i=1,total=0;i<=1000;i++)
	{
		printf("please enter amount:");
		scanf("%f",&amount);
		total=total+amount;
		if(total>=SUM)break;
	}
	aver=total/i;
	printf("num=%d\naver=%10.2f\n",i,aver);
	return 0;
}

运行的结果如下:
在这里插入图片描述

例5.5:要求输出100~200的不能被3整除的数

#include<stdio.h>
int main()
{
	int n;
	for(n=100;n<=200;n++)
	{
		if(n%3==0)
			continue;
		printf("%d ",n);
	}
	printf("\n");
	return 0;
} 

运行的结果如下:
在这里插入图片描述

例5.6:输出以下4*5矩阵

#include<stdio.h>
int main()
{
	int i,j,n=0;
	for(i=1;i<=4;i++)
		for(j=1;j<=5;j++,n++)
		{
			if(n%5==0) printf("\n");
			printf("%d\t",i*j);
		}
	printf("\n");
	return 0;
} 

运行的结果如下:
在这里插入图片描述

例5.7:用公式求π的近似值直到发现某一项的绝对值小于10的-6次方为止

#include<stdio.h>
#include<math.h>
int main()
{
	int sign=1;
	double pi=0.0,n=1.0,term=1.0;
	while(fabs(term)>=1e-6)
		{
			pi=pi+term;
			n=n+2;
			sign=-sign;
			term=sign/n;
		}
	pi=pi*4;
	printf("pi=%10.8f\n",pi);
	return 0;
 } 

运行的结果如下:
在这里插入图片描述

例5.8:求Fibonacci(斐波那契)数列的前40个数

#include<stdio.h>
int main()
{
   int f1=1,f2=1;
   int i;
   for(i=1;i<=20;i++)
   {
   	printf("%12d %12d",f1,f2);
   	if(i%2==0) printf("\n");
   	f1=f1+f2;
   	f2=f2+f1;
   }
   return 0;
} 

运行的结果如下:
在这里插入图片描述

例5.9:输入一个大于3的整数n,判定它是否为素数

#include<stdio.h>
int main()
{
	int i,n;                             
	printf("please enter a integer number,n=?");
	scanf("%d",&n);                    
	for(i=2;i<n;i++)                    
	if(n%i==0) break;	
	if(i<n) printf("%d is not a prime number.\n",n);       
	else printf("%d is a prime number.\n",n);            
	return 0;
} 

运行的结果如下:
在这里插入图片描述

例5.10:求100~200的全部素数

#include<stdio.h>
#include<math.h>
int main()
{
	int n,k,i,m=0;
	for(n=101;n<=200;n=n+2)
 		{k=sqrt(n);
 		for(i=2;i<=k;i++)
 			if(n%i==0) break;
 		if(i>=k+1)
 			{printf("%d ",n);
 			m=m+1;
			}
		if(m%10==0) printf("\n");
		}
	printf("\n");
	return 0;
} 

运行的结果如下:
在这里插入图片描述

例5.11:译密码

#include <stdio.h>
int main()
{
	char c;
	c=getchar();
	while(c!='\n')
	{
		if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
		{
			if((c>='W'&&c<='Z')||(c>='w'&&c<='z'))c=c-22;
			else c=c+4;	
		}
		printf("%c",c);
		c=getchar();
	}
	printf("\n");
	return 0;
}

运行的结果如下:
在这里插入图片描述

第6章 利用数组处理批量数据

例6.1:对10个数组元素依次赋值为1,2,3,4,5,6,7,8,9,10,要求按顺序输出

#include <stdio.h>
int main()
{ 
	int i,a[10];
	for(i=1;i<=10;i++)			//对数组元素a[0]-a[9]赋值
	{
		a[i]=i;
	}
	for(i=1;i<=10;i++)			//输出a[0]-a[9]共10个数组元素		
	{
		printf("%d ",a[i]);
	}
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.2:用数组来处理求Fibonacci数列问题

#include<stdio.h>
int main()
{
	int a[20]={1,1};          //定义一个数组a并为前两项赋值为1,1
	int i;
	for(i=2;i<20;i++)         //Fibonacci数列计算方法
	{
		a[i]=a[i-2]+a[i-1];
	}
   for(i=0;i<20;i++)         //循环输出a数组
	{
		if(i%5==0) printf("\n");
		printf("%12d",a[i]);
	}
    printf("\n");
	return 0;
} 

运行的结果如下:
在这里插入图片描述

例6.3:有10个地区的面积,要求对他们按由小到大的顺序排列(冒泡排序)

#include <stdio.h>
int main()
{
	int a[10];				
	int i,j,t;				
	printf("input 10 numbers :");
	for(i=0;i<10;i++)		
	{
		scanf("%d",&a[i]);	
	}
	for(j=0;j<9;j++)		
	{
		for(i=0;i<9-j;i++)	
		{
			if(a[i]>a[i+1])	
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}				
		}
	printf("the sorted numbers :");
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);	
	}
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.4:将一个二维数组行和列互换,存到另一个二维数组中(矩阵重置)

#include <stdio.h>
int main()
{
	int a[2][3]={{1,2,3},{4,5,6}};
	int b[3][2],i,j;
	printf("array a:\n");
	for(i=0;i<=1;i++)
	{
		for(j=0;j<=2;j++)
		{
			printf("%5d",a[i][j]);
			b[j][i]=a[i][j];
		}
		printf("\n");
	}
	printf("array b:\n");
	for(i=0;i<=2;i++)
	{
		for(j=0;j<=1;j++)
		{
			printf("%5d",b[i][j]);
		}
		printf("\n");
	}
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.5:有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号

#include<stdio.h>
int main() 
{
	int i, j;
	int max, row, colum;
	int a[3][4] = { { 1, 2, 3, 4 }, { 9, 8, 7, 6 }, { -10, 10, -5, 2 } };
	max = a[0][0];
	for (i = 0; i < 3; i++)
		for (j = 0; j < 4; j++)
			if (max < a[i][j])
			{
				max = a[i][j];
				row = i;
				colum = j;
			}
	printf("max=%d\nrow=%d\ncolum=%d\n", max, row, colum);
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.6:输出一个已知的字符串

#include <stdio.h>	
int main()
{
	char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};
	int i;
	for(i=0;i<15;i++)
		printf("%c",c[i]);
	printf("\n");
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.7:输出一个菱形图

#include <stdio.h>
int main()
{
	char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};
	int i,j;
	for(i=0;i<5;i++)
	{
	for(j=0;j<5;j++)
	printf("%c",diamond[i][j]);
	printf("\n"); 
	}
	return 0;
}

运行结果如下:
在这里插入图片描述

例6.8:输入一行字符,统计其中有多少个单词,单词之间用空格分割开

#include<stdio.h>
int main()
{

	char string[81];
	int i,count=0,word=0;
	char c;
	gets(string);//输入一个字符串给字符数组string
	for (i = 0;(c=string[i])!='\0'; i++)
	{
		if (c == ' ')//如果是空格字符,使word置0
		{
			word = 0;
		}
	else if (word == 0)//如果不是空格字符,且word原来的值为0,使word置1
		{
			word = 1;
			count++;
		}
	}
	printf("There are %d words in this line.\n",count);
	return 0;
}

运行的结果如下:

在这里插入图片描述

例6.9:有3个字符串,要求找出其中“最大”者

#include<stdio.h>
#include<string.h>
int main()
{
	char str[3][20];
	char string[20];
	int i;
	for (i = 0; i < 3; i++)
		gets(str[i]);
	if (strcmp(str[0],str[1])>0)
		strcpy(string,str[0]);
	else
		strcpy(string, str[1]);
	if (strcmp(str[2], string)>0)
		strcpy(string, str[2]);
	printf("\nthe largest string is:%s\n", string);
	return 0;
}

运行结果:
在这里插入图片描述

回到目录

第7章 用函数实现模块化程序设计

例7.1:输出以下结果,用函数调用实现

在这里插入图片描述

#include <stdio.h>
int main()
{
	void print_star();					//声明 print_star 函数
	void print_message();				//声明 print_message 函数
	void print_star();					//声明 print_star 函数
	print_star();						//调用 print_star 函数
	print_message();					//调用 print_message 函数
	print_star();						//调用 print_star 函数
	return 0;
}
void print_star()						//定义 print_star 函数
{
	printf("******************\n");		//输出一行 * 号
}
void print_message()					//定义 print_message 函数
{
	printf("  How do you do!\n");		//输出一行文字信息
}

运行结果:
在这里插入图片描述

例7.2:输入两个函数。要求输出其中值较大者。要求用函数找到大数

int max(int x,int y)
{
	int z;
	z=x>y?x:y;
	return(z);
}
#include<stdio.h>
int main()
{
	int max(int x,int y);
	int a,b,c;
	printf("please enter two interger numbers:");
	scanf("%d,%d",&a,&b);
	c=max(a,b);
	printf("max is %d\n",c);
	return 0;
}

运行结果:
在这里插入图片描述

回到目录

例7.3:将7.2中的max函数定义的变量z改为float型

#include<stdio.h>
int main()
{
	int max(float x,float y);
	float a,b;
	int c;
	scanf("%f,%f",&a,&b);
	c=max(a,b);
	printf("max is %d\n",c);
	return 0;
}
int max(float x,float y)
{
	float z;
	z=x>y?x:y;
	return(z);
}

运行结果:
在这里插入图片描述

例7.4:输入两个实数,用一个函数求出他们之和

#include<stdio.h>
int main()
{
	float add(float x,float y);
	float a,b,c;
	printf("Please enter a and b:");
	scanf("%f,%f",&a,&b);
	c=add(a,b);
	printf("sum is %f\n",c);
	return 0;
}
float add(float x,float y)
{
	float z;
	z=x+y;
	return(z);
}

运行结果:
在这里插入图片描述

回到目录

网站文章

  • 数据库作业

    数据库

    2024-03-01 12:01:03
  • JAVA 实现循环数组的最大在、连续子数组的和

    剑指Offer上有类似的题目:--------------&gt;求数组连续子数组的最大和为多少?--------------&gt;求循环数组连续子数组的最大和为多少?数组好说 判断之前节点的sum...

    2024-03-01 11:58:54
  • Mybatis动态SQL(详细介绍)

    Mybatis动态SQL(详细介绍)

    Mybatis的动态SQL介绍及应用——详细介绍

    2024-03-01 11:58:45
  • Could not initialize class sun.awt.X11GraphicsEnvironment

    Could not initialize class sun.awt.X11GraphicsEnvironment

    在后面加上-Djava.awt.headless=true,然后保存,把本地的文件放进bin目录下,替换掉以前的catalina.sh文件,然后重启,就ok了。在服务器上找到tomcat的安装目录,再到bin目录下找到catalina.sh文件。

    2024-03-01 11:58:37
  • eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)

    eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)

    Eclipse 构建 JPA Project 时,需要指定 JPA的实现,如:下图中的EclipseLink 2.7.3,这其实是一个自定义的用户库。看看,这个用户库包含persistence接口和eclipselink提供的实现。上述的用户库包含的jar包都在下面的压缩包中:EclipseLink_2.7.3.rar附:不过,我更喜欢直接用maven...

    2024-03-01 11:56:21
  • 数字滤波器基础学习

    数字滤波器基础学习

    一、数字滤波器的结构特点与表示方法数字滤波器是数字信号处理的一个重要组成部分。数字滤波实际上是一种运算过程,其功能是将一组输入的数字序列通过一定的运算后转变为另一组输出的数字序列,因此它本身就是一台数...

    2024-03-01 11:56:11
  • Java zip/gzip文件压缩和解压缩

    Java IOJAVA IO 支持的三种压缩格式:zip、gzip、jar。压缩文件@Test public void testZip() throws IOException { File zipFile = new File(&quot;D:\\log.zip&quot;); //压缩后的文件 ZipOutputStream zipOut = null; try{ zipOut

    2024-03-01 11:56:02
  • React全家桶(技术栈)

    第1章:React入门 1.1. React简介 1.1.1. 官网 英文官网: https://reactjs.org/ 中文官网: https://react.docschina.org/ 1.1...

    2024-03-01 11:55:52
  • 全国计算机等级考试试题研究组,全国计算机等级考试题研究中心

    全国计算机等级考试试题研究组,全国计算机等级考试题研究中心

    《全国计算机等级考试系列辅导用书?全国计算机等级考试笔试真题及近期新模拟试卷:二级C++语言(2012年考试专用)(含公共基础知识)》:天合教育网,人气旺的IT教育和技术社区,专家准确解析,详尽易懂,...

    2024-03-01 11:53:31
  • 数据结构——从英文字典树到中文字典树

    昨天面试电话中的一道题,题目如下:给你一个姓名的集合,查找你的名字是否在里面出现,比如搜索姓氏为叶的人,那么会出现所有姓为叶的人,应该如何设计?当时的回答是,姓为key,名为value,存放到multimap中,使用multimap中的count函数统计key为叶的个数,然后用find函数找到第一个key为叶的指针,使用迭代器从该指针向后查找count个元素,判断这count个元素中是否有姓名

    2024-03-01 11:53:24