1 、下列给定程序中,函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0] 、a[1]、a[2]…中,把奇数从数组中删除,偶数的个数通过函数值返回 。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除奇数后a所指数组中的数据为:4,2,6,8,返回值为4 。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:不得增行或删行 ,也不得更改程序的结构!
2 、下列给定程序中 ,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符 ,若找不到相同的字符则不做任何处理 。
例如 ,若s所指字符串为"baacda" ,c中的字符为a ,执行后s所指字符串为"baaaacdaa" 。
请在下划线处填入正确的内容并将下划线删除 ,使程序得出正确的结果 。
不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
void fun(char *s, char c)
{ int i, j, n;
/**********found**********/
for(i=0; s[i]!=___1___ ; i++)
if(s[i]==c)
{
/**********found**********/
n=___2___ ;
while(s[i+1+n]!=\0) n++;
for(j=i+n+1; j>i; j--) s[j+1]=s[j];
/**********found**********/
s[j+1]=___3___ ;
i=i+1;
}
}
int main()
{ char s[80]="baacda", c;
printf("\nThe string: %s\n",s);
printf("\nInput a character: "); scanf("%c",&c);
fun(s,c);
printf("\nThe result is: %s\n",s);
return 0;
}
3 、下列给定程序中 ,函数fun的功能是:有N×N矩阵 ,以主对角线为对称线 ,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0 。
例如 ,若N=3 ,有下列矩阵:
1 2 3
4 5 6
7 8 9
计算后结果为
1 0 0
6 5 0
10 14 9
请在程序的下划线处填入正确的内容并把下划线删除 。使程序得出正确的结果 。
注意:不得增行或删行,也不得改程序的结构!
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int (*t)___1___ )
{ int i, j;
for(i=1; i<N; i++)
{ for(j=0; j<i; j++)
{
/**********found**********/
___2___ =t[i][j]+t[j][i];
/**********found**********/
___3___ =0;
}
}
}
int 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<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
return 0;
}
4 、下列给定程序中 ,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置 ,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2) 。
例如 ,形参s所指字符串为"abcdefgh" ,执行结果为"ahcbedgf" 。
请在下划线处填入正确的内容并将下划线删除 ,使程序得出正确的结果 。
注意:不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
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=___2___ ;
for(i=k-2; i>=1; i=i-2) s[i+2]=s[i];
/**********found**********/
s[1]=___3___ ;
}
int main()
{ char s[80]="abcdefgh";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
return 0;
}
5 、给定程序中 ,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制到形参t所指字符数组中 ,形成一个新串。若s所指字符串的长度小于n ,则将整个字符串复制到形参t所指字符数组中 。
例如 ,形参s所指的字符串为:abcdefgh ,n的值为5,程序执行后t所指字符数组中的字符串应为:defgh 。
请在程序的下划线处填入正确的内容并把下划线删除 ,使程序得出正确的结果。
注意:不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#define N 80
void fun(char *s, int n, char *t)
{ int len,i,j=0;
len=strlen(s);
/**********found**********/
if(n>=len) strcpy(__1__);
else {
/**********found**********/
for(i=len-n; i<=len-1; i++) t[j++]= __2__ ;
/**********found**********/
t[j]= __3__ ;
}
}
int main()
{
char s[N],t[N]; int n;
printf("Enter a string: ");gets(s);
printf( "Enter n:"); scanf("%d",&n);
fun(s,n,t);
printf("The string t : "); puts(t);
return 0;
}
6 、给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数 ,并存放在形参t所指的变量中 ,最后在主函数中输出 。例如,若形参s所指的字符串为"abcdef35adgh3kjsdf7" ,则输出结果为4 。
请在下划线处填入正确内容并将下划线删除 ,使程序得出正确的结果。
注意:不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
void fun(char *s, int *t)
{ int i, n;
n=0;
/**********found**********/
for(i=0; ___1___ !=0; i++)
/**********found**********/
if(s[i]>=0&&s[i]<= ___2___ ) n++;
/**********found**********/
___3___ ;
}
int main()
{
char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("\nThe original string is : %s\n",s);
fun(s,&t);
printf("\nThe result is : %d\n",t);
return 0;
}
7 、函数fun的功能是:根据所给的年 、月 、日 ,计算出该日是这一年的第几天 ,并作为函数值返回 。其中函数 isleap用来判别某一年是否为闰年 。
例如 ,若输入:2008
5 1 ,则程序输出:2008年5月1日是该年的第122天 。
请在程序的下划线处填入正确的内容 ,并把下划线删除 ,使程序得出正确的
结果 。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
int isleap(int year)
{ int leap;
leap= (year%4==0 && year%100!=0 || year%400==0);
/**********found**********/
return __1__;
}
int fun(int year, int month, int day)
{ int table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int days=0 , i;
for(i=1; i<month; i++)
days=days + table[i];
/**********found**********/
days=days+__2__ ;
if( isleap(year) && month>2 )
/**********found**********/
days=days+__3__;
return days;
}
int main()
{ int year, month, day, days ;
printf("请输入年 、月、日:");
scanf("%d%d%d",&year, &month, &day);
days = fun(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n",year, month, day, days);
return 0;
}
8 、给定程序中 ,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序 ,并输出排序结果 。ss所指字符串数组中共有N个字符串,且串长小于M 。
请在程序的下划线处填入正确的内容并把下划线删除 ,使程序得出正确的结果 。
注意:不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#define N 5
#define M 8
void fun(char (*ss)[M])
{ char *ps[N],*tp; int i,j,k;
for(i=0; i<N; i++) ps[i]=ss[i];
for(i=0; i<N-1; i++) {
/**********found**********/
k= __1__ ;
for(j=i+1; j<N; j++)
/**********found**********/
if(strlen(ps[k]) < strlen(__2__) ) k=j;
/**********found**********/
tp=ps[i]; ps[i]=ps[k]; ps[k]= __3__ ;
}
printf("\nThe string after sorting by length:\n\n");
for(i=0; i<N; i++) puts(ps[i]);
}
int main()
{ char ch[N][M]={"red","green","blue","yellow","black"};
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(ch[i]); printf("\n");
fun(ch);
return 0;
}
9 、下列给定程序中,函数fun的功能是:将N×N矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换 。
例如 ,若N=3 ,有下列矩阵:
1 2 3
4 5 6
7 8 9
交换后为:
3 2 1
4 5 6
9 8 7
请在下划线处填入正确的内容并将下划线删除 ,使程序得出正确的结果 。
注意:不得增行或删行 ,也不得更改程序的结构!
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int ___1___ , int n)
{ int i,s;
/**********found**********/
for(___2___; i++)
{ s=t[i][i];
t[i][i]=t[i][n-i-1];
/**********found**********/
t[i][n-1-i]=___3___;
}
}
int 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<N; i++)
{ for(j=0; j<N; j++) printf("%d ",t[i][j]);
printf("\n");
}
fun(t,N);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%d ",t[i][j]);
printf("\n");
}
return 0;
}
10、下列给定程序中 ,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串 ,找到后返回该串在字符串数组中的位置(即下标值) ,若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串 ,且串长小于M 。
请在下划线处填入正确的内容并将下划线删除 ,使程序得出正确的结果 。
注意:不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
#define N 5
#define M 8
int fun(char (*ss)[M],char *t)
{ int i;
/**********found**********/
for(i=0; i< __1__ ; i++)
/**********found**********/
if(strcmp(ss[i],t)==0 ) return __2__ ;
return -1;
}
int main()
{ char ch[N][M]={"if","while","switch","int","for"},t[M];
int n,i;
printf("\nThe original string\n");
for(i=0;i<N;i++)puts(ch[i]); printf("\n");
printf("\nEnter a string for search: "); gets(t);
n=fun(ch,t);
/**********found**********/
if(n== __3__) printf("\nDont found!\n");
else printf("\nThe position is %d .\n",n);
return 0;
}
1 、(1)a[i]%2 (2)a[j] (3)j
2 、(1)\0 (2)0 (3)c
3、(1)[N] (2)t[i][j] (3)t[j][i]
4 、(1)1 (2)s[k] (3)c
5 、(1)t,s (2)s[i] (3)\0
6 、(1)s[i] (2)9 (3)*t=n
7 、(1)leap (2)day (3)1
8 、(1) i (2)ps[j] (3)tp
9 、(1)(*t)[N] (2)i=0;i<n (3)s
10 、(1)M (2)i (3)-1
参考答案
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布。任何个人或组织,在未征得本站同意时 ,禁止复制 、盗用 、采集、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。