填空题(C语言) 下载本文

填空题(C) 5

{ if( c>='A' && c<='Z') c=c+32;

if(c>='a' && c<='u')

/**************found**************/ c=c+___1___;

else if(c>='v'&&c<='z') c=c-21;

/**************found**************/ return ___2___ ; }

main()

{ char c1,c2;

printf(\ if( isupper( c1 ) ) {

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

c2=fun(___3___);

printf(\ }

else printf(\}

答案:【1】5 【2】c 【3】c1 12.给定程序功能是计算

s=f(-n)+f(-n+1)+?+f(0)+f(1)+f(2)+?+f(n)的值。例如,当n为5时,函数值应为:10.407143。 (x+1)/(x-2) x>0 f(x)= 0 x=O或x=2 (x-1)/(x-2) x<0 #include #include

float f( double x)

{

if (x == 0.0 || x == 2.0) /************found************/ return ___1___; else if (x < 0.0) return (x -1)/(x-2); else

return (x +1)/(x-2); }

double fun( int n )

{ int i; double s=0.0, y; /************found************/ for (i= -n; i<=___2___; i++) {y=f(1.0*i); s += y;}

/************found************/ return ___3___;

}

main ( ) {

printf(\}

答案:【1】0.0 【2】n 【3】s

13.给定程序的功能是习之二分之一的圆面积,函数通过形参得到圆的半径。函数返回二分之一的圆面积(注:圆面积公式为:s=?r2

,在程序中定义的变量名要与公式的变量相同)。

例如输入圆的半径值:19.527输出为:s=598.950017。 #include

/**********found**********/ float fun ( float ___1___ ) {

/**********found**********/ return 3.14159 * ___2___ /2.0; }

main ( )

{ float x;

printf ( \/**********found**********/ scanf ( \

printf (\}

答案:【1】float r 【2】r*r 【3】&x

14.给定程序的功能是将既在字符串s中出现、又在字符串t中出现的字符形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。

例如,当s=“122345”,t=“2467”时,u中的字符串为:“24”。 #include #include

void fun (char *s, char *t, char *u) { int i, j, sl, tl, k, ul=0;

sl = strlen(s); tl = strlen(t); for (i=0; i

{ for (j=0; j

if (s[i] == t[j]) break; if(j

{ for (k=0; k

if (s[i] ___1___ u[k]) break; if (k>=ul)

/************found************/ u[ul++]=___2___ ;

填空题(C) 6

} }

/************found************/ ___3___ = '\\0'; } main()

{ char s[100], t[100], u[100];

printf(\

printf(\

fun(s, t, u);

printf(\

}

答案:【1】== 【2】s[i] 【3】u[ul]

15.给定程序的功能是:在x数组中放入n个采样值,计算并输出方差值。

NN '?s??(XK?X)2,其中X'??XK

K?1NK?1N 例如n=8,输入:193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763时,结果应为::1.135901。

#include

float fun(float x[], int n) { int j; float xa=0.0, s;

/************found************/ for (j=0; j<___1___; j++ ) xa += x[j]/n;

/************found************/ s = ___2___;

for (j=0; j

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

s += (x[j]-xa)*(x[j]-xa)/___3___; return s; }

main ( ) { float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763}; printf(\}

答案:【1】n 【2】0 【3】n

16.给定程序的功能是从字符串s尾部开始,按逆序把相邻的两个字符交换位置,并依次把每个字符紧随其后重复出现一次,放在一个新串t中。

例如:当s中的字符串为:“12345”时,则t中的字符串应为; “4455223311”。 #include

#include

void fun (char *s, char *t) { int i, j, sl;

/************found************/ sl = ___1___;

for (i=sl-1, j=0; i>=0; i-=2) { if (i-1 >= 0) t[j++] = s[i-1]; if (i-1 >= 0) t[j++] = s[i-1]; t[j++] = s[i]; t[j++] = s[i]; }

/************found************/ ___2___; } main()

{ char s[100], t[100];

printf(\/************found************/ scanf(\

fun(s, t);

printf(\}

答案:【1】strlen(s) 【2】t[j]=0 【3】s

17.给定程序的功能是将仅在字符串s中出现而不在字符串t中出现的字符,和仅在字符串t中出现而不在字符串s中出现的字符,构成一个新字符串放在u中,u中的字符按原字符串中字符顺序排列,不去掉重复字符。

例如:当s=“112345”,t=“24677”时,u中的字符串为:“1135677”。 #include

#include

void fun (char *s, char *t, char *u) { int i, j, sl, tl;

sl = strlen(s); tl = strlen(t); for (i=0; i

{ for (j=0; j

if (s[i] == t[j]) break; /************found************/ if (j ___1___ tl) *u++ = s[i]; }

for (i=0; i

{ for (j=0; j

if (t[i] == s[j]) break; /************found************/ if (j ___2___ sl)

填空题(C) 7

*u++ = t[i]; }

/************found************/ ___3___ = '\\0'; } main()

{ char s[100], t[100], u[100];

printf(\

printf(\

fun(s, t, u);

printf(\

}

答案:【1】>= 【2】>= 【3】*u

18.给定程序的功能是将在字符串s中出现、而未在字符串t中出现的字符,构成一个新的字符串放在u中,u中字符按原字符串中字符顺序的逆序排列,不去掉重复字符。 例如,当s=“112345”,t=“2467”时,u中的字符是:“5311”。#include #include

void fun (char *s, char *t, char *u) { int i, j, sl, tl, ul; char r, *up=u;

sl = strlen(s); tl = strlen(t); for (i=0; i

{ for (j=0; j

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

if (s[i] == t[j]) ___1___ ; /************found************/ if(j ___2___ tl) *u++ = s[i]; }

*u = '\\0';

ul = strlen(up);

for (i=0; i

    up[i] = up[ul-1-i]; up[ul-1-i] = r; } }

    main()

    { char s[100], t[100], u[100];

    printf(\

    printf(\

    fun(s, t, u);

    printf(\}

    答案:【1】break 【2】>= 【3】up[i]

    19.给定程序的功能是计算并输出下列级数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。 S2N?1?342?3?...?N?1N

    例如,若q的值为50.O,则函数值为50.416687。 #include

    double fun( double q ) { int n; double s;

    n = 2; s = 2.0;

    /************found************/ while (s ___1___ q) {

    s=s+(double)(n+1)/n;

    /************found************/ ___2___ ;

    }

    printf(\

    /************found************/ ___3___ ; }

    main ( )

    {

    printf(\

    }

    答案:【1】<= 【2】n++ 【3】return s

    20.给定程序的功能是求k!(k<13)并通过函数名传回主函数。

    例如:若k=10,则应输出:3628800。 #include long fun ( int k)

    {

    /************found************/ if (k ___1___ 0)

    /************found************/ return (k*fun(___2___)); /************found************/ else if ( k ___3___ 0 ) return 1L; }

    main()

    { int k = 10 ;

    填空题(C) 8

    printf(\}

    答案:【1】> 【2】k-1 【3】==

    21.给定程序的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。

    例如,若输入整数:3410,则应输出;2、5、11、31。 main( ) { int n ;

    printf(\ scanf(\

    #include

    IsPrime ( int n ) { int i, m; m = 1;

    for ( i = 2; i < n; i++ ) /************found************/ if (!( n ___1___ i )) { /************found************/ m = 0; ___2___ ; }

    return ( m ); }

    main( )

    { int j, k;

    printf( \/************found************/

    scanf( \

    printf( \ for( j = 2; j <= k; j++ )

    if( ( !( k%j ) )&&( IsPrime( j ) ) ) printf( \ printf(\

    }

    答案:【1】% 【2】break 【3】&k

    22.给定程序的功能是:根据整型形参n,计算如下公式的值。 A1?1,A12?11?A,A3?11?A,......,A1n??21?A

    n?1例如,若n=lO,则应输出:0.618056。 #include

    float fun ( int n ) {

    /************found************/ float A=___1___ ; int i; /************found************/ for (i=1; i<= ___2___; i++) A = 1.0/(1+A);

    /************found************/ ___3___ ; }

    printf(\}

    答案:【1】1 【2】n 【3】return A

    23.给定程序的功能是分别统计字符串中大写字母和小写字母的个数。

    例如,给字符串ss输入;AaaaBBbl23CCccccd,则输出结果应为;upper=5,lower=9 #include

    void fun ( char *s, int *a, int *b ) {

    while ( *s )

    { if ( *s >= 'A' && *s <= 'Z' ) /**********found**********/ ___1___ ;

    if ( *s >= 'a' && *s <= 'z' ) /**********found**********/ ___2___ ; s++; } }

    main( )

    { char s[100]; int upper = 0, lower = 0 ; printf( \ fun ( s, & upper, &lower ); /**********found**********/

    printf( %upper = %d lower = %d\\n\___3___ ); }

    答案:【1】(*a)++ 【2】(*b)++ 【3】upper, lower 24.给定程序的功能是判断字符ch是否与串str中的某个字符相同;若相同,什么也不做,若不同,则插在串的最后。

    #include #include

    void fun(char *str, char ch )

    { while ( *str && *str != ch ) str++; /**********found**********/ if ( *str ___1___ ch ) { str [ 0 ] = ch; /**********found**********/