填空题以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 # define M 2 # define N 4 void SumColumMin(int a[M][N], int *sum) int i, j, k, s=0; for(i=0; i<N; i++) k=0; for(j=1; j<M; j++) if(a[k][i]>a[j][i])k=j; s+=a[k][i]; *sum=s; main() int x[M][N]=3, 2, 5, 1, 4, 1, 8, 3, s; SumColumMin( 【11】 );printf("% d/n" , s);
填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];
}STU;
void fun(char*filename)
{FILE*fp; int i,j;
STU s[N],t;
/**********found**********/
fp=fopen(filename,______);
fread(s,sizeof(STU),N,fp);
fclose(fp);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
/**********found**********/
if(s[i].sno______s[j].sno)
{t=s[i];s[i]=s[j];s[j]=t;}
fp=fopen(filename,"wb");
/**********found**********/
______(s,sizeof(STU),N,fp);/*二进制输出*/
fclose(fp);
}
main()
{STU t[N]={{10005,"ZhangSan",95,80,88},
{10003,"LiSi",85,70,78},
{10002,"CaoKai",75,60,88},
{10004,"FangFang",90,82,87},
{10001,"MaChao",91,92,77}},ss[N];
int i,j; FILE*fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),5,fp);
fclose(fp);
printf("/n/nThe original data:/n/n");
for(j=0;j<N;j++)
{printf("/nNo:%ld Name:%-8s Scores:",t[j].sno,t[j]name);
for(i=0;i<3;i++)
printf("%6.2f",t[j].score[i]);
printf("/n");
}
fun("student.dat");
printf("/n/nThe data after sorting:/n/n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),5,fp);
fclose(fp);
for(i=0;j<N;j++)
{printf("/nNo:%ld Name:%-8s Scores:",ss[j].sno,ss[j].name);
for(i=0;i<3;i++)
printf("%6.2f",ss[j].score[i]);
printf("/n");
}
}
填空题希尔排序法属于{{U}} {{U}} {{/U}} {{/U}}排序法。
填空题若有以下定义,请写出以下程序段中输出语句执行后的输出结果______。
int i=-200, j=2500;
printf("(1)%d, %d", i, j);
printf("(2)i=%d, j=%d/n", i, j);
printf("(3)i=%d/nj=%d/n", i, j);
填空题若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是 【12】 。 int a[10]=19,23,44,17,37,28,49,36,*p; p=a;
填空题两种基本测试方法中,______测试的原因之一是保证所测试模块中每一个独立路径至少要执行一次。
填空题表示“整数x的平方大于36"时的值为“真”的C语言逻辑表达式是{{U}} 【6】 {{/U}}。
填空题按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。
填空题给定程序中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。请改正程序函数中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include<conio.h>#include<stdio.h>#defineM10intaIM][M]={0};/**********found**********/voidfun(int**a,intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)/**********found**********/a[j][k]=k*j;}main(){inti,j,n;printf("Entern:");scanf("%d",fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%4d",a[i][j]);printf("/n");}}
填空题下列给定程序中,函数fun()的功能是:在字符串str中找出ASCII码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用fun()函数之前给字符串输入fagAgBDh,调用后宁符串中的内容为AfaggBDh。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
/*************found************/
void fun(char p)
{
char min,*q;
int i=0;
min=p[i];
while (p[i]!=0)
{
if (min>p[i])
{
/*************found*************/
p=q+i;
min=p[i];
}
i++;
}
while(q>p)
{*q=*(q-1);
q--;
}
p[0]=min;
}
main()
{
char str[80];
printf("Enter a string:");
gets(str);
printf("/nThe original string:");
puts(str);
fun(str);
printf("/nThe string after moving:");
puts(str);
printf("/n/n");
}
填空题给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回,并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46、30、32、40、6、17、45、15、48、26,其平均值为30.500000。
主函数中输出:46 32 40 45 48。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:
#include<stdlib.h>
#include<stdio.h>
#define N 10
double fun(double x[], double *y)
{int i, j; double av;
/**********found**********/
av=______;
/**********found**********/
for(i=0; i<N; i++)
av=av+______;
for(i=j=0; i<N; i++)
/**********found**********/
if(x[i]>av) y[______]=x[i];
y[j]=-1;
return av;
}
main()
{int i; double x[N], y[N];
for(i=0; i<N; i++)
(x[i]=rand()%50;
printf("%40f", x[j]);}
printf("/n");
printf("/nThe average is:%f/n", fun(x, y));
for(i=0; y[i])>0; i++)
printf("%5.1f", y[i]);
printf("/n");
}
填空题以下程序的运行结果是{{U}} 【12】 {{/U}}。
#include<stdio.h>
main()
{ int a=1,b=2,c;
c=max(a,b);
printf("max is%d/n",c);}
max(int x,int y)
{ int z;
z=(x>y)? x:y;
return(z);}
填空题下列程序的输出结果是______。 #include<stdio.h> main() int x=3,y=2,z=1; if(x<y) if(y<0)z+0; else Z+=1; primf(“%d/n",z);
填空题下列给定程序中,函数fun的功能是:将形参S所指字符串中下标为奇数的字符取出,并按ASCII码大小递增排序,将排序后的字符存入形参P所指的字符数组中,形成一个新串。 例如,形参s所指的字符串为“baawrskjghzlicda”,执行后p所指字符数组中的字符串应为“aachjlsw”。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> void fun(char*s,ehar*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*********/ ______; /*************found*************/ for(j=______+2;j 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<n;i=i+2j++) p[j]=s[i]; /***********found*********/ p[j]=______; main() char s[80]="baawrskjghzlicda",p[50]; printf("/nThe original string is:%s/n",s); fun(s,p); printf("/nThe result is:%s/n",p);
填空题请补充函数fun(),该函数的功能是把数组aa中的奇数元素按原来的先后顺序放在原数组后面。 例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“42,58,76,16,56,33,67,25,25,41。 注意:部分源程序给出如下。 请勿改动主函数main和具他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 10 void fun(int aa[]) int i, j=0,k 0; int bb IN]; for (i 0; i<N; i++) if ( 【1】 ) bb[k++] aa[i]; else aa [j++] =aa Ii]; for(i=0; i<k; 【2】 ) aa[j] bb[i]; main ( ) int i; int aa[N]=33, 67, 42,58,25, 76, 85, 16, 41,56; clrscr (); printf("/n*** original list ***/n"); for (i=0; i<N; i++) printf("%4d", aa[i]); fun (aa); printf("/n*** new list ***/n"); for (i=0; i<N; i++) printf("%4d", aa[i]);
填空题用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。
p=(float*){{U}} 【9】 {{/U}};
填空题请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入fun()函数。
例如,输入“abcdef”,则输出“bdf”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define N 100
void ______
{
int i,j;
______;
for(i=0;i<n;i++)
if(s[i]%2==0)
s[j++]=s[i];
______;
}
void main()
{
int i=0,len=0;
char str[N];
printf("please input a string:/n");
gets(str);
while(str[i]!="/0")
{
len++;
i++;
}
fun(str,len);
printf("The result string:/n");
puts(str);
}
填空题以下程序的辅出结果是{{U}} 【13】 {{/U}}。
void fun(int s[])
{ int i;
for(i=0;i<10;i++)printf("%d",s[i]);
printf("/n/n");
}
main()
{ int a[3][4]={{99,2},{3,4,5},{6,7,8}};
fun(a[0]);
}
填空题以下程序用来统计文件中字符的个数。请填空。 #include
main() { FILE *fp; long num=0;
if((fp=fopen("fname.dat" ______))==NULL) printf("Open
error/n"); exit(0); while______
{______; num++; }
printf("num=% ld /n", --num); fclose(fp); }
填空题下面函数的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。请填空。 #include<stdio.h> void fun(int a[],int n,int *max,int *d) int i; *max=a[0]; *d=0; for(i=0;{{U}} {{/U}};i++) if(*max<{{U}} {{/U}}) *max=a[i];*d=i; main( ) int i,x E20],max,index,n=10; fox(i=0;i<n;i++)scanf("%d",x[i]);printf("%4d",x[i]); printf("//n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d//n",max,index);
