全国计算机二级C语言改错题

全国计算机二级C语言改错题
全国计算机二级C语言改错题

2011年9月上机改错题

1、

#include

#include

typedef struct aa

{ int data;

struct aa *next;

} NODE;

int fun ( NODE *h )

{ int max=-1;

NODE *p;

/***********found**********/

p=h ; p=h->next; /*h指向的是头节点,题目要求

不要头节点,那么我们从第2个结点

开始*/

while(p)

{ if(p->data>max )

max=p->data;

/***********found**********/

p=h->next ; p=p->next; /*链表中的指针后移*/

}

return max;

}

outresult(int s, FILE *pf)

{ fprintf(pf,"\nThe max in link : %d\n",s);}

NODE *creatlink(int n, int m)

{ NODE *h, *p, *s;

int i;

h=p=(NODE *)malloc(sizeof(NODE));h->data=9999;

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

{ s=(NODE *)malloc(sizeof(NODE));

s->data=rand()%m; s->next=p->next;

p->next=s; p=p->next;

}

p->next=NULL;

return h;

}

outlink(NODE *h, FILE *pf)

{ NODE *p;

p=h->next;

fprintf(pf,"\nTHE LIST :\n\n HEAD ");

while(p)

{ fprintf(pf,"->%d ",p->data); p=p->next; }

fprintf(pf,"\n");

}

main()

{ NODE *head; int m;

head=creatlink(12, 100);

outlink(head , stdout);

m=fun(head);

printf("\nTHE RESULT :\n"); outresult(m, stdout);

}

2、

#include

double fun ( int m )

{ double y = 1.0 ;

int i ;

/**************found**************/

for(i = 2 ; i < m ; i++) for(i = 2 ; i < =m ; i++) /*根据题意循环条件

是i<=m*/

/**************found**************/

y -= 1 /(i * i) ; y -= 1.0 /(i * i) ; /*i 是整型等号右边都是整

型,得到结果也是整型,我

们想要的是实型所以,要求

1改成1.0*/ return( y ) ;

}

main( )

{ int n = 5 ;

printf( "\nThe result is %lf\n", fun ( n ) ) ;

}

3

#include

#include

char* fun( char tt[] )

{

int i;

for( i = 0; tt[i]; i++ )

/**********found***********/

if(( 'a' <= tt[i] )||( tt[i] <= 'z' ) ) if(( 'a' <= tt[i] )&&( tt[i] <= 'z' ) ) /*很明显,

这个地方是并且,用&&*/

/**********found***********/

tt[i] += 32; tt[i] -= 32; /*小写变大写是减去32*/

return( tt );

}

main( )

{

char tt[81];

printf( "\nPlease enter a string: " );

gets( tt );

printf( "\nThe result string is:\n%s", fun( tt ) );

}

4

#include

#include

float fun ( float num )

{ int s ;

float n, t, pi ;

t = 1 ; pi = 0 ; n = 1 ; s = 1 ;

/**************found**************/

while(t >= num) while(fabs(t) >= num) /*这里的t可能会是负数,

所以要取绝对值用函

数fabs() 来实现*/ {

pi = pi + t ;

n = n + 2 ;

s = -s ;

/**************found**************/

t = s % n ; t = s / n ; /*这里对应题目是除法*/ }

pi = pi * 4 ;

return pi ;

}

main( )

{ float n1, n2 ;

printf("Enter a float number: ") ;

scanf("%f", &n1) ;

n2 = fun(n1) ;

printf("%6.4f\n", n2) ;

}

5

#include

int fun(int *x,int y)

{

int t ;

/**************found**************/

t = x ; x = y ; t=*x; *x=y; /*这里的x是指针变量,

可以通过间址运算符*

来运算,*x 就是变量

a */

/**************found**************/

return(y) ; return t; /*返回的值给变量 b ,应

是原来 a 的内容,也就是

*x 的内容*/

}

main()

{

int a = 3, b = 8 ;

printf("%d %d\n", a, b) ;

b = fun(&a, b) ;

printf("%d %d\n", a, b) ;

}

6

#include

void fun (long s, long *t)

