第 1 页:选择题 |
第 5 页:基本操作题 |
第 6 页:程序改错题 |
第 7 页:程序设计题 |
第 8 页:参考答案 |
二、基本操作题程序填空题
【1】sum+=x[i]【2】abs+=(x[i]一avg)*(x[i]-avg)【3】sqrt(abs/10)
【解析】由函数proc( )可知,变量sum中存放n个数的和,因此,【1】处填"sum+=x[i]”;然后求其平方差,因此,【2】处填“abs+=(x[i]-avg)*(x[i]-avg)”;最后求l0个数的方差,因此,【3】处填"sqrt(abs/10)”。
三、程序改错题
(1)错误:for(i=j=0;str[i]!=’0’;i++)
正确:for(i=j=0;str[i]!=’\0’;i++)
(2)错误:str[j]=str[i];
正确:str[i++]=str[i];
【解析】根据题目中的要求,从字符串str中删除所有大写字母’F’,需要检查字符串str中的每一个字符,直到字符串结束,因此,“for(i=j=0;str[i]!=’0’;i++)”应改为“for(i=J=0;str[i]!=’0’;i++)”;将每一个不是’F’的字符放入原来的字符串中,形成新的字符串,因此,“str[j]= str[i];”应改为“str[j++]=str[i];”。
四、程序设计题
void proc(char * str)
{
char*p=str;
while(* p= =’*’)p++; //通过p的移动来达到使p指向第一个不是*号的字符
for(;* p!=’\0’;p++,str++) //把从第一个不是*号的字符放到a中
* str=* P:
* str=’\0’; //最后用’\0’作为字符串结束标志
}
【解析】题目中要求将字符串中的前导*号全部删除,首先将指针P移动到第一个不是*的字符,将指针P之后的字符放入原来的字符串中,并为新的字符串添加结束符。
编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |