教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

C语言函数习题及答案(3)

来源:网络收集 时间:2026-05-01
导读: } main() { float score[10]; int i; printf(Please input 10 scores:\n); for(i=0;i10;i++) scanf(%f,score[i]); average(score); printf(The average score is %.2f\n,【3】); } 【1】A)i=10 B)i++10 C)++i10

}

main()

{

float score[10];

int i;

printf("Please input 10 scores:\n");

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

scanf("%f",&score[i]);

average(score);

printf("The average score is %.2f\n",【3】);

}

【1】A)i<=10 B)i++<10 C)++i<10 D)i<10

【2】A)array[i-1] B)array[i] C)array[i--] D)array[i++] 【3】A)score[8] B)score[0] C)array[8] D)score[9] 40. 以下程序用于输入不超过N个数的整数序列(用-1作为输入结束标志),然后统计出

从M1至M2各数在序列中出现的次数并显示输出。请将程序补充完整。

#include<stdio.h>

#define N 100

#define M1 3

#define M2 7

main()

{

int a[N],c[M2-M1+1]={0},i,n=0,x=0;

printf("Please input a sequence of number(%d-%d) which is ended with

-1:\n",M1,M2);

while(x!=-1)

{

scanf("%d",&x);

a[n]=x;

n++;

}

f(a,c,n);

printf("Repeating times of %d-%d in sequence of number is:\n",M1,M2);

for(i=0;i<=M2-M1;i++)

printf(“%d:%d\n”, 【1】);

printf("\n");

}

f(【2】)

{

int i;

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

if(a[i]>=M1 && a[i]<=M2)

【3】;

}

【1】A)M1+i:c[M1+i] B)M1+i+1:c[i]

C)M1+i:c[i] D)i:c[M1+i]

【2】A)f(a[],c[],n) B)f(int a[],int c[],int n)

C)f(a,c,n) D)f(int a[N],c[M2-M1+1],n)

【3】A)c[a[i]]++ B)c[a[i]-M2]++

C)a[c[i]]++ D)c[a[i]-M1]++

二.读程序写结果

1.

fun(int x,int y,int z)

{

z =x*x+y*y;

}

main ( )

{

int a=31;

fun (6,3,a);

printf ("%d", a);

}

2.

int f( )

{

static int i=0;

int s=1;

s+=i; i++;

return s;

}

main()

{

int i,a=0;

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

a+=f();

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

}

3. 运行程序时,若从键盘输入asd af aa z67(回车),分析以下程序的输出结果。

#include <stdio.h>

int fun(char *str)

{

int i,j=0;

for(i=0;str[i]!=??;i++)

if(str[i]!=??)

str[j++]=str[i];

str[j]=??;

}

main()

{

char str[81];

int n;

printf("Input a string : ");

gets(str);

fun(str);

printf("%s\n",str);

}

4.

void swap(int *p1,int *p2)

{

int *t;

t=p1,p1=p2,p2=t;

printf("*p1=%d,*p2=%d\n",*p1,*p2);

}

main()

{

int x=10,y=20;

swap(&x,&y);

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

}

5.

#include<stdio.h>

void fun(int *s, int m, int n)

{

int t;

while(m<n)

{t=s[m]; s[m]=s[n]; s[n]=t; m++; n--;} }

main()

{

Int a[5]={1,2,3,4,5},k;

fun(a,0,4);

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

printf("%d ",a[k]);

}

6.

int fun(char s[])

{

int n=0;

while(*s<='9'&&*s>='0')

{

n=10*n+*s-'0';

s++;

}

return(n);

}

main()

{

char s[10]={'6','1','*','4','*','9','*','0','*'};

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

}

7.

#include<stdio.h>

Int fun(int x)

{

int y;

if(x==0||x==1)return(3);

y=x*x-fun(x-2)

return y;

}

main()

{

int x,y;

x=fun(3);

y=fun(4);

printf("%d, %d\n", x ,y);

}

8.

fun(int n,int *s)

{

int f1, f2;

if(n==1 || n==2) *s=1;

else

{

fun(n-1, &f1);

fun(n-2, &f2);

*s=f1+f2;

}

}

main()

{

int x;

fun(6,&x);

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

}

三、填空题

1. 以下程序实现了计算x的n次方,请将程序填写完整。

float power(float x,int n)

{ int i;

float t=1;

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

t=t*x;

【1】;

}

main( )

{ float x,y;

int n;

scanf("%f,%d",&x,&n);

y=power(x,n);

printf("%8.2f\n",y) ;

}

2. 以下程序实现了求两个数的最大公约数,请将程序填写完整。

int divisor(int a,int b)

{ int r;

r=a%b;

while(【2】)

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

return b;

}

void main()

{ int a,b,d,t;

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

if (a<b)

{ t=a; a=b; b=t; }

d=divisor(a,b);

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

}

3. 以下函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返

回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s<t时返回负值。请将函数填写完整。

my_cmp(char *s,char *t)

{

while(*s == *t)

{

if (【3】) return 0;

++s; ++t;

}

return 【4】;

}

4. 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小

到大的顺序排列,函数返回删除后数组中数据的个数。请将程序填写完整。

例如,若一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10

删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。

#include <stdio.h>

#define N 80

int fun(int a[], int n)

{ int i,j=1;

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

if(a[j-1]【5】a[i])

a[j++]=a[i];

return 【6】;

}

main( )

{

int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("The original data:\n");

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

printf(“%d ”,a[i]);

n=fun(a,n);

printf("\nThe data after deleted: \n");

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

printf(“%d ”,a[i]);

}

四、编程题

1. 请用自定义函数的形式编程实现,求s=m!+n!+k!,m、n、k从键盘输入(值均小于7)。

2. 请用自定义函数的形式编程实现求10名学生1门课程成绩的平均分。

3. 请编写两 …… 此处隐藏:2311字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言函数习题及答案(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/128715.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)