使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。该串长度最大不超过15。 例如,若表示二进制数

admin2018-10-20  34

问题 使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。该串长度最大不超过15。
例如,若表示二进制数的字符串为:"10011",则运行结果应为:10011﹣>19
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#pragma warning(disable:4996)
#define N16
/*********found*********/
int fun(char【1】)
{int i,n=0;
/*********found*********/
for(i=0;【2】;++i)
/*********found*********/
rl=n*2+(s【3】);
return n;
}
main()
{char num[]="10011";int n;
n=fun(num);
printf("%s﹣﹣>%d\n",num,n);
}

选项

答案(1)s[] (2)s[i]!=’\0’&&i<N (3)48

解析 填空1:该函数所接受的参数为字符数组,所以形参也为字符数组,根据函数内所用的字符数组s,所以该空填s[]。答案为s[]。
填空2:访问一个字符数组的所有元素时,当该元素不为字符串结束符’\0’时,继续访问,当访问到字符串结束符’\0’时,表示该字符串结束了,结束循环返回计算结果,因为串的长度最大不超过15,所以定义了一个常量N为16,在for循环的第二个表达式中i<N用来控制其不超过15,当其超过了15位时后面的不做计算,所以该空填s!=’\0’&&i<N。答案为s!=’\0’&&i<N。
填空3:从字符串取出的字符不能直接用于十进制计算,从s中取出的“1,0”为字符,要先将其转化为十进制数字,s﹣48将s中的字符转化为十进制数。
转载请注明原文地址:https://kaotiyun.com/show/FMxp777K
0

最新回复(0)