考研機試題(2014)

來源:互聯網
上載者:User

標籤:考研   機試題   複試   演算法   

1.求一串數中大於1素數之和
輸入輸入個數  數字  不超過100個數 不超過10組 多組輸入  0結束

輸入 
4 1 2 3 4
5 1 2 3 4 5
0
輸出

5

10

#include <stdio.h>#define MAX 10bool isPrime(int n){//判斷是否是素數bool flag = true;if( n <=1)  return false;for(int i = 2; i*i <= n; i++){if(n % i == 0){flag = false;break;}}return flag;}int main(){int res[MAX];int sum,num,n,cnt;cnt = 0;while(scanf("%d",&n) != EOF && n != 0){sum = 0;for(int i = 0; i < n; i++){scanf("%d",&num);if(isPrime(num))sum += num;}res[cnt++] = sum;}for(int i = 0; i < cnt; i++){printf("%d\n",res[i]);}return 0;}



2.壓縮字串
輸入只含A-Z的字串 不超過1000個字母 將連續相同字母壓縮為重複次數+字幕(這個忘記是多組輸入還是單組了)

輸入
ABBCCC
輸出
A2B3C

#include <stdio.h>#include <string.h>#define N 1000char str[N];char ans[N];int main(){while(scanf("%s",str) != EOF){int len = strlen(str);    ans[0] = str[0];int i = 1,j = 0,count = 1;    char pre = str[0];while(1){char tmp = str[i];if(tmp != pre){j++;if(count >= 2)  ans[j++] = count+'0';count = 1;ans[j] = str[i++];pre = tmp;}else{count++;i++;}if(tmp == '\0')break;}puts(ans);printf("\n");}return 0;}


3.機器人走迷宮
迷宮由 N W S E 組成  踩到N向上走一格 踩到W 向左走一格 踩到S向下走一格 踩到E 向右走一格
輸入迷宮行數  列數  不大於10 機器人初始列數(注意 這個列數是從1開始數的) 判斷能否走出迷宮。能走出輸出步數
多組輸入 遇 0 0 0 結束輸入

輸入
4 6 5
NNNNSN
NNNSWN
NNSWNN
NSWNNN
3 5 2
NSNNNN
NSWNNN
NENNNN
0 0 0
輸出
7
no

#include <stdio.h>#define MAX 100char buf[MAX][MAX];bool mark[MAX][MAX];int main(){int m,n,sx,sy;while(scanf("%d%d%d%d",&m,&n,&sx,&sy) != EOF){if(m == 0 && n == 0)break;getchar();for(int i = 0; i < m; i++){scanf("%s",buf[i]);getchar();}for( i = 0; i < m; i++){for(int j = 0; j < n; j++)mark[i][j] = false;}int count = 0;while(1){//printf("%d %d\n",sx,sy);if(sx < 0 || sx > m-1 || sy < 0 || sy > n-1){printf("%d\n",count);break;}if(mark[sx][sy]){printf("no\n");break;}switch(buf[sx][sy]){case 'W':mark[sx][sy] = true;sy--;count++;break;case 'E':mark[sx][sy] = true;sy++;count++;break;case 'S':mark[sx][sy] = true;sx++;count++;break;case 'N':mark[sx][sy] = true;sx--;count++;break;}}}return 0;}


4.成績排行(這個具體排序的順序記不清了 但是就是讀取檔案+ 排序)
從檔案Score。txt中讀取學生資訊 對其進行排序 學生資訊包括學號不高於20位 題目數不超過10 分數  首先按照回答題數從大往小排  題數一樣的按照分數從小往大排。

檔案內容
CS00000001 4 110
CS00000002 4 120
CS00000003 5 150


輸出
CS00000003 5 150
CS00000001 4 110
CS00000002 4 120

#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;#define N 1000struct sts{char no[30];int  num;int  score;}stu[N];bool cmp(sts A, sts B){if(A.num != B.num)return A.num > B.num;if(A.score != B.score)return A.score < B.score;else{    int tmp = strcmp(A.no,B.no);return tmp < 0;}}int main(){FILE *fp;if((fp = fopen("Score.txt","r")) == NULL){printf("Read file failed\n");return -1;}int i = 0;while(!feof(fp)){fscanf(fp,"%s%d%d",stu[i].no,&stu[i].num,&stu[i].score);    i++;}sort(stu,stu+i,cmp);for(int j = 0; j < i; j++)printf("%s %d %d\n",stu[j].no,stu[j].num,stu[j].score);fclose(fp);return 0;}


考研機試題(2014)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.