第 1 頁:程序填空題 |
第 2 頁:程序改錯題 |
第 3 頁:程序設(shè)計 |
第 4 頁:參考答案 |
上機(jī)考試試題答案與解析
一、程序填空題
【1】sum+=x[i]【2】abs+=(x[i]-avg)*(x[i]
avg) 【3】sqrt(abs/10)
【解析】由函數(shù)proc()可知,變量SHill中存放n個數(shù)的和,因此,【1】處填“sum+=x[i]”;然后求其平方差,因此,【2】處填“abs+=(x[i]- avg)*(x[i] -avg)”;最后求10 個數(shù)的方差,因此,【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[j++]=str[i];
【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫字母’F’,需要檢查字符串str中的每一個字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=’0 ’;i++)”應(yīng)改為“for(i=j=0;str[i]!=’\0 ’;i++)”;將每一個不是’F’的字符放入原來的字符串中.形成新的字符串,因此,“str[j]= str[1];”應(yīng)改為“str[j++]=str[i];”。
三、程序設(shè)計題
void proc(char*str)
{
char*p=str:
while(*p==’*’)p++;//通過P的移動來達(dá)
到使P指向第一個不是*號的字符
for(;*p!=’\0 ’;p++,str++)//把從第一個
不是*號的字符放到a中 ‘
*str=* P:
*str=’\0 ’; //最后用’\0’作為字符串結(jié)束標(biāo)志
}
【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
相關(guān)推薦:
2014年計算機(jī)二級C語言考試上機(jī)沖刺試題及答案集
2014年計算機(jī)二級考試C語言考前預(yù)測選擇題匯總
考試吧考后首發(fā)2014年3月計算機(jī)等考真題及答案通
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |