当前位置:首页 » 编程语言 » c语言编程题复试筛选
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程题复试筛选

发布时间: 2022-10-19 01:00:16

‘壹’ c语言编程题:超级素数。

/**************************************
大体的思路:先求出1000-9999之间的素数,然后在这些素数中
找出前1、2、3、4位都是素数的数即为超级素数,每次找到一个
超级素数都与之前的超级素数加和,并且记录超级素数个数的变量加1,
并与之前找到的超级素数比较,记录最大的超级素数。
最后输出就可以了。
************************************/
#include <stdio.h>
#define MAX 10000

int prime[MAX] ; //prime数组记录1到9999每个数是否为素数,例如prime[9999]==1表示9999是素数

//searchPrime是找出1到9999之间的所有素数,并保存到prime数组
void searchPrime()
{

int i, j ;

for(i = 0; i < MAX; i++)
prime[i] = 1 ; //所有元素初始化为1,即假定都是素数
prime[0] = 0 ;//0不是素数
prime[1] = 0 ;//1不是素数
//下面开始筛选素数
for(i = 2; i*i < MAX; i++)
{
if(prime[i]) //如果i是素数,把它的倍数都筛掉
for(j = 2*i; j < MAX; j+=i)
{
prime[j] = 0 ; //j是i的倍数,因此j最起码有一个因子是i,所以不可能是素数
}
}
}

int main()
{
int sum ; //sum记录超级素数的和
int i ;
int count ; //count记录超级素数的个数
int max ; //max记录最大的超级素数
int n ;

scanf("%d", &n) ;
searchPrime() ; //初始化Prime数组
count = 0 ;
sum = 0 ;
max = 0 ;
for(i = 1001; i <= n; i++)
{
if(prime[i] && prime[i/1000]
&& prime[i/100] && prime[i/10]) //说明i是超级素数
{
sum += i ;
count++ ;
if(max < i)
max = i ;
}
}
printf("%d\n%d\n%d\n", count, sum, max) ;
return 0 ;
}

//写的仓促,只验证了9999,其他的数字并未验证,有问题再反馈吧。

‘贰’ 帮我改下这题c语言编程题,我真不知道要怎么弄了

#include <stdio.h>
#include <stdlib.h>
struct data
{
int x1,x2,x3;
}aa[200],bb[200],xy;

//定义3个结构体数组
void readDat();
void writeDat(int count);
int jsSort()
{
int i,j,cnt=0;

//以下是筛选符合第二个数大于第一个数加第三个数的之和
for(i=0;i<200;i++)
if(aa[i].x2>(aa[i].x1+aa[i].x3)) bb[cnt++]=aa[i];

//以下第二个数加第三个之和的大小进行降序排列
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(bb[i].x2+bb[i].x3>bb[j].x2+bb[j].x3)
{
xy=bb[i]; bb[i]=bb[j]; bb[j]=xy;}
return cnt; //返回符合条件的个数
}

void main()
{
int count;
readDat();
count=jsSort(); /*返回满足条件的个数*/
writeDat(count);
}

void readDat()
{
FILE *in;
int i;
if((in=fopen("in.dat","r"))==NULL); //读方式打开文件in.dat
{
printf("Cannot open file!");
exit(0);
}
//以下是分组读取in.dat中的数据并赋值给结构体数组aa[]
for(i=0; i<200; i++)
fscanf(in,"%d %d %d",&aa[i].x1,&aa[i].x2,&aa[i].x3);
fclose(in);
}

void writeDat(int count)
{
FILE *out;
int i;
if((out=fopen("out.dat","w"))==NULL)
{ printf("Cannot open file!"); //写方式打开out.dat
exit(0);
}
fwrite(&bb,sizeof(struct data),1,out); //将结构体数组bb中的元素写入out.dat
fclose(out);
}

‘叁’ C语言简单编程题,由提示编写程序,谢谢大神的帮助!!十分感激!!

#include <stdio.h>


int max(int a[], int n) {

int i = 0,m;

m = a[0];

for(i = 1;i < n;i++)

if(a[i] > m) m = a[i];

return m;

}


void show(int a[],int n) {

int i;

for(i = 0; i < n; ++i)

printf("%d ",a[i]);

printf(" ");

}


int main() {

int a[] = {21,23,10,65,8,7,90,11,49,60,33,54,22,91,39,87,66,58,39,80};

int n = sizeof(a)/sizeof(a[0]);

printf("数组为: ");

show(a,n);

printf("最大元素为:%d ",max(a,n));

return 0;

}

‘肆’ C语言程序编程题,求大神帮帮忙

#include<stdio.h>

int main()

{ struct stu

{ int id;

char name[11];

int a,b,c;

} t,st[5];

int i,j;

FILE *fp1,*fp2;

if((fp1=fopen("d:\stud.dat","r"))==NULL)

{ printf("f1 open error! ");

return 1;

}

if((fp2=fopen("d:\studsort.dat","w"))==NULL)

{ printf("f2 open error! ");

return 2;

}

for(i=0; i<5; i++)

fscanf(fp1,"%d%s%d%d%d",&st[i].id,st[i].name,&st[i].a,&st[i].b,&st[i].c);

for(i=0; i<4; i++)

for(j=0; j<4-i; j++)

if(st[j].a+st[j].b+st[j].c<st[j+1].a+st[j+1].b+st[j+1].c)

{ t=st[j];

st[j]=st[j+1];

st[j+1]=t;

}

for(i=0; i<5; i++)

{ printf("%d %10s %4d %4d %4d %7.2f ",st[i].id,st[i].name,st[i].a,st[i].b,

st[i].c,(st[i].a+st[i].b+st[i].c)/3.0);

fprintf(fp2,"%d %10s %4d %4d %4d %7.2f ",st[i].id,st[i].name,st[i].a,st[i].b,

st[i].c,(st[i].a+st[i].b+st[i].c)/3.0);

}

fclose(fp1);

fclose(fp2);

return 0;

}

‘伍’ C语言期末考试编程题

1输入两个整数a和b,若a和b的平方和大于100,则输出平方和的百位以上的数字,否则输出a和 b的和。
要求: 1)输出结果时说明平方和是大于100还是小于100( >100或<100 )
#include<stdio.h>
int main(){
int a, b, c;
scanf("%d%d", &a, &b);
c = a * a + b * b;
if(c > 100) printf("平方和大于100\n%d\n", c%100);
else printf("平方和小于等于100\n%d\n", a + b);
return 0;
}
2输入一个整数,判断是否是5和7的公倍数,若是则输出:5and7yes,否则再判断是否是3的倍数,若是3的倍数输出:3yes,若都不是则输出:no
#include<stdio.h>
int main(){
int input;
scanf("%d", &input);
if(input % 5 == 0 && input % 7 == 0)printf("5and7yes\n");
else if(input % 3 == 0) printf("3yes\n");
else printf("no\n");
return 0;
}
第三,四题和第二题差不多
5计算公式: [ 2*x x=2
y= [ x*x+1 x<2
[ 2*x*x+3*x+1 x>2
要求: 1)从键盘输入x的值,根据x的值求y的值
2)输出y的值
#include<stdio.h>
int main(){
int x, y;
scanf("%d", &x);
if(x == 2) y = 2*x;
else if(x < 2) y = x*x+1;
else y = 2 * x * x + 3 * x + 1;
printf("%d\n", y);
return 0;
}
8 和7差不多
下面原理都差不多 用if基本都能搞定 判断条件就行了 应该LZ能搞定了 东西有点多 -。- 就写这些吧 其他的就不一一写了^ ^

‘陆’ c语言模拟编程题

你大几了?大一吗?

‘柒’ C语言编程应用题

#include<stdio.h>
intmain()
{doublex,y;
charc;
printf("请选择普通顾客/会员顾客(P/H):");
scanf("%c",&c);
printf("请输入商品总额:");
scanf("%lf",&x);
if(c=='H'||c=='h')
if(x>=1000)y=0.7*x;
elsey=0.8*x;
else
if(x>100)y=0.9*x;
elsey=x;
printf("应收费:%.2lf ",y);
return0;
}

‘捌’ 复试科目是C语言程序设计,不知道这个笔试怎么考,有没有选择填空题,试题难不难啊,还有面试问什么啊

同学,你是考研复试吧?呵呵,加油。
既然是C语言程序设计,最好的办法就是把谭浩强的C语言认真的看一遍,把常用的算法之类的熟记于心中,笔试肯定有选择和填空的,笔试不会很难的,相信我啦,都是些常用的小程序。面试问的比较广了,关键是算法你是否清晰,流程是否能够叙述清楚,老师看的是思路,所以叙述要清晰呀。
希望我的回答能够帮助到你,很荣幸为您解答。

‘玖’ C语言编程 填空题

(1) 0
(2) (*p)