亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        2011計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試卷

        字號(hào):

        (1)棧和隊(duì)列的共同特點(diǎn)是
             A)都是先進(jìn)先出
             B)都是先進(jìn)后出
             C)只允許在端點(diǎn)處插入和刪除元素
             D)沒(méi)有共同點(diǎn)
            (2)已知二叉樹(shù)后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
             A)acbed
             B)decab
             C)deabc
             D)cedba
            (3)鏈表不具有的特點(diǎn)是
             A)不必事先估計(jì)存儲(chǔ)空間
             B)可隨機(jī)訪問(wèn)任一元素
             C)插入刪除不需要移動(dòng)元素
             D)所需空間與線性表長(zhǎng)度成正比
            (4)結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是
             A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
             B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
             C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
             D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
            (5)為了提高測(cè)試的效率,應(yīng)該
             A)隨機(jī)選取測(cè)試數(shù)據(jù)
             B)取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)
             C)在完成編碼以后制定軟件的測(cè)試計(jì)劃
             D)集中對(duì)付那些錯(cuò)誤群集的程序
            (6)算法的時(shí)間復(fù)雜度是指
             A)執(zhí)行算法程序所需要的時(shí)間
             B)算法程序的長(zhǎng)度
             C)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
             D)算法程序中的指令條數(shù)
            (7)軟件生命周期中所花費(fèi)用最多的階段是
             A)詳細(xì)設(shè)計(jì)
             B)軟件編碼
             C)軟件測(cè)試
             D)軟件維護(hù)
            (8)數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS中用來(lái)定義模式、內(nèi)模式和外模式的語(yǔ)言為
             A)C
             B)Basic
             C)DDL
             D)DML
            (9)下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是
             A)數(shù)據(jù)庫(kù)是一個(gè)DBF文件
             B)數(shù)據(jù)庫(kù)是一個(gè)關(guān)系
             C)數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合
             D)數(shù)據(jù)庫(kù)是一組文件
            (10)下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是
             A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程
             B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變
             C)關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段
             D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
            (11)以下敘述中正確的是
             A)C語(yǔ)言比其他語(yǔ)言高級(jí)
             B)C語(yǔ)言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行
             C)C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式
             D)C語(yǔ)言出現(xiàn)的最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)
            (12)C語(yǔ)言中用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是
             A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
             B)if,switch,break
             C)for,while,do-while
             D)if,for,continue
            (13)C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括
             A)整型、實(shí)型、邏輯型
             B)整型、實(shí)型、字符型
             C)整型、字符型、邏輯型
             D)字符型、實(shí)型、邏輯型
            (14)若變量已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是
             A)a:=b+1
             B)a=b=c+2
             C)int 18.5%3
             D)a=a+7=c+b
            (15)下列可用于C語(yǔ)言用戶標(biāo)識(shí)符的一組是
             A)void, define, WORD
             B)a3_b3, _123,Car
             C)For, -abc, IF Case
             D)2a, DO, sizeof
            (16)C語(yǔ)言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是
             A)%=
             B)/
             C)=
             D)<=
            (17)若變量a,i已正確定義,且i已正確賦值,合法的語(yǔ)句是
             A)a= =1
             B)++i;
             C)a=a++=5;
             D)a=int(i);
            (18)已知
             int t=0;
             while (t=1)
             {...}
             則以下敘述正確的是
             A)循環(huán)控制表達(dá)式的值為0
             B)循環(huán)控制表達(dá)式的值為1
             C)循環(huán)控制表達(dá)式不合法
             D)以上說(shuō)法都不對(duì)
            (19)若變量已正確說(shuō)明為float型,要通過(guò)語(yǔ)句scanf("%f%f%f",&a,&b,&c);給a賦予10.0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是
             A)10<回車>22<回車>33<回車>
             B)10.0,22.0,33.0<回車>
             C)10.0<回車>22.033.0<回車>
             D)10 22<回車>33<回車>
            (20)有如下程序:
             main()
             {
             int x=1,a=0,b=0;
             switch(x)
             {
             case 0: b++;
             case 1: a++;
             case 2: a++;b++;
             }
             printf("a=%d,b=%d\n",a,b);}
             該程序的輸出結(jié)果是
             A)a=2,b=1
             B)a=1,b=1
             C)a=1,b=0
             D)a=2,b=2
            (21)有以下程序
             main()
             {int i=1,j=1,k=2;
             if((j++||k++)&&i++)
             printf("%d,%d,%d\n",i,j,k);
             }
             執(zhí)行后輸出結(jié)果是
             A)1,1,2
             B)2,2,1
             C)2,2,2
             D)2,2,3
            (22)有如下程序
             main()
             {float x=2.0,y;
             if(x<0.0)y=0.0;
             else if(x<10.0)y=1.0/x;
             else y=1.0;
             printf("%f\n",y);}
             該程序的輸出結(jié)果是
             A)0.000000
             B)0.250000
             C)0.500000
             D)1.000000
             (23)有如下程序:
             main()
             {int n=9;
             while(n>6){n--; printf("%d",n);}
             }
             該程序的輸出結(jié)果是
             A)987
             B)876
             C)8765
             D)9876
            (24)在下列選項(xiàng)中,沒(méi)有構(gòu)成死循環(huán)的是
             A)int i=100;
             while(1)
             {i=i%100+1;
             if(i>100)break;
             }
             B)for(;;);
             C)int k=10000;
             do{k++;}while(k>10000);
             D)int s=36;
             while(s)--s;
            (25)設(shè)int x=1,y=1;表達(dá)式(!x||y--)的值是
             A)0
             B)1
             C)2
             D)-1
            (26)若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是
             A)函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在
             B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
             C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
             D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
            (27)有以下程序
             float fun(int x,int y)
             {return(x+y);}
             main()
             {int a=2,b=5,c=8;
             printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
             }
             程序運(yùn)行后的輸出結(jié)果是
             A)編譯出錯(cuò)
             B)9
             C)21
             D)9.0
            (28)若有以下調(diào)用語(yǔ)句,則不正確的fun函數(shù)的首部是
             main()
             { …
             int a[50],n;
             …
             fun(n, &a[9]);
             …
             }
             A)void fun(int m, int x[])
             B)void fun(int s, int h[41])
             C)void fun(int p, int *s)
             D)void fun(int n, int a)
            (29)fseek函數(shù)的正確調(diào)用形式是
             A)fseek(文件指針,起始點(diǎn),位移量)
             B)fseek(文件指針,位移量,起始點(diǎn))
             C)fseek(位移量,起始點(diǎn),文件指針)
             D)fseek(起始點(diǎn),位移量,文件指針)
            (30)若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是
             A)EOF
             B)-1
             C)1
             D)NULL
            (31)若有說(shuō)明語(yǔ)句:char c='\72';則變量c
             A)包含1個(gè)字符
             B)包含2個(gè)字符
             C)包含3個(gè)字符
             D)說(shuō)明不合法,c的值不確定
            (32)若有說(shuō)明 int a[3][4];則a數(shù)組元素的非法引用是
             A)a[0][2*1]
             B)a[1][3]
             C)a[4-2][0
             ]
             D)a[0][4](33)設(shè)有以下說(shuō)明語(yǔ)句
             struct stu
             {int a;
             float b;
             } stutype;
             則下面的敘述不正確的是
             A)struct是結(jié)構(gòu)體類型的關(guān)鍵字
             B)struct stu是用戶定義的結(jié)構(gòu)體類型
             C)stutype是用戶定義的結(jié)構(gòu)體類型名
             D)a和b都是結(jié)構(gòu)體成員名
            (34)在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是
             A)整型常量
             B)整型表達(dá)式
             C)整型常量或整型表達(dá)式
             D)任何類型的表達(dá)式
            (35)若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是
             main()
             {int x,y;
             scanf("%d",&x);
             y=x>12?x+10:x-12;
             printf("%d\n",y);
             }
             A)0
             B)22
             C)12
             D)10(
            (36)以下說(shuō)法正確的是
             A)C語(yǔ)言程序總是從第一個(gè)的函數(shù)開(kāi)始執(zhí)行
             B)在C語(yǔ)言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義
             C)C語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行
             D)C語(yǔ)言程序中的main()函數(shù)必須放在程序的開(kāi)始部分
            (37)表達(dá)式0x13^0x17的值是
             A)0x04
             B)0x13
             C)0xE8
             D)0x17
            (38)有以下程序
             #define F(X,Y)(X)*(Y)
             main()
             {int a=3, b=4;
             printf("%d\n", F(a++, b++));
             }
             程序運(yùn)行后的輸出結(jié)果是
             A)12
             B)15
             C)16
             D)20
            (39)下列程序執(zhí)行后的輸出結(jié)果是
             void func(int *a,int b[])
             { b[0]=*a+6; }
             main()
             {int a,b[5];
             a=0; b[0]=3;
             func(&a,b); printf("%d\n",b[0]);
             }
             A)6
             B)7
             C)8
             D)9
            (40)若有下面的程序段:
             char s[]="china";char *p; p=s;
             則下列敘述正確的是
             A)s和p完全相同
             B)數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
             C)s數(shù)組長(zhǎng)度和p所指向的字符串長(zhǎng)度相等
             D)*p與s[0]相等
            (41) 以下程序中函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序
             void sort(int a[],int n)
             {int i,j,t;
             for(i=0;i     for(j=i+1;j     if(a[i] }
             main()
             {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
             sort(&aa[3],5);
             for(i=0;i<10;i++)printf("%d,",aa[i]);
             printf("\n");
             }
             程序運(yùn)行后的輸出結(jié)果是
             A)1,2,3,4,5,6,7,8,9,10,
             B)10,9,8,7,6,5,4,3,2,1,
             C)1,2,3,8,7,6,5,4,9,10,
             D)1,2,10,9,8,7,6,5,4,3,
            (42) 以下程序的運(yùn)行結(jié)果是
             #include "stdio.h"
             main()
             {struct date
             {int year,month,day;}today;
             printf("%d\n",sizeof(struct date));
             }
             A)6
             B)8
             C)10
             D)12
            (43)若有語(yǔ)句int *point,a=4;和 point=&a;下面均代表地址的一組選項(xiàng)是
             A)a,point,*&a
             B)&*a,&a,*point
             C)*&point,*point,&a
             D)&a,&*point,point
            (44)在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單的變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是
             A)地址傳遞
             B)單向值傳遞
             C)由實(shí)參傳形參,再由形參傳實(shí)參
             D)傳遞方式由用戶指定
            (45)已定義以下函數(shù)
             fun(char *p2, char *p1)
             {
             while((*p2=*p1)!='\0'){p1++;p2++;}
             }
             函數(shù)的功能是
             A)將p1所指字符串復(fù)制到p2所指內(nèi)存空間
             B)將p1所指字符串的地址賦給指針p2
             C)對(duì)p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較
             D)檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0'
            (46)若執(zhí)行下述程序時(shí),若從鍵盤(pán)輸入6和8時(shí),結(jié)果為
             main()
             {int a,b,s;
             scanf("%d%d",&a,&b);
             s=a
             if(a     s=b;
             s*=s;
             printf("%d",s);
             }
             A)36
             B)64
             C)48
             D)以上都不對(duì)
            (47)fscanf函數(shù)的正確調(diào)用形式是
             A)fscanf(fp,格式字符串,輸出表列);
             B)fscanf(格式字符串,輸出表列,fp);
             C)fscanf(格式字符串,文件指針,輸出表列);
             D)fscanf(文件指針,格式字符串,輸入表列);
            (48)下列關(guān)于C語(yǔ)言數(shù)據(jù)文件的敘述中正確的是
             A)文件由ASCII碼字符序列組成,C語(yǔ)言只能讀寫(xiě)文本文件
             B)文件由二進(jìn)制數(shù)據(jù)序列組成,C語(yǔ)言只能讀寫(xiě)二進(jìn)制文件
             C)文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
             D)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
            (49)有以下程序
             void ss(char *s,char t)
             {while(*s)
             {if(*s= =t)*s=t-'a'+'A';
             s++;
             }
             }
             main()
             {char str1[100]="abcddfefdbd",c='d';
             ss(str1,c); printf("%s\n",str1);
             }
             程序運(yùn)行后的輸出結(jié)果是
             A)ABCDDEFEDBD
             B)abcDDfefDbD
             C)abcAAfefAbA
             D)Abcddfefdbd
            (50)若以下定義:
             struct link
             {int data;
             struct link *next;
             } a,b,c,*p,*q;
             且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
             指針p指向變量a,q指向變量c。則能夠把c插入到a和b 之間并形成新的鏈表的語(yǔ)句組是:
             A)a.next=c; c.next=b;
             B)p.next=q; q.next=p.next;
             C)p->next=&c; q->next=p->next;
             D)(*p).next=q; (*q).next=&b;
            二、填空題
            (1)算法的基本特征是可行性、確定性、 【1】 和擁有足夠的情報(bào)。
            解析: 算法是指解題方案的準(zhǔn)確而完整的描述。它有4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報(bào)。
            (2)在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為 【2】 。
            解析: 對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。
            (3)在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組 【3】 。
            解析: 將屬性、操作相似的對(duì)象歸為類,也就是說(shuō),類是具有共同屬性、共同方法的對(duì)象的集合。
            (4)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為 【4】 。
            解析: 軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。
            (5)數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和 【5】 3種。
            解析: 數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
            (6)設(shè)y是int型,請(qǐng)寫(xiě)出y為奇數(shù)的關(guān)系表達(dá)式 【6】 。
            答案(y%2)==1
            (7)設(shè)int a=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【7】 。
            解析: 此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請(qǐng)注意前綴++,--和后綴++,--的區(qū)別。
            (8)下列程序的輸出結(jié)果是【8】。
            maim ()
            {char b []="Hello you";
            b[5]=0;
            printf ("%s\n",b);}
            解析: 語(yǔ)句b[5]=0;相當(dāng)于語(yǔ)句b[5]=′\0′,且′\0′為字符串結(jié)束標(biāo)志,輸出時(shí)遇到′\0′就停止輸出。
            (9)當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳遞的是【9】。
            解析: 在函數(shù)中,可以通過(guò)指針變量來(lái)引用調(diào)用函數(shù)中對(duì)應(yīng)的數(shù)組元素,此操作是通過(guò)傳遞數(shù)組的首地址來(lái)實(shí)現(xiàn)。
            (10)以下程序的輸出結(jié)果是【10】。
            int a=1234;
            printf ("%2d\n",a);
            解析: 在%與格式符之間插入一個(gè)整形數(shù)來(lái)指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。
            (11) 用高級(jí)語(yǔ)言編寫(xiě)的程序稱為【11】程序,它可以通過(guò)解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過(guò)編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。
            解析: 用高級(jí)語(yǔ)言編寫(xiě)的程序稱為源程序,源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是通過(guò)解釋程序,對(duì)源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計(jì)算機(jī)可直接執(zhí)行的機(jī)器語(yǔ)言程序,它是一種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。
            (12) 以下程序的輸出結(jié)果是【12】。
            main()
            {int a=0;
            a+=(a=8);
            printf("%d\n",a);}
            解析: 賦值表達(dá)式的值就是所賦值變量的值,本題中a+=8相當(dāng)于a=a+8,對(duì)表達(dá)式逐步進(jìn)行求解:
            a+=(a=8)此時(shí),a的值由于賦值為8,而不是0
            a+=8
            a=a+8
            a=16
             (13)函數(shù) void fun(float *sn, int n)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過(guò)形參指針sn傳回;n通過(guò)形參傳入,n的值大于等于0。請(qǐng)?zhí)羁铡?BR>    void fun( float *sn, int n)
            { float s=0.0, w, f=-1.0;
            int i=0;
            for(i=0; i<=n; i++)
            { f=【13】* f;
            w=f/(2*i+1);
            s+=w; }
            【14】=s;}
            解析: C語(yǔ)言中實(shí)參變量和形參變量的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。
            (14)函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù)且要求m>n。
            例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請(qǐng)?jiān)陬}目的空白處填寫(xiě)適當(dāng)?shù)某绦蛘Z(yǔ)句,將該程序補(bǔ)充完整。
            #include
            #include
            float fun (int m, int n)
            { int i;
            double p=1.0;
            for(i=1;i<=m;i++)【15】;
            for(i=1;i<=n;i++)【16】;
            for(i=1;i<=m-n;i++)p=p/i;
            return p;}
            main ()
            { clrscr();
            printf ("p=%f\n",fun (12,8));}
            解析:本題中,欲求p的值,需要先求m,n,m-n的階乘值,可用循環(huán)語(yǔ)句實(shí)現(xiàn)。
            (15)該程序運(yùn)行的結(jié)果是【17】。
            #include
            #include
            #define M 100
            void fun(int m, int *a, int *n)
            { int i,j=0;
            for(i=1;i<=m;i++)
            if(i%7==0||i%11==0)
            a[j++]=i;
            *n=j;}
            main()
            { int aa[M],n,k;
            clrscr();
            fun(10,aa,&n);
            for(k=0;k    if((k+1)%20==0)printf("\n");
            else printf("%4d",aa[k]);
            printf("\n");}
            解析: 解答本題的關(guān)鍵是要讀懂程序,試題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語(yǔ)言中的“或”的區(qū)別,但在此處,if條件語(yǔ)句中用了“||”運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if()中應(yīng)用“&&”運(yùn)算符。
            當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:7 11 14 21 22 28 33 35 42 44 49。
            (16)下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
            例如,若輸入字符串123412132,輸入字符1,則輸出3,請(qǐng)?zhí)羁铡?BR>    #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個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷;若ss串的當(dāng)前字符等于t串的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符;若比較至字符串的結(jié)尾,則跳出循環(huán);若ss串的字符和c串的字符對(duì)應(yīng)不同,繼續(xù)對(duì)ss串的下一個(gè)字符進(jìn)行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動(dòng),if()的作用是進(jìn)行判斷是否相同,若與c相同則表示又出現(xiàn)一次。
            (17)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?BR>    #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;}
            以下程序段通過(guò)宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請(qǐng)?zhí)羁铡?BR>    float a=5,b=16,c;
            MYSWAP(【20】,a,b);
            解析: 該題考查兩個(gè)知識(shí)點(diǎn):
            (1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來(lái)代表一個(gè)字符串,它的一般形式為#define 標(biāo)識(shí)符 字符串
            (2)在MYSWAP宏定義中,利用中間變量z來(lái)交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過(guò)中間變量即可,所以,此處應(yīng)填c。