C语言上机考试3

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

一、单项选择
1・题号:4889
以下函数调用语句中,实参的个数是()•
exce((v1 ,v2),(v3,v4,v5),v6);
A、 3
B、 4
C、 5
D6
// (v1 ,v2)是一个逗号表达式,(v3,v4,v5)也是一个逗号表达式答案:A
2. 题号:4093
尖于return语句,下列正确的说法是()・
A、可以在同一个函数中,出现多次
B、在主函数和其他函数中,均可出现
C、必须在每个函数中,出现
D只能在除主函数之外的函数中,出现一次
〃只能执行其中的一个的return语句。

并且函数遇到return语句,结束函数的执行答案:A 3. 题号:4535
数组名作为实参数传递给函数时,数组名被处理为()•
A、该数组的首地址
B、该数组的元素个数
C、该数组中各元素的值
D该数组的长度
答案:A
4. 题号:4525
在C语言的函数中,下列正确的说法是()・
A、数组名不能作形参
B、可以有也可以没有形参
C、形参必须是变量名
D必须有形参
答案:B
5. 题号:4083
以下正确的函数定义形式是()・
A、double fun(int x,int y)
B、double fun(int x;inty)〃
C、double fun(int x,y); 〃
D double fun(int xjnt y); //
错在分号
错在形参y没有类型
错在函数头后没有分号
答案:A
6. 题号:4232
C语言程序中,必须有的函数是()・
A、main()
B、#include n stdio.h H
C、seanf
D printf
答案:A
7. 题号:4048下面对函数的叙述,正确的是()・
A、函数中无论是否有return语句,都能返回正确值
B、函数中没有return语句,说明不带回值
C、函数不能嵌套定义
D函数的返回值是通过return语句获得的
答案:C
8. 题号:4073
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()・
A、传递方式由用户指定
B、由实参传给形参,再由形参传回实参
C、地址传递
D单向值传递
答案:D
9. 题号:5119
下列尖于函数的叙述中正确的是()・
A、每个函数都可以单独运行
〃主函数可以单独运行。

其它的函数都需要被调用才能被执行。

B、在一个函数内部可以定义另一个函数〃不可以嵌套定义
C、每个函数都可以被单独编译
D每个函数都可以被其他函数调用(包括main()函数)〃不包括主函数答案:C 10. 题号:4787
设函数的调用形式如下:f((x1 ,x2),(y1 ,y2,y3)), 则函数有()个形参.
A、 5
B、 3
C、 2
D4
答案:C
11. 题号:4901
在C语言中,形参的缺省存储类是()・
A、static
B、register
C、auto
D extern
答案:C
12. 题号:4507
C语言规定,在一个源程序中,main()函数的位置.
A、必须在最开始
B、必须在系统调用的库函数的后面
C、可以任意
D必须在最后
答案:C
13. 题号:4847
以下叙述中,正确的是()・
A、main()可作为用户标识符,用以命名任意一个函数作为主函数
B、C语言程序将从源程序中,第一个函数开始执行
C、可以在程序中,由用户指定任意一个函数作为主函数,程序将从此开始执行
D C语言规定必须用main()作为主函数名,程序将从此开始执行,在此结束答案:D
14. 题号:5137
以下函数的类型是
fff(float x)
{
prin tf(”%d\rT,x);
}
〃函数返回值省略。

默认为int型。

A、void类型
B、int类型
C与参数x的类型相同
D无法确定
答案:B
15. 题号:4403
C语言规定,在一个C程序中,main()函数的位置()・
A、可以在任意位置
B、必须在程序的最后
C、必须在程序的开始
D必须在系统调用的库函数之后
答案:A
16. 题号:4112
C语言规定,函数返回值的类型是()・
A、由return语句中的表达式类型所决定
B、由调用该函数时的主调函数类型所决定
C、由调用该函数时系统临时决定
D由定义该函数时所指定的数值类型决定
答案:D
17. 题号:4804
以下所列的函数”首部”中,正确的是()・()
A、void play(int a,b)
B、void play(int a,int b)
C、void play(a:int,b:int)
D void play(a as int,b as int)
答案:B
18. 题号:4432
有以下函数定义:
int fun( double a,double b)
{return a*b;}
若以下选项中,所用变量都已正确定义并赋值,错误的函数调用是()•
A、z=fun(fun(x,y),fun(x,y));
B、z=fun(fun(x,y)x,y);
C、if(fun(x,y)){ ••…}
Dfun(x,y);
答案:B
19. 题号:5050
对于void类型函数,调用时不可作为().
A、if语句的成分语句
B、表达式
C、循环体里的语句
D自定义函数体中的语句
〃无返回值函数只能以语句形式调用。

不可以作为表达式或实参答案:B 20. 题号:4269
若使用一维数组名作函数实参,则以下正确的说法是()・
A、必须在主调函数中,说明此数组的大小
B、实参数组类型与形参数组类型可以不匹配
C、实参数组名与形参数组名必须一致
D在被调用函数中,不需要考虑形参数组的大小答案:A
21. 题号:4696
在C语言中,调用函数除函数名外,还必须有()・
A、实际参数
B、0
C、函数预说明
D函数返回值答案:B
22. 题号:4892
以下错误的描述是:函数调用可以()・
A、做为一个函数的实参
B、做为一个函数的形参
C、出现在一个表达式中
D出现在执行语句中
〃函数调用形式一共有三种:独立语句形式。

表达式或函数的实参答案:B 23. 题号:4256
当调用函数时,实参是一个数组名,则向函数传送的是()・
A、数组每个元素中的值
B、数组的首地址
C、数组的长度
D数组每一个元素的地址答案:B
24. 题号:5014
若用数组名作为函数的实参,传递给形参的是()・
A、数组的首地址
B、数组元素的个数
C、数组第一个元素的值
D数组中,全部元素的值答案:A
25. 题号:4843
如果在一个函数中的复合语句中,定义了一个变量,以下正确的说法是()・
A、该变量在本程序范围内均有效
B、该变量只在该复合语句中,有效
C、该变量在该函数中,有效
D该变量在主函数中,有效
答案:B
26. 题号:4319
C语言中,规定,程序中,各函数之间()・
A、既允许直接递归调用也允许间接递归调用
B、允许直接递归调用不允许间接递归调用
C、不允许直接递归调用允许间接递归调用
D不允许直接递归调用也不允许间接递归调用答案:A
27. 题号:5062
凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为()・
A、自动(auto)
B、静态(static)
C、外部(extern)
D 寄存器(register)
答案:A
28. 题号:4672
以下叙述中,正确的是()・
A、构成C程序的基本单位是函数
B、main()函数必须放在其它函数之前
C、所有被调用的函数一定要在调用之前进行定义
D可以在一个函数中,定义另一个函数答案:A
29. 题号:4236
全局变量的定义不可能在()・
A、最后一行
B、文件外面
C、函数内部
D函数外面
答案:C
30. 题号:4754
以下对C语言函数的描述中正确的是()・
A、C程序中有调用尖系的所有函数必须放在同一个程序文件中
B、C函数既可以嵌套定义又可以递归调用〃不可以嵌套定义
C、函数必须有返回值,否,则不能使用函数〃函数返回值可以为void
D C程序必须由一个或一个以上的函数组成答案:D
31. 题号:4045
在C语言中,变量的隐含存储类别是()・
A、static
B、auto
C、无存储类别
D extern
答案:B
32. 题号:4578
若已定义的函数有返回值,则以下尖于该函数调用的叙述中,错误的是()•
A 、 函数调用可以作为一个函数的形参
B 、 函数调用可以作为独立的语句存在
C 、 函数调用可以作为一个函数的实参
D 函数调用可以出现在表达式中, 答案:A
33. 题号:4537
以下正确的函数声明语句是()・
A 、 int add(int a,int b) 〃
B 、 double add();
C 、 int add(char a[][]); 〃
D char add(char a,b);//b 答案:B
34. 题号:4436
已知year 为整型变量,不能使表达式(year%4==0&&year%100 !=0) ||year%400==0的值为”真的数据是 0- A 、 B 、 C 、 D 1992
答案:A
35. 题号:5040
以下叙述中,不正确的是()・
A 、在一个函数内定义的变量只在本函数范围内有效
B 、 在一个函数内的复合语句中,定义的变量在本函数范围内有效〃在复合语句内有效
C 、 函数中的形式参数是局部变量
D 在不同的函数中,可以使用相同的名字的变量
答案:B
36. 题号:3986
函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是()・
A 、 实参与形参是双向传递〃单向传递。

由实参单向赋值给形参
B 、 形参和实参可以同名
C 、 实参类型一定要在调用时指定
〃偷换概念。

形参类型一定要在定义时给定。

调用时,与函数名和实参变量名有尖。

与类型无尖D 形参 可以
是表达式〃形参必须为变量
答案:B
二、判断题
1. 题号:4018
函数的嵌套调用中,被调用函数执行完成后,均返回主函数. 〃返回上一级调用函数
答案:错误 I 少了分号。

不是语句
数组第二维长度不可省略
没有数据类型
1990
1996
2000
2. 题号:4872
函数在说明时,可以不定义函数的形参名,只指定函数相应位置上形参的类型函数说明语句的三种形式:int max(i nt a,i nt b);// 与用户自定义函数中的形参变量名一样
int max(i nt,i nt); //省略形参变量名
答案:正确
3. 题号:4204
函数中的形式参数是局部变量.
答案:正确
4. 题号:4577
静态局部变量是在编译时被初始化的,故它只被赋初值一次•
答案:正确
5. 题号:4846
gets函数是用来输入一个字符的函数.
//gets函数是用来输入一个字符串的。

它以回车键结束。

可以读入带空格的字符串
答案:错误
6. 题号:5028
静态局部变量在整个程序运行期间都不释放・答案:正确
7. 题号:4767
函数调用时,实参和形参在类型上应按位置与形参一一对应匹配;如果类型不匹配,通常编译器并不给出出错信息.
答案:正确
8. 题号:4984
一个C程序只能由一个主函数组成
〃一个程序可以由一个或多个函数组成。

但只能有一个主函数
答案:错误
9. 题号:5013
C程序的基本组成单位是函数
答案:正确
10. 题号:4587
C语言的函数可以嵌套定义
〃可以嵌套调用。

不可以嵌套定义。

答案:错误
11・题号:4288
函数定义当中的函数类型是return语句中表达式的类型.
数返回值的类型。

答案:正确
12. 题号:4442
C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的.
答案:正确
13. 题号:4989
C语言中return语句可以返回函数值•如果return语句后表达式的值与函数说明的类型不一致,则以return语句的表达式类型为准,系统将自行转换.
答案:错误
14. 题号:4783
通过return语句,函数可以带回一个或一个以上的返回值.
//return语句只能带回一个值。

不能带回2个或多个值。

但地址传递可以。

答案:错误
15. 题号:5084
若一个函数的返回类型为void,则表示其没有返回值.
答案:正确
16. 题号:4175
在C语言中,不允许函数嵌套定义,但函数可以嵌套调用.
答案:正确
17. 题号:4689
return语句可以在同一个函数中出现多次.
〃但只能执行其中一个。

且调用函数结束。

答案:正确
18. 题号:4351
所有定义在主函数之前的函数无需进行声明.
答案:正确
19. 题号:4097
每次调用函数时,都要对静态局部变量重新进行初始化.
〃静态变量可以由系统进行初始化。

也可以由用户进行初始化。

但只初始化一次。

生命〃周期是程
序运行的整个时间。

局部变量每次调用时都要进行初始化。

答案:错误
20. 题号:4092
在不同的函数中可以使用相同名字的变量.
答案:正确
21. 题号:4584
函数调用时,要求实参与形参的个数必须一致,对应类型一致•答案:正确
22. 题号:4055
C语言程序总是从main()函数开始执行.
答案:正确
23. 题号:4161没有初始化的整型静态局部变量的初值系统均默认为0.
答案:正确
24. 题号:4349
在C语言的函数中,必须有形参.
答案:错误
25 •题号:5108
在C语言中,函数可以嵌套定义,但不能嵌套调用•答案:错误
三、填空题
1・题号:4286
在函数中,需要返回一个结果时,可以使用 __语句.
答案:空1:return
2. 题号:4371
函数的_调用是一个函数直接或间接地调用它自身・
答案:空1 :递归
3. 题号:4333
C语言中,格式输入操作是由库函数______ 成的,格式输出操作是由库函数__________ 成的. 答案:空1:scant
空2:printf
4. 题号:4373
C源程序中的主函数的名称必须是_______。

答案:空1:main
7
5. 题号:4601
下述函数的功能是 ______ 。

