2014年计算机二级C语言考试上机模拟试题(4)_第10页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2014年2月10日
二、基本操作题程序填空题  
【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之后的字符放入原来的字符串中,并为新的字符串添加结束符。
首页 1 2 3 4 5 6 7 8 9 10 尾页

相关文章