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

admin2017-07-13  57

问题 使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。函数fun的功能是将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制整数值返回。该串长度最大不超过15。
    例如,若表示二进制数的字符串为:’’10011’’,则运行结果应为:10011->19
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构!
    #include<stdio.h>
    #pragma warning(disable:4996)
    #define N 16
    /**********found**********/
    int fun(char__【1】___)
    {int i,n=0;
    /**********found**********/
    for(i=0;__【2】__;++i)
    /**********found**********/
    n=n*2+(s-__【3】__);
    return n;
    }
    main()
    {char num[]=’’10011’’;int n;
    n=fun(num);
    printf(’’%->%1\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<lN。
    填空3:从字符串取出的字符不能直接用于十进制计算,从s中取出的“1,0”为字符,要先将其转化为十进制数字,s-48将s中的字符转化为十进制数。
转载请注明原文地址:https://jikaoti.com/ti/PYi0FFFM
0

最新回复(0)