第 16 頁:答案 |
(16)下列程序的功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?/P>
#include
#include
#define M 81
int fun(char *ss, char c)
{ int i=0;
for(; 【18】;ss++)
if(*ss==c)i++;
return i;}
main()
{ char a[M], ch;
clrscr();
printf("\nPlease enter a string: "); gets(a);
printf("\nPlease enter a char: "); ch=getchar();
printf("\nThe number of the char is: %d\n", fun(a,ch));}
解析: 從字符串ss中找出子字符串的方法是:從第1個字符開始,對字符串進行遍歷;若ss串的當(dāng)前字符等于t串的第1個字符,兩字符串的指針自動加1,繼續(xù)比較下一個字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若ss串的字符和c串的字符對應(yīng)不同,繼續(xù)對ss串的下一個字符進行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動,if()的作用是進行判斷是否相同,若與c相同則表示又出現(xiàn)一次。
(17)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個名為bi.dat的新文件中,請?zhí)羁铡?/P>
#include "stdio.h"
FILE *fp;
{ char ch;
if((fp=fopen(【19】))==NULL)exit(0);
while((ch=getchar( ))!='@')fputc (ch,fp);
fclose(fp);}
解析: fopen函數(shù)的調(diào)用方式通常為:
FILE *fp
fp=fopen(文件名,使用文件方式);
(18)設(shè)有如下宏定義
#define MYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?/P>
float a=5,b=16,c;
MYSWAP(【20】,a,b);
解析: 該題考查兩個知識點:
(1)用一個指定的標(biāo)識符(即名字)來代表一個字符串,它的一般形式為#define 標(biāo)識符 字符串
(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應(yīng)填c。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |