填空题(C语言) 联系客服

发布时间 : 星期五 文章填空题(C语言)更新完毕开始阅读

填空题(C) 29

main()

{ char c1, c2;

printf(\ c1='2'; c2 = fun(c1);

printf(\ c1='8'; c2 = fun(c1);

printf(\ c1='a'; c2 = fun(c1);

printf(\} 答案:【1】char 【2】ch<='9' 【3】'0'

82.函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 #include int fun(int n)

{ int i,j, count=0;

printf(\ for (i=3; i<=n; i++) { /**********found**********/ for (___1___; j

/**********found**********/ if (___3___>=i)

{ count++; printf( count? \ }

return count; }

main()

{ int n=20, r; r = fun(n);

printf(\} 答案:【1】j=2 【2】i 【3】j 83.用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成O);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,??,函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。 #include int fun(int n)

{ int a[10000], i,j, count=0; for (i=2; i<=n; i++) a[i] = i;

i = 2;

while (i

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

for (j=a[i]*2; j<=n; j+=___1___) a[j] = 0; i++;

/**********found**********/ while (___2___==0) i++; }

printf(\ for (i=2; i<=n; i++)

/**********found**********/ if (a[i]!=___3___)

{ count++; printf( count?\ return count; }

main()

{ int n=20, r; r = fun(n);

printf(\} 答案:【1】a[i] 【2】a[i] 【3】0

84.甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第O秒。

例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。 #include

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

#define OK(i, t, n) ((___1___%t==0) && (i/t

int fun(int t1, int t2, int t3, int t4, int n)

{ int count, t , maxt=t1; if (maxt < t2) maxt = t2; if (maxt < t3) maxt = t3; if (maxt < t4) maxt = t4;

count=1; /* 给count赋初值 */ /**********found**********/

for(t=1; t< maxt*(n-1); ___2___) {

if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) ) count++; }

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

填空题(C) 30

return ___3___; }

main()

{ int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n);

printf(\} 答案:【1】i 【2】t++ 【3】count

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

p[j]=___3___; }

main()

{ char s[80]=\ printf(\ fun(s,p);

printf(\} 85.函数fun的功能是:从三个形参a,b,c中找出中间

的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。

#include

int fun(int a, int b, int c) {

int t;

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

t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___)); return t; }

main()

{ int a1=3, a2=5, a3=4, r;

r = fun(a1, a2, a3);

printf(\}

答案:【1】a 【2】a 【3】b

86.给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。 例如,形参s所指的字符串为:baawrskighzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。#include

void fun(char *s, char *p) { int i, j, n, x, t; n=0;

for(i=0; s[i]!='\\0'; i++) n++; for(i=1; i

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

for(j=___2___+2 ; js[j]) t=j; if(t!=i)

{ x=s[i]; s[i]=s[t]; s[t]=x; } }

for(i=1,j=0; i

答案:【1】t=i 【2】i 【3】0

90.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

#include #include #define M 5 #define N 20

void fun(char (*ss)[N])

{ int i, j, k, n[M]; char t[N]; for(i=0; i

/**********found**********/ for(j=___1___; j

if(n[k]>n[j]) ___2___; if(k!=i)

{ strcpy(t,ss[i]);

strcpy(ss[i],ss[k]); /**********found**********/

strcpy(ss[k],___3___); n[k]=n[i]; } } }

main()

{ char ss[M][N]={\ int i;

printf(\ for(i=0; i

printf(\

for(i=0; i

答案:【1】i+1 【2】k=j 【3】t

93.函数fun的功能是:逆置数组元素中的值。例如:

填空题(C) 31

若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。 {

vector[i]=rand();

形参n给出数组中数据的个数。 #include

void fun(int a[], int n) { int i,t;

/**********found**********/ for (i=0; i<___1___; i++) {

t=a[i];

/**********found**********/ a[i] = a[n-1-___2___]; /**********found**********/ ___3___ = t; } }

main()

{ int b[9]={1,2,3,4,5,6,7,8,9}, i; printf(\ for (i=0; i<9; i++)

printf(\ printf(\ fun(b, 9);

printf(\ for (i=0; i<9; i++)

printf(\ printf(\}

答案:【1】n/2 【2】i 【3】a[n-i-1]

补充编程题:

320.要求程序的功能是:把20个随机数存入一个数组,然后输出该数组中的最小值.其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义. #include #include #define VSIZE 20

int vector[VSIZE];

int fun(int list[],int size) { }

main() {

int i;

for (i=0;i

printf(\ }

i=fun(vector,VSIZE);

printf(\ }

答案:

int fun(int list[],int size) { int x,i; x=0;

for (i=1;i

if (list[x]>list[i]) x=i; return x; }

208.编写函数fun,它的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;s通过形参传入

sn?1111?13?5?7?...?(?1)^n2n?1

例如:若n的值为11时,输出的结果是:S=0.764601 N=11 #include #include

void fun(float *sn,int n) {} main()

{ int n=11;float s; fun(&s,n);

printf(\}

答案:

void fun(float *sn,int n) { int i; float s=1; *sn=0;

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

{ *sn=*sn+s*(1.0/(2*i+1)); s=-s; } }

420.请编写一个函数,它的功能是:求出一个M*N二维数组每行元素的和值,并依次放入一个一维数组中传回主函数.

例如,若有以下二维数组: 6 10 2 10 16 17 15 15 8 6

填空题(C) 32

4 18 11 19 12 0 12 1 3 7 则输出:44 61 64 23 #define M 4 #define N 5

#include

fun(int a[][N],int b[]) {}

main()

{ int x[M][N],y[M],i,j;

printf(\ for (i=0;i

{ for (j=0;j

printf(\ for (i=0;i

答案:

fun ( int a[][N] ,int b[]) {

int i,j,sum=0,n=0; for(i=0;i

421.请编写函数int fun(int a[M][N]),a是一个M行N列的二维数组,函数的功能是求出二维数组周边元素之和,作为函数值返回.二维数组中的值由主函数传入. 例如:二维数组中的值为: 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数返回为61. #include #include #define M 4 #define N 5

int fun ( int a[M][N] ) {}

main( )

{ int aa[M][N]={{1,3,5,7,9},

{2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; int i, j, y;

printf ( \ for ( i=0; i

{ for ( j =0; j

y = fun ( aa );

printf( \ printf(\}

答案:

int fun ( int a[M][N] ) {

int i, j, sum = 0;

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

if ((i == 0)||(i == M - 1)||(j == 0)||(j == N - 1) ) sum += a[i][j]; return sum; }

422.请编写一个函数fun,它的功能是:求出一个M×N二维数组每行元素的和值,并依次放入一个一维数组中传回主函数.例如,若有以下二维数组: 6 10 2 10 16 17 15 15 8 6 4 18 11 19 12 0 12 1 3 7 则输出:44 61 64 23 #define M 4 #define N 5

#include

fun ( int a[][N] ,int b[]) {}

main( )

{ int x[M][N], y[M], i , j;

printf(\ for ( i = 0 ; i < M; i++ )

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

x[i][j] = rand() ; printf(\x[i][j]); } printf(\ fun (x , y );

printf(\

for (i = 0 ;i < M ; i++) printf(\y[i]); printf(\}

答案: