蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
来源:互联网 发布:淘宝优惠网址 编辑:程序博客网 时间:2024/06/05 08:43
1. 迭代求立方根
源代码:
#include <stdio.h>int main(){double x,n;double y0,y1;while(scanf("%lf %lf",&x,&n)!=EOF){if(n==0) //迭代次数为0,直接开3次方得结果 y0=x;else //迭代次数为n(n>=1) {y1=x; //y1初值=x while(n) //进行n次迭代 {y0= y1*2/3 + x/(3*y1*y1); //使用迭代式,结果赋给y0 y1=y0; //令y1等于上次迭代的结果 n--;}}printf("%lf\n",y0); //输出最后一次(第n次)迭代的结果 }return 0;}程序截图:
2. 数组排序
源代码:
法一:利用排序算法+自定义输出次序函数完成
#include <stdio.h>#define maxn 10010void Sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}void Outputrank(int a[],int b[],int rank[],int n)//输出数组元素排序次序 {int i,j=1; //j记录次序 int p,q,num=0; //num记录找到的元素个数 for(i=1;i<n;i++) //从第2个元素开始遍历 {if(a[i]!=a[i-1]) //a[i]与a[i-1]不等,a[i]次序值比前者大1 {rank[i]=j+1;j++;}else //相等,则a[i]次序值与a[i-1]相等 rank[i]=rank[i-1];}for(p=0;p<n;p++) //遍历排序前与排序后的数组 {for(q=0;q<n;q++){if(b[p]==a[q]) //排序后的数组中的元素在排序前数组中找到 {num++; //找到元素数+1 if(num==n) //找到最后一个元素,输出次序并换行 printf("%d\n",rank[q]);else //否则输出次序加一个空格 printf("%d ",rank[q]);break; //找到,不再继续查找后续元素 }}}}int main(){int i,n;int a[maxn],b[maxn],rank[maxn]={1}; //三个数组分别存放输入数据 排序后数据 排序次序(开始全部初始化为1) while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){scanf("%d",&a[i]);b[i]=a[i];}Sort(a,n); //对a数组冒泡排序 Outputrank(a,b,rank,n); //输出数组元素排序次序 }return 0;}
法二:利用排序算法+折半查找算法完成,效率有一定提高
#include <stdio.h>#define maxn 10010int HalfFind(int a[],int n,int x) //折半查找元素x {int low=0,high=n-1,mid;while(low<=high){mid=(low+high)/2;if(a[mid]==x) //找到返回元素x的下标 return mid+1;else if(a[mid]<x)low=mid+1;elsehigh=mid-1;}}void Sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}int main(){int i,n,t;int a[maxn],b[maxn],rank[maxn]; //三个数组分别存放输入数据 排序后数据 排序次序while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){scanf("%d",&a[i]);b[i]=a[i];}Sort(b,n); //对b数组冒泡排序 t=0;for(i=0;i<n-1;i++) //删除排好序的b数组中的重复元素{if(b[i]!=b[i+1]) //t记录排序次序 rank[t++]=b[i];}rank[t++]=b[n-1]; //把b数组最后一个元素作为rank数组的最后一个元素 for(i=0;i<n;i++) //在rank数组中查找a数组(原始数组)中的元素,依次输出各元素下标 { if(i!=n-1) printf("%d ",HalfFind(rank,t,a[i])); else printf("%d\n",HalfFind(rank,t,a[i])); }}return 0;}程序截图:
3. 字符串的查找删除
- 题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
- 输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
- 输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
- 样例输入:
in#include int main(){printf(" Hi ");}
- 样例输出:
#cludetma(){prtf("Hi");}
- 提示:
注:将字符串中的In、IN、iN、in删除。
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#define maxlen 1001//以下三个数组分别记录短字符串 若干个字符串 删去指定字符后的若干行字符串 char str[maxlen],string[maxlen][maxlen],string2[maxlen][maxlen];int main(){ int i,j,k,n;int index=0; gets(str); while(gets(string[index])) {if(strcmp(string[index],"}") == 0)break;index++; }for(i=0;i<strlen(str);i++) //str大写转换为小写{if(str[i]>='A' && str[i]<='Z')str[i]+=32;}for(i=0;i<=index;i++) //一行一行处理{for(j=0;j<strlen(string[i]);j++){string2[i][j]=string[i][j]; //string复制到string2中if(string[i][j]>='A' && string[i][j]<='Z')string[i][j]+=32;}j=0,k=0; //匹配处理for(j=0,k=0;j<strlen(string[i]); ) //继续比较后一字符 {if(string[i][j+k] == str[k]){k++;if(k == strlen(str)) //匹配成功j+=k;}else //重新开始新的一轮匹配{if(string[i][j]!=' ') //去掉空格printf("%c",string2[i][j]);j++;k=0;}}printf("\n");} return 0;}程序截图:
0 0
- 蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
- 蓝桥杯——2008 北航计算机研究生机试真题(2017.2.8)
- 蓝桥杯——计算机研究生机试真题(2017.2.14)
- 蓝桥杯——计算机研究生机试真题(2017.2.15)
- 蓝桥杯——计算机研究生机试真题(2017.2.16)
- 蓝桥杯——计算机研究生机试真题(2017.2.17)
- 蓝桥杯——计算机研究生机试真题(2017.2.18)
- 蓝桥杯——计算机研究生机试真题(2017.2.19)
- 蓝桥杯——计算机研究生机试真题(2017.2.20)
- 蓝桥杯——计算机研究生机试真题(2017.2.21)
- 蓝桥杯——计算机研究生机试真题(2017.2.22)
- 蓝桥杯——计算机研究生机试真题(2017.2.28)
- 蓝桥杯——计算机研究生机试真题(2017.3.1)
- 蓝桥杯——2010 HIT计算机研究生机试真题(2017.2.1)
- 蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)
- 蓝桥杯——2010 吉大计算机研究生机试真题(2017.2.5)
- 蓝桥杯——2011 吉大计算机研究生机试真题(节选,2017.2.6)
- 蓝桥杯——2015 西工大计算机研究生机试真题(节选,2017.2.7)
- 北理04年复试上机之重载运算符
- 一、二叉查找树
- Excel的50个逆天功能,动画教程珍藏版!
- mac 安装mysql和tomcat
- Java设计模式透析之 —— 适配器(Adapter)
- 蓝桥杯——2009 北航计算机研究生机试真题(2017.2.4)
- java 连接mysql的例子
- Thrift简介
- Codeforces 514A Chewbaсca and Number【贪心】这题好劲啊
- Windows如何删除node_modules文件夹下的所有modules
- Android Studio Jacoco Coverage 0
- 二、平衡查找树之2-3树
- 软件测试之-测试覆盖率
- 【高斯消元】hihocoder1195