void fun c(i nt a[ ],i nt n)
{int i,j;
for(i=1 ;i< n;i++)
{forO=i;j>0&&aO]<aU-1];H
{int t=a[j];
a0l=aD-1];
}
}
}
答案:空1:用冒泡法由小到大排序 6. 题号:4885
函数调用时的实参和形参之间的数据是单向的 ________ 传递•
7. 题号:4690
如果函数不要求返回值,可用 _____ 来定义函数为空类型.
答案:空1:void
四、程序设计
1. 题号:7041
/*
【程序设计】
题目:函数fact(x)的功能是求x!。

编写main 程序调用函数fact 求解从m 个元素选n 个元素的组合数 的 个数。

计算公式是:组合数二 m!/(n!.(m-n)!)。

要求:m 不能小于n,
否则应有容错处理。

注意:部分源程序给出如下。

请勿改动主函数
ma in 和其它函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句
********* Begj p|**********
和廿 ********** End ********** 不口J 删除 【或】冒泡法排序【或】排序【或】 由小到大排序
#i nelude ”stdio.h”
long fact(i nt x)
〃函数返回值一定要定义为long。

因为阶乘值增长的很快。

很容易超出int的范围
7
long y;//y 是存放阶乘值的变量。

所以要定义为长整型 long,
inti;
y=l ;
for(i=1 ;iv=x;i++)
y=y*i;
return y;
} mai n() {
int m,n;
long zhsgs;
printf (”请输入 n 和 n:\n H ); scan f(n %d%d n ,&m,&n);
/** Beg **/
while(m <hf)
{
printf(n m 和n 输入错!请重新输入:\rT);
sea nf(,,%d%d ,,,&m 5&n);
} zhsgs=fact(m)/(fact( n)*fact(m-n));
printf(M 从% £个元素选%个元素的组合数的个数是:%
d\n zhsgs); getch();
yzj();
} yzj()
{
FILE *IN,*OUT; int n;
inti;
long o;
IN=fope n("i n.dat”,”r”); if(IN==NULL)
{pri ntf (”Read File Error");
}
OUT=fope n(,,out.dat ,,,"w n ); if(OUT==NULL)
{pri ntf (”Write File Error");
} for(n=0 ;n<5; n++)
{
fscan f(IN 「%d”,&);
o = fact(i);********* End ********* *
/
* 7
fprin tf(OUT,H %ld\n n ,o);} fclose(IN); fclose(OUT);
1. 示例代码:
while(m <n)
{
printf(n m 和n 输入错!请重新输入:\rT); sea nf(”%d%d”,&m,&n);
}
zhsgs=fact(m)/(fact( n)*faet(m-n));
2. 题号:6931
【程序设计】
题目:对某一正数的值保留2位小数,并对第三位进行四舍五入
注意:部分源程序给出如下。

请勿改动主函数main 和其它函数中的任何内容,仅在函数
float fun (float h)
/** Beg in **/
inti;//假设 h=12.5489 i=(i nt)(h*1OOO)%1O;//i=(i nt)(12.5489*1000)%10=12548%10=8 if(i>=5)
return(i nt)(h*100+1 )/100.0;
else
return(i nt)(h*100)/100.0;
End void mai n()
{ float m;
fun 的花括
Beg in ********** 禾口 廿 ********** End 不可删除
号中填入所编写的若干语句
un c();
*/ #i nelude "stdio.h" #in clude H co ni o.h" void TestF
printf(H Enter m:n);
* 7
scanf(H%f H, &m);
printf(n\nThe result is %8.2f\n", fun(m)); TestFunc();
void TestFunc()
{
FILE*IN,*OUT;int s ;
float t; float o;
IN=fopen(n in.dat n,n r n); if(IN==NULL)
{ printf(”Read File Error");
}
OUT=fopen(H out.dat H;,w H);if(OUT==NULL)
{ printf(H Write File Error");
} for(s=1 ;sv=5;s++)
{fscanf(IN/,%f",&t); o=fun(t);
fprintf(OUT,”%8・2f\rr,o);
}fclose(IN);fclose(OUT);
}
2. 示例代码:
int i; i=(int)(h*1000)%10;
if(i>=5) return(int)(h*100+1 )/100.0;
else return(int)(h*100)/100.0;
3. 题号:6993
【程序设计】
题目:编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat )。

例如'分别输入下面两个字符串:
FirstStri ng-
Secon dStri ng 程序输出:FirstStri ng-Secon dStri ng
注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

********* g^gj p********** 和廿End ★★★***★*** 不可删
*/
#\ nclude <stdio.h>
#in elude vconi o.h>
#i ncludevwi ndows.h> void fun(char p1 [],char p2[]) {
/** Beg in **/
int i=0,j=0;
while((p1[i])!=,\0,)
i++;〃求字符串p1的长度°
{
j++;
}
p1[i]='\0:/** End *7
NONO()
{广本函数用于打幵文件,输入测试数据,调用fun函数,输出数据,尖闭文件。

7 int i ;
FILE *rf, *wf;
char s1[80], s2[40];
rf = fope n("bc02. in", ”r”); wf = fope n(',bc02.out,,J”w”);for(i = 0 ; i v 10 ; i++) { fscan f(rf, ”%s”,s1);
fscan f(rf, ”%s”, s2);
fun( s1, s2);
fprin tf(wf, ”%s\n”,s1);
fclose(rf); fclose(wf);
main()
{ char s1[80],s2[40];
system(”cis”); printf(”Enter s1 and s2:\rT); scanf(H%s%s H,s1 ,s2); printf(n s1=%s\n M,s1); printf(n s2=%s\n H,s2);
printf(H lnvoke fun(s1 ,s2):\n H); fun(s1,s2);
printf("After invoking:\n”);
printf「%s\rT,s1);
NONO();
3. 示例代码:
char *point1 ,*point2;
pointl =p1;
point2=p2;
while((*point1)!=\0,) pointl++;
while(*point2!='\0,){
*point1=*point2;
pointl++;
point2++;
}
*point1 = \0f;
4. 题号:7002
/*
【程序设计】
题目:能计算从1开始到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。

(n是偶数)
注意:部分源程序给出如下。

请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

Begin **********End ********** 不可删除
*/
#include <stdio.h> void bky();
int fun(int n) /** Begin
s ( 2 E
) £ u
a
* *( 呂1—L- u

2 二—r 5
)
1

E
os
)P
* u £
i
e 二dS。

* o 丄0 p 二©
* u s
0 史& _q
u 1— 1 u
•LnoFN
*山
NHHNUU.)

□m m 「「

)① n(HOU 「
dQTI±
-- w 「孑
s u n
i 4 ■

0 S
U u
$
P
n
P
s —1 n d
s 乙
0 H s
U n T
u s 犬
$ d 9 — 0 A -1 (
0 u
d 0 N
— a H 0
s
1z 9 n
6
p
「孑n
人①
UT 」
op
(ou-HHNUU

)

r rTl
m
「「o
「)
N
---9
--
for(i=2;i<=n ;i=i+2)
{
sum=sum+i*i;} return(sum);
5. 题号:6968
/*
【程序设计】
题目:将100到200之间的素数及素数的个数打印出来。

注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何内容,仅在函数号中填入所编写的若干语句。

十十*Beg汁“"和廿********Efid 不可册『除.............................................................. */ #i nclude ”stdio.h” void TestF un c();
int fun (i nt m)
int i,k=1; if(m<=1) k=0; for(i=2;i<m;i++)
if(m%i==0) {k=0;break;}
return k;
mai n()
{
int m,k=0;
for(m=100;m<200;m++) if(fun (m))
{
prin tf(”%4cT,m);
k++;
if(k%5==0)
prin tf(”\rT);
}
prin tf(”k=%d\n”,k);
TestF un c(); fun的花括
Begi rf
******** End
void TestFunc()
FILE *IN,*OUT;
intiINJOUTJ;
IN=fopen(M in.dat,7,r n);
if(IN==NULL)
{
printf(n Please Verify The Currernt Dir..It May Be Changed");}
OUT=fopen(n out.dar,M w M);
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. It May Be Changed1');
} for(i=0;i<10;i++)
{
fscanf(IN,,,%d M,&ilN);
iOUT=fun(ilN);
fprintf(OUT,n%d\n u,iOUT);
}
fclose(IN);
fclose(OUT);
)
5. 示例代码:
int i,k=1; if(m<=1) k=0; for(i=2;i<m;i++) if(m%i==0) k=0; return k;
6. 题号:6959
【程序设计】题目:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求每行元素的和
注意:部分源程序给出如下。

请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。

BeginW********** End 不可删除
7
#include "stdlib.h"
#include <stdio.h> void bky();
void row_sum(int a[5][4],int b[5])
/** End
main()
{
void row_sum();
int a[5][4Lb[5],i,j;
for(i=0;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=rand(120-30+1 )+30;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++) printf(,'%5d H,a[i][j]);
printf("\n n);
}
row_sum(a,b);
for(i=0;iv5;i++)
printf (” %6cT 冋i]);
printf(M\n n);
bky();
}
void bky()
FILE *IN,*OUT;
int m,n;
int i[5][4];
int o[5];
IN=fopen(,,in.dat,,,,,r n);
if(IN==NULL)
{
printf(”Read FILE Error”);
}
OUT=fopen(,'out.dat M,,'w n);
if(OUT==NULL)
{
printf(”Write FILE Error");
}
fscan f(IN,"%d H,&i[m][ n]); row_sum(i,o); for(n=0;n<5;n++) fprin tf(OUT,H%d\n n,o[ n]); fclose(IN);
fclose(OUT);
}
6. 示例代码:
int i,j;
for(i=0;i<5;i++)
{ b[i]=0;
for(j=0;jv4;j++) b[i]=b[i]+a[i]0];
}
第六题的完整程序如下。

已经在dev・c卄编译通过
#\ nclude <stdio.h>
#in elude <stdlib.h> /* run this program using the con sole pauser or add your own getch, system("pause n) or in put loop */
void row_sum(i nt a[ 5][4],i nt b[5])
{_
/** Beg in **/
int i,j;
for(i=0;i<5;i++)
{ b[i]=0;
for(j=0;j<4;j++)
b[i]=b[i]+a[i]0];
}
/** End **/ int main (i nt argc, char *argv[]) {
int a[ 5][4],b[5],i,j;
〃un sig ned seed;
//sea nf(“%u”,&seed);
//sran d(seed);
〃若是去掉上面的三句。

则每次的运行结果都一样。

//rand()是无参函数。

结果是大于等于0的随机整数。

〃随机整数与随机种子变量有尖系。

rand函数默认种子变量的值是1
〃前面取消的3句的功能是改变随机函数的种子值。

for(i=0;iv5;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%(120-30+1 )+30;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf(“%5cT,a[i][j]);
printf(H\n n);
}
row_sum(a,b);
for(i=0;iv5;i++)
printf(M%6d H,b[i]);
printf (”\rT);
return 0;
}
7. 题号:6945
/*
【程序设计】
题目编写函数fun,它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回。


如:n=120寸,函数值为239。

注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
牙U ********** End ********** 不可删除
你编写的若干语句。

********* Beg jn
**********
*/
#inelude <conio.h>
#inelude <stdio.h> #include<windows.h> int fun(int n)
Begi n
NONO()
{/*请衽此函数内打开文件,输入测试数据,调用fun函数,输出数据,尖闭文件。

*/ FILE *wf;
wf = fopen(”a30.out”,H w n);
fprintf(wf,n%d\n n,fun(120));
fclose(wf);
}
main() /* 主函数 */
{ system(”cis”);
printff'%d\n H,fun(120));
NONO();
}
7. 示例代码:
int i,s=0;
for (i=2;i<n;i++)
if (n%i==0) s=s+i;
return (s);
8. 题号:6901
【程序设计】题目编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。

Xn+仁cos(Xn)迭代步骤如下:
(1) 取x1初值为0.0 ;
(2) x0=x1 JE X1的值赋给x0;
(3) x1=cos(x0),求出一个新的x1 ;
(4) 若x0・x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);
(5) 所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出结果
Root=0.739085。

注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

— Begin和********** End 不可删除
*/ #include <conio.h>
#inelude <math.h> #include <stdio.h> #include<windows.h> float fun()
(
/** Begin **/
NONO()
{/*请在此函数内打开文件'输入测试数据,调用fun函数,输出数据,尖闭文件。

*/
FILE *wf;
wf = fopenC'blOO.out", ”w”) ; fprintf(wf,n Root=%f\n H,fun()); fclose(wf);
main()
{ system(”cls”); printf(H Root=%f\n H,fun()); NONO();
8. 示例代码:double x1 ,x0; x1 =0.0;
x0=x1;
x1=cos(x0);
while (fabs(x0-x1 )>0.000001)
{x0=x1 ;x1=cos(x0);} return((float)xO);
9. 题号:6988
【程序设计】
题目:编写函数判断一个整数mi勺各位数字之和能否被7整除,可以被7整除则返回1,否则返回0调用该函数找出100~200之间满足条件的所有数。

— Begin……和********** End —不可删除.............................................................. */ #include <stdio.h> void bky();
int sub(int m)(
Begin
main() inti; for(i=100;i<=200;i++)
if(sub(i)==1) printf(,'%4d ,,,i); bky();
)
void bky()
{
FILE *IN,*OUT;
int n;
int i[1O];
int o;
IN=fopen(n in.dat n ,n r"); if(IN==NULL)
{
printf(n Read FILE Error**); } OUT=fopen(,,out.dat ,
7'w
H ); if(OUT==NULL) { printf(n Write FILE Error");
} for(n=0;n<10;n++)
{
fscanf(IN ;,%d H ,&i[n]);
} for(n=0;n<10;n++)
{ o=sub(i[ n]);
fprintf(OUT,H %d\n u ,o);
}
fclose(IN); fclose(OUT);
)
9. 示例代码:
int k,s=0;
do
{s=s+m%10; m=m/10;
}while(m!=0); if(s%7==0)k=1;
)
********* End ********* *
/
else k=0; return(k);
10. 题号:6972
/*
【程序设计】
题目:从字符串中删除指定的字符。

同一字母的大、小写按不同字符处理例 如:若程序执行时输入字符串为:mmkknnnppp 从键盘上输入字符:n 则输出后变为:mmkkppp
如果输入的字符在字符串中不存在,则字符串照原样输出。

*/
#inelude <stdio.h> void TestFunc();
void fun (char s[]5char c)(
y** )
main()
{
static char str[]=n mmkknnnppp”; char ch; printf (” 原始字符串:%s\rT ; str); prints 输入一个字符:“);
scanf (” %c”,&ch);
fun(str,ch); printf(n str[]=%s\n'\str);
TestFunc();
)
void TestFunc()
FILE *IN,*OUT; char i[200]; IN=fopen(n in.dat ,7,r H ); if(IN==NULL)
printf (”Read FILE Error");
}
OUT=fopen(M out.dat ,7,w H ); if(OUT==NULL)
printf(n Write FILE Error”);
}
,n n ********* Begin ********** Xn ********** End **********
不可删除 Begin **才******
**y
End
)
10・示例代码:int i=0J=0;
while(s[i]!=,\O,) {if(s[i]!=c) s[j++]=s[i]; i++;}
题目:函数fact(x)的功能是求x!。

编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数。

计算公式是:组合数二m!/(n!.(m・n)!)。

要求:m不能小于n,
否则应有容错处理。

while(m<n)
{
prin tf("m 和n输入错!请重新输入:\n n);
scanf(,,%d%d,,,&m,&n);
}
zhsgs=fact(m)/(fact(n)*fact(m-n));
题目:对某一正数的值保留2位小数,并对第三位进行四舍五入。

注意:部分源程序给出如下。

请勿改动主函数mai n和其
它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

inti;
i=(int)(h*1000)%10;
if(i>=5)
return(int)(h*100+1 )/100.0;
else
return(int)(h*100)/100.0;
题目:编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数例strcat ) 如,分别输入下面两个字符串:
FirstString-
SecondStri ng
程序输出:
FirstString-SecondString注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数
中的任何内容,仅在函数fun的花括号中填入你编写的若干语句char *point1 ,*point2;
point*! =p1:
poin t2=p2;
while((*point1)!='\0,) point1++;
while(*point2!='\0*){ *point1=*point2; point1++; point2++;
} *point1 ='\0*;
题目:能计算从1开始到n的自然数中偶数的平方的和,n由
键盘输入,并在main()函数中输出。

(n是偶数)
注意:部分源程序给出如下。

请勿改动主函数mai n和其
它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

int sum,i;
sum =0;
for(i=2;i<=n;i=i+2)
<sum=sum+i*i;} return(sum);
题目:将100到200之间的素数及素数的个数打印出来。

注意:部分源程序给出如下。

请勿改动主函数mai n和其
它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

int i,k=1;
if(m<=1) k=0; for(i=2;i<m;i++) if(m%i==0) k=0; return k;
题目:主函数中产生20个[30, 1 20] ±的随机整数存放到了二维数组a[5][4]
中,编写函数,求每行元素的和,到数组b中。

int i,j; for(i=0;iv5;i++) { b[i]=0;
for(j=0;jv4;j++) b[i]=b[i]+a[i]0];
题目编写函数fun,它的功能是:计算正整数n的所有因子(1和n除外)之和作为函数值返回例如:n=120时,函数值为239。

注意:部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
int i,s=O;
for (i=2;i<n;i++)
if (n%i==0) s=s+i;
return (s);
题目编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。

Xn+1=cos(Xn)迭代步骤如下:
(1) 取x1初值为0.0 ;
(2) x0=x1,把x1的值赋给x0:
(3) x1=cos(x0) »求出一个新的x1 ;
(4) 若X0-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);
(5) 所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出结果Root=0.739085 °注意:部分源程序存在文
件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
double x1 ,x0;
x1=0.0;
x0=x1;
x1=cos(x0);
while (fabs(x0-x1 )>0.000001) {x0=x1 ;x1 =cos(x0);} return((float)xO);
题目:编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。

调用该函数找出100-200之间满足条件的所有数。

int k,s=0;
do {s=s+m%10;
m=m/10;
}while(m!=0);
if(s%7==0)k=1;
else k=0;
return(k);
题目:从字符串中删除指定的字符。

同一字母的大、小写按不同字符处理。

例如:若程序执行时输入字符串为:mmkknnnppp从键盘上输入字符:n,则输出后变为:mmkkppp如果输入的字符在字符串中不存在,则字
符串照原样输出。

int i=0,j=0; while(s[i]!=,\0,) {if(s[i]!=c) s[j++]=s[i];
i++;}
H§:请81写一个函ttvoid fun(inlmjnt k.intxxD) 用逐澈的功能是:柠大于幕数nHJS黨mrrjk个素救心;、":.嗽俎中・
例如•若綸入17・5・则应綸出:19-23 29・31 -37-
注意:85分源秤序存在文件prog.c中・
谓勿改动主函教main和其他函数中的任何內客•仅在旳数fun的花括号中填入你编弓的若T•语句・
int ij ,total=0;
int *p_xx=xx;
for(i=m+1;;i++){
for(j=2;j<i;j++) if(i%j==0) break;
if(dj){
*p_xx=i;
p_xx++;
total++;
if(total==k){
•p_xx=70:
break;
)
}
}
题目:编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列。

如字符串si的值为“pea广,字符串s2的值是“apple”,连接后的字符串存入字符数组
S3排序后得到”aaeelppp广。

【要求】
⑴函数
void p rocess(cha「s10,char s2[]t char s3[J); 将字符数组si和s2连接起来,连接后的字符串存入字符数组S3,用冒泡算法对数组S3进行升序排列。

(2 )主函数
•在主函数中定义si,s2两个字符数组,分别用"pea广初始化s「apple”初始化s2;定义一个字符数组S3。

-调用process函数,将字符数组si和s2连接起来,连接后的字符串存入字符数组S3 •用冒泡算法对数组S3进行升序排列•
•输出S3的值。

for(i=0;i<n-i;i++)
{
for(j=0;j<n-i-i;j++)
{
if(s30)>s30+i])
{
t=s30J;
s30)=s30+i];
s30+i]=t;
}
}
}
毬目:从字符串S中刪除抬定的字符c0
int i,k=0;
for(i=0;s [jJ!=W;i++)
if(s i]!=c) s[k++]=s[i];
s[k]J0:
題目:编写程序完成将一个数字字符串转换成相应的正整数,例如:字符串”3456”转换成整数值3456。

要求:
"int process(char s[J): 函数实现将字符数组s中存储的数字字符串转换成数值,并返回数值;
主函数中,调用processf)函数 > 并输出结果。

【参考代码】
int sum=0,i;
for(i=0;s[i]!=0;i++)
(
sum=sum*i0+s[i]-48:
}
return sum;
赵目:将s所指字符串申ASCII值为偶数的字符刪除,串中剩余字符形成一个新串放在t所指的数组中。

【参考代码】
inti,j=O,n;
n=strlen(s);
for(i=0;i<n;i++)
if(s(i]%2) t[j++]=s[i];
tDl=o;
越目:編号因数fun其功能是:根据帶型形眇m什箕如下
公式的偵:y=i /2!+1/4!+ •••+ l/m! (m 是偶数)
double y=0.0;
int i,j;
double s=i;
for (i=2;i<=m;i+=2)
(
for(j=i-i;j<=i;j++)
s=s*j;
y=y+i.O/s;
>
return y;
题目:编写函数求3!+6!+9!+i2!+i5+i8!+2i!
【参考代码】
intij;
float t,s=O;
for(i=3;i<=n;i=i+3)
g;
for(卜i;jv=i;j++)
s=s+t;}
return(s);
题目:输出20-2000所范围内有的回文数<■提示:回文数的各位数字正序和倒序一样■>如:
22,323 >1221 ,都是回文数。

具体要求如下:
(1 )函数
int process(int n);判断一个数是不是回文数,如果是,返回 1 •否则返回0 ;
(2)主函数
调用函数找出20-2000中的回文数并输岀 > 每行输出 6个。

【参考代码】
int ap=0,p=n;
while(p!=0)
{
ap=ap*10+p%l0;
P=p/10;
)
if(ap==n) return 1;
else return 0;
题目 谓泊耳函数lun •其功能是:计箕井够出3 ft n 之间所科絮数的平方根之和・
例如・在主函数中从挑盘給“怡人100后・
怡出为:SUm=148.874270 ・
注意:變求n 的旳大于2但不天于100・
部分双程序在文件prog.c 中・
请勿改动主函数main 和其他函数中的任何内容・仅在函数 lun 的花猪号中填入协第写的若丁•谥句・
【参考代码】
int i,j=0;
double s=0;
for (i=3;i<=n;i++)
{for G=2;j<i;j++)
if (i%j==0) break;
if (j==i) s=s+sqrt{i);
}
return s;
题目:要求:求100以内的所完数。

所谓完数•是指该数的因子之和(不包含本身)等于该数本身的数•例如:6=1+2+3 具体要求如下: (1 )函数
int process(int n);判断一个数是不是完数,如果是,返回 1,否则返回0 :
(2)主函数
调用函数找出100以内所有的完数并输出。

【参考代码】
int s=0j;
for(i=1;i<n;i++)
{
jf (n%i==O) s=s+i;
)
if(s==n) return 1;
else return 0;
例如'若输入 17,5,则应输出:19,23,29,31,37。

int i, j ,total=0; int *p_xx=xx; for(i=m+1 ;;i++){ for(j=2;jvi;j++) if(i%j==O) break ;
if(iv=j){
*p_xx=i; p_xx++; total++;
if(total==k){
*p_xx='/0'; break;
题目:请编写一个函数 void fun(int m,int k,int xx[]) 素 数存入xx 所指的数组中。

'该函数的功能是:将大于整数 m 且紧靠m 的k 个。

相关文档
最新文档