二级C语言上机题库及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for ( k = 1; k <= n; k++ ) {
/************found************/
s = s + (Double)a / b;
c = a; a = a + b; b = c;
}
return s;
}
main( )
{ int n = 5;
printf( "\nThe value of function is: %lf\n", fun ( n ) );
return(y) ;
}
main()
{
int a = 3, b = 8 ;
printf("%d %d\n", a, b) ;
b = fun(&a, b) ;
printf("%d %d\n", a, b) ;
}
第一处改错:将t = x ; x = y ;改为t=*x;*x=y;
第二处改错:将return(y)改为return(t)
gets(substr);
printf("%d\n",fun(str,substr));
}
第一处错误:for(i = 0, str[i], i++)改为for(i = 0; str[i];i++)
第二处错误:If(substr[k+1]=='\0')改为if(substr[k+1]=='\0')即是将”If”改为”if”
printf("\nThe result is: %ld\n",fun(n));
}
第一空:0第二空:x*10第三空:n/10
改错题:
#include <stdio.h>
void fun (long s, long *t)
{ int d;
long sl=1;
/************found************/
for (i=0; i<n-1; i+=2)
{
/**********found**********/
max = min = ___1___;
px = pn = i;
for (j=i+1; j<n; j++) {
/**********found**********/
if (max<___2___)
{ max = a[j]; px = j; }
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
}
第一处空:a[i];
第二处空:a[j]
第三处空:a[j]
改错题:
#include <stdio.h>
long fun(int g)
{
/**********found**********/
switch(g);
}
第一空:s[i]第二空:’9’第三空:*t=n
改错题:
#include <stdio.h>
int fun(int *x,int y)
{
int t ;
/**************found**************/
t = x ; x = y ;
/**************found**************/
t = 0;
while ( s > 0)
{ d = s%10;
/************found************/
if (d%2 == 0)
{ *t = d * sl + *t;
sl *= 10;
}
s /= 10;
}
}
main()
{ long s, t;
printf("\nPlease enter s:"); scanf("%ld", &s);
}
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
printf("\n");
fun(b, N);
printf("\nThe data after moving :\n");
a[j] = a[i]; ___2___;
}
/**********found**********/
return ___3___;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n;
printf("\nThe original data :\n");
for (i=0; i<N; i++) printf("%4d ", b[i]);
while(x __2__ e)
{ s=s+k*x;
k=k* (-1);
t=2*i;
/**********found**********/
x=__3__/(t*t);
i++;
}
return s;
}
main()
{ double e=1e-3;
printf("\nThe result is: %f\n",fun(e));
/**********found**********/
if (min>___3___)
{ min = a[j]; pn = j; }
}
if (pn != i)
{ t = a[i]; a[i] = min; a[pn] = t;
if (px == i) px =pn;
}
if (px != i+1)
{ t = a[i+1]; a[i+1] = max; a[px] = t; }
fun(s, &t);
printf("The result is: %ld\n", t);
}
第一处错误:将t=0改为*t=0;
第二处错误:将d%2 == 0改为d%2!=0
第六套题:
# include <stdio.h>
#define N 9
void fun(int a[], int n)
{ int i,j, max, min, px, pn, t;
/************found************/
If(substr[k+1]=='\0')
{ num++;
break;
}
return num;
}来自百度文库
main()
{
char str[80],substr[80];
printf("Input a string:") ;
gets(str);
printf("Input a substring:") ;
/**********found**********/
___3___ ;
}
main()
{ char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("\nThe original string is : %s\n",s);
fun(s,&t);
printf("\nThe result is : %d\n",t);
}
第一处1第二处:j++第三处:j
改错题
#include <stdio.h>
int fun(int a,int b)
{ int r,t;
if(a<b) {
/************found************/
t=a; b=a; a=t;
}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b; }
第一套题
上机填空:
#include <stdio.h>
double fun(double e)
{ int i, k; double s, t, x;
s=0; k=1; i=2;
/**********found**********/
x=__1__/4;
/**********found**********/
{ case 0: return 0;
/**********found**********/
case 1 ;case 2 : return 1 ;
/**********found**********/
s=__1__;
/**********found**********/
for(i=1; i<=__2__; i++)
{ t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/__3__;
printf("\n");
n = fun(b, N);
printf("\nThe number of odd : %d \n", n);
printf("\nThe odd number :\n");
for (i=0; i<n; i++) printf("%4d ", b[i]);
printf("\n");
}
第一处改错:将:void fun ( int n )改为double fun ( int n )
第二处改错:s = s + (Double)a / b;改为s = s + (double)a / b;
第二套题
上机填空题
#include <stdio.h>
double fun(int n)
{ int i; double s, t;
/************found************/
return(a);
}
main()
{ int num1, num2,a;
printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);
printf("num1= %d num2= %d\n\n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is %d\n\n",a);
}
第一处错误:t=a; b=a; a=t;改为t=a;a=b;b=t;
第二处错误:return(a)改为return b或者return(b);
求最大公约数算法一般采用辗转相除法。辗转相除法的算法为:首先将m除以n(m>n)得余数r,再用余数r去除原来的除数,得到新的余数,重复此过程直到余数为0时停止,此时的除数就是m和n的最大公约数。
}
return s;
}
main()
{ int n=-1;
while(n<0)
{ printf("Please input(n>0): "); scanf("%d",&n); }
printf("\nThe result is: %f\n",fun(n));
第一处空答案:0
第一处空答案:n
第三处空答案:(t*t)
第四套题:
填空题
#include <stdio.h>
#define N 9
int fun(int a[], int n)
{ int i,j;
j = 0;
for (i=0; i<n; i++)
/**********found**********/
if (a[i]%2==___1___)
{
/**********found**********/
改错题
#include <stdio.h>
int fun (char *str,char *substr)
{ int i,j,k,num=0;
/************found************/
for(i = 0, str[i], i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
第三套题
填空题
#include <stdio.h>
void fun(char *s, int *t)
{ int i, n;
n=0;
/**********found**********/
for(i=0; ___1___ !=0; i++)
/**********found**********/
if(s[i]>='0'&&s[i]<= ___2___ ) n++;
/**********found**********/
x=____2____+t;
/**********found**********/
n=____3____;
}
return x;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }
第一处答案:3.0
第二处答案:>
第三处答案:(2*i+1)或者(t+1)
上机改错题:
#include <stdio.h>
/************found************/
void fun ( int n )
{ int a, b, c, k; double s;
s = 0.0; a = 2; b = 1;
第五套题:
填空题:
#include <stdio.h>
unsigned long fun(unsigned long n)
{ unsigned long x=0; int t;
while(n)
{ t=n%10;
/**********found**********/
if(t%2==____1____)
相关文档
最新文档