填空题(C语言)

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

填空题(C) 13

回主函数。例如,当n=123114350时,结果应该为;c1=3 c1='W'; c2 = fun(c1);

c2=1 c3=2。 #include int c1,c2,c3; void fun(long n) { c1 = c2 = c3 = 0; while (n) {

/**********found**********/ switch(___1___) {

/**********found**********/ case 1: c1++;___2___; /**********found**********/

case 2: c2++;___3___; case 3: c3++; } n /= 10; } }

main()

{ long n=123114350L; fun(n);

printf(\

printf(\}

答案:【1】n 【2】break 【3】break 36.函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母,若ch中是大写英文字母,则转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返回。 #include #include char fun(char ch) {

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

if ((ch>='a')___1___(ch<='z')) return ch -'a' + 'A'; if ( isupper(ch) )

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

return ch +'a'-___2___ ; /**********found**********/ return ___3___; }

main()

{ char c1, c2;

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

printf(\

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

printf(\}

答案:【1】&& 【2】'A' 【3】ch

37.给定程序的功能是对指定字符在字符串a中出现的次数进行统计,统计的数据存到b数组中。其中:字符‘z’出现的次数存放到b[0]中,字符‘Y’出现的次数存放到b[1]中,字符‘X’出现的次数存放到b[2]中,字符‘W’出现的次数存放到b[3]中,字符‘V’出现的次数存放到b[4]中,其它字符出现的次数存放到b[5]中。例如,当a中的字符串为“AYYZXW1Y+ZWVP”,调用该函数后,b中存放数据应是:2、3、1、2、l、4。 #include #include void fun(char *a, int b[]) {

int i;

for (i=0; i<6; i++) b[i] = 0; /**************found**************/ for (i=0; i< ___1___(a); i++)

if (a[i] >= 'V' && a[i] <= 'Z') b[4-(a[i]-'V')]++; /**************found**************/ ___2___ b[5]++; }

main()

{ int i, b[6]; char a[100] = \/**************found**************/ fun(___3___);

printf(\

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

}

答案:【1】strlen 【2】else 【3】a,b

38.函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5,1、2、3、4。 #include #define N 9

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

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

p = (n%2==0)?n/2:n/2+___1___; for (i=0; i

填空题(C) 14

{

t=a[i];

/**********found**********/ a[i] = a[p+___2___]; /**********found**********/ ___3___ = t; } }

main()

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

printf(\ for (i=0; i

}

答案:【1】1 【2】i 【3】a[p+i] 39.给定程序的功能是把s串中所有的字符前移一个位置,串中的第一个字符移到最后。例如:s串中原有的字符串为:Mn.123xyZ,则调用该函数后,s串中的内容为:n.123xyZM。

#include #define N 81 fun ( char *s ) {

char b[N] ;

sprintf(b, \/**************found**************/ strcpy(___1___) ; }

main( )

{ char a[ N ] ;

printf ( \ printf ( \original string is : \); puts( a ); /**************found**************/ fun ( ___2___ );

printf ( \/**************found**************/ ___3___ ( a );

}

答案:【1】s, b 【2】a 【3】puts

40.给定程序的功能是计算并输出high以内最大的10个素数之和。high函数由主函数传给fun函数。若high的值为100,则函数的值为732。 #include

#include

int fun( int high )

{ int sum = 0, n=0, j, yes;

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

while ((high >= 2) ___1___ (n < 10)) {

yes = 1;

for (j=2; j<=high/2; j++ ) if (high % j ==0 ){

/************found************/ yes=0; ___2___;

}

if (yes) { sum +=high; n++; } /************found************/ ___3___; }

return sum ; }

main ( ) {

printf(\}

答案:【1】&& 【2】break 【3】high--

41.给定程序的功能是删除w数组中下标为k的元素中的值。程序中,调用了getindex、arrout和arrdel三个函数,getindex用以输入所删元素的下标,函数中对输入的下标进行检查,若越界,则要求重新输入,直到正确为止。arrout用以输出数组中的数据,arrdel进行所要求的删除操作。

#include #define NUM 10

arrout ( int *w, int m ) { int k;

/************found************/ for (k = 0; k < ___1___; k++) printf (\ printf (\}

arrdel ( int *w, int n, int k )

{ int i;

for ( i = k; i < n-1; i++ ) w[i] = w[i+1]; n--;

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

填空题(C) 15

getindex( int n )

{ int i;

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

___3___

{ printf(\the index [ 0<= i< %d ]: \n ); scanf (\

} while( i < 0 || i > n-1 ); return i; } main( )

{ int n, d, a[NUM]={21,22,23,24,25,26,27,28,29,30}; n = NUM;

printf (\ d = getindex( n ); n = arrdel ( a, n, d ); printf (\the data after delete :\\n\

arrout( a, n );

}

答案:【1】m 【2】n 【3】do

42.给定程序的功能是从字符串s尾部开始,按逆序把在其中出现的每相邻的两个字符,紧随其后重复出现一次,放在一个新串t中,若字符串s中头部有剩余的单个字符也重复,放在t的最后。例如:当s中的字符串为;“12345”时,则t中的字符串应为;“5454323211”。 #include #include

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

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

if (i-1 >= 0) t[j++] = s[i-1]; /************found************/ t[j++] = ___1___; /************found************/ if (i-1 ___2___ 0) t[j++]=s[i-1]; }

t[j] = '\\0'; }

main()

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

printf(\/************found************/ fun(___3___);

printf(\}

答案:【1】s[i] 【2】>= 【3】s,t

43.给定程序BLANKl.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。 #include #include

typedef struct aa

{ int data; struct aa *next; }NODE; int fun(NODE *h)

{ int sum = 0 ;

/***********found**********/ ___1___ *p;

/***********found**********/ p=___2___;

while(p)

{ if(p->data%2==0) sum +=p->data;

/***********found**********/ p=___3___; }

return sum; }

NODE *creatlink(int n) { NODE *h, *p, *s, *q;

int i, x;

h=p=(NODE *)malloc(sizeof(NODE)); for(i=1; i<=n; i++)

{ s=(NODE *)malloc(sizeof(NODE)); s->data=rand(); s->next=p->next; p->next=s; p=p->next; }

p->next=NULL; return h; }

outlink(NODE *h, FILE *pf) { NODE *p;

p = h->next;

fprintf(pf ,\ while(p)

{ fprintf(pf ,\ fprintf (pf,\}

outresult(int s, FILE *pf)

填空题(C) 16

{ fprintf(pf,\main()

{ NODE *head; int even; head=creatlink(12); head->data=9000;

outlink(head , stdout);

even=fun(head);

printf(\}

答案:【1】NODE 【2】h->next 【3】p->next

44.给定程序的功能是把在字符串s中出现的每个字符,紧随其后重复出现一次,形成一个新串放在t中,且在t中把原相邻字符的位置进行了交换。例如;当s中的字符串为:“12345”时,则t中的字符串应为:“2211443355”。#include #include

void fun (char *s, char *t) {

int i,j,sl;

/************found************/ sl = ___1___(s);

for (i=0, j=0; i

{ t[2*j] = s[i+1]; t[2*j +1] = s[i+1]; j++; }

t[2*j] = s[i]; t[2*j +1] = s[i]; /************found************/ ___2___; }

t[2*sl] = '\\0'; }

main()

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

printf(\/************found************/ fun(___3___);

printf(\}

答案:【1】strlen 【2】j++ 【3】s, t

45.给定程序的功能是根据公式求P的值,结果由函数值带回。m与n为两个整数且要求m>n。 P?m!n!(m?n)!

例如:m=11,n=4时,运行结果为330.000000。 #include long jc(int m)

{

long s=1;

int i ;

/**************found**************/ for(i=1;i<=m;i++) s=___1___ ; return s; }

float fun(int m, int n) {

float p;

/**************found**************/ p=1.0*jc(m)/jc(n)/jc(___2___) ; /**************found**************/ ___3___; }

main() {

printf(\}

答案:【1】s*i 【2】m-n 【3】return p

46.给定程序的功能是把a数组中的n个数,和b数组中逆序的n个数一一对应相乘、求平方,结果存在c数组中。 例如:当a数组中的值是:1,3、5、7、8,b数组中的值是:2、3、4、5、8,调用该函数后,c中存放的数据是:64、225、400、441、256

#include

void fun(int a[], int b[], int c[], int n) {

int i;

for (i=0; i

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

___1___ = (a[i] * b[n-1-i]) *(a[i] * b[n-1-i]); }

main()

{ int i, a[100]={1,3,5,7,8}, b[100]={2,3,4,5,8}, c[100]; /**************found**************/ fun(___2___, 5);

printf(\

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

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

答案:【1】c[i] 【2】a, b, c 【3】c[i]

47.给定程序的功能是对指定字符在字符串a中出现的次数进行统计,统计的数据存到b数组中。其中:字符‘z’

联系合同范文客服:xxxxx#qq.com(#替换为@)