2025年全国大学生计算机等级考试二级C语言上机真题库及详解攻略.doc
填空
給定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号,姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作為一种数据块写到名為my的二进制文献中。
請在程序的下划线处填入对的的内容并把下划线删除,是程序得出对的的成果。
注意:源程序寄存在考生文献夹下的BLANK1.c中
不得增行或删行,也不得更改程序的构造!
voidcheck();
/**********found**********/
intfun(___1___*std)
{
/**********found**********/
___2___*fp;inti;
if((fp=fopen("my,"wb))==NULL)
return(0);
printf(\nOutputdatatofile!\n);
for(i=0;iN;i++)
/**********found**********/
fwrite(std[i],sizeof(STYPE),1,___3___);
fclose(fp);
return(1);
}
修改
給定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序寄存到t串中,然后把s中的字符按逆序连接到t串背面。
例如:当s中的字符串為:“ABCDE”時,
则他中的字符串应為:“ABCDEEDCBA”。
請改正程序中的錯误,使他能得出对的的成果。
注意:不要改动main函数,不能增行或删行,也不得更改程序的构造!
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
/************found************/
for(i=0;i<=s1;i++)
t[i]=s[i];
for(i=0;isl;i++)
t[sl+i]=s[sl-i-1];
/************found************/
t[sl]=\0;
}
程序
函数fun的功能是:将两个两位数的正整数a,b合并成一种整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。
例如:a=45,b=12時,调用该函数后,c=4152.
注意:部分源程序存在文献PROG1.C中。数据文献IN.DAT中的数据不得修改。
請勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干語句。
答案:B:STYPEFILEfp
M:for(i=0;isl;i++)t[2*sl]=0;
P:*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
填空
給定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文献my中,用-1作為字符串输入結束的标识。然后将文献的内容读出显示在屏幕上。文献的读写分别有自定义函数ReadText和WriteText实現。
請在程序的下划线处填入对的的内容并把下划线删除,是程序得出对的的成果。
注意:源程序寄存在考生文献夹下的BLANK1.c中
不得增行或删行,也不得更改程序的构造!
main()
{FILE*fp;
if((fp=fopen(my,w))==NULL)
{printf(openfail!!\n);exit(0);}
WriteText(fp);
fclose(fp);
if((fp=fopen(my,r))==NULL)
{printf(openfail!!\n);exit(0);}
ReadText(fp);
fclose(fp);
}
/**********found**********/
voidWriteText(FILE___1___)
{charstr[81];
printf(\nEnterstringwith-1toend:\n");
gets(str);
while(strcmp(str,-1")!=0){
/**********found**********/
fputs(___2___,fw);fputs("\n,fw);
gets(str);
}
}
voidReadText(FILE*fr)
{cha