问答题下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符‘0’到‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,……,‘9’转换成‘0’;若是其他字符则保持不变;并将转换后的结果作为函数值返回。
请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更改程序的结构!
#inelude
/**********found**********/ 【1】fun(char ch) { /**********found**********/ if(ch>=‘0’&&【2】) /**********found**********/ return'9'一(ch一【3】); return ch; } main() {char c1,c2; c1='1'; c2=fun(c1) printf(''%c,''%c'',c1,c2); }
问答题用筛选法可得到2~n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,……函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:
问答题下列程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数proc(inta[][M],int n),该函数的功能是:使数字右上半三角元素中的值乘以m。
例如,若m的值为5,a数组中的值为:
a=1 2
3 4
则返回主程序后a数组的值应为:
5 10
3 20
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<conio.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#define M 5
void proc(int a[][M],int m)
{
}
void main()
{
int arr[M][M],m,i,j;
system("CLS");
printf("****The array****/n");
srand((unsigned)time(NULL));
for(i=0;i<M;i++)
//输出一个随机的5*5矩阵
{ for(j=0;j<M;j++)
{arr[i][j]=rand()%20;
printf("%4d",arr[i][j]);
}
printf("/n");
do
m=rand()%10;
while(m>=3);//产生一个小于3的随机数
printf("m=%4d/n",m);
proc(arr,m);
printf("THE RESULT/n");
for(i=0;i<M;i++)
{ for(j=0;j<M;j++)
{
printf("%4d",arr[i][j]);
printf("/n");
}
问答题请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,二维数组中的数据为: 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是:33 33 33 33 44 44 44 44 55 55 55 55。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。1 #include<stdio.h>2 void fun(int(*s)[10],int *b, int *n,int mm,int nn)3 {45 }6 main()7 {int w[10][10]={(33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;8 int a[100]={0),n=0;void NONO();9 printf(''The matrix:\n'');10 for(i=0 ; i<3 ; i++)11 { for(j=0;j<4;j++) printf(''%3d'',w[i][j]);12 printf(''\n'');13 }14 fun(w,a,&n,3,4);15 printf(''The A array:\n'');16 for(i=0;i<n;i++)printf (''%3d'',a[i]);printf(''\n\n'');17 NONO();18 }19 void NONO()20 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/21 FILE *rf,*wf ; int i,j,k;22 int w[10][10],a[100],n=0,mm,nn ;23 rf=fopen(''in.dat'',''r'');24 wf=fopen(''out.dat'',''w'');25 for(k=0;k<5;k++) {26 fscanf(rf,''%d%d'', fprintf { wf,''\n'');31 }
问答题给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。
例如,输入的数为:55 12 34,输出结果应当是:a=55,0,b=34.0,c=12.0。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
void fun(float *a,float *b,float
*c)
{
/********** found**********/
float *k;
if(*a*c)
{ k=*c; *c=*a; *a=k;}
if(*b<*c)
{ k=*b; *b=*c; *c=k;}
}
main ()
{ float a,b,c;
printf("Input a b c: ");
scanf ("%f%f%f",
printf("a = %4.1f, b = %4.1f,
c = %4.1f/n/n",a,b,c);
fun (
printf("a = %4.1f, b = %4.1f,
c = %4.1f/n/n",a,b,c);
}
问答题给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
typedef struct
{ int num;
char name[10];
}PERSON;
/*********found*********/
void fun(PERSON
【1】
{
/*********found*********/
【2】
temp;
if(std[0].num>std[1].num)
{ temp=std[0];
std[0]=std[1];
std[1]=temp;}
if(std[0].num>std[2].num)
{temp=sta[0];std[0]=std[2];
std[2]=temp;)
if(std[1].num>std[2].hum)
{ temp=std[1];
std[1]=std[2];
std[2]=temp;}
}
main()
{ PERSON std[]=(5,"Zhanghu",2,"WangLi",6,"LinMin");
int i;
/*********found*********/
fun
【3】
;
printf("The result is":);
for(i=0;i<3;i++)
printf("%d,%s",std[i].num,std[i].name);
}
问答题下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include<stdio.h>#include<string.h>#deftne N5#defineM 10int fun(char(*ss)[M],int k){int i,j=0,len;/**********found**********/for(i=O;i<【1】;i++){len=strden(ss[i]);/**********found**********/if(1en<=【2】)/**********found**********/strcpy(ss[j++],【3】);}return j;}main(){char x[N][M]={t"Beijing","Shanghai","Tianjin","Nanjing","Wuhan"};int i,f;pIintf("\nThe original string\n\n");for(i=0;i<N;i++)puts(x[i]);printf("\n");f=fun(x,7);printf("The string witch length is less than or equal to7:\n");for(i=0;i<f;i++)puts(x[i]);printf("\n");}
问答题请编写函数fun,函数的功能是查找X在s所指数组中下标的位置,并作为函数值返回,若X不存在,则返回一1。 注意:部分源程序在文件PROC1.C文件中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < stdlib.h >#de fine N 15void NONO();int fun(int *s, int x){}main(){ int a[N]={29,13,5,22,10,9,3,18,22,25,14,15, 2,7,27},i,x,index; printf("a数组中的数据:/n"); for(i=0;i < N;i++) printf("%4d",a[i]);printf("/n"); printf("给x输入待查找的数:"); scanf("%d",&x); index=fun(a,x); printf "index=%d/n",index); NONO(); } void NONO() {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*fp, *wf; int i,j,a[10], x. index; fp=fopen("in.dat","r"); wf=fopen ("out.dat","w"); for(i=0;i < 10;i++){ for(j =0;j < 10 ; j++) { fscanf(fp,"%d",&a[j]); } fscanf (fp,"%d",&x); index=fun (a, x); fprintf (wf,"%d/n",index); } fclose( fp); fclose ( wf); }
问答题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int fun(int score[],int m,int below[])
{
}
void main()
{
FILE*wf;
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90};
system("CLS");
n=fun(score,9,below);
printf("/nBelow the average score are:");
for(i=0;i<n;i++)
printf("%d",below[i]);
/******************/
wf=fopen("out.dat","w");
for(i=0;i<n;i++)
fprintf(wf,"%d",below[i]);
fclose(wf);
/******************/
}
问答题下列给定程序中,函数fun的功能是:
在形参S所指字符串中的每个数字字符之后插入一个*号。例如,形参S所指的字符串为“def35adh3kjsdf7”,执行后结果为“def3*5*adh3*kjsdf7*”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
void fun(char*s)
{
int i f J r n;
for(i=0;s[i]!='/0'; i++)
/*********found*********/
if(s[i] >='0'
【1】
s[i] < ='9')
{
n=0;
/*********found*********/
while(s[i+1+n]!=
【2】
)
n++;
for(j=i+n+1;j >i;j一一)
/*********found*********/
s[j+1]=
【3】
;
s[j+1]='*';
i=i+1;
}
}
msin()
{
char s[60]="def35adh3kjsdf7";
printf("/nThe original
string is:%s/n",s);
fun(s);
printf("/nThe result is:
%s/n",s);
}
问答题printf("%d",up[i]);
问答题下列给定程序中函数fun的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
#define MAXLINE 20
fun(char *pstr[6])
{
int i,j;
char *p;
for(i=0;i<5;i++)
{
/********found********/
for(j=i+1,j<6,j++)
{
if(strcmp(*(pstr+i),(pstr+j))>0)
{
p=*(pstr+i);
/********found********/
*(pstr+i)=pstr+j;
*(pstr+j)=p;
}
}
}
}
void main()
{
int i;
char *pstr[6],str[6][MAXLINE];
system("CLS");
for(i=0;i<6;i++)
pstr[i]=str[i];
printf("/nEnter 6 string(1 string at each line):/n");
for(i=0;i<6;i++)
scanf("%s",pstr[i]);
fun(pstr);
printf("The strings after sorting:/n");
for(i=0;i<6;i++)
printf("%s/n",pstr[i]);
}
问答题基本操作
函数fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数 isleap用来判别某一年是否为闰年。
例如,若输入:2008 5 1,则程序输出:2008年5月1日是该年的第122天。
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
int isleap(int year)
{ int leap;
leap= (year%4==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; i2 )
/**********found**********/
days=days+__(3)__;
return days;
}
main()
{ int year, month, day, days ;
printf("请输入年、月、日:");
scanf("%d%d%d",
days = fun(year, month, day);
printf("%d年%d月%d日是该年的第%d天/n",year, month, day, days);
}
问答题输出1—100之间不能被12整除的数。
问答题给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后。并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
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" ______;
}
else t1[k++]=s[i];
t2[j]=0; t1[k]=0;
/**********found**********/
for(i=0, i<k; i++) ______;
/**********found**********/
for(i=0; i<______; i++) s[k+i]=t2[i];
}
main()
{char s[80]="ba3a54j7sd567sdffs";
printf("/nThe original string is:%s/n", s);
fun(s);
printf("/nThe result is:%s/n", s);
}
问答题规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的水号全部删除。形参h已指向字符串中第—个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“****A*BC*DEF*G********”,删除后,字符串中的内容应当是“****ABCDEFG********”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<string.h>void fun(char*a,char*h,char*P){}main(){ char s[81],*t,*f ; printf("Enter a string:\n"); gets(s); t=f=s ; while(*t) t++; t--; while(*t=='*') t--; while(* f=='*') f++; fun(s,f,t); printf("The string after deleted:\n"); puts(s);}
问答题下列给定程序中,函数fun的功能是:将形参8所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参P所指字符数组中,形成一个新串。
例如,形参S所指的字符为“baawrskjghzlicda”,
执行后P所指字符数组中的字符串应为“aachjlsw”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
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 < n一2;i=i+2){
/*********found*********/
【1】
;
/*********found*********/
for(j=
【2】
+2 jj < n;j=j+2)
if(s[t] >s[j])t=j;
if(t!=i)
{x=s[i];s[i]=s[t];sit]=x;}
}
for(i=1,j=0;i < n;i=i+2,j++)
p[j]=s[i];
/*********found*********/
p[j]=
【3】
;
}
main()
{ char s[80]="baawrskj ghzlicda",p[50];
printf("/nThe original
string is:%s/n",s);
fun(s,p);
printf("knThe result is:%sh",p);
}
问答题a=3;
a+=(a<1)?a:1;
printf(“%d”,a);
结果是__________。
问答题请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdlib.h>
#include<stdio.h>
void fun(int a[], int n, int *max, int *d)
{
}
main()
{int i, x[20], max, index, n=10;
for(i=0; i<n; i++){x[i]=rand()%50; printf("%4d", x[i]);}
printf("/n");
fun(x, n,
printf("Max=%5d, Index=%4d/n", max, index);
}
问答题给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdlib.h>
2 #include<stdio.h>
3 #define N 20
4 void fun(int*a)
5 { int i,x,n=0 ;
6 x=rand()%20;
7 /*********found*********/
8 while(n<
【1】
)
9 { for(i=0;i<n,i++)
10 /*********found*********/
11 if(x==a[i])
12
【2】
;
13 /*********found*********/
14 if(i==
【3】
)
15 {a[n]=x; n++;}
16 x=rand()%2 0;
17 }
18 }
19 main()
20 { int x[N]={0},i ;
21 fun(x);
22 printf("The result:\n");
23 for(i=0;i<N;i++)
24 { printf("%4 d",x[i]);
25 if((i+1)%5==0)printf("\n");
26 }
27 printf("\n\n");
28 }
