C语言习题集合5(函数)(5)

2019-09-01 17:07

第五部分 函 数 ·21·

25.下面程序的功能是找出三个字符串中最大串,填空完善程序。

【1】

#include main() {

int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets( 【2】 );

if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]);

if(strcmp(str[2],string)> 【3】 ) strcpy(string,str[2]); printf(\}

26.本程序的函数ver是使输入的字符串按反序存放,在主函数中输入和输出字符串。

main() {

char str[100]; scanf(\ver(str);

printf(\}

ver( 【1】 ) {

char t; int i,j;

for(i=0,j=strlen(str);i

27.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

#define N 10 char str[N]; main() {

int i,flag;

for(flag=1;flag==1;) { scanf(\

flag=0; printf(\}

sort( 【1】 );

for(i=0;i

sort(char str[N]) {

int i,j;

第五部分 函 数 ·22·

char t;

for(j=1;j

for(i=0;(istr[i+1])

{t=str[i]; 【2】 ; 【3】 ;} }

28.用选择法对数组进行由小到大排序。

void sort(n,array) 【1】 ; {

int i,j,k,t;

for(i=0;i

for( 【2】 ;j

if(array[k]>array[j]) k=j; t=array[i];

array[i]=array[k]; array[k]=t; } }

main() {

int i,a[10];

printf(\

for(i=0;i<10;i++) scanf(\ 【3】 ;

printf(\

for(i=0;i<10;i++) printf(\}

29.用递归方法求n!。

float fac(int n) {

float f;

if(n<0) printf(\else if( 【1】 ) f=1; else f= 【2】 ; return(f); }

main() {

int n=6; float y;

printf(\ 【3】 ;

第五部分 函 数 ·23·

printf(\}

30.程序调用prime函数,判断输入的一个整数是否为素数,是则打印YES,否则打印NO.

#include \main() {

int x;

printf(\输入一个整数给x: \【1】 ); if(prime(x)) printf(\else printf(\}

prime(int a) {

int e,i,yes; yes=1;e=a/2; i=2;

while((i<=e) 【2】 )

if(a% 【3】 ==0) yes=0; else i++; 【4】 ; }

5.3 答案及部分解析

一.选择题答案

1.B 2.C 3.A 4.A 5.C 6.C 7.C 8.A 9.B 10.B 11.A 12.A 13.D 14.D 15.C 16.D 17.C 18.B 19.B 20.C

21.A 22.C 23.C 24.A 25.A 26.A 27.C 28.D 29.C 30.C

31.D 32.B 33.C 34.C 35.A 36.A 37.B 38.B 39.D 40.B 41.A 42.A 43.B 44.B 45.B 46.B 47.B 48.A 49.C 50.A 51.C 52.B 53.D 54.A 55.C

36.解析:此题考的知识点是数组名作为函数参数。用数组名作函数实参时,不是把数组的

值传递给形参,而是把实参数组的起始地址传递给形参数组,两个数组共占用同一段内存单元。因而,在子函数中对数组中值的改变是“真正的改变”,带回到了主函数中。

45.解析:此题考的知识点是局部变量和全局变量。在一个函数内部定义的变量是局部变量,

它只在本函数中有效;在复合语句中定义的变量,只在本复合语句中有效;在函数之外定义的变量称为外部变量,它的有效范围为从定义变量的位置开始到本源文件结束。在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用

第五部分 函 数 ·24·

范围内,外部变量被“屏蔽”。所以正确答案是B。

二.填空题答案 1. 答案:56

2. 答案:3,2,2,3

解析:此题考的知识点是C语言中形参、实参的单向值传递。主函数中,调用函数fun,

将实参x,y的值传给形参x,y,形参x,y在子函数中交换的数值,所以输出的形参值为3,2,但形参无法返回给主函数中的实参x,y,所以输出的实参值仍为2,3。

3. 答案:246 4. 答案:120 5. 答案:0,0 0,1 6. 答案:12 7. 答案:7 8. 答案:9

9. 答案:0246802468 10. 答案:8,17

解析:此题考的知识点是静态局部变量,用关键字static声明的局部变量是静态局部

变量,它在函数调用后不消失而保留原值,在下一次调用该函数时,该变量保留上一次函数调用结束时的值。本题中,函数func中变量m,i为静态局部变量,初值为0和2,第一次函数调用结束时值为m=8,i=3,第二次函数调用时,变量m和i保留上一次函数调用结束时的值8和3。

11. 答案:8 12. 答案:5647 13. 答案:4 14. 答案:5 15. 答案:【1】 void fun(double b[][22]); 16. 答案:【1】 p=j 【2】 x[i][p] 【3】 LineMax(x) 17. 答案:【1】 x 18. 答案:【1】 a[i-1] 【2】 a[9-i] 19. 答案:【1】 /i 20. 答案:【1】 n=1 【2】 s 21. 答案:【1】 &a,&b 【2】 max 【3】 int x,y 【4】 return(z) 22. 答案:【1】 c=0 【2】 return c 【3】 &x 23. 答案:【1】 fac(i) 【2】 static int 24. 答案:【1】 float max,min 【2】 array[0] 【3】 &score[i] 25. 答案:【1】 #include 【2】 str[i] 【3】0 26. 答案:【1】 str[ ] 【2】 str[i]=str[j-1] 【3】 str[j-1]=t 27. 答案:【1】 str 【2】 str[i]=str[i+1] 【3】 str[i+1]=t 28. 答案:【1】 int n,array[] 【2】 j=i+1 【3】 sort(10,a) 29. 答案:【1】 n==0||n==1 【2】 n*fac(n-1) 【3】 y=fac(n) 30. 答案:【1】 &x 【2】 &&yes 【3】 i

【4】return yes


C语言习题集合5(函数)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《乡下老鼠进城》反思

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: