三、程序改錯(cuò)題
42下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。例如,當(dāng)s中的數(shù)為123456789時(shí),t中的數(shù)為2468。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
//****found****
void proc(1ong s,long t)
{long s1=10;
s/=10:
*t=s;
//****found****
while(s<0)
{ s=s/100;
*t=s*s1+*t;
s1=s1*10:
}
void main()
{long S,t;
system(”CLs”);
printf(”\nPlease enter s:”);
scanf(”%ld”,&s);
proc(s,&t):
printf(”The result is:%ld\\n”,t);
}
參考解析:
(1)錯(cuò)誤:voidproc(10ngS,longt)正確:voidproc(10ngS,lon9“t)(2)錯(cuò)誤:while(s<0)
正確:while(s>O)
【解析】從主函數(shù)中實(shí)參可知,形參的第二個(gè)變量是長整型的指針變量。因此“voidproc(10ngS,longt)”應(yīng)改為“voidproc(10ngS,long*t)”;要從低位開始取出長整型變量s中偶數(shù)位上的數(shù),每次變量S要除以100,然后判斷其是否大于0來決定是否要繼續(xù),因此“while(S<0)”應(yīng)改為“while(s>0)”。第42題 筆記記錄我的筆記(0) | 精選筆記(3)選擇筆記標(biāo)簽:試題內(nèi)容(3)答案解析(0)
四、程序設(shè)計(jì)題
43請(qǐng)編寫函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù),同時(shí)ASCII碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符8的ASCII碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所寫的若干語句。
試題程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
)
void main()
(
char str[100],t[100];
system(”CLS”);
printf(”\nPlease enter string str:");
scanf(”%s”,str);
proc(str,t);
printf(”\nThe result is:%s\n”,t):
)
參考解析:
voidproc(char*sir。chart[])1
inti,j=0;
for(i=0;slr[,i]!=’\0’;i++)//從數(shù)組的第一個(gè)元素開始,到其最后一個(gè)
{if(i%2==0&.&str[i]!=o)//下標(biāo)為偶數(shù)、同時(shí)ASCIl碼值為奇數(shù)的字符
t[j++]=str[i];}//如果成立,則把它放到t數(shù)組中
t[j]=’\0’;//字符串結(jié)束標(biāo)志為’\0’}
【解析】題目中要求將字符串sir中下標(biāo)為偶數(shù),同時(shí)ASCIl碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標(biāo)為偶數(shù)的字符的ASCIl碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串?dāng)?shù)組添加結(jié)束符。
相關(guān)推薦:
2015計(jì)算機(jī)二級(jí)《C語言》考試上機(jī)測(cè)試題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |