美文网首页
苏州大学2005-2007上机复试题

苏州大学2005-2007上机复试题

作者: Mikito_k | 来源:发表于2018-06-01 15:22 被阅读7次

2005年上机题

题目一:把一个数表示成若干个素数的和

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

bool isPrime(int n);
void divideNum(int n);

int count = 0;

int main()
{
    divideNum(201);
    system("pause");
}

bool isPrime(int n)
{
    if (n <= 1) {
        return false;
    }
    if (n == 2) {
        return true;
    }
    for (int i = 2; i <= sqrt((double)(n)); i++) {
        if (0 == n%i) {
            return false;
        }
    }
    return true;
}

void divideNum(int n)
{
    if (isPrime(n)) {
        if (count == 0) {
            printf("n=%d", n);
            count++;
        }
        else {
            printf("+%d", n);
        }
    }
    else
    {
        for (int i = n / 2; i >= 2; i--) {
            if (isPrime(i)) {
                if (count == 0) {
                    printf("%d=%d", n, i);
                    count++;
                }
                else {
                    printf("+%d", i);
                }
                divideNum(n - i);
                break;
            }
        }
    }
}

题目二:统计篇文章中各英文字母的个数,并排序

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

struct Character
{
    int count = 0;
    char c;
};

int main()
{
    FILE *f1 = fopen("D:\\test.txt", "r");
    if (f1 == NULL) {
        printf("FILE OPEN ERROR!");
        exit(1);
    }

    Character c[26];
    int max;
    Character temp;

    for (int i = 0; i < 26; i++) {
        c[i].c = i + 'a';
    }
    char a;
    while ((a = getc(f1)) != EOF) {
        if (a >= 'a' && a <= 'z') {
            c[a - 'a'].count++;
        }
        if (a >= 'A' && a <= 'Z') {
            c[a - 'A'].count++;
        }
    }

    for (int i = 0; i < 25; i++) {
        max = i;
        for (int j = i + 1; j < 26; j++) {
            if (c[max].count < c[j].count)
                max = j;
        }
        if (max != i) {
            temp.c = c[max].c;
            temp.count = c[max].count;
            c[max].c = c[i].c;
            c[max].count = c[i].count;
            c[i].c = temp.c;
            c[i].count = temp.count;
        }
    }

    for (int i = 0; i < 26; i++) {
        printf("%c: %d\n", c[i].c, c[i].count);
    }
   fclose(f1);
    system("pause");
    return 0;
}

2006年上机题

题目一:找出100到1000内的不含9的素数,存到result文件中。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

bool isPrime(int n);
bool haveNine(int n);

void main()
{
    FILE * fp = fopen("result.txt", "w");
    if (fp == NULL) {
        printf("FILE OPEN ERROR!\n");
        exit(1);
    }
    for (int i = 100; i < 1001; i++) {
        if (isPrime(i) && !haveNine(i)) {
            fprintf(fp, "%d\n", i);
        }
    }
    fclose(fp);
}

bool isPrime(int n)
{
    if (n <= 1) {
        return false;
    }
    if (n == 2) {
        return true;
    }
    for (int i = 2; i < sqrt((double)(n))+1; i++) {
        if (0 == n%i) {
            return false;
        }
    }
    return true;
}

bool haveNine(int n) 
{
    while (n != 0) {
        if (9 == n % 10) {
            return true;
        }
        n = n / 10;
    }
    return false;
}

2007年上机题

题目一:把10到1000之间满足以下两个条件的数,存到result.txt文件中

(1)是素数。

(2)它的反数也是素数,如:123的反数是321。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

bool isPrime(int n);
int reverse(int n);

void main()
{
    FILE *fp = fopen("result.txt", "w");
    if (fp == NULL) {
        printf("FILE OPEN ERROR!\n");
        exit(1);
    }
    for (int i = 100; i < 1001; i++) {
        if (isPrime(i) && isPrime(reverse(i))) {
            fprintf(fp, "%d\n", i);
        }
    }
   fclose(fp);
}

bool isPrime(int n)
{
    if (n <= 1) {
        return false;
    }
    if (n == 2) {
        return true;
    }
    for (int i = 2; i < (sqrt((double)(n)) + 1); i++) {
        if (0 == n%i) {
            return false;
        }
    }
    return true;
}

int reverse(int n) 
{
    int m = 0;
    while (n != 0) {
        m = m * 10 + n % 10;
        n = n / 10;
    }
    return m;
}

相关文章

  • 苏州大学2005-2007上机复试题

    2005年上机题 题目一:把一个数表示成若干个素数的和 题目二:统计篇文章中各英文字母的个数,并排序 2006年上...

  • 苏州大学2008年上机复试题

    2008年上机复试题 题目 (1)用IE从FTP上下载org.dat,并保存在D盘的根目录中。(2)此文件中按文本...

  • 苏州大学2009-2011年上机复试题

    2009年上机复试题 题目   (1)用IE浏览器从FTP上下载org.dat,并保存在D盘的根目录下。  (2)...

  • 苏州大学2012-2014年上机复试题

    2012年上机题 题目   从服务器上下载数据文件org.dat文件以二进制方式存放一系列整数,每个整数占4个字节...

  • 苏州大学2016及2013复试上机

    2016年保研上机题 题目   0. 请从服务器将两个数据文件input.txt和words.txt下载到本地电...

  • 上机面试题

    1.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,...

  • 9.11 小米上机试题

    [编程题]序列模式匹配给定文本text和待匹配字符串pattern,二者皆只包含小写字母,并且不为空。在text中...

  • 第36课 rsync全网备份项目实战 2019-05-21

    一、 企业案例:rsync上机实战考试题: web01 10.0.0.7backup 10.0.0.41某公司里...

  • Unity上机面试题

    1、实现吊机吊物体的功能 2、写一个计时器工具,从整点开始计时,格式为:00:00:00 3、用鼠标实现在场景中拖...

  • Java第一学期上机试题

    只供参考 看完请点赞 一个赞就是1/10分钱1、要求从键盘输入3个数,然后输出其中最大的数! 2\3 4不写 5....

网友评论

      本文标题:苏州大学2005-2007上机复试题

      本文链接:https://www.haomeiwen.com/subject/vjkksftx.html