C语言程序改错2

合集下载

c语言改错题及答案

c语言改错题及答案

c语言改错题及答案

【篇一: c 语言二级上机(t 填空 ,改错 ,编程 )题库及答案】

100套题目(每套题

目包含 3 道题:一道程序填空题、一道程序修改题、一道程序设计

题),真实考试的时候,

考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时

只需考一套题目(包含三道题)

二级 c 语言上机试题汇编

※※※※※※※※※※※※※※※※※※※※※※※

第01套:

给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为偶数

的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通

过形参指针 n 传回

所指变量。

例如,输入一个数:27638496 ,新的数:为739 。

请在程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正确

的结果。

注意:源程序存放在考生文件夹下的blank1.c中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include stdio.h

void fun(unsigned long *n)

{ unsigned long x=0, i; int t;

i=1;

while(*n)

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

{ t=*n % __1__;

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

if(t%2!= __2__)

{ x=x+t*i; i=i*10; }

*n =*n /10;

}

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

*n=__3__;

}

main()

{ unsigned long n=-1;

while(n99999999||n0)

C语言程序改错题及答案

C语言程序改错题及答案
}
printf("\nThe sorted numbers: \n"); /*输出排序结果*/
for (i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
6、
#include <stdio.h>
void main()
{
char s1[80],s2[40];
int i=0,j=0;
}
printf("%f,%f\n",max,min);
}
10、.在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
#include <stdio.h>
#iΒιβλιοθήκη Baiduclude <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{ int n,i;
/***** 1 *****/
char str;// char*str

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

程序改错完整版---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。

c语言计算机二级填空改错编程题库105套..

c语言计算机二级填空改错编程题库105套..

第一套

1. 程序填空程序通过定义学生结构体

数组,存储了若干个学生的学号、

姓名和三门课的成绩。函数fun的

功能是将存放学生数据的结构体数

组,按照姓名的字典序(从小到大排

序)。

第一处struct student t;

第二处for(i=0;i<n-1;i++)

第三处if(strcmp(a[i]. name,a[j]. name)

>0)

2 程序修改

/**fou nd**/

q=p+i;

/**fou nd**/

while(q>p)

3程序设计

int fun(STREC *a,STREC *b,int

l,i nt h)

{int i,j=0;

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

if((a[i].s>=1 &&a[i].s<=h) b[j++]=a[i]; return j;

}

第二套

1. 程序填空

给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处free(q);

第二处q=p->next; 第三处q=q_>next;

2. 程序修改

/**fou nd**/

p=j;

/**fou nd**/

p=i;

3. 程序设计

void fun (i nt m,i nt *a,i nt *n)

{

int i;

*n=0;

for(i=7;i<=m;i++)

if((i%7==0)||(i%11==0)) a[(* n)++]=i;

}

第三套

1. 程序填空

函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的

大学C语言期末考试练习题程序改错(带详解答案)

大学C语言期末考试练习题程序改错(带详解答案)
} sum 应初始化 即加入 sum=1 第四行改为:scanf(“%d”,&n); 第六行改为:while(i<=n)或者 while(i<n+1) 第十行改为:printf("sum=%ld",sum);
2.求一个数组中最大值及其下标。 main( ) { int max,j,m; int a[5]; for(j=1;j<=5;j++) // j=1 为循环变量 j 赋初值为 1,同时用 j 作为数字元素的逻
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
Baidu Nhomakorabea
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
printf(“\n Input x:\n”); scanf(“%d”, x); // 错误同上题 scanf if(x<0)

C实验报告答案

C实验报告答案

C程序设计初步

一、实验目的

(1) 熟悉C语言程序的运行环境(VC++ 。

(2) 掌握C语言程序的上机步骤,了解运行C程序的方法。

(3) 掌握C语言程序的书写格式和C语言程序的结构。

二、实验内容(均要求给出运行结果)

1.程序改错题

(1) 以下程序实现计算x×y的值并将结果输出。请改正程序中的错误。

#include ""

void main()

/**********FOUND**********/

{ int x=y=4;

z=x*y;

/**********FOUND**********/

printf("z=%d/n", Z);

}

答案:

=======(答案1)=======

int x=,4,y=4,z;

=======(答案2)=======

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

(2) 以下程序实现输入圆的半径,求圆的周长。请改正程序中的错误。

#include ""

void main()

{ int r;

float l;

printf("Enter r:");

scanf("%d", &r);

/**********FOUND**********/

l=2πr

/**********FOUND**********/

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

}

答案:

=======(答案1)=======

l=2**r;

=======(答案2)=======

printf("l=%f\n", l);

2.程序填空题

(1) 下面程序能对两个整型变量的值进行交换,请填空。

#include ""

void main()

{ int a=3,b=4,t;

计算机二级c语言题型

计算机二级c语言题型

计算机二级c语言题型

计算机二级C语言考试通常包含以下几种题型:

1. 填空题,在给定的代码中,要求填写合适的代码来完成特定的功能或达到特定的要求。

2. 编程题,给出一个具体的问题或要求,要求考生编写完整的C语言程序来解决问题。这类题目通常要求考生熟练掌握C语言的语法和常用函数库的使用。

3. 程序阅读题,给出一段已经编写好的C语言程序,要求考生理解程序的功能和运行逻辑,并回答相关的问题。

4. 程序改错题,给出一段有错误的C语言程序,要求考生找出错误并进行修正,使程序能够正确运行。

5. 程序填空题,给出一段部分代码,要求考生根据要求填写缺失的代码,使得程序能够正确运行。

6. 程序设计题,给出一个具体的问题或要求,要求考生设计并

实现一个C语言程序来解决问题。这类题目通常需要考生综合运用C语言的各种知识和技巧。

在考试中,以上不同类型的题目可能会结合起来,形成一套完整的试题,以考察考生对C语言的全面理解和应用能力。考生需要熟悉C语言的基本语法、常用函数库的使用、程序的调试和错误处理等方面的知识,才能在考试中取得好成绩。

C语言程序改错2

C语言程序改错2
31有一数组内放10个整数要求找出最小数和它的下标然后把它和数组中最前面的元素即第一个数对换位置
1、以下程序的功能是求如下表达式: 1 1
1
S = 1 + —— + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』 :1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或 s= s + 1.0 /t; 2、题目:函数 fun 的功能是:根据整型形参 m 的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如,若 m=5,则应输出:0.536389 『答案』 :1 for(i=2;i<=m;i++)或 for(i=2;i<m+1;i++) 2 y-=1.0/(i*i); 或 y=y-1.0/(i*i); 3 return y; 或 return (y); 3、函数 fun 的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于 0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 『答案』 :1 #include "math.h" 或 #include <math.h> 2 float s=0,t=1,p=1; 3 while(fabs(t)>1e-4)或 while(fabs(t)>0.0001) 4 printf("pi=%f\n", s * 4 ); 4、功能:计算正整数 num 的各位上的数字之积。例如,输入 252,则输出应该是 20。 『答案』 :1 long k=1; 或 long int k=1; 2 num/=10; 或 num=num/10; 3 scanf("%ld",&n); 4 printf("\n%ld\n",fun(n)); 5、功能: (与上题略有不同)计算正整数 num 的各位数字之积。例如,若输入:252,则输 出应该是:20。若输入:202,则输出应该是:0。 『答案』 :1 {long k=1; 2 num/=10; 或 num=num/10; 3 } while(num) ; 或 }while(num!=0); 或 }while(num>0); 6、题目:判断 m 是否为素数,若是返回 1,否则返回 0。 『答案』 :1 int fun( int m) 或 fun( int m) 2 for(i=2;i<m;i++) 3 if( m%i == 0 ) k=0; 4 return(k); 或 return k; 7、功能:找出大于 m 的最小素数,并将其作为函数值返回。 『答案』 :1 for(k=2;k<i;k++) 或 for(k=2;k<=i-1;k++) 或 for(k=2;k<=sqrt(i);k++) 2 if( i%k == 0 ) break; 或 if(!(i%k)) break; 3 if(i<=k)或 if( k == i ) 或 if(k>sqrt(i)) 4 return i; 或 return (i);

C语言程序改错答案

C语言程序改错答案

C语⾔程序改错答案

题⽬:下题是⼀段有关结构体变量传递的程序.

答案:

1). a.c='a';

2). printf("%d,%c",a.x,a.c);

3). b.c='y';

题⽬:下列程序中,函数fun的功能是:先将在字符

串s中的字符按正序存放到t串中,然后把s中

的字符按逆序连接到t串的后⾯。

例如:当s中的字符串为:“ABCDE”时,

则t中的字符串应为:“ABCDEEDCBA”。

答案:

1). for(i=0;i2). t[sl+i]=s[sl-i-1];

3). t[sl+i]='\0';

题⽬:编写函数fun其功能是在键盘上输⼊⼀个3⾏3列矩阵

的各个元素的值(值为整数),然后输出矩阵第⼀⾏

与第三⾏元素之积,并在fun()函数中输出。

答案:

1). sum=1;

2). for(i=0;i<3;i+=2) 或 for(i=0;i<3;i=i+2) 或 for(i=0;i<3;i++,i++)

3). sum=sum*a[i][j]; 或 sum*=a[i][j];

题⽬:函数fun的功能是:⽤下⾯的和式求圆周率的近似值。直

到最后⼀项的绝对值⼩于等于0.0001。

π 1 1 1

— = 1 - — + — - — + ...

2 3 5 7

请改正程序中的错误,使它能得出正确的结果。

答案:

1). #include "math.h"

2). float s=0,t=1,p=1; 或 float s=0,p=1,t=1; 或 float p=1,s=0,t=1; 或 float p=1,t=1,s=0; 或 float t=1,p=1,s=0; 或 float t=1,s=0,p=1;

C语言试题及答案解析(二)

C语言试题及答案解析(二)

C语言试题及答案解析(二)

班级姓名学号____________

一、选择题(20分)

1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________

A.if、while和for; B. switch、do-while和for;

C.while、do-while和for;

D.顺序结构、分支结构和循环结构。

2.算法的特征不包括:______。

A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。

3.C语言源程序的基本组成单位是______。

A.函数 B. 语句 C. 声明和语句 D. 文件

4.下列标识符中,只有______是合法的。

A.if B. 3ab C. Int D. A-4

5.下列常量中,只有______是合法的。

A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’

6.下列说法中正确的是:______。

A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。

B.宏替换比函数调用的执行速度慢。

C.实质上,C语言中的指针就是一个变量的地址。

D.C语言中的任何函数都可以由程序员命名。

7.C语言中,运算对象必须是整型的运算符是_______。

A./ B. % C. + D. -

8.以下叙述中错误的是_______。

A.C语句必须以分号结束

B.复合语句在语法上被看作一条语句

C.空语句出现在任何位置都不会影响程序运行

D.赋值表达式末尾加分号就构成赋值语句

9.以下叙述中正确的是_______。

A.调用printf函数时,必须要有输出项

C语言习题级答案

C语言习题级答案

测试题 3

1.C语言中不合法的字符常量是C

A、’\65 ’

B、’\xff’

C、’\028 ’

D、’&’

2.具有相同类型的指针变量 p与数组 a,不能进行的操作是( C)。

A、 p=&a[0];

B、 p=a;

C、 p=&a;

D、 *p=a[0];

3.若有 x=22,y=26,z=0; ,则执行下面语句后 ,z 的输出结果是 (B ) z=x>y?x:y

A、 72

B、 26

C、 48

D、 22

4. 对于建立函数的目的,正确的说法是D

A、提高程序的执行效率

B、减少程序的篇幅

C、减少程序文件所占的内存

D、提高程序的可读性

5.有定义 :char*p1,*p2; 则下列表达式中正确合理的是 C

A、 p1/=5

B、 p1+=5

C、 p1=&p2

D、 p1*=p2

6.以下程序的运行结果是( B)。

main()

{

int i=1,sum=0;

while(i<10) sum=sum+1;i++;

printf("i=%d,sum=%d",i,sum);

}

A、 i=10,sum=9

B、运行出现错误

C、 i=2,sum=1

7. 若变量已正确定义且k的值是4,计算表达式( j =4, k--)后,j和k的值为(C)

A、 j=4, k=4

B、 j=3, k=3

C、 j=4, k=3

D、 j=3, k=4

8.给出以下定义 :

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为(A)

A、数组 x的长度大于数组y 的长度

B、数组 x和数组 y等价

计算机二级等级考试C语言改错题讲解

计算机二级等级考试C语言改错题讲解

1.调试C程序时常见的错误类型分析

一般情况下,错误主要分为两大类:一、语法错误。对于这种错误,用编译器很容易解决。所以,改错题的第一步是先编译,

解决这类语法错误。下面总结了二级C 语言上机改错题中常见的语法错误:

(1)丢失分号,或分号误写成逗号。

(2)关键字拼写错误,如本来小写变成大写。

(3)语句格式错误,例如for语句中多写或者少写分号。

(4)表达式声明错误,例如:少了()

(5)函数类型说明错误。与main()函数中不一致。

(6)函数形参类型声明错误。例如:少*等。

(7)运算符书写错误,例如:/写成了\。

二、逻辑错误,或者叫语义错误,这和实现程序功能紧密相关,一般不能用编译器发现。

对于逻辑错误可以按这样的步骤进行查找。

(1)先读试题,看清题目的功能要求。

(2)通读程序,看懂程序中算法的实现方法。

(3)细看程序,发现常见错误点。

2.改错题的改错方式总结,当然这些总结只能对大部分改错行有效。

1、若错误行是函数首部,可分为以下几种情况:

A、该行最后若有分号则删除,中间若有分号则改成逗号

B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则第二维的长度必须与main中对应数组的第二维长度相同

C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return 后变量的类型一致。

2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。

2013计算机等级考试二级C语言程序改错题

2013计算机等级考试二级C语言程序改错题

1、下列给定程序中,函数fun的功能是:将s所指字符串的郑旭和反序进行连接,形成的新串放在t所指的数组中

2、函数fun的功能是:用下面的公式求π的近似值,知道最后一项的绝对值小于指定的数为止。

3、函数fun的功能是:传入一个整数m,计算如下公式的值。T=1/2-1/m。

4、函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。

5、从参数1-55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的属猪中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。

6、求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未能找到,则函数值为null。

7、按以下递归公式求函数的值fun(n)={10 (n=1)。

8、函数fun和funx的功能是:用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001。

9、首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的升序字符接在c所指的数组的尾部。

10、计算整数n的阶乘。

11、计算函数F(x,y,z)=(x+y)的值。其中x和y的值不相等,z和y的值不相等。

12、利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。

13、求三个数的最小公倍数。

14、将s所指字符串中最后一次出现的鱼t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案--2018.10修改

实验一Visual C++集成环境实验内容

(一)程序改错

1.

(1)无法运行

(2)将第二个C程序重新存放到另一个工程文件中

(3)同一个工程文件只能有一个main函数

2.

(1)/*一个简单的程序*/

(2)void main()

(3)}

3.

(1)int a,b,c;

(2)a=2;

(3)c=a*b;

(二)完善程序

1.

(1)year

(2)month

(3)day

2.

(1)c

(2)a*a+b*b

(3)c

3.

(1)4

(2)4*a

(3)s

课后练习

1.D

2.D

3.A

4.C

5.C

6.C

7.stdio.h

8.main函数

实验二数据类型、运算符和表达式课前练习

1. 20 8 70 0

2. Abs3 Class _else sum my_class 、

3block a+b for fun(4) a-b

3.B

4.D

5.A

6.C

7.D

8.B

实验内容

(一)程序改错

1.

(1)int x1,x2,x3,x4;

(2)scanf("%d,%d",&a,&b);

(3)c=x4*1000+x2*100+x3*10+x1;

2.

程序1:

① 2 2

②error C2065: 'a1' : undeclared identifier

变量a1没有定义

sum=a+b+c

③ 1

error C2146: syntax error : missing ';' before identifier 'printf' printf语句之前缺少分号

sum=a+b+c;

④0 error(s), 0 warning(s)

⑤a=1 b=3 c=2 sum=6

2016年安徽省计算机二级考试C语言(模拟试卷一)

2016年安徽省计算机二级考试C语言(模拟试卷一)
21: 以下程序段的输出是______。 int a=1,b=2,c=3,t; while (b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c);
A. 1,2,3 B. 2,1,2 C. 1,2,1 D. 2,1,1 参考答案:C
22: for(表达式1 ; ;表达式3)可理解为______。
A. x=y==5; B. x=y%2.8; C. x=y=5; D. x+=x+2; 参考答案:B
17: 设有定义int a; char c;,执行输入语句scanf("%d%c",&a,&c);时,若要求a和c得到的值为10和'Y',正 确的输入方式是_______。
A. 10,Y B. 10.Y C. 10Y D. 10 Y 参考答案:C
程序改错题1
题目: 输出个位数为7的最小的10个素数,如7,17,37,47 ......等。 参考答案: $1$:while(n<10) $2$:if(i%j==0) $3$:if(flag==0)
程序改错题2
题目: 删除字符串中的所有空格字符。 参考答案: $1$:j++; $2$:s[j]='\0'; $3$:printf("%s\n", s);

C语言二级改错题总结

C语言二级改错题总结

二级C语言上机考试改错题总结

一、上机改错题的特点和注意事项

1.上机改错的试题中通常包含两个(或三个)错误需要修改。

2.试题中用"******found******/"来提示在下一行(或下面第二行)有错。

3.错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。

4.特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。

二、上机改错测试时,建议按以下步骤进行

1.首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。

2.调出源程序后,审视"/******found******/"所在函数,根据题义理解程序所采用的基本算法,做到心里有数。

3.先对测试程序进行检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。

4.当不再出现语法错时,执行程序,按照试题的示例给出的数据进行试算,若试算的结果与给出的输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。

5.当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有可能字符串的结束标志放错了位置。再如做循环的时候数组上限下限错误了,基数是从0开始而不是1开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。

6.修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、以下程序的功能是求如下表达式:

1 1 1

S = 1 + ——+ ———+ ...... + ———————

1+2 1+2+3 1+2+3+......+n

『答案』:1 scanf("%d",&n);

2 float fun(int n)

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

4 s+=1.0/t 或s= s + 1.0 /t;

2、题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。

1 1 1

t = 1- ——- ——- ... - ——

2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 『答案』:1 for(i=2;i<=m;i++)或for(i=2;i

2 y-=1.0/(i*i); 或y=y-1.0/(i*i);

3 return y; 或return (y);

3、函数fun的功能是:用下面的和式求圆周率的近似值。直到最后一项的绝对值小于等于0.0001。

π 1 1 1

—= 1 - —+ —- —+ ...

4 3

5 7

『答案』:1 #include "math.h" 或#include

2 float s=0,t=1,p=1;

3 while(fabs(t)>1e-4)或while(fabs(t)>0.0001)

4 printf("pi=%f\n", s * 4 );

4、功能:计算正整数num的各位上的数字之积。例如,输入252,则输出应该是20。『答案』:1 long k=1; 或long int k=1;

2 num/=10; 或num=num/10;

3 scanf("%ld",&n);

4 printf("\n%ld\n",fun(n));

5、功能:(与上题略有不同)计算正整数num的各位数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。

『答案』:1 {long k=1;

2 num/=10; 或num=num/10;

3 } while(num) ; 或}while(num!=0); 或}while(num>0);

6、题目:判断m是否为素数,若是返回1,否则返回0。

『答案』:1 int fun( int m) 或fun( int m)

2 for(i=2;i

3 if( m%i == 0 ) k=0;

4 return(k); 或return k;

7、功能:找出大于m的最小素数,并将其作为函数值返回。

『答案』:1 for(k=2;k

2 if( i%k == 0 ) break; 或if(!(i%k)) break;

3 if(i<=k)或if( k == i ) 或if(k>sqrt(i))

4 return i; 或return (i);

8、功能:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。

『答案』:1 while ( (k>=2) && (mc<10) )或while ( (k>=2) && (mc<=9) )

2 if(!(k%17!=0 && k%13!=0 )) 或if( ( k%1

3 == 0 ) || ( k%17 == 0 ) )

3 k--; 或k=k-1; 或k-=1; 或--k;

4 return m; 或return(m);

9、在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。

『答案』:1 int fun(int *a,int *b,int n)

2 *b=c-a;}

3 scanf("%d",&a[i]); 或scanf("%d", a + i );

4 max=fun(a,&p,N);

10、通过键盘输入10个整数为一维数组各个元素赋值;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出调整后的数组元素。

『答案』:1 scanf("%d",p++); 或scanf("%d",&arr[i]); 或scanf("%d",p+i);

2 if(*p>*max) 或if(*max<*p)

3 if( max == arr )

4 for(i=0;i

11、用起泡法对10个整数从小到大排序。

『答案』:1 for(j=0;j< n -1 -i ;j++)

2 if(x[j]>x[ j + 1 ]) 或if(x[ j + 1]

3 scanf("%d",&a[i]); 或scanf("%d",a+i);

4 sort(a,n); 或sort(&a[0],n);

12、在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

『答案』:1 scanf("%d",&number);

2 for(i=N-2;i>=0;i--) 或for(i=N-2;0<=i;i--)

3 a[ i + 1 ]=a[i];

4 break;}

13、将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。

『答案』:1 { char *p1,*p2; 或{ char *p2,*p1;

2 p1= str1 + m -1; 或p1=-1+ str1 + m ;

3 while(*p1) 或while(*p1!='\0')

4 strcopy(str1,str2,m);

14、将一个字符串中的大写字母转换成小写字母。例如:输入aSdFG输出为asdfg。

『答案』:1 char fun(char *c)

2 return *c; 或return (*c); 或return(*c);

3 { char s[81],*p=s;

4 putchar(*p); 或printf("%c",*p);

15、题目:将若干学生的档案存放在一个文件中,并显示其内容。

『答案』:1 { struct student *p;

2 FILE *fp;

3 for(p=stu;p< stu + 3 ;p++) 或for(p=stu; stu + 3 >p;p++)

4 printf("%4d %-10s %4d\n",(*p).num ,p->name,(*p).age);

16、题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的和。

相关文档
最新文档