概述
没有具体的题目,大概是这样的,20000个数存储于二进制文件中,读取出来之后求其中的最大子集,其中两两互相不为倍数,不为约数,最大公约数为1,然后输出到指定文件中。
看得出来,该校常见的题目是,c语言对于文件内容输入输出,辅以字符、数字的处理,常见统计、素数等的操作。
以下是代码
1.首先生成20000个数,据说各个数小于500,且挖去了三个数。
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int* data;
FILE* fr;
data=(int*)malloc(sizeof(int)*20000);
srand(time(NULL));
for(int i=0;i<20000;i++)
{
data[i]=rand()%500+1;
if(data[i]==3||data[i]==5||data[i]==7)
{
i=i-1;
}
}
fr=fopen("input.dat","wb");
fwrite(data,sizeof(int),20000,fr);
free(data);
fclose(fr);
return 0;
}
2.对文件进行读取、处理,写入
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<math.h>
#define N 20000
int result[N];
void maopao(int* a,int b)
{
int temp;
for(int i=0;i<b-1;i++)
for(int j=0;j<b-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
int is_prime(int n)
{
int i ;
if(n < 2)
{
return 0;
}
for(i = 2; i * i <= n; i++)
{
if(n % i == 0)
{
return 0; }
}
return 1;
}
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
int shaixuan(int* data,int n,int* result)
{
int result_count=0;
for(int i=0;i<n;i++)
{
if(data[i]<2)
{
continue;
}
if(is_prime(data[i])==1)//是素数
{
int j;
for(j=0;j<result_count;j++)
{
if(data[i]==result[j])
break;
}
if(j==result_count)
{
result[j]=data[i];
result_count++;
}
}
else
{
int t;
for(t=0;t<result_count;t++)
{
if(gcd(data[i],result[t])!=1)//公约数不是1
break;
}
if(t==result_count)
{
result[t]=data[i];
result_count++;
}
}
}
return result_count;
}
int main()
{
FILE* fr;
int *data;
int result_count;
fr=fopen("input.dat","rb");
if(!fr)
{
printf("fail to openn");
exit(-1);
}
data=(int*)malloc(sizeof(int)*N);
rewind(fr);
fread(data,sizeof(int),N,fr);
maopao(data,N);
result_count=shaixuan(data,N,result);
printf("total number is %dn",result_count);
for(int i=0;i<result_count;i++)
{
printf("%d ",result[i]);
}
printf("n");
fclose(fr);
FILE* fw;
fw=fopen("2018output.txt","w");
for(int i=0;i<result_count;i++)
{
fprintf(fw,"%d ",result[i]);
}
fprintf(fw,"n");
free(data);
fclose(fw);
return 0;
}
主要写了几个函数:筛选数字,判断最小公倍数,判断素数以及冒泡
3.以下是结果
txt文件中
最后
以上就是结实吐司为你收集整理的2018年苏州大学计算机研究生复试机试编程题c语言的全部内容,希望文章能够帮你解决2018年苏州大学计算机研究生复试机试编程题c语言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复