{ int d;

long sl=1;

/************found************/

t = 0; *t=0; /* t 是指针变量*/

while ( s > 0)

{ d = s%10;

/************found************/

if (d%2 == 0) if (d%2 != 0) /*这里应该是留下奇数*/ { *t = d * sl + *t;

sl *= 10;

}

s /= 10;

}

}

main()

{ long s, t;

printf("\nPlease enter s:"); scanf("%ld", &s);

fun(s, &t);

printf("The result is: %ld\n", t);

}

7

#include

int fun(int a,int b)

{ int r,t;

if(a

/************found************/

t=a; b=a; a=t;

}

r=a%b;

while(r!=0)

{ a=b; b=r; r=a%b; }

/************found************/

return(a); return (b); /*这里b 存放的最大公约数*/ }

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);

}

8

#include

/**************found**************/

fun (int n ) double fun (int n ) /*根据函数被使用的类

型,或者返回值得到

函数类型是double */

{ int a = 2, b = 1, c, k ;

double s=0.0 ;

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

{ s = s + 1.0 * a / b ;

/**************found**************/

c = a; a += b; b += c; c = a; a += b; b = c; /*根据题目要求来,看出来b

=c*/

}

return(s) ;

}

main( )

{ int n = 5 ;

printf( "\nThe value of function is: %lf\n", fun ( n ) ) ;

}

9

#include

#define N 10

int findmid(int a, int b, int c)

{ int t;

t = (a>b)?(b>c?b:(a>c?c:a)):((a>c)?a:((b>c)?c:b));

/**********found**********/

return b; retrun t; /*算了好久,算出来的t ,当然是返回

t 啦*/

void fun(int x[])

{ int i,a,b,c,t[N];

/**********found**********/

for(i=0;i

号结束*/

for(i=0;i

{ a=t[i];b=t[i+1];c=t[i+2];

/**********found**********/

t[i+1]=findmid(a,b,c); x[i+1]=findmid(a,b,c); /*最终结果要放在x 数组中*/ }

}

main()

{ int i, x[N]={6,5,7,23,18,5,8,21,45,38};

for(i=0; i

printf("\n");

fun(x);

for(i=0; i

printf("\n");

}

10

#include

/************found************/

void fun (long s, long t) void fun (long s, long * t) /*这里的t是指

针变量,应该定义的时候有*

*/

{ long sl=10;

s /= 10;

*t = s % 10;

/************found************/

while ( s < 0) while ( s >0) /*很明显,这里的条件不对嘛*/

{ s = s/100;

*t = s%10*sl + *t;

sl = sl * 10;

}

}

main()

{ long s, t;

printf("\nPlease enter s:"); scanf("%ld", &s);

fun(s, &t);

printf("The result is: %ld\n", t);

}

11

#include

int fun ( int m )

{ int k = 2;

while ( k <= m && (m%k))

/************found************/

k++ k++; /*语句少了分号*/

/************found************/

if (m = k ) if (m == k ) /*这里是比较,不是赋值,要用

== 是两个等号*/ return 1;

else return 0;

}

main( )

{ int n;

printf( "\nPlease enter n: " ); scanf( "%d", &n );

if ( fun ( n ) ) printf( "YES\n" );

else printf( "NO!\n" );

}

12

#include

int fun(int m)

{ int i, k ;

for (i = m + 1 ; ; i++) {

for (k = 2 ; k < i ; k++)

/**************found**************/

if (i % k != 0) if (i % k == 0) /*这里是能被整除的

时候break*/

break ;

/**************found**************/

if (k < i) if (k >= i) /*内层的for循环的条

件不是break 结束

也就是从来没有被整

除过,最后得到的是

素数*/

return(i);

}

}

void main()

{

int n ;

n = fun(20) ;

printf("n=%d\n", n) ;

}

13

#include

int fun(double x[], int n)

{

/************found************/

int j, c=0, double xa=0.0; int j, c=0;double xa=0.0; /*定义完一种类型

之后,应该以分号结束*/ for (j=0; j

xa += x[j]/n;

printf("ave =%f\n",xa);

for (j=0; j

/************found************/

if (x[j] => xa) if (x[j] >= xa) /*大于等于的符号怎么

写,一定看清楚了哦*/

c++;

return c;

}

main ( )

{ double x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763};

printf("%d\n", fun (x, 8));

}

14

#include

void fun(char *s)

{ int i,j;

for(i=0,j=0; s[i]!='\0'; i++)

if(s[i]>='0' && s[i]<='9')

/**********found**********/

s[j]=s[i]; s[j++]=s[i]; /*s[j] 被赋值了之后,j 要++运算,以便

s[j]是下一个元素*/

/**********found**********/

s[j]="\0"; s[j]=’\0’;/*这里是字符0 不是字符串0*/

}

main()

{ char item[80];

printf("\nEnter a string : ");gets(item);

printf("\n\nThe string is : \"%s\"\n",item);

fun(item);

printf("\n\nThe string of changing is : \"%s\"\n",item );

}

15

#include

#include

#define M 10

int a[M][M] = {0} ;

/**************found**************/

void fun(int **a, int m) void fun(int a[M][M], int m) /*这里定义变量

能够接受具体二维数组

a[M][M] ,如果不知道怎

么定义,直接照抄数组原来

的定义都可以*/

{ int j, k ;

for (j = 0 ; j < m ; j++ )

for (k = 0 ; k < m ; k++ )

/**************found**************/

a[j][k] = k * j ; a[j][k] = (k +1)* (j+1) ; /*这里是根据题目要

求,大家可以算出来第一个数字应该怎么得

到*/

}

main ( )

{ int i, j, n ;

printf ( " Enter n : " ) ; scanf ("%d", &n ) ;

fun ( a, n ) ;

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

{ for (j = 0 ; j < n ; j++)

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

printf ( "\n" ) ;

}

}

16

#include

long fun(int g)

{

/**********found**********/

switch(g); switch(g) /*switch() 后面没有分号*/ { case 0: return 0;

/**********found**********/

case 1 ;case 2 : return 1 ; case 1 : case 2 : return 1 ; /*case 1 后面应该

冒号case 之后必须有冒号*/ }

return( fun(g-1)+fun(g-2) );

}

main()

{ long fib; int n;

printf("Input n: "); scanf("%d",&n); printf("n = %d\n",n);

fib=fun(n);

printf("fib = %d\n\n",fib);

}

17

#include

double fun( double q )

{ int n; double s,t;

n = 2;

s = 2.0;

while (s<=q)

{

t=s;

/************found************/

s=s+(n+1)/n; s=s+(n+1.0)/n; /*这里的n 是整形,(n+1)/n 得到的

结果也肯定是整形,而我们要得到实

型/

n++;

}

printf("n=%d\n",n);

/************found************/

return s; return t ; /*如果是return s 根据循环条件会多

加了一项所以返回时加最后之前的t

*/

}

main ( )

{

printf("%f\n", fun(50));

}

18

#include

int fun( int k )

{ int m=0, mc=0 ;

while ((k >= 2) && (mc < 10))

{

/************found************/

if ((k%13 = 0) || (k%17 = 0)) if ((k%13 == 0) || (k%17 = =0)) /*这里是比

较不是赋值,所以用两个连续的等号

==*/

{ m = m+ k; mc++; }

k--;

}

return m;

/************found************/

_____ } /*函数体结束的时候用} 结束*/

main ( )

{

printf("%d\n", fun (500));

}

19

#include

#define N 10

/************found************/

void fun(int a[], int m ) int fun(int a[], int m ) /* 根据

主函数调用fun函数的,可以看到

要求fun 函数返回的是个int 型*/ { int low=0,high=N-1,mid;

while(low<=high)

{ mid=(low+high)/2;

if(m

high=mid-1;

/************found************/

else If(m > a[mid]) else if(m > a[mid]) /*这里的if 是关

键字,关键字必须全部小写*/ low=mid+1;

else return(mid);

}

return(-1);

}

main()

{ int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;

printf("a数组中的数据如下:");

for(i=0;i

printf("Enter m: "); scanf("%d",&m);

k=fun(a,m);

if(k>=0) printf("m=%d,index=%d\n",m,k);

else printf("Not be found!\n");

}

20

#include

#include

#define MAXLINE 20

fun ( char *pstr[6])

{ int i, j ;

char *p ;

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

/**************found**************/

for (j = i + 1, j < 6, j++) for (j = i + 1;j < 6; j++) /*for 循环里面必须是

2个分号,这是格式,必须记牢*/ {

if(strcmp(*(pstr + i), *(pstr + j)) > 0)

{

p = *(pstr + i) ;

/**************found**************/

*(pstr + i) = pstr + j ; *(pstr + i) = *(pstr + j) /* pstr + j 是地址,要通过

* 运算符取得这个地址对应的内容*/ *(pstr + j) = p ;

}

}

}

}

main( )

{ int i ;

char *pstr[6], str[6][MAXLINE] ;

for(i = 0; i < 6 ; i++) pstr[i] = str[i] ;

printf( "\nEnter 6 string(1 string at each line): \n" ) ;

for(i = 0 ; i < 6 ; i++) scanf("%s", pstr[i]) ;

fun(pstr) ;

printf("The strings after sorting:\n") ;

for(i = 0 ; i < 6 ; i++) printf("%s\n", pstr[i]) ;

}

21

#include

void fun(char *p, char *b)

{ int i, k=0;

while(*p)

{ i=1;

while( i<=3 && *p ) {

/**********found**********/

b[k]=p; b[k]=p; /* p是指针变量,要取得内容,要使用

* 运算符*/

k++; p++; i++;

}

if(*p)

{

/**********found**********/

b[k++]=" "; b[k++]=’’; /*空格字符就是单引号里面的一个空格*/ }

}

b[k]='\0';

}

main()

{ char a[80],b[80];

printf("Enter a string: "); gets(a);

printf("The original string: "); puts(a);

fun(a,b);

printf("\nThe string after insert space: "); puts(b); printf("\n\n");

}

22

#include

#include

/************found************/

f( double x) double f( double x) /*根据函数被调用地

方决定函数的类型这里是double */ {

if (x == 0.0 || x == 2.0)

return 0.0;

else if (x < 0.0)

return (x -1)/(x-2);

else

return (x +1)/(x-2);

}

double fun( int n )

{ int i; double s=0.0, y;

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

{y=f(1.0*i); s += y;}

/************found************/

return s return s ;/*return 语句后面必须有分号(少了分号

了,看到没有啊)*/

}

main ( )

{

printf("%f\n", fun(5) );

}

23

#include

#include

int fun( int high )

{ int sum = 0, n=0, j, yes;

/************found************/

while ((high >= 2) && (n < 10) while ((high >= 2) && (n < 10)) /*while 最后少了个)

有没有注意到。。。。。*/

{ yes = 1;

for (j=2; j<=high/2; j++ )

if (high % j ==0 ){

/************found************/

yes=0; break yes=0; break ; /*break 后面少个分号,应该

注意到了吧*/

}

if (yes) { sum +=high; n++; }

high--;

}

return sum ;

}

main ( )

{

printf("%d\n", fun (100));

}

24

#include

#include

/************found************/

void fun( int k ) double fun( int k ) /*说到不想说了,函

数的类型就是被调用处的类型*/ { int n; double s, w, p, q;

n = 1;

s = 1.0;

while ( n <= k )

{ w = 2.0 * n;

p = w - 1.0;

q = w + 1.0;

s = s * w *w/p/q;

n++;

}

/************found************/

return s return s ; /*return 语句后面又少了分号*/

}

main ( )

{

printf("%f\n", fun (10));

}

25

#include

int fun (char *str,char *substr)

{ int i,j,k,num=0;

/************found************/

for(i = 0, str[i], i++) for(i = 0;str[i];i++) /*for 语句中有2个

分号,一定记住,格式背下来*/ for(j=i,k=0;substr[k]==str[j];k++,j++)

/************found************/

If(substr[k+1]=='\0') if(substr[k+1]=='\0') /*if 是关键字,关键

字必须都是小写字母*/

{ num++;

break;

}

return num;

}

main()

{

char str[80],substr[80];

printf("Input a string:") ;

gets(str);

printf("Input a substring:") ;

gets(substr);

printf("%d\n",fun(str,substr));

}

26

二级(C语言程序设计)上机题汇总

二级(C语言程序设计)上机题汇总 一、程序调试题 (一)程序填空 练习一: /*该程序功能:对x=1,2,。。。。。,10,f(x)=x*x*-5*x+sin(x)的最大值。*/ #include #include #define f(x) x*x-5*x+sin(x) void main() { int x; float max; ____ max=f(1);____ for(x=2;x<=10;x++) ___if( max void swap(__int *pa, int *pb____) { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(__a>b___) swap(&a,&b); printf("%d,%d,%d",a,b,c); } 练习三: /*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/ #include

void Dec2Bin(int m) { int bin[32],j; for(j=0;m!=0;j++) { bin[j]= __m%2___; m=m/2; } for(;j!=0;j--) printf("%d", ____bin[j-1]_ _____ ); } void main() { int n; scanf("%d",&n); Dec2Bin(n); } 练习四: /*该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1 3 4 6*/ #include void f(int *a,int *m) { int i,j; for(i=0;i<*m;i++) if(a[i]<0) { for(j=i--;j<*m-1;j++) a[j]=a[j+1]; ___*m=*m-1;___ } } void main() { int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; _ f(x,&n);_____ for(i=0;i void main() { int i,j,s; for(i=6;i<=1000;i++) { ___s=1;___

C语言程序改错及填空题

下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i);

tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j)

大学计算机二级考试试题及其答案 !!!

全国计算机二级考试试题 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。A) print B) i\am C) Pxq D) str_l _3d one_half My->book Cpp ??? oodbs tart$it line#pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置

【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 B) 0 C) 037 D) 0xAF 【1.9】执行语句 printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) -ffff D) ffff 【1.10】已知 long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768 C) 1 D) 32768 【1.11】已知 long i=65539;执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3 D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。 A) 原码 B) 补码

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

计算机二级上机考试(程序改错题)1

计算机二级上机考试(程序改错题)1 https://www.360docs.net/doc/d58001204.html,work Information Technology Company.2020YEAR

程序编程题目 1、第一大类(交换类)共7道 2. 程序修改(第3套) 给定程序中函数fun的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b中的值为8. /**found**/ t=*x; *x=y; /**found**/ return(t); 2. 程序修改(第60套) 给定程序中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/ void fun(int *a,int *b) /**found**/ t=*b;*b=*a;*a=t; 2. 程序修改(第88套) 给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。 /**found**/ void fun(int *x, int *y) /**found**/ t=*x,*x=*y,*y=t; 2、第二大类(计算类)共22道2. 程序修改(第1套) 给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。 2/1+3/2+5/3+8/5+13/8+21/13 +……和值通过函数值返回main函数。例如n=5,则应输出:8.391667。 /**found**/ double fun(int n) /**found**/ s=s+(double)a/b; 2. 程序修改(第6套) 给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、…… /**found**/ switch(g) /**found**/ case 1:case 2:return 1;2. 程序修改(第13套) 给定程序中函数fun的功 能是:求 s=aa…aa—…—aaa —aa—a(此处aa…aa表示n 个a,a和n的值在1至9之 间)。例如,a=3,n=6,则以下 表达式为: S=333333-33333-3333-333-33- 3其值是296298。 /**found**/ long s=0,t=0; /**found**/ t=t/10; 2. 程序修改(第21套) 给定程序中函数fun的功 能是:计算s=f(-n)+f(- n+1)+……+f(0)+f(1)+f (2)+……f(n)的值。例 如,当n为5时,函数值应 该是:10.407143。 f(x)=(x+1)(x-2) x>0且x!=2 f(x)=0 f(x)= (x-1)(x-2) x<0 /**found**/ double f(double x) /**found**/ return s; 2. 程序修改(第27套) 给定程序中函数fun的功能 是:用递归算法求形参a的 平方根。求平方根的迭代公 式如下:x1=1/2(x0+a/x0)例 如:a为2时,平方根值为 1.414214 /**found**/ double fun(double a,double x0) /**found**/ if(fabs(x1-x0)>0.00001) 2 程序修改(第29套) 给定程序中函数fun的功能 是:计算函数值,F(x,y,z) =(x+y)/(x-y)+(z+y)/(z-y)的值 得。其中x和y的值不等,z 和y的值不等。例如,当x 的值为9、y的值为11、z的 值为15时,函数值为-3.50。 /**found**/ #define FU(m,n) (m)/(n) /**found**/ return (value); 2. 程序修改(第33套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 2. 程序修改(第37套) 给定程序中函数fun的功能 是:用下面的公式求π的近 似值,知道最后一项的近似 值小于指定数(参数num) 为止:例如程序0.0001,则 程序输出3.1414。 /**found**/ while((fabs(t))>=num) /**found**/ t=s/n 2. 程序修改(第45套) 给定程序中函数fun的功 能是:根据以下公式求π 值,并作为函数值返回。例 如,给指定精度的变量eps 输入0.0005时,应当输出 Pi=30140578.。 /**found**/ t=1.0; /**found**/ return(s*2); 2. 程序修改(第47套) 给定程序中函数fun函数功能 是:计算n!。例如,给n输 入5,则输出120.000000。 /**found**/ if (n==0) /**found**/ result *=n--; 2. 程序修改(第48套) 给定程序中函数fun的功能 是:根据整形形参m=1,计算 如下公式的值。 m=1+1/2*2+1/3*3+1/4*4+..+1 /m*m例如,若m中的值为 5,则应输出1.463611 /**found**/ for (i =2 ; i<= m; i++) /**found**/ y+=1. 0/ ( i* i) ; 给定程序中函数fun的功能 是:计算并输出下列级数的 前n项的和Sn,直到Sn+1大 于q为止,q的值通过形参传 入。 Sn=2/1+3/2+4/3+…+(N+1)/N /**found**/ s=s +(double)(n+1)/n; /**found**/ return t; 2. 程序修改(第52套) 下列给定程序中函数fun的 功能是:按以下递推公式求 函数的值。 Fun=10 (n=1),fun(n-1)+2 (n>1) 例如,当给n输出5时,函 数值为18;当给n输入3 时,函数值为14. /**found**/ int fun(int n) /**found**/ if(n==1) 2. 程序修改(第58套) 给定程序中函数fun的功能 是:求K!,所求阶乘 的值作为函数值返回。例 如,若K=10,则应输出 3628800。 /**found**/ if(k>1) /**found**/ else if(k= =0) 2. 程序修改(第63套) 给定程序中函数fun的功能 是:计算整数n的阶乘。 /**found**/ result *=n--; /**found**/ return result; 2. 程序修改(第65套) 给定程序中,函数fun的功能 是:根据形参m,计算下列 公式的值: t=1+1/2+1/3+1/4+… +1/m例如,若输入5,则应 输出2.28333 /**found**/ t+=1.0/i; /**found**/ return t; 2. 程序修改(第77套) 给定程序中函数fun的功能 是:根据整形形参m,计算如 下公式的值。 Y=1/(100*100)+1/(200*200) +1/(300*300)+L+1/(m*m) /**found**/ double fun(int m) /**found**/ for(i=100;i<=m;i+=100) 2. 程序修改(第78套) 给定程序中函数fun的功能 是:根据整型形参n计算如 下公式的值。A1=1, A2=1/(1+A1),A3=1/(1+A2),An= 1/(1+A(n-1))例如:若n=10, 则应输出:0.617977. /**found**/ float fun(int n) /**found**/ for(i=2;i<=n;i++) 2. 程序修改(第85套) 下列给定程序中,函数fun的 功能是:传入一个整数m, 计算如下公式的值。 t=1/2-1/3-…-1/m例如,若输 入5,则应输出-0.283333. /**found**/ 2

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i])

【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; k

全国计算机等级考试二级教程C语言程序设计课后习题答案

全国计算机等级考试二级教程C语言程序设计课后习题答案

《全国计算机等级考试二级教程--C语言程序设计》课后习题答案 第一章 1.1 EXE 1.2 C OBJ EXE 1.3 顺序选择循环 第二章 一. 选择题 2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题 2.14 11 12 2.15 4.2 4.2 2.16 { } 定义执行语句 2.17 关键字用户标识符 2.18 int float double 2.19 float a1=1; float a2=1; 2.20 存储单元 2.21 3.5 2.22 (a*b)/c a*b/c a/c*b 2.23 把常量10赋给变量s 2.24 位1或0 2.25 8 127 0111111 -128 10000000 2.26 32767 -32768 0000 2.27 10 8 16 三. 上机改错题 2.28 #include "stdio.h"; 删除行尾的";" main(); / * main function * / 删除")"后的";",注释中的*要紧靠“/”,即应为“/*”和“*/” 函数开始处遗失了一个“{” float r,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ 注释符号不可嵌套使用 r = 5.0 ; s = 3.14159 * r * r ; printf("%f\n",s) 行尾遗失了“;” 函数结束处遗失了一个“}” 2.29 #include "stdio.h" main /* main function */ main后遗失了“()” { float a,b,c,v; /*a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0 行尾遗失了“;”

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

计算机等级考试二级真题及答案

2015计算机二级考试试题及答案 1、设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职,其中公司C(公司号,公司名,地址,注册资本,法人代表,员工数),员工S(员工号,姓名,性别,年龄,学历),雇佣E(公司号,员工号,工资,工作起始时间)。其中表C的键为公司号,表S的键为员工号,则表E的键(码)为______。 A、公司号,员工号 B、员工号,工资 C、员工号 D、公司号,员工号,工资 【评析】 本题考查知识点是关键字。 能唯一标识实体的属性集称为码(关键字)。码也称为关键字,是表中若干属性的属性组,其值唯一标识表中的一个元组。 本题答案:A。 3、下列叙述中正确的是______。 A、每一个结点有两个指针域的链表一定是非线性结构 B、所有结点的指针域都为非空的链表一定是非线性结构 C、循环链表是循环队列的链式存储结构 D、线性结构的存储结点也可以有多个指针 【评析】 本题考查知识点是线性表的线性结构与非线性结构。

线性表的链式存储结构称为线性链表。在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针,用以指向其前件结点;另一个称为右指针,用以指向其后件结点。 本题答案:D。 4、在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数______。 A、相同,元素的存储顺序与逻辑顺序一致 B、相同,但其元素的存储顺序可以与逻辑顺序不一致 C、不同,但元素的存储顺序与逻辑顺序一致 D、不同,且其元素的存储顺序可以与逻辑顺序不一致 【评析】 本题考查知识点是线性表的顺序存储结构。 线性表的顺序存储结构具有两个基本特点:1.线性表中所有元素所占的存储空间是连续的;2.线性表中各元素在存储空间中是按逻辑顺序依次存放的。 本题答案:A。 5、设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为______。 A、19 B、20 C、m-19 D、m-20 【评析】 本题考查知识点是循环队列的运算。

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧 一、技巧的原理 首先使用这个技巧必须了解上机编程题的评分原理。以上机题的第5套编程题为例。二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出: 在考生文件夹下存在一个名为in.dat的文件。首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。将结果用fprintf语句输入到out.dat文件中。其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。 二、使用技巧的条件 当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。使用这个技巧必须具备两个条件: 1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面 含有in.dat文件。 2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。例如 本题:

它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。那么这种技巧就不能使用。 三、步骤 确定了这个技巧可以使用后,我们就可以开始操作了。一般分为以下几步: 1、建立out.dat文件 上面可以看到我们的考生文件夹中是没有out.dat这个文件的。所以我们需要自己新建。最好的方法就是打开编程题直接编译、链接、执行。这样将程序执行一遍后我们的考生文件夹里就自动生成了我们需要的out.dat文件。(注意:这里生成了out.dat 文件后就不要再运行我们的程序了,因为每运行一次程序就会将程序生成的答案写入out.dat文件中,这样即算我们改成了正确答案,你如果再次运行程序,就会将我们修改的正确结果覆盖掉。) 2、修改答案

齐齐哈尔大学C语言题库 程序改错(部分)

1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i

计算机二级试题-改错题

第01套 给定程序MODI1.C中函数fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include double fun ( int n ) { double result = 1.0 ; /************found************/ if n = = 0 改为:if (n==0) return 1.0 ; while( n >1 && n < 170 ) /************found************/ result *= n-- 改为:result *= n--; return result ; } main ( ) { int n ; printf("Input N:") ; scanf("%d", &n) ; printf("\n\n%d! =%lf\n\n", n, fun(n)) ; } 解题思路: 第一处:条件语句书写格式错误,应改为:if (n==0)。 第二处:语句后缺少分号。 第02套 给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include void fun(char *s) { int i,j; for(i=0,j=0; s[i]!='\0'; i++) if(s[i]>='0' && s[i]<='9') /**********found**********/ s[j]=s[i]; 改为:s[j++]=s[i];

历年计算机二级MSOffice真题及答案

基础 一、选择题 1、世界上首先实现存储程序的电子数字计算机是____。 A、ENIAC B、UNIVAC C、EDVAC D、EDSAC 2、计算机科学的奠基人是____。 A、查尔斯.巴贝奇 B、图灵 C、阿塔诺索夫 D、冯.诺依曼 2、世界上首次提出存储程序计算机体系结构的是____。 A、艾仑?图灵 B、冯?诺依曼 C、莫奇莱 D、比尔?盖茨 3、计算机所具有的存储程序和程序原理是____提出的。 A、图灵 B、布尔 C、冯?诺依曼 D、爱因斯坦 4、电子计算机技术在半个世纪中虽有很大进步,但至今其运行仍遵循着一位科学家提出 的基本原理。他就是____。 A、牛顿 B、爱因斯坦 C、爱迪生 D、冯?诺依曼 5、1946年世界上有了第一台电子数字计算机,奠定了至今仍然在使用的计算机____。 A、外型结构 B、总线结构 C、存取结构 D、体系结构 在计算机应用领域里,____是其最广泛的应用方面。 A、过程控制 B、科学计算 C、数据处理 D、计算机辅助系统 6、1946年第一台计算机问世以来,计算机的发展经历了4个时代,它们是____。 A、低档计算机、中档计算机、高档计算机、手提计算机 B、微型计算机、小型计算机、中型计算机、大型计算机 C、组装机、兼容机、品牌机、原装机 D、电子管计算机、晶体管计算机、小规模集成电路计算机、大规模及超大规模集成电路计算机 7、以下属于第四代微处理器的是____。 A、Intel8008 B、Intel8085 C、Intel8086 D、Intel80386/486/586 8、Pentium IV处理器属于____处理器。 A、第一代 B、第三代

计算机二级C语言上机题库复习小抄(最新校正,精美排版)

计算机二级C语言上机题库复习小抄 (最新校正,精美排版) 第一套 1.程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun 的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处struct student t; 第二处for(i=0;i0) 2程序修改 给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i; /**found**/ while(q>p) 3程序设计 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套 1.程序填空 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。 第一处free(q); 第二处q=p->next; 第三处q=q->next; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j; /**found**/ p=i; 3. 程序设计 请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套 1. 程序填空 函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处for(i=0;idata==ch)return n; 第三处k=fun(head,ch); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/ for(i=0,t=0;p[i];i++) /**found**/ c[t]=?\0?; 3. 程序设计 请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 void fun(char *ss) { int i; for(i=1;i=?a?&&ss[i]<=?z?) ss[i]-=32; } } 第五套 1. 程序填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 第一处s=0; 第二处for(i=1;i<=n;i++) 第三处s=s+(2.0*i-1)*(2.0*i+1)/(t*t); 2. 程序修改 给定程序MODI1.C中函数fun的功能是:统计substr所指字符串在str所指字符串中出现伯次数。 /**found**/ for(i=0;str[i];i++) /**found**/ if(substr[k+1]==?\0?) 3. 程序设计 请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为 3.14…。 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套 1. 程序填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处t[j]=s[i];j++; 第二处for(i=0;iscore[i]+=1; 第三处return a; 2. 程序修改 给定程序MODI1.C中函数fun的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/ char *fun(char (*sq)[M]) /**found**/ return sp; 1

相关文档
最新文档