您好,欢迎来到刀刀网。
搜索
您的当前位置:首页c语言上机 程序填空

c语言上机 程序填空

来源:刀刀网
1.给定程序中,函数fun的功能是:将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 typedef struct node { int data;

struct node *next; } NODE;

/**********found**********/ NODE * fun(NODE *h) { NODE *p, *q, *r; p = h;

if (p == NULL) return NULL; q = p->next; p->next = NULL; while (q) {

/**********found**********/ r = q-> next; q->next = p; p = q;

/**********found**********/ q = r ; }

return p; }

NODE *creatlist(int a[])

{ NODE *h,*p,*q; int i; h=NULL;

for(i=0; i{ q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;

if (h == NULL) h = p = q;

else { p->next = q; p = q; } }

return h; }

void outlist(NODE *h) { NODE *p; p=h;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p->data); p=p->next; }

while(p!=NULL); printf(\"->End\\n\");

} }

main()

{ NODE *head;

int a[N]={2,4,6,8,10}; head=creatlist(a);

printf(\"\\nThe original list:\\n\"); outlist(head); head=fun(head);

printf(\"\\nThe list after inverting :\\n\"); outlist(head); }

2.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10

int fun(char (*ss)[M], int k) { int i,j=0,len;

/**********found**********/ for(i=0; i/**********found**********/ strcpy(ss[j++], ss[i]); }

return j; }

main() { char x[N][M]={\"Beijing\anjing\ int i,f;

printf(\"\\nThe original string\\n\\n\"); for(i=0;iprintf(\"The string witch length is less than or equal to 7 :\\n\"); for(i=0; i3.给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

1

#include #define N 5 typedef struct node { int data;

struct node *next; } NODE;

/**********found**********/ NODE * fun(NODE *h) { NODE *p, *q, *r; p = h;

if (p == NULL) return NULL; q = p->next; p->next = NULL; while (q) {

/**********found**********/ r = q-> NODE; q->next = p; p = q;

/**********found**********/ q = r ; }

return p; }

NODE *creatlist(int a[])

{ NODE *h,*p,*q; int i; h=NULL;

for(i=0; i{ q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;

if (h == NULL) h = p = q;

else { p->next = q; p = q; } }

return h; }

void outlist(NODE *h) { NODE *p; p=h;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p->data); p=p->next; }

while(p!=NULL); printf(\"->End\\n\"); } }

main()

{ NODE *head;

int a[N]={2,4,6,8,10}; head=creatlist(a);

printf(\"\\nThe original list:\\n\"); outlist(head); head=fun(head);

printf(\"\\nThe list after inverting :\\n\"); outlist(head); }

4.给定程序中,函数fun的功能是:判断形参s所指字符串是否是\"回文\"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。\"回文\"是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和Level是\"回文\",而LEVLEV不是\"回文\"。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include int fun(char *s) { char *lp,*rp;

/**********found**********/ lp= s ;

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp)) && (lp/**********found**********/ lp++; rp-- ; }

/**********found**********/ if(lpmain()

{ char s[81]; printf(\"Enter a string: \"); scanf(\"%s\ if(fun(s)) printf(\"\\n\\\"%s\\\" is a Palindrome.\\n\\n\ else printf(\"\\n\\\"%s\\\" isn't a Palindrome.\\n\\n\}

5.给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出: x1=5.000000,x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

double fun(double a, double b) {

/**********found**********/ double (*f)(); double r1, r2;

2

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

f = f1 ; /* point fountion f1 */ r1 = f(a);

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

f = f2; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; }

main()

{ double x1=5, x2=3, r; r = fun(x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\}

6.函数fun的功能是:输出a所指数组中的前n个数据,要求每行输出5个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include #include

void fun( int *a, int n ) { int i;

for(i=0; i/**********found**********/ if(i%5==0 )

/**********found**********/ printf(\"\"\\n\"\"); /**********found**********/ printf(\"\"%d \"\); } }

main()

{ int a[100]={0}, i,n; n=22;

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

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #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; it=a[i];

/**********found**********/ a[i] = a[p+i];

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

main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\"\\nThe original data :\\n\");

for (i=0; iprintf(\"\\nThe data after moving :\\n\"); for (i=0; i8.给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。例如,N=3,m=2,有下列矩阵

1 2 3 4 5 6 7 8 9 程序执行结果为 0 0 1 0 0 4 0 0 7

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include #define N 4

void fun(int (*t)[N], int m) { int i, j;

/**********found**********/ for(i=0; i{ for(j=N-1-m; j>=0; j--) /**********found**********/ t[i][j+m ]=t[i][j]; /**********found**********/ for(j=0; jmain() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m;

printf(\"\\nThe original array:\\n\"); for(i=0; iprintf(\"%2d \ printf(\"\\n\"); }

3

printf(\"Input m (m<=%d): \ fun(t,m);

printf(\"\\nThe result is:\\n\"); for(i=0; iprintf(\"%2d \ printf(\"\\n\"); } }

9.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

#include fun(int x)

{ int n, s1, s2, s3, t; n=0; t=100;

/**********found**********/ while(t<=999){

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

s1=t%10; s2=( t/10)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==x) { printf(\"%d \ n++; } t++; }

return n; }

main()

{ int x=-1; while(x<0) { printf(\"Please input(x>0): \"); scanf(\"%d\

printf(\"\\nThe result is: %d\\n\}

10.给定程序中,函数fun的功能是计算下式

直到

,并把计算结果作为函数值返回。

例如:若形参e的值为1e-3,函数的返回值为

0.551690。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double fun(double e)

{ int i, k; double s, t, x; s=0; k=1; i=2;

/**********found**********/ x=3.0/4;

/**********found**********/ while(x> e) { s=s+k*x; k=k* (-1); t=2*i;

/**********found**********/ x=(2*i+1)/(t*t); i++; }

return s; }

main()

{ double e=1e-3;

printf(\"\\nThe result is: %f\\n\}

11.函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。 注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! # include #define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t; for (i=0; i/**********found**********/ max = min = a[i]; px = pn = i;

for (j=i+1; j{ max = a[j]; px = j; } /**********found**********/ if (min> a[j])

{ min = a[j]; pn = j; } }

if (pn != i)

4

{ t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; }

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; } } }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i; printf(\"\\nThe original data :\\n\");

for (i=0; iprintf(\"\\nThe data after moving :\\n\"); for (i=0; i12.给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:

1 2 3 4 5 6 7 8 9

fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 3

fun(int t[][N], int n) { int i, sum;

/**********found**********/ sum=0;

for(i=0; i/**********found**********/ sum+= t[i][i] ;

for(i=0; i/**********found**********/ sum+= t[i][n-i-1] ; return sum; }

main()

{ int t[][N]={1,2,3,4,5,6,7,8,9},i,j; printf(\"\\nThe original data:\\n\"); for(i=0; iprintf(\"The result is: %d\}

13.给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元

素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:

1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5

/**********found**********/ void fun(int (*a) [N]) { int i,j,k,m;

if(N%2==0) m=N/2 ; else m=N/2+1; for(i=0; i/**********found**********/ for(j= i; ja[i][j]=a[N-i-1][j]=i+1; for(k=i+1; ka[k][i]=a[k][N-i-1]= i+1; } }

main()

{ int x[N][N]={0},i,j; fun(x);

printf(\"\\nThe result is:\\n\"); for(i=0; i14.给定程序中,函数fun的功能是:统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include #include #define N 8 typedef struct list { int data;

struct list *next; } SLIST;

SLIST *creatlist(int *a); void outlist(SLIST *);

void fun( SLIST *h, int *n) { SLIST *p;

/**********found**********/ (*n)=0;

5

p=h->next; while(p) { (*n)++;

/**********found**********/ p=p-> next; } }

main()

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48}, num; head=creatlist(a); outlist(head); /**********found**********/ fun(head, &num);

printf(\"\\nnumber=%d\\n\}

SLIST *creatlist(int a[])

{ SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i{ q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; }

p->next=0; return h; }

void outlist(SLIST *h) { SLIST *p; p=h->next;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p=p->next; }

while(p!=NULL); printf(\"->End\\n\"); } }

15.给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 8

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

{ char *ps[N],*tp; int i,j,k; for(i=0; ifor(j=i+1; jif(strlen(ps[k]) < strlen(*(ps+j)) ) k=j;

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

tp=ps[i]; ps[i]=ps[k]; ps[k]= tp ; }

printf(\"\\nThe string after sorting by length:\\n\\n\");

for(i=0; imain() { char ch[N][M]={\"red\ack\ int i;

printf(\"\\nThe original string\\n\\n\"); for(i=0;i16.给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是\"幻方\",若是,函数返回值为1;不是,函数返回值为0。\"幻方\"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。

例如,以下3×3的矩阵就是一个\"幻方\":

4 9 2 3 5 7 8 1 6

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 3

int fun(int (*a)[N])

{ int i,j,m1,m2,row,colum; m1=m2=0;

for(i=0; i{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i/**********found**********/ row=colum= 0;

for(j=0; j{ row+=a[i][j]; colum+=a[j][i]; } /**********found**********/

if( (row!=colum) || (row!=m1) ) return 0; }

/**********found**********/ return 1; }

main()

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

printf(\"Enter number for array:\\n\"); for(i=0; i6

scanf(\"%d\ printf(\"Array:\\n\"); for(i=0; iif(fun(x)) printf(\"The Array is a magic square.\\n\");

else printf(\"The Array isn't a magic square.\\n\"); }

17.给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 typedef struct node { int data;

struct node *next; } NODE;

void fun(NODE *h) { NODE *p, *q, *r;

/**********found**********/ p = h-> next;

/**********found**********/ if (p==0) return; q = p->next; p->next = NULL; while (q)

{ r = q->next; q->next = p; /**********found**********/ p = q; q =r; }

h->next = p; }

NODE *creatlist(int a[])

{ NODE *h,*p,*q; int i; h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; i{ q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;

if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } }

return h; }

void outlist(NODE *h) { NODE *p; p = h->next;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p->data); p=p->next; }

while(p!=NULL); printf(\"->End\\n\"); } }

main()

{ NODE *head;

int a[N]={2,4,6,8,10}; head=creatlist(a);

printf(\"\\nThe original list:\\n\"); outlist(head); fun(head);

printf(\"\\nThe list after inverting :\\n\"); outlist(head); }

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

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #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=i+2 ; js[j]) t=j; if(t!=i)

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

for(i=1,j=0; imain()

{ char s[80]=\"baawrskjghzlicda\ printf(\"\\nThe original string is : %s\\n\ fun(s,p);

printf(\"\\nThe result is : %s\\n\}

19.函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参

7

n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #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; it=a[i];

/**********found**********/ a[i] = a[p+i];

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

main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\"\\nThe original data :\\n\");

for (i=0; iprintf(\"\\nThe data after moving :\\n\"); for (i=0; i20.给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:

1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 5

/**********found**********/ void fun(int (*a) [N]) { int i,j,k,m;

if(N%2==0) m=N/2 ; else m=N/2+1; for(i=0; i/**********found**********/ for(j= i ; ja[i][j]=a[N-i-1][j]=i+1;

for(k=i+1; ka[k][i]=a[k][N-i-1]= i+1; } }

main()

{ int x[N][N]={0},i,j; fun(x);

printf(\"\\nThe result is:\\n\"); for(i=0; i21.函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include int c1,c2,c3; void fun(long n) { c1 = c2 = c3 = 0; while (n) {

/**********found**********/ switch(n%10) {

/**********found**********/ case 1: c1++; break; /**********found**********/ case 2: c2++; break; case 3: c3++; }

n /= 10; } }

main()

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

printf(\"\\nThe result :\\n\"); printf(\"n=%ld c1=%d c2=%d c3=%d\\n\}

22.给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(unsigned long *n)

8

{ unsigned long x=0, i; int t; i=1;

while(*n)

/**********found**********/ { t=*n % 10;

/**********found**********/ if(t%2!= 0)

{ x=x+t*i; i=i*10; } *n =*n /10; }

/**********found**********/ *n=x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %ld\\n\}

23.给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是\"幻方\",若是,函数返回值为1;不是,函数返回值为0。\"幻方\"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。

例如,以下3×3的矩阵就是一个\"幻方\": 4 9 2 3 5 7 8 1 6

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include #define N 3

int fun(int (*a)[N])

{ int i,j,m1,m2,row,colum; m1=m2=0;

for(i=0; i{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i/**********found**********/ row=colum= 0;

for(j=0; j{ row+=a[i][j]; colum+=a[j][i]; } /**********found**********/

if( (row!=colum) || (row!=m1) ) return 0; }

/**********found**********/ return 1; }

main()

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

printf(\"Enter number for array:\\n\"); for(i=0; ifor(j=0; jif(fun(x)) printf(\"The Array is a magic square.\\n\");

else printf(\"The Array isn't a magic square.\\n\"); }

24.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:41 17 34 0 19 24 28 8 12 14,平均值为:19.700000

移动后的输出为:17 0 19 8 12 14 41 34 24 28

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10

double fun(double *x) { int i, j; double av, y[N]; av=0; /**********found**********/ for(i=0; imain() { int i; double x[N]; for(i=0; i9

printf(\"\\nThe average is: %f\\n\ printf(\"\\nThe result :\\n\ for(i=0; i25.给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(unsigned long *n)

{ unsigned long x=0, i; int t; i=1;

while(*n)

/**********found**********/ { t=*n % 10;

/**********found**********/ if(t%2!= 0)

{ x=x+t*i; i=i*10; } *n =*n /10; }

/**********found**********/ *n=x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %ld\\n\}

26.给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12

若k为2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 3 #define M 4

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

void fun(int (*a)[N], int k) { int i,temp ;

/**********found**********/ for(i = 0 ; i < N ; i++) { temp=a[0][i] ;

/**********found**********/ a[0][i] = a[k][i] ; a[k][i] = temp ; } }

main() { int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j;

printf(\"The array before moving:\\n\\n\"); for(i=0; ifun(x,2);

printf(\"The array after moving:\\n\\n\"); for(i=0; i27.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组有M个字符串,且串长注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define M 5 #define N 20

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

int fun(char (*ss) [N], int *n) { int i, k=0, len=0; for(i=0; i*n) {

/**********found**********/ *n=len; k=i; } }

return(k); }

main() { char ss[M][N]={\"shanghai\

10

\"tianjing\ int n,k,i;

printf(\"\\nThe original strings are :\\n\"); for(i=0;iprintf(\"\\nThe length of longest string is : %d\\n\ printf(\"\\nThe longest string is : %s\\n\}

28.给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域之和作为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 8 typedef struct list { int data;

struct list *next; } SLIST;

SLIST *creatlist(int *); void outlist(SLIST *); int fun( SLIST *h)

{ SLIST *p; int s=0; p=h->next; while(p) {

/**********found**********/ s+= p-> data;

/**********found**********/ p=p-> next; }

return s; }

main()

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48}; head=creatlist(a); outlist(head); /**********found**********/

printf(\"\\nsum=%d\\n\head)); }

SLIST *creatlist(int a[])

{ SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i{ q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; }

p->next=0; return h; }

void outlist(SLIST *h) { SLIST *p; p=h->next;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p->data); p=p->next; }

while(p!=NULL); printf(\"->End\\n\"); } }

29.函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

/**********found**********/ char fun(char ch) {

/**********found**********/ if (ch>='0' && ch<='9') /**********found**********/ return '9'- (ch-'0'); return ch ; }

main()

{ char c1, c2;

printf(\"\\nThe result :\\n\"); c1='2'; c2 = fun(c1);

printf(\"c1=%c c2=%c\\n\ c1='8'; c2 = fun(c1);

printf(\"c1=%c c2=%c\\n\ c1='a'; c2 = fun(c1);

printf(\"c1=%c c2=%c\\n\}

30.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include

void fun(char *s, int a, double f) {

/**********found**********/ FILE * fp; char ch;

fp = fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\ fclose(fp);

fp = fopen(\"file1.txt\ printf(\"\\nThe result :\\n\\n\");

11

ch = fgetc(fp);

/**********found**********/ while (!feof(fp)) {

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

putchar(ch); ch = fgetc(fp); } putchar('\\n'); fclose(fp); }

main()

{ char a[10]=\"Hello!\"; int b=12345; double c= 98.76; fun(a,b,c); }

31.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10

int fun(char (*ss)[M], int k) { int i,j=0,len;

/**********found**********/ for(i=0; i< N ; i++) { len=strlen(ss[i]); /**********found**********/ if(len<= K)

/**********found**********/ strcpy(ss[j++], ss[i]); }

return j; }

main() { char x[N][M]={\"Beijing\anjing\ int i,f;

printf(\"\\nThe original string\\n\\n\"); for(i=0;iprintf(\"The string witch length is less than or equal to 7 :\\n\"); for(i=0; i32.函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include int c1,c2,c3; void fun(long n) { c1 = c2 = c3 = 0; while (n) {

/**********found**********/ switch(n%10) {

/**********found**********/ case 1: c1++; break; /**********found**********/ case 2: c2++; break; case 3: c3++; }

n /= 10; } }

main()

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

printf(\"\\nThe result :\\n\"); printf(\"n=%ld c1=%d c2=%d c3=%d\\n\}

33.给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! #include #include

void fun(char *s, int a, double f) {

/**********found**********/ FILE *fp;

char str[100], str1[100], str2[100]; int a1; double f1;

fp = fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\/**********found**********/ fclose(fp);

fp = fopen(\"file1.txt\/**********found**********/

fscanf(fp,\"%s%s%s\ fclose(fp);

a1 = atoi(str1); f1 = atof(str2);

printf(\"\\nThe result :\\n\\n%s %d %f\\n\str, a1, f1); }

main()

{ char a[10]=\"Hello!\"; int b=12345; double c= 98.76;

12

fun(a,b,c); }

34.给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域之和作为函数值返回。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 8 typedef struct list { int data;

struct list *next; } SLIST;

SLIST *creatlist(int *); void outlist(SLIST *); int fun( SLIST *h)

{ SLIST *p; int s=0; p=h->next; while(p) {

/**********found**********/ s+= p-> data;

/**********found**********/ p=p-> next; }

return s; }

main()

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48}; head=creatlist(a); outlist(head); /**********found**********/

printf(\"\\nsum=%d\\n\head)); }

SLIST *creatlist(int a[])

{ SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i{ q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; }

p->next=0; return h; }

void outlist(SLIST *h) { SLIST *p; p=h->next;

if (p==NULL) printf(\"The list is NULL!\\n\"); else

{ printf(\"\\nHead \"); do { printf(\"->%d\p->data); p=p->next; }

while(p!=NULL);

printf(\"->End\\n\"); } }

35.给定程序blank1.c中,函数fun的功能是:计算

的前n项。若x=2.5,n=12时,函数值为:12.182340。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

double fun(double x, int n) { double f, t; int i; f = 1.0;

/**********found**********/ t = 1;

/**********found**********/ for (i=1; i/**********found**********/ t *= x/i; f += t; }

return f; }

main()

{ double x, y; x=2.5;

y = fun(x, 12);

printf(\"\\nThe result is :\\n\");

printf(\"x=%-12.6f y=%-12.6f\\n\y);

}

36.给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

double fun(double a, double b) {

/**********found**********/ double(*f)(); double r1, r2;

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

f = f1 ; /* point fountion f1 */ r1 = f(a);

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

13

f = f2 ; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; }

main()

{ double x1=5, x2=3, r; r = fun(x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\

}

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

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构! #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=i+2 ; js[j]) t=j; if(t!=i)

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

for(i=1,j=0; i/**********found**********/ p[j]=0; }

main()

{ char s[80]=\"baawrskjghzlicda\p[50];

printf(\"\\nThe original string is : %s\\n\

fun(s,p);

printf(\"\\nThe result is : %s\\n\}

38.给定程序中,函数fun的功能是计算下式

直到

,并把结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值2.985678。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double fun(double e)

{ int i; double s, x; /**********found**********/ s=0; i=0; x=1.0;

while(x>e){

/**********found**********/ i++;

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

x=(2.0*i-1)/(( 2.0*i)*(2.0*i)); s=s+x; }

return s; }

main()

{ double e=1e-3; printf(\"\\nThe result is: %f\\n\}

39.给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。 例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include int fun(char *s) { int n=0, flag=0; while(*s!='\\0')

{ if(*s!=' ' && flag==0) { /**********found**********/ n++ ; flag=1;}

/**********found**********/ if (*s==' ') flag= 0 ; /**********found**********/ s++ ; }

return n; }

main()

{ char str[81]; int n;

printf(\"\\nEnter a line text:\\n\"); gets(str);

n=fun(str);

printf(\"\\nThere are %d words in this text.\\n\\n\

}

40.给定程序blank1.c中,函数fun的功能是:计算 xnn!106

直到

若x=2.5,函数值为:12.182494。

请在程序的下划线处填入正确的内容并把下划线

14

删除,使程序得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include #include double fun(double x) { double f, t; int n; /**********found**********/ f = 1.0+x; t = x; n = 1; do {

n++;

/**********found**********/ t *= x/n;

/**********found**********/ f += t;

} while (fabs(t) >= 1e-6); return f; }

main()

{ double x, y; x=2.5;

y = fun(x);

printf(\"\\nThe result is :\\n\");

printf(\"x=%-12.6f y=%-12.6f \\n\y);

}

41.给定程序中,函数fun的功能是:判断形参s所指字符串是否是\"回文\"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。\"回文\"是正读和反读都一样的字符串(不区分大小写字母)。 例如,LEVEL和Level是\"回文\",而LEVLEV不是\"回文\"。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中 不得增行或删行,也不得更改程序的结构!

#include #include #include int fun(char *s) { char *lp,*rp;

/**********found**********/ lp= s ;

rp=s+strlen(s)-1;

while((toupper(*lp)==toupper(*rp)) && (lp/**********found**********/ lp++; rp-- ; }

/**********found**********/ if(lpmain()

{ char s[81];

printf(\"Enter a string: \"); scanf(\"%s\

if(fun(s)) printf(\"\\n\\\"%s\\\" is a Palindrome.\\n\\n\

else printf(\"\\n\\\"%s\\\" isn't a Palindrome.\\n\\n\

}

42.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

void fun(char *s, int a, double f) {

/**********found**********/ FILE * fp; char ch;

fp = fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\ fclose(fp);

fp = fopen(\"file1.txt\ printf(\"\\nThe result :\\n\\n\"); ch = fgetc(fp);

/**********found**********/ while (!feof(fp)) {

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

putchar(ch); ch = fgetc(fp); } putchar('\\n'); fclose(fp); }

main()

{ char a[10]=\"Hello!\"; int b=12345; double c= 98.76; fun(a,b,c); }

43.给定程序中,函数fun的功能是:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数作为函数值返回。

例如,形参s所指的字符串为:Abc@1x56*,程序执行后t所指字符数组中的字符串应为:A@156*。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

int fun(char *s, char *t) { int n=0; while(*s)

{ if(*s < 97) {

/**********found**********/ *(t+n)= *s ; n++; } /**********found**********/ S++ ; }

*(t+n)=0;

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

15

return n ; }

main()

{ char s[81],t[81]; int n; printf(\"\\nEnter a string:\\n\"); gets(s);

n=fun(s,t);

printf(\"\\nThere are %d letter which ASCII code is less than 97: %s\\n\

}

44.函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 9

/**********found**********/ void fun(int *a, int n)

{ int i, j, max, min, px, pn, t; /**********found**********/ for (i=0; i/**********found**********/ for (j=i+1; j{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; } }

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; }

} }

main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\"\\nThe original data :\\n\"); for (i=0; iprintf(\"\\n\"); fun(b, N); printf(\"\\nThe data after moving :\\n\");

for (i=0; iprintf(\"\\n\"); }

45.给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 5 #define M 8

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

{ char *ps[N],*tp; int i,j,k; for(i=0; ifor(j=i+1; jif(strlen(ps[k]) < strlen(*(ps+j)) ) k=j;

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

tp=ps[i]; ps[i]=ps[k]; ps[k]= tp ; }

printf(\"\\nThe string after sorting by length:\\n\\n\");

for(i=0; imain() { char ch[N][M]={\"red\ack\

int i;

printf(\"\\nThe original string\\n\\n\"); for(i=0;ifun(ch); }

46.给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include

int fun(char *fname )

{ FILE *fp; int i,n; float x;

if((fp=fopen(fname, \"w\"))==NULL) return 0;

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

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

16

fprintf(fp,\"%d %f\\n\

printf(\"\\nSucceed!\\n\"); /**********found**********/ fclose(fp);

printf(\"\\nThe data in file :\\n\"); /**********found**********/

if((fp=fopen(fname,\"r\"))==NULL) return 0;

fscanf(fp,\"%d%f\ while(!feof(fp)) { printf(\"%d %f\\n\果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

unsigned long fun(unsigned long n) { unsigned long x=0, s, i; int t; s=n;

/**********found**********/ i=1;

/**********found**********/ while(s) { t=s%10; fscanf(fp,\"%d%f\

fclose(fp); return 1; }

main()

{ char fname[]=\"myfile3.txt\"; fun(fname); }

47.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

void fun(char *s, int a, double f) {

/**********found**********/ FILE * fp; char ch;

fp = fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\ fclose(fp);

fp = fopen(\"file1.txt\ printf(\"\\nThe result :\\n\\n\"); ch = fgetc(fp);

/**********found**********/ while (!feof(fp)) {

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

putchar(ch); ch = fgetc(fp); } putchar('\\n'); fclose(fp); }

main()

{ char a[10]=\"Hello!\"; int b=12345; double c= 98.76; fun(a,b,c); }

48.给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。

例如,从主函数输入一个整数:27638496,函数返回值为:26846。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结

if(t%2==0){

/**********found**********/ x=x+t*i; i= i*10; }

s=s/10; }

return x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %ld\\n\

}

49.给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为

1 0 0 6 5 0 10 14 9

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 3

/**********found**********/ void fun(int (*t)[N] ) { int i, j;

for(i=1; i/**********found**********/

t[i][j] =t[i][j]+t[j][i]; /**********found**********/ t[j][i] =0; } } }

17

main()

{ int t[][N]={1,2,3,4,5,6,7,8,9}, i, j;

printf(\"\\nThe original array:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); }

fun(t);

printf(\"\\nThe result is:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); } }

50.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组有M个字符串,且串长注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

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

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

int fun(char (*ss) [N], int *n) { int i, k=0, len=0; for(i=0; i*n) {

/**********found**********/ *n=len; k=i; } }

return(k); }

main() { char ss[M][N]={\"shanghai\\"tianjing\

int n,k,i; printf(\"\\nThe original strings are :\\n\");

for(i=0;iprintf(\"\\nThe length of longest string is : %d\\n\

printf(\"\\nThe longest string is : %s\\n\

}

51.给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9以下数字字符。 例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #include #define N 9

long ctod( char *s ) { long d=0; while(*s)

if(isdigit( *s)) { /**********found**********/ d=d*10+*s-'0';

/**********found**********/ s++; } return d; }

long fun( char *a, char *b ) {

/**********found**********/ return ctod(a)+ctod(b); }

main()

{ char s1[N],s2[N]; do

{ printf(\"Input string s1 : \"); gets(s1); }

while( strlen(s1)>N ); do

{ printf(\"Input string s2 : \"); gets(s2); }

while( strlen(s2)>N );

printf(\"The result is: %ld\\n\fun(s1,s2) );

}

52.给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

void fun(char *s, int a, double f) {

/**********found**********/ FILE * fp; char ch;

fp = fopen(\"file1.txt\

fprintf(fp, \"%s %d %f\\n\ fclose(fp);

fp = fopen(\"file1.txt\

18

printf(\"\\nThe result :\\n\\n\"); ch = fgetc(fp);

/**********found**********/ while (!feof(fp)) {

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

putchar(ch); ch = fgetc(fp); } putchar('\\n'); fclose(fp); }

main()

{ char a[10]=\"Hello!\"; int b=12345; double c= 98.76; fun(a,b,c); }

53.给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include void fun(char *s)

{ int i, n, k; char c; n=0;

for(i=0; s[i]!='\\0'; i++) n++; /**********found**********/ if(n%2==0) k=n-1 ; else k=n-2;

/**********found**********/ c= s[k] ;

for(i=k-2; i>=1; i=i-2) s[i+2]=s[i]; /**********found**********/ s[1]=c ; }

main()

{ char s[80]=\"abcdefgh\"; printf(\"\\nThe original string is : %s\\n\

fun(s);

printf(\"\\nThe result is : %s\\n\}

54.给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5 9 7

程序执行结果为:find:a[2][2]=9

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

#define M 3 #define N 4

void fun(int (*a)[N])

{ int i=0,j,find=0,rmax,c,k; while( (iwhile(kif (k!=i && a[k][c]<=rmax) find=0 ;

k++; }

if(find) printf(\"find: a[%d][%d]=%d\\n\

/**********found**********/ i++ ; }

if(!find) printf(\"not found!\\n\"); }

main()

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

printf(\"Enter number for array:\\n\"); for(i=0; iprintf(\"The array:\\n\"); for(i=0; iprintf(\"\\n\\n\"); }

fun(x); }

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

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#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=i+2 ; j19

if(s[t]>s[j]) t=j; if(t!=i)

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

for(i=1,j=0; i/**********found**********/ p[j]=0; }

main()

{ char s[80]=\"baawrskjghzlicda\p[50];

printf(\"\\nThe original string is : %s\\n\

fun(s,p);

printf(\"\\nThe result is : %s\\n\}

56.给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。 例如,输入一个整数:27638496,函数返回值为:862。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

unsigned long fun(unsigned long n) { unsigned long x=0; int t; while(n) { t=n%10;

/**********found**********/ if(t%2==0)

/**********found**********/ x= x*10+t;

/**********found**********/ n= n/10; }

return x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %ld\\n\

}

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

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#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; it=a[i];

/**********found**********/ a[i] = a[p+i];

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

main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\"\\nThe original data :\\n\"); for (i=0; iprintf(\"\\n\"); fun(b, N); printf(\"\\nThe data after moving :\\n\");

for (i=0; iprintf(\"\\n\"); }

58.给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。

例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include #include #include int fun(char *s) { int sum=0; while(*s) {

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

if( isdigit(*s) ) sum+= *s-48 ; /**********found**********/ s++; }

/**********found**********/ return sum ; }

main()

{ char s[81]; int n;

printf(\"\\nEnter a string:\\n\\n\"); gets(s);

n=fun(s);

printf(\"\\nThe result is: %d\\n\\n\}

20

59.给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。

例如,形参s所指的字符串为:abcdefgh,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 80

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

/**********found**********/ if(n>=len) strcpy(t,s); else {

/**********found**********/ for(i=len-n; i<=len-1; i++) t[j++]= s[i];

/**********found**********/ t[j]= '\\0' ; } }

main()

{ char s[N],t[N]; int n;

printf(\"Enter a string: \");gets(s); printf( \"Enter n:\"); scanf(\"%d\ fun(s,n,t);

printf(\"The string t : \"); puts(t); }

60.函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include int fun(int n)

{ int i,j, count=0;

printf(\"\\nThe prime number between 3 to %d\\n\

for (i=3; i<=n; i++) { /**********found**********/ for (j=2; j/**********found**********/ if (j>=i)

{ count++; printf( count%15? \"%5d\":\"\\n%5d\

}

return count;

}

main()

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

printf(\"\\nThe number of prime is : %d\\n\

}

61.给定程序中,函数fun的功能是:将N×N矩阵中元素的值按列右移1个位置,

右边被移出矩阵的元素绕回左边。例如,N=4,有下列矩阵

21 12 13 24 25 16 47 38 29 11 32 54 42 21 33 10 计算结果为

24 21 12 13 38 25 16 47 54 29 11 32

10 42 21 33

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

void fun(int (*t)[N]) { int i, j, x;

/**********found**********/ for(i=0; i/**********found**********/ x=t[i][ N-1] ;

for(j=N-1; j>0; j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][0]=x; } }

main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

printf(\"The original array:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); }

fun(t);

printf(\"\\nThe result is:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); } }

62.函数fun的功能是:计算

21

xn106直到

n!。若x=2.5,函数值为:1.917915。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include #include double fun(double x)

{ double f, t; int n; f = 1.0 + x;

/**********found**********/ t = x; n = 1; do { n++;

/**********found**********/ t *= (-1.0)*x/n; f += t; }

/**********found**********/ while (fabs(t) >= 1e-6); return f; }

main()

{ double x, y; x=2.5;

y = fun(x);

printf(\"\\nThe result is :\\n\"); printf(\"x=%-12.6f y=%-12.6f\\n\x, y); }

63.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 5

typedef struct student { long sno;

char name[10]; float score[3]; } STU;

void fun(char *filename, long sno) { FILE *fp;

STU n; int i;

fp = fopen(filename,\"rb+\");

/**********found**********/ while (!feof(fp))

{ fread(&n, sizeof(STU), 1, fp); /**********found**********/ if (n.sno==sno) break; }

if (!feof(fp)) { for (i=0; i<3; i++) n.score[i] += 3; /**********found**********/

fseek(fp, -1L*(long) sizeof(STU), SEEK_CUR);

fwrite(&n, sizeof(STU), 1, fp); }

fclose(fp); }

main() { STU t[N]={ {10001,\"MaChao\91, 92, 77}, {10002,\"CaoKai\

{10003,\"LiSi\{10004,\"FangFang\

{10005,\"ZhangSan\95, 80, 88}}, ss[N];

int i,j; FILE *fp;

fp = fopen(\"student.dat\ fwrite(t, sizeof(STU), N, fp); fclose(fp);

printf(\"\\nThe original data :\\n\"); fp = fopen(\"student.dat\ fread(ss, sizeof(STU), N, fp); fclose(fp);

for (j=0; j{ printf(\"\\nNo: %ld Name: %-8s Scores: \

for (i=0; i<3; i++) printf(\"%6.2f \ss[j].score[i]);

printf(\"\\n\"); }

fun(\"student.dat\

fp = fopen(\"student.dat\ fread(ss, sizeof(STU), N, fp); fclose(fp); printf(\"\\nThe data after modifing :\\n\");

for (j=0; j{ printf(\"\\nNo: %ld Name: %-8s Scores: \

for (i=0; i<3; i++) printf(\"%6.2f \ss[j].score[i]);

printf(\"\\n\"); } }

.给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。

例如,有下列矩阵: 1 2 3 4 5 1 2 3 4 5

22

1 2 3 4 5 若k为2,程序执行结果为 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define M 3 #define N 5

void fun(int (*a)[N],int k) { int i,j,p,temp;

/**********found**********/ for(p=1; p<= k; p++) for(i=0; i/**********found**********/

for(j=0; j< N-1 ; j++) a[i][j]=a[i][j+1];

/**********found**********/ a[i][N-1]= temp; } }

main( ) { int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;

printf(\"The array before moving:\\n\\n\"); for(i=0; iprintf(\"\\n\"); }

fun(x,2);

printf(\"The array after moving:\\n\\n\"); for(i=0; iprintf(\"\\n\"); } }

65.给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

double fun(double a, double b)

{

/**********found**********/ double (*f)(); double r1, r2;

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

f = f1 ; /* point fountion f1 */ r1 = f(a);

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

f = f2 ; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; }

main()

{ double x1=5, x2=3, r; r = fun(x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\

}

66.给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。

例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include #include #include int fun(char *s) { int sum=0; while(*s) {

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

if( isdigit(*s) ) sum+= *s- 48 ; /**********found**********/ S++; }

/**********found**********/ return sum ; }

main()

{ char s[81]; int n;

printf(\"\\nEnter a string:\\n\\n\"); gets(s);

n=fun(s);

printf(\"\\nThe result is: %d\\n\\n\}

67.给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。

例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为: letter 'a' : 3 times letter 's' : 3 times

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。23

不得增行或删行,也不得更改程序的结构!

#include #include #include void fun(char *s)

{ int k[26]={0},n,i,max=0; char ch; while(*s)

{ if( isalpha(*s) ) { /**********found**********/ ch=tolower(*s); n=ch-'a';

/**********found**********/ k[n]+= 1 ; } s++;

/**********found**********/ if(maxprintf(\"\\nAfter count :\\n\"); for(i=0; i<26;i++)

if (k[i]==max) printf(\"\\nletter \\'%c\\' : %d times\\n\

}

main()

{ char s[81];

printf(\"\\nEnter a string:\\n\\n\"); gets(s);

fun(s); }

68.人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 8 typedef struct { char num[10];

int year,month,day ; }STU;

/**********found**********/ STU fun(STU *std, char *num)

{ int i; STU a={\"\

for (i=0; i/**********found**********/

if( strcmp(td[i].num,num)==0 ) /**********found**********/ return (std[i]); return a; }

main()

{ STU std[N]={ {\"111111\3,9,21},{\"333333\

{\"444444\\"666666\

{\"777777\

STU p; char n[10]=\"666666\";

p=fun(std,n); if(p.num[0]==0)

printf(\"\\nNot found !\\n\"); else

{ printf(\"\\nSucceed !\\n \");

printf(\"%s %d-%d-%d\\nh,p.day);

} }

69.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组有M个字符串,且串长请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#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; ifor(i=0; i/**********found**********/ for(j= i+1; jn[j]) k=j; if(k!=i)

{ strcpy(t,ss[i]); strcpy(ss[i],ss[k]); /**********found**********/ strcpy(ss[k],t); n[k]=n[i]; } } }

main() { char ss[M][N]={\"shanghai\\"tianjing\

int i;

printf(\"\\nThe original strings are :\\n\");

24

for(i=0; iprintf(\"\\n\"); fun(ss);

printf(\"\\nThe result :\\n\"); for(i=0; i}

70.函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中;其余以此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为:9、1、8、2、7、3、6、4、5。形参n中存放a所指数组中数据的个数。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 9

/**********found**********/ void fun(int *a, int n)

{ int i, j, max, min, px, pn, t; /**********found**********/ for (i=0; i/**********found**********/ for (j=i+1; j{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; } }

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; }

} }

main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\"\\nThe original data :\\n\"); for (i=0; iprintf(\"\\n\"); fun(b, N); printf(\"\\nThe data after moving :\\n\");

for (i=0; iprintf(\"\\n\"); }

71.函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include int fun(int n)

{ int i,j, count=0;

printf(\"\\nThe prime number between 3 to %d\\n\

for (i=3; i<=n; i++) { /**********found**********/ for (j=2; j/**********found**********/ if (j>=i)

{ count++; printf( count%15? \"%5d\":\"\\n%5d\

}

return count; }

main()

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

printf(\"\\nThe number of prime is : %d\\n\

}

72.给定程序中,函数fun的功能是计算下式

直到

,并把结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值2.985678。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double fun(double e)

{ int i; double s, x; /**********found**********/ s=0; i=0; x=1.0;

while(x>e){

/**********found**********/ i++;

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

x=(2.0*i-1)/(( 2.0*i)*(2.0*i)); s=s+x; }

return s;

25

}

main()

{ double e=1e-3; printf(\"\\nThe result is: %f\\n\}

73.给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

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

double fun(int i, double x, double y) { if (i==1)

/**********found**********/ return f1(x); else

/**********found**********/ return f2(x, y); }

main()

{ double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\\n\

}

74.给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 6 typedef struct node { int data;

struct node *next; } NODE;

void fun(NODE *h)

{ NODE *p, *q; int t; p = h;

while (p) {

/**********found**********/ q = p->next ;

/**********found**********/ while (q)

{ if (p->data > q->data)

{ t = p->data; p->data = q->data; q->data = t; }

q = q->next; }

/**********found**********/ p = p->next ; } }

NODE *creatlist(int a[])

{ NODE *h,*p,*q; int i; h=NULL;

for(i=0; i{ q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;

if (h == NULL) h = p = q;

else { p->next = q; p = q; } }

return h; }

void outlist(NODE *h) { NODE *p; p=h;

if (p==NULL) printf(\"The list is NULL!\\n\");

else

{ printf(\"\\nHead \"); do

{ printf(\"->%d\p->data); p=p->next; }

while(p!=NULL); printf(\"->End\\n\"); } }

main()

{ NODE *head;

int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a);

printf(\"\\nThe original list:\\n\"); outlist(head); fun(head); printf(\"\\nThe list after inverting :\\n\");

outlist(head); }

75.给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include void fun(char *s) { int i, j, n;

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

26

/**********found**********/ if(s[i]>='0' && s[i]<='9') { n=0;

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

while(s[i+1+n]!= 0) n++; for(j=i+n+1; j>i; j--) /**********found**********/ s[j+1]= s[j]; s[j+1]='*'; i=i+1; } }

main()

{ char s[80]=\"ba3a54cd23a\"; printf(\"\\nThe original string is : %s\\n\

fun(s);

printf(\"\\nThe result is : %s\\n\}

76.给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9以下数字字符。 例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #include #define N 9

long ctod( char *s ) { long d=0; while(*s)

if(isdigit( *s)) { /**********found**********/ d=d*10+*s-'0';

/**********found**********/ S++; } return d; }

long fun( char *a, char *b ) {

/**********found**********/ return ctod(a)+ctod(b); }

main()

{ char s1[N],s2[N]; do

{ printf(\"Input string s1 : \"); gets(s1); }

while( strlen(s1)>N ); do

{ printf(\"Input string s2 : \"); gets(s2); }

while( strlen(s2)>N );

printf(\"The result is: %ld\\n\

fun(s1,s2) );

}

77.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 5 #define M 10

int fun(char (*ss)[M], int k) { int i,j=0,len;

/**********found**********/ for(i=0; i< N; i++) { len=strlen(ss[i]); /**********found**********/ if(len<= k)

/**********found**********/ strcpy(ss[j++], ss[i]); }

return j; }

main() { char x[N][M]={\"Beijing\anjing\

int i,f;

printf(\"\\nThe original string\\n\\n\"); for(i=0;if=fun(x,7);

printf(\"The string witch length is less than or equal to 7 :\\n\");

for(i=0; i}

78.给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

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

double fun(int i, double x, double y) { if (i==1)

/**********found**********/ return f1(x);

27

else

/**********found**********/ return f2(x, y); }

main()

{ double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\\n\

}

79.给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12

若k为2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 3 #define M 4

/**********found**********/ void fun(int (*a)[N], int k) { int i,temp ;

/**********found**********/ for(i = 0 ; i < N ; i++) { temp=a[0][i] ;

/**********found**********/ a[0][i] = a[k][i] ; a[k][i] = temp ; } }

main() { int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j;

printf(\"The array before moving:\\n\\n\"); for(i=0; iprintf(\"\\n\\n\"); }

fun(x,2);

printf(\"The array after moving:\\n\\n\"); for(i=0; iprintf(\"\\n\\n\"); }

}

80.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 5 #define M 15

void fun(char (*ss)[M], char *substr) { int i,find=0;

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

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

if( strstr(ss[i], substr) != NULL ) { find=1; puts(ss[i]); printf(\"\\n\"); }

/**********found**********/ if (find==0) printf(\"\\nDon't found!\\n\");

}

main() { char x[N][M]={\"BASIC\langwage\

int i;

printf(\"\\nThe original string\\n\\n\"); for(i=0;iprintf(\"\\nEnter a string for search : \"); gets(str);

fun(x,str); }

81.给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include

int fun(char *fname )

{ FILE *fp; int i,n; float x;

if((fp=fopen(fname, \"w\"))==NULL) return 0;

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

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

fprintf(fp,\"%d %f\\n\

printf(\"\\nSucceed!\\n\");

28

/**********found**********/ fclose(fp);

printf(\"\\nThe data in file :\\n\"); /**********found**********/

if((fp=fopen(fname,\"r\"))==NULL) return 0;

fscanf(fp,\"%d%f\ while(!feof(fp)) { printf(\"%d %f\\n\例如,输入一个整数:27638496,函数返回值为:862。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

unsigned long fun(unsigned long n) { unsigned long x=0; int t; fscanf(fp,\"%d%f\

fclose(fp); return 1; }

main()

{ char fname[]=\"myfile3.txt\"; fun(fname); }

81.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include fun(int x)

{ int n, s1, s2, s3, t; n=0; t=100;

/**********found**********/ while(t<=999){

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

s1=t%10; s2=( t/10)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==x) { printf(\"%d \ n++; } t++; }

return n; }

main()

{ int x=-1; while(x<0)

{ printf(\"Please input(x>0): \"); scanf(\"%d\

printf(\"\\nThe result is: %d\\n\}

82.给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。

while(n) { t=n%10;

/**********found**********/ if(t%2==0)

/**********found**********/ x= x*10+t;

/**********found**********/ n= n/10; }

return x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %ld\\n\

}

83.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include fun(int x)

{ int n, s1, s2, s3, t; n=0; t=100;

/**********found**********/ while(t<=999){

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

s1=t%10; s2=( t/10)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==x) { printf(\"%d \ n++; } t++; }

return n;

29

}

main()

{ int x=-1; while(x<0)

{ printf(\"Please input(x>0): \"); scanf(\"%d\

printf(\"\\nThe result is: %d\\n\}

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

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#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=i+2 ; js[j]) t=j; if(t!=i)

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

for(i=1,j=0; i/**********found**********/ p[j]=0; }

main()

{ char s[80]=\"baawrskjghzlicda\p[50];

printf(\"\\nThe original string is : %s\\n\

fun(s,p);

printf(\"\\nThe result is : %s\\n\}

85.给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include void fun(char *s)

{ int i, j=0, k=0; char t1[80], t2[80];

for(i=0; s[i]!='\\0'; i++) if(s[i]>='0' && s[i]<='9') {

/**********found**********/ t2[j]=s[i]; j++; }

else t1[k++]=s[i]; t2[j]=0; t1[k]=0;

/**********found**********/ for(i=0; ifor(i=0; imain()

{ char s[80]=\"ba3a54j7sd567sdffs\"; printf(\"\\nThe original string is : %s\\n\

fun(s);

printf(\"\\nThe result is : %s\\n\}

86.给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:41 17 34 0 19 24 28 8 12 14,平均值为:19.700000

移动后的输出为:17 0 19 8 12 14 41 34 24 28

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include #include #define N 10

double fun(double *x) {

int i, j; double av, y[N]; av=0;

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

for(i=0; i30

return av; }

main() {

int i; double x[N];

for(i=0; iprintf(\"\\n\");

printf(\"\\nThe average is: %f\\n\ printf(\"\\nThe result :\\n\

for(i=0; iprintf(\"\\n\"); }

87.给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为:

3 2 1 4 5 6 9 8 7

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 4

/**********found**********/ void fun(int t[][N] , int n) { int i,s;

/**********found**********/ for(i=0;it[i][i]=t[i][n-i-1]; /**********found**********/ t[i][n-1-i]=s; } }

main() { int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

printf(\"\\nThe original array:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); }

fun(t,N);

printf(\"\\nThe result is:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); }

}

88.给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 8 typedef struct list { int data;

struct list *next; } SLIST;

void fun( SLIST *p) { SLIST *t, *s; t=p->next; s=p; while(t->next != NULL) { s=t;

/**********found**********/ t=t-> next; }

/**********found**********/ printf(\" %d \ t->data); s->next=NULL;

/**********found**********/ free(t); }

SLIST *creatlist(int *a)

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST)); for(i=0; i{ q=(SLIST *)malloc(sizeof(SLIST)); q->data=a[i]; p->next=q; p=q; }

p->next=0; return h; }

void outlist(SLIST *h) { SLIST *p; p=h->next;

if (p==NULL) printf(\"\\nThe list is NULL!\\n\");

else

{ printf(\"\\nHead\");

do { printf(\"->%d\p=p->next; } while(p!=NULL);

printf(\"->End\\n\"); } }

main()

{ SLIST *head;

int a[N]={11,12,15,18,19,22,25,29}; head=creatlist(a);

printf(\"\\nOutput from head:\\n\");

31

outlist(head);

printf(\"\\nOutput from tail: \\n\"); while (head->next != NULL){ fun(head);

printf(\"\\n\\n\"); printf(\"\\nOutput from head again :\\n\"); outlist(head);

} }

.给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

double fun(double a, double b) {

/**********found**********/ double (*f)(); double r1, r2;

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

f = f1 ; /* point fountion f1 */ r1 = f(a);

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

f = f2 ; /* point fountion f2 */ r2 = (*f)(a, b); return r1 + r2; }

main()

{ double x1=5, x2=3, r; r = fun(x1, x2); printf(\"\\nx1=%f, x2=%f, x1*x1+x1*x2=%f\\n\

}

90.给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当x值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include fun(int x)

{ int n, s1, s2, s3, t; /**********found**********/

n=0; t=100;

/**********found**********/ while(t<= while(t<=x))

{ s1=t%10; s2=(t/10)%10; s3=t/100; if(s1+s2+s3==15) { printf(\"%d \ n++; }

/**********found**********/ ++t; }

return n; }

main()

{ int x=-1;

while(x>999||x<0)

{ printf(\"Please input(0printf(\"\\nThe result is: %d\\n\}

91.给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数:为739。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!

#include

void fun(unsigned long *n)

{ unsigned long x=0, i; int t; i=1;

while(*n)

/**********found**********/ { t=*n % 10;

/**********found**********/ if(t%2!= 0)

{ x=x+t*i; i=i*10; } *n =*n /10; }

/**********found**********/ *n=x; }

main()

{ unsigned long n=-1; while(n>99999999||n<0)

{ printf(\"Please input(0fun(&n);

printf(\"\\nThe result is: %ld\\n\}

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

32

9、5、1、2、3、4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#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; it=a[i];

/**********found**********/ a[i] = a[p+i];

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

main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\"\\nThe original data :\\n\"); for (i=0; iprintf(\"\\n\"); fun(b, N); printf(\"\\nThe data after moving :\\n\");

for (i=0; iprintf(\"\\n\"); }

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

例如,形参s所指的字符串为:baawrskjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#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=i+2 ; js[j]) t=j; if(t!=i)

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

for(i=1,j=0; ip[j]=s[i];

/**********found**********/ p[j]=0; }

main()

{ char s[80]=\"baawrskjghzlicda\p[50];

printf(\"\\nThe original string is : %s\\n\

fun(s,p);

printf(\"\\nThe result is : %s\\n\}

94.给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include typedef struct list { char data;

struct list *next; } Q;

void fun( Q *pa, Q *pb, Q *pc) { Q *p;

/**********found**********/ pa->next=pb; pb->next=pc; p=pa;

while( p ) {

/**********found**********/ printf(\" %c\ p->data); /**********found**********/ p= p->next; }

printf(\"\\n\"); }

main()

{ Q a, b, c;

a.data='E'; b.data='F'; c.data='G'; c.next=NULL;

fun( &a, &b, &c ); }

95.给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include typedef struct { int num;

char name[9];

33

float score[3]; }STU;

void show(STU tt) { int i; printf(\"%d %s : \

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

printf(\"%5.1f\ printf(\"\\n\"); }

/**********found**********/ void modify(STU *ss,float a) { int i;

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

/**********found**********/ ss-> score[i] *=a; }

main( ) { STU std={ 1,\"Zhanghua\

float a;

printf(\"\\nThe original number and name and scores :\\n\");

show(std);

printf(\"\\nInput a number : \"); scanf(\"%f\

/**********found**********/ modify(&std,a);

printf(\"\\nA result of modifying :\\n\"); show(std); }

96.函数fun的功能是:统计长整数n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

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

/**********found**********/ switch(n%10) {

/**********found**********/ case 1: c1++; break; /**********found**********/ case 2: c2++; break; case 3: c3++; }

n /= 10; } }

main()

{ long n=123114350L;

fun(n);

printf(\"\\nThe result :\\n\");

printf(\"n=%ld c1=%d c2=%d c3=%d\\n\

}

97.给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include fun(int x)

{ int n, s1, s2, s3, t; n=0; t=100;

/**********found**********/ while(t<=999){

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

s1=t%10; s2=( t/10)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==X) { printf(\"%d \ n++; } t++; }

return n; }

main()

{ int x=-1; while(x<0)

{ printf(\"Please input(x>0): \"); scanf(\"%d\

printf(\"\\nThe result is: %d\\n\}

98.给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推。例如,若N=5,生成的矩阵为:

1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include

34

#define N 5

/**********found**********/ void fun(int (*a) [N]) { int i,j,k,m;

if(N%2==0) m=N/2 ; else m=N/2+1; for(i=0; i/**********found**********/ for(j= i ; ja[i][j]=a[N-i-1][j]=i+1; for(k=i+1; ka[k][i]=a[k][N-i-1]= i+1; } }

main()

{ int x[N][N]={0},i,j; fun(x);

printf(\"\\nThe result is:\\n\"); for(i=0; iprintf(\"\\n\"); } }

99.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #include #define N 5 #define M 15

void fun(char (*ss)[M], char *substr) { int i,find=0;

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

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

if( strstr(ss[i], substr) != NULL ) { find=1; puts(ss[i]); printf(\"\\n\"); }

/**********found**********/ if (find==0) printf(\"\\nDon't found!\\n\");

}

main() { char x[N][M]={\"BASIC\langwage\

int i;

printf(\"\\nThe original string\\n\\n\"); for(i=0;iprintf(\"\\nEnter a string for search : \"); gets(str);

fun(x,str); }

100.给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。

例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为

7 4 1 8 5 2 9 6 3

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!

#include #define N 3

void fun(int (*t)[N]) { int j ,r[N];

for(j=0; j/**********found**********/ t[0][N-j-1]=t[j][0 ]; for(j=0; j=0; j--)

t[N-1][N-1-j]=t[j][N-1]; for(j=N-1; j>=0; j--) /**********found**********/ t[j][N-1]=r[j]; }

main()

{ int t[][N]={1,2,3,4,5,6,7,8,9}, i, j; printf(\"\\nThe original array:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); }

fun(t);

printf(\"\\nThe result is:\\n\"); for(i=0; i{ for(j=0; jprintf(\"\\n\"); } }

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务