三、程序設(shè)計(jì)題
1.編函數(shù)計(jì)算并返回m行6列整型數(shù)組a周邊元素之和(即第1行、第m行、第1列、第6列上元素之和,但是重復(fù)元素只參加1次求和)。數(shù)組名a和m、n作為函數(shù)參數(shù)。
【解析】先用單重循環(huán)求第1行和第m行上元素之和,控制循環(huán)的變量i對(duì)應(yīng)列下標(biāo),依次等于0、1、…、5,參與求和的數(shù)組元素是a[0][i]和a[m-1][i]。
再用單重循環(huán)求第1列和第6列上元素之和(注意排除第1行和第m行),控制循環(huán)的變量1對(duì)應(yīng)行下標(biāo),依次等于1、…、m-2,參與求和的數(shù)組元素是a[i][0]和a[i][5]。
【參考答案】int fun(a,m)
int a[][6];
{ int i,s=0;
for(i=0;i<6;i++)
s+=a[0][i]+a[m一1][i];
for(i=1;i
s+=a[i][0]+a[i][5];
return(S);
}
2.編程序從鍵盤(pán)上輸入一個(gè)字符串(長(zhǎng)度小于或等于80),分別統(tǒng)計(jì)其中的字母、數(shù)字和其他字符的數(shù)目。本題要求用指向數(shù)組首地址的指針變量來(lái)處理字符率中的字符。
【解析】定義字符型數(shù)組和指向數(shù)組首地址的指針變量。利用系統(tǒng)函數(shù)輸入一個(gè)字符串,存入字符型數(shù)組。利用單重循環(huán)依次處理字符串中的單個(gè)字符,直到當(dāng)前字符是字符率結(jié)束標(biāo)記符為止。在循環(huán)體中利用if-else組成的嵌套雙分支結(jié)構(gòu)處理3個(gè)分支:是字母的,則在對(duì)應(yīng)計(jì)數(shù)變量c1且中加1;是數(shù)字的,則在對(duì)應(yīng)計(jì)數(shù)變量c2中加1;其他情況,則在對(duì)應(yīng)計(jì)數(shù)變量c3中加1。注意,這3個(gè)計(jì)數(shù)變量在循環(huán)前必須清0。
【參考答案】main()
{ char s[81],*p=s;
int c1,c2,c3;
c1=c2=c3=0;
scanf("%s",s);
while(*p!='\0')
{ if((*p>='a')&&(*p<='z'))
c1++;
else if((*p>='A')&&(*p<='Z'))
c1++;
else if((*p>+'0')&&(*p<='9'))
c2++;
else
c3++;
p++;
}
printf("c1=%d c2=%d c3=%d\n", c1,c2,c3);
}
3.編寫(xiě)一個(gè)模擬簡(jiǎn)單計(jì)算器的程序,計(jì)算表達(dá)式:a1 op a2的值,要求 a1、op、a2從盤(pán)輸入。其中a1、a2(作除數(shù)時(shí)不能為0)為數(shù)值,op為運(yùn)算符+、-、*、/。
【解析】本程序首先要定義相關(guān)的變量,a1和a2為單精度實(shí)型,op為字符型。接著要輸入兩個(gè)運(yùn)算數(shù)和運(yùn)算符。最后要按照運(yùn)算符進(jìn)行分支處理,由于分支的條件是運(yùn)算符op等于不同的值,所以可以選取swtch語(yǔ)句來(lái)完成。其中當(dāng)op為'\'時(shí),要注意區(qū)分出除數(shù)a2為0的異常情況。
【參考答案】#include "math.h"
main()
{ float a1,a2;
char op;
scanf("%f,%c,%f",&a1,&op,&a2);
switch(op)
{ case'+':printf("a1+a2=%f\n",a1+a2);break;
case'-':printf("a1-a2=%f\n",a1-a2); break;
case'*':printf("a1*a2=%f\n", a1*a2);break;
case'/':if(fabs(a2)<1e-4)
printf("division by zero.\n");
else
printf("a1/a2=%f\n",a1/a2);
break;
default:printf("unknown operator.\n");
}
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |