资源描述
程序设计基础(C语言)上机考试题
( 第一套A卷 )
2005~2006学年春学期 2006年5月
学号: 姓名: 学院/教师:
考生须知:
1.请先在考盘标贴上写上学号、姓名、教师、考场和机号,然后双击Windows桌面上的“C上机考登录”图标,进入“程序设计基础(C语言)上机考试考生登录”框,正确输入或选择你的学号、姓名、学院、教师、考场、试题套号、机号和卷类等。登录成功,在你考盘中会形成一个文件夹,文件夹名是你的学号。
2.源程序必须存入考盘上以你学号命名的文件夹中。源程序文件主名必须为:套号-卷类-题号。如:1-A-3是第一套A卷第3题的源程序。
3.必须严格按题目要求的输入、输出格式来输入、输出。
4.阅卷时以试题要求和程序的运行结果为准。
5.交卷前须将你考盘上以你学号命名的文件夹复制到E:盘根目录下,交卷时将试卷和考盘一起交上。
第1题( 7分,源程序文件1-A-1.C )
从键盘输入一个大于2的正整数n,求解并输出大小最接近n的素数(不包括n)。例如:
输入:17 输出:19
输入:45 输出:43 47
第2题( 8分,源程序文件1-A-2.C )
编程输入一个三位的正整数,该数的百位、十位、个位数互不相同且都不为0,将它们任意排列后可组成6个数,按从大到小的顺序输出这6个数。例如:
输入:396
输出:963 936 693 639 396 369
第3题( 8分,源程序文件1-A-3.C )
从键盘输入n(1≤n≤20)和n个学生的学号(由6个数字字符组成的字符串)及其某门课程的成绩(整数),然后按成绩从高到低,成绩相同再按学号从小到大的顺序输出学生的学号及其成绩,每个学生一行。例如:
输入:4 输出:020105 90
020103 78 020104 80
020107 80 020107 80
020105 90 020103 78
020104 80
程序设计基础(C语言)上机考试题 参考解答
2005~2006学年春学期 2006年5月
/* 1-A-1 (1) */
main()
{ int i,a,b,n;
scanf("%d",&n);
for(a=n+1;;a++)
{ for(i=2;i<a;i++)
if(a%i==0) break;
if(i==a) break;
}
for(b=n-1;b>1;b--)
{ for(i=2;i<b;i++)
if(b%i==0) break;
if(i==b) break;
}
if(a-n<n-b) printf("%d\n",a);
else if(a-n==n-b) printf("%d %d\n",a,b);
else printf("%d\n",b);
}
/* 1-A-1 (2) */
int isprime(int m)
{ int i;
if(m<2) return 0;
for(i=2;i<m;i++)
if(m%i==0) return 0;
return 1;
}
main()
{ int i,a,b,n;
scanf("%d",&n);
for(a=n+1;!isprime(a);a++);
for(b=n-1;!isprime(b);b--);
if(a-n<n-b) printf("%d\n",a);
else if(a-n==n-b) printf("%d %d\n",a,b);
else printf("%d\n",b);
}
/*1-A-2 (1) */
main()
{ int a,b[3],c[6],i,j,k,n;
scanf("%d",&a);
for(i=0;i<3;i++,a/=10)
b[i]=a%10;
for(n=i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
if(i!=j&&j!=k&&i!=k)
c[n++]=b[i]*100+b[j]*10+b[k];
for(i=0;i<n;i++)
{ for(j=i+1;j<n;j++)
if(c[i]<c[j])
{ k=c[i]; c[i]=c[j]; c[j]=k; }
printf("%d ",c[i]);
}
}
/*1-A-2 (2) */
main()
{ int n, a, b, c, t ;
scanf("%d",&n);
a=n%10; b=n/10%10; c=n/100;
if(a<b) { t=a; a=b; b=t; }
if(a<c) { t=a; a=c; c=t; }
if(b<c) { t=b; b=c; c=t; }
printf("%d%d%d %d%d%d ", a, b, c, a, c, b);
printf("%d%d%d %d%d%d ", b, a, c, b, c, a);
printf("%d%d%d %d%d%d\n", c, a, b, c, b, a);
}
/* 1-A-3 */
#include "string.h"
main()
{ int n,i,j,k,t,score[20];
char num[20][7],s[7];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s%d",num[i],&score[i]);
for(i=0;i<n-1;i++)
{ for(k=i,j=i+1;j<n;j++)
if(score[k]<score[j]||score[k]==score[j]
&&strcmp(num[k],num[j])>0)
k=j;
if(k!=i)
{ t=score[i]; score[i]=score[k]; score[k]=t;
strcpy(s,num[i]); strcpy(num[i],num[k]);
strcpy(num[k],s);
}
}
for(i=0;i<n;i++)
printf("%s %d\n",num[i],score[i]);
}
展开阅读全文