发布时间 : 星期日 文章上机考试题2011秋季学期(验证正确)更新完毕开始阅读
《C程序设计》课程期末上机考试 考试时间:50分钟 考试方式:从下面的20题中随机抽取一题,再附加一题,共需完成2道题。附加题不事先给定
分值分配:第一题60分,第二题40分,共100分
考试时间:第十八周
1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取 #include
void fun(int k,int *p) { int i,j,x=0;
for(i=2;i<=k;i++) { if(k%i==0) {
for(j=2;j<=i;j++) {if(i%j==0) break;}
if(j>=i) 出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:124578902,程序输出:24802. #include
int i=0,m,a[20]; long b=0; do {
m=x; if(m%2==0) {
a[i]=m; i=i+1; } }
while((x/=10)!=0);
for(i=i-1;i>=0;i--) {
b=b*10+a[i]; }
return b; }
void main() { long a,b;
printf(\ scanf(\ b=fun(a);
printf(\ }
2. 编写函数void fun(int k,int *p),功能是:将参数k(2≤k≤32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11;若输入101,输出101。
{p[x]=i;x++;} } }
for(i=x;i<17;i++)
p[i]=-1;
} int i,j,x=0;
for(i=2;i<=k;i++) {
if(k%i==0) {
for(j=2;j<=i;j++) {if(i%j==0) break;} if(j>=i) {p[x]=i;x++;} } }
for(i=x;i<17;i++) p[i]=-1; void main()
{ int x,a[17]={0},i;
do{ printf(\a number(2-32767):\ scanf(\ }while(x<2); fun(x,a);
for(i=0;a[i]!=-1;i++) printf(\ printf(\ }
3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a[0]对调,次最大数与a[1]对调,其余的数保持不变。下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。
1
#include
void fun(int *x,int n) {
int *p,*t=x,s;
for(p=x;p
s=*x;*x=*t;*t=s; t=x+1;
for(p=x+1;p
s=*(x+1);*(x+1)=*t;*t=s }
void main() {int a[N],i;