填空题程序通过定义学生结构体变量,存储学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是:从文件中找出指定学号的学生数据,读入此学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据,即用该学生的新数据覆盖原数据,其他学生数据指定不变;若找不到,则不做任何操作。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意
:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#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(______))
{fread(
/********found********/
if(n.sno ______ sno)break;
}
if(!feof(fp))
{for(i=0;i<3;i++)
n.score[i]+=3;
/********found********/
fseek(______,-(long)sizeof(STU),SEEK_CUR);
fwrite(
}
fclose(fp);
}
main()
{STU t[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}}, ss[N];
int i,j;
FILE *fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),N,fp);
fclose(fp);
printf("/nThe original data:/n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for(j=0;j<N;j++)
{printf("/nNo:%1d Name:%-8s Scores:",ss[j].sno,ss[j].name);
for (i=0; i<3; i++)
printf("%6.2f",ss[j].score[i]);
printf("/n");
}
fun("student.dat",10003);
fp=fopen("student.dat","rb");
fread(ss, sizeof(STU),N,fp);
fclose(fp);
printf("/nThe data after modifing:/n");
for(j=0;j<N;j++)
{printf("/nNo:%1d Name:%-8s Scores:",ss[j].sno,ss[j].name);
for(i=0;i<3;i++)
print f("%6.2f",ss[j].score[i];
printf("/n");
}
}
填空题以下程序运行后的输出结果是{{U}} 【13】 {{/U}}。
main()
{
int i,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
填空题下列给定程序中,函数fun()的功能是;将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为 a),其他字符不变。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
void fun(char *s)
/*************found**************/
{ while(*s!='@')
{ if(*s>='A'
clrscr();
printf("/n Enter a string with length <80:/n/n");gets(s);
printf("/n The string:/n/n");puts(s);
fun(s);
printf("/n/n The Cords:/n/n");puts(s);
}
填空题以下程序的运行结果是{{U}} 【9】 {{/U}}。
#include <stdio.h>
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0:a++; break;
case 1: b++; break;
}
case 2:a++; b++;break;
case 3:a++;b++;
}
printf("a=%d,b=%d/n",a,b);
}
填空题数据的逻辑结构在计算机存储空间中的存放形式称为数据的 【5】 。
填空题常用的黑箱测试有等价分类法、【 】、因果图法和错误推测法4种。
填空题以下程序运行后的输出结果是 【8】 。 #include <stdio.h> main() int a=1,b=3,c=5; if (c=a+b) printf("yes/n"); else printf("no/n");
填空题以下程序的输出结果是______。 #include main() char *ch[4]=("red ","green","blue"); int i=0; while(ch[i]) putchar(ch[i][0]);i++;
填空题下面程序中函数fun的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。
#include <stdlib.h>
#include <sldio.h>
void fun(int a[],int n, int * max,int *d)
{ int i;
*max=a[0]; *d=0;
for(i=0;{{U}} 【15】 {{/U}};i++)
if(*max<{{U}} 【16】 {{/U}})
{*max=a[i];*d=i;}
}
main()
{ int i, x[20], max, index, n=10;
randomize();
for(i=0;i<n;i++)
{ x[i]=rand()%50;printf("%4d",x[i]);}
printf("/n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d/n",max,index);
}
填空题实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
void main(int argc,char*argv[])
{ FILE *f1,*f2;
if(argc<{{U}} 【18】 {{/U}})
{ printf("parameter error!/n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while({{U}} 【19】 {{/U}})fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
填空题以下程序运行后的输出结果是 【7】 。 #define S(x) 4*x*x+1 main() int i=6,j=8; printf("%d/n",s(i+j));
填空题以下程序的运行结果是 【8】 。int k=0;void fun (int m)m+=k; k+=m; printf("m=%d k=%d",m,k++)main()int i=4; fun(i++); printf("i=%d k=%d/n",i,k);
填空题下列软件系统结构图的宽度为________。
填空题设有定义语句:int a[][3]=[0][1][2],则数组元素a[1][2]的值是 (9) 。
填空题以下程序运行后的输出结果是______。
#include<stdio.h>
struct porb
{
char*name;
int count;
}x[]={"li ning", 19, "lang ping", 21, "zhu jian hua", 20};
int main()
{
int j;
for(j=0; j<3; j++) printf("%s:%d/n", x[j].name, x[j].count);
return 0;
}
填空题以下程序运行后的输出结果是______。 #include<stdio.h> main() int a[3][3]=1, 2, 3, 4, 5, 6, 7, 8, 9; int b[3]=0, i; for(i=0; i<3; i++) b[i]=a[i][2]+a[2][i]; for(i=0; i<3; i++) printf("%d", b[i]); printf("/n");
填空题下程序的输出是 【8】 。 main() char str1[]="How do you do",*p1=str1; strcpy(str1+strlen(str1)/2,"es she"); printf("%s/n",p1);
填空题给定程序中,函数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
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 7
/**********found**********/
void fun(int(*a)______)
{int i,j,k,m;
if(N%2==0)m=N/2;
else m=N/2+1;
for(i=0;i<m;i++){
/**********found**********/
for(j=______;j<N-i;j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1;k<N-i;k++)
/**********found**********/
a[k][i]=a[k][N-i-1]=______;
}
}
main()
{int x[N][N]={0},i,j;
fun(x);
printf("/nThe result is:/n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%3d",x[i][j]);
printf("/n");
}
}
填空题以下程序可以把从键盘上输入十进制数(10ng型)以二到十六进制数的形式输出,请填空。 # include<stdio.h> main( ) char b[16] = '0','1','2','3','4','5','6','7','8','9','A','B','C','D',' E','F'; int c[64],d,i=0,base; long n; printf("Enter a number:/n");scanf("%1d",i>=0;- -i) d=c[i]; printf("%c",b 【20】 );
填空题请补充main函数,该函数的功能是:把1~100间的所有素数保存在数组aa中,然后输出这些素数并计算它们的和。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> main() int n, i, j, k, flag, sum; int aa [50]; sum=O; k=O; clrscr (); for (i=2; i<100; i++) 【1】; for (j=2; j<i&&flag; j++) if (i%j==O) 【2】; if (flag) sum+=i; 【3】; printf("/n*** prime number ***/n"); for (i=0; i<k; i++) if (i%10==0) printf ("/n"); printf ("%4d", aa [i]); printf ("/nsum=%d", sum);
