请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 5
typedef struct
{ int num;
char name[10];
char tel[10];
}STYPE;
void check();
int fun(___1___ *std)
{
___2___ *fp; int i;
if((fp=fopen("myfile5.dat","wb"))==NULL)
return(0);
printf("nOutput data to file !n");
for(i=0; i
解题思路:
本题是要求把指定的学生记录输出到指定的文件中。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。
第一处:结构定义自变量,因此应填写STYPE。
第二处:在所填行的下面一行,使用fopen来创建一个二进制文件,但文件流的变量名fp已经给出,这样,此处只能填写FILE。
每三处:fwrite是把变量中的内容写入指定文件中,再根据fwrite参数的使用要求,所以只能填写文件流变量fp。
***************************************************
给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:当s中的字符串为:"ABCDE"时,则t中的字符串应为:"ABCDEEDCBA"。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
void fun (char *s, char *t)
{ int i, sl;
sl = strlen(s);
for( i=0; i<=s1; i )
t[i] = s[i];
for (i=0; i
解题思路:
第一处:变量sl错写成了s1。
第二处:新串t的字符串结束位置不正确,应该是两倍的sl距离。
***************************************************
函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上, b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12时,调用该函数后,c=4152。
注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
void fun(int a, int b, long *c)
{
}
main()
{ int a,b; long c;
printf("Input a, b:"); scanf("%d,%d", &a, &b);
fun(a, b, &c);
printf("The result is: %dn", c);
NONO();
}
解题思路:
本题是给出两个两位数的正整数分别取出各位上的数字,再按条件组成一个新数。
取a十位数字的方法:a/10
取a个位数字的方法:a
参考答案:
void fun(int a, int b, long *c)
{
*c=(a/10)*1000 (b/10)*100 (a)*10 (b);
}
※※※※※※※※※※※※※※※※※※※※※※※※※
