• 上机练习五


    导航:复试上机历年真题,题目未搜集全
    十四:2003 十三:2004
    十二:2005 十一:2006
    十:2007 九:2008
    八:2009 七:2012
    六:2013 五:2014
    四:2015 三:2017
    二:2018 一:2019

    五、2014

    1、字符转换

    题目:
    从键盘读入一个字符串,若遇到字母,则输出 0;若遇到数字则输出 1;否则不输出。例如:输入 ab2&3@c,输出 00110

    代码:

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
    	char str[100];
    	gets(str);
    	int len = strlen(str);
    	
    	for(int i=0;i<len;i++)
    	{
    		if((str[i]>='a'&&str[i]<='z')||str[i]>='A'&&str[i]<='Z')
    			putchar('0'); 
    		else if(str[i]>='0'&&str[i]<='9')
    			putchar('1'); 
    	}
    	
    	return 0;
     } 
    

    2、空气浓度计算

    题目:
    空气质量指数是描述空气质量状况的无量纲指数,根据污染物的浓度换算得出。编程输入浓度 C,输出指数 I。其中 PM2.5 的浓度和级别 I 列表如下(图有点看不太清)

    浓度计算公式为:result = ((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+Imin

    代码:

    #include<stdio.h>
    
    
    //result = ((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+Imin
    
    
    double calcu(double Cmax, double Cmin, double Imax, double Imin, double C)
    {
    	double res;
    	res = ((Imax-Imin)/(Cmax-Cmin))*(C-Cmin)+Imin;
    	return res;
    }
    
    
    int main()
    {
    	double res, C;
    	scanf("%lf", &C);
    	
    	if(C>=0&&C<=12.0)
    		res = calcu(0, 12.0, 0, 50, C);
    	else if(C>=12.1&&C<=35.4)
    		res = calcu(12.1, 35.4, 51, 100, C);
    	else if(C>=35.5&&C<=55.4)
    		res = calcu(35.5, 55.4, 101, 150, C);
    	else if(C>=55.5&&C<=150.4)
    		res = calcu(55.5, 150.4, 151, 200, C);
    	else if(C>=150.5&&C<=250.4)
    		res = calcu(150.5, 250.4, 201, 300, C);
    	else if(C>=250.5&&C<=350.4)
    		res = calcu(250.5, 350.4, 301, 400, C);		
    	else if(C>=350.5&&C<=500.4)
    		res = calcu(350.5, 500.4, 401, 500, C);		
    	
    	printf("浓度C为%5.2f时,指数I为%5.2f
    ", C, res); 
    				
    	return 0;
    }
    

    3、汉明距离

    题目:
    两个长度相等的二进制字符串的汉明距离定义为不相等的字符个数,编程计算
    汉明距离。例如:10010100 和 10000101 的汉明距离为 2

    代码:

    #include<stdio.h>
    #include<string.h>
    
    const int maxn = 20;
    
    
    int main()
    {
    	
    	char str1[maxn], str2[maxn];
    	int len, num;
    	scanf("%s", str1);
    	scanf("%s", str2);
    	len = strlen(str1);
    	num = 0;
    	for(int i=0;i<len;i++)
    	{
    		if(str1[i]!=str2[i])
    			num++;
    	}
    	
    	printf("%s与%s的汉明距离为%d
    ", str1, str2, num); 
    	
    	return 0;
    }
    

    4、李白买酒

    题目:
    李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。N 遇店和花,喝光壶中酒。借问此壶中,原有多少酒。编程输入 N,输出原来的酒数和遇店、遇花的过程。
    例如:输入 N=3,输出:原酒数为 1 斗;第一次遇店加一倍即加 1 斗,剩 2斗;第 1 次遇花喝 1 斗,剩 1 斗;第 2 次遇店加一倍即加 1 斗,剩 2 斗;第一次遇花喝 1 斗,剩 1 斗。

    代码:

    #include<stdio.h>
    
    int main()
    {
    	int N;
    	scanf("%d", &N);
    	
    	double res=0;
    	for(int i=0;i<N;i++)
    		res = (res+1)/2;
    	printf("原来有%6.3f斗酒
    ",res); 
    	
    	int i=0; 
    	while(res!=0)
    	{
    		i++;
    		printf("第%d遇店加一斗,剩下%6.3f
    ", i, res*2);
    		printf("第%d遇花喝一斗,剩下%6.3f
    ", i, res*2-1);
    		res = res*2-1; 
    	}
    	
    	
    	return 0;
     } 
    
  • 相关阅读:
    Linux(CentOS)下squid代理服务器配置-五岳之巅
    用类实现二叉树
    django--02 模板的使用
    django --01 helloworld样例入门
    微指数爬虫
    celery_01 _celery安装启动
    python多线程几种方法实现
    crontab问题处理
    python可视化--matplotlib
    python网页爬虫--京东家电版块
  • 原文地址:https://www.cnblogs.com/welan/p/12709214.html
Copyright © 2020-2023  润新知