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

字號(hào):

一、選擇題
    (1)循環(huán)鏈表的主要優(yōu)點(diǎn)是
    A)不再需要頭指針了
    B)從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表
    C)在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開(kāi)
    D)已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件
    (2)棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是
    A)ABCED B)DCBEA
    C)DBCEA D)CDABE
    (3)n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有
    A)n-1 B)n(n-1)
    C)n D)n+1
    (4)在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率,現(xiàn)在,與程序的效率相比,人們更重視程序的
    A)安全性 B)一致性
    C)可理解性 D)合理性
    (5)模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊的
    A)抽象和信息隱蔽 B)局部化和封裝化
    C)內(nèi)聚性和耦合性 D)激活機(jī)制和控制方法
    (6)軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成
    A)定義、開(kāi)發(fā)、運(yùn)行維護(hù)
    B)設(shè)計(jì)階段、編程階段、測(cè)試階段
    C)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試
    D)需求分析、功能定義、系統(tǒng)設(shè)計(jì)
    (7)在軟件工程中,白箱測(cè)試法可用于測(cè)試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是
    A)路徑的集合 B)循環(huán)的集合
    C)目標(biāo)的集合 D)地址的集合
    (8)在數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程中,文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫(kù)系統(tǒng)具有
    A)特定的數(shù)據(jù)模型 B)數(shù)據(jù)無(wú)冗余
    C)數(shù)據(jù)可共享 D)專(zhuān)門(mén)的數(shù)據(jù)管理軟件
    (9)數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是
    A)概念設(shè)計(jì)和邏輯設(shè)計(jì)
    B)模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)
    C)內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)
    D)結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
    (10)實(shí)體是信息世界中廣泛使用的一個(gè)術(shù)語(yǔ),它用于表示
    A)有生命的事物 B)無(wú)生命的事物
    C)實(shí)際存在的事物 D)一切事物
    (11)以下說(shuō)法錯(cuò)誤的是
    A)一個(gè)算法應(yīng)包含有限個(gè)步驟
    B)在計(jì)算機(jī)上實(shí)現(xiàn)的算法是用來(lái)處理數(shù)據(jù)對(duì)象的
    C)算法中指定的操作,不能通過(guò)已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次后實(shí)現(xiàn)
    D)算法的目的是為了求解
    (12)下列選項(xiàng)中不是結(jié)構(gòu)化程序基本結(jié)構(gòu)的是
    A)順序結(jié)構(gòu)
    B)跳轉(zhuǎn)分支結(jié)構(gòu)
    C)選擇結(jié)構(gòu)
    D)循環(huán)結(jié)構(gòu)
    (13)已知int k,m=1;執(zhí)行語(yǔ)句k=-m++;后,k的值是
    A)-1
    B)0
    C)1
    D)2
    (14)已知int m;float k;正確的語(yǔ)句是
    A)(int k)%m
    B)int(k)%m
    C)int(k%m)
    D)(int)k%m
    (15)下面各選項(xiàng)中,均是C語(yǔ)言標(biāo)識(shí)符的選項(xiàng)組是
    A)33 we auto
    B)_23 me _3ew
    C)_43 3e_ else
    D)ER -DF 32
    (16)已知int k;float m=-3;執(zhí)行語(yǔ)句k=m%2;后,變量k的值是
    A)-1
    B)0
    C)1
    D)語(yǔ)句有錯(cuò)誤
    (17)不能進(jìn)行++和--運(yùn)算的數(shù)據(jù)類(lèi)型為
    A)指針
    B)整型
    C)長(zhǎng)整型
    D)常量
    (18)已知int k=10,m=3,n;則下列語(yǔ)句輸出結(jié)果是
    printf("%d\n",n=(k%m,k/m));
    A)2
    B)3
    C)4
    D)5
    (19)已知int a;float b;所用的scanf調(diào)用語(yǔ)句格式為:
    scanf("a//%d,b=%f",&a,&b);
    為了將數(shù)據(jù)3和25.08分別賦給x和y,正確的輸入應(yīng)當(dāng)是
    A)3,25.08
    B)a=3,b=25.08
    C)a//3,b=25.08
    D)a//3b=25.08
    (20)當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是
    A)m=k=n
    B)(m=k)&&(n=k)
    C)(m=k)||(n=k)
    D)(k=m)&&(n=k)
    (21)下列程序的運(yùn)行結(jié)果是
    #include "stdio.h"
    main()
    { int x=-9,y=5,z=8;
    if(x  if(y<0)z=0;
    else z+=1;
    printf("%d\n",z);}
    A)6
    B)7
    C)8
    D)9
    (22)現(xiàn)有定義int k=1;則執(zhí)行語(yǔ)句while(++k<4);后,k的值為
    A)4
    B)5
    C)6
    D)8
    (23)以下程序的運(yùn)行結(jié)果為
    #include "stdio.h"
    main()
    {int m,n;
    for(m=0,n=10;m  printf("%d,%d\n",m,n);}
    A)6,7
    B)7,6
    C)9,7
    D)7,9
    (24)閱讀下列程序,程序的輸出結(jié)果是
    #include "stdio.h"
    main()
    {
     int m,n;
     float k;
    for(m=6;m>2;m--)
     { k=0;
    for(n=m;n>1;n--)
    k=k+m*n;
     }
    printf("%f\n",k);
    }
    A)5.000000
    B)15.000000
    C)25.000000
    D)35.000000
    (25)下列程序的輸出結(jié)果是
    #include "stdio.h"
    main()
    {int i,a=0,b=0;
    for(i=1;i<10;i++)
    {if(i%2==0)
    {a++;
    continue;}
    b++;}
    printf("a=%d,b=%d",a,b);}
    A)a=4,b=4
    B)a=4,b=5
    C)a=5,b=4
    D)a=5,b=5
    (26)下列選項(xiàng)可以正確表示字符型常量的是
    A)′\r′
    B)"a"
    C)"\897"
    D)296
    (27)下面對(duì)C語(yǔ)言的描述中,正確的是
    A)函數(shù)一定有返回值,否則無(wú)法使用函數(shù)
    B)C語(yǔ)言函數(shù)既可以嵌套定義又可以遞歸調(diào)用
    C)在C語(yǔ)言中,調(diào)用函數(shù)時(shí),只能將實(shí)參的值傳遞給形參
    D)C語(yǔ)言程序中有調(diào)用關(guān)系的所有函數(shù)都必須放在同一源程序文件中
    (28)閱讀下面程序段,則執(zhí)行后的結(jié)果為
    #include "stdio.h"
    main()
    {int m=4,n=2,k;
    k=fun(m,n);
    printf("%d\n",k);}
    fun(int m,int n)
    {return(m*m*m-n*n*n);}
    A)64
    B)8
    C)56
    D)0
    (29)閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是
    #include "stdio.h"
    main()
    { char fun(char,int);
     char a=′A′;
     int b=13;
     a=fun(a,b);
     putchar(a);}
    char fun(char a,int b)
    {char k;
     k=a+b;
     return k;}
    A)A
    B)M
    C)N
    D)L
    (30)編寫(xiě)求兩個(gè)雙精度數(shù)之和的函數(shù),選項(xiàng)中正確的是
    A)double add(double a,double b)
    {double s;
     s=a+b;
     return s; }
    B)double add(double a,b)
    {double s;
     s=a+b;
     return (s);}
    C)double add(double a double b)
    {double s;
    s=a+b;
    returns;}
    D)double add(a,b)
     {double a,b,s;
    s=a+b;
    return (s);}
    (31)已知int a;則下面的說(shuō)明指針變量p的語(yǔ)句正確的是
    A)int p=&a
    B)int *p=a
    C)int *p=&a
    D)int *p=*a
    (32)已知char **t;則變量t是
    A)指向char變量的指針
    B)指向指針的char變量
    C)指向指針的指針
    D)以上說(shuō)法都不對(duì)
    (33)閱讀下面程序,執(zhí)行后的結(jié)果為
    #include "stdio.h"
    void fun(int *a,int *b)
    { int k;
     k=5;
     *a=k;
     *b=*a+k;}
    main()
    { int *a,*b,x=10,y=15;
    a=&x;
    b=&y;
    fun(a,b);
    printf("%d,%d\n",*a,*b);}
    A)10,15
    B)5,15
    C)5,10
    D)15,10
    (34)閱讀下面程序,在程序執(zhí)行后的結(jié)果為
    #include "stdio.h"
    int *fun(int *a,int *b)
    { int m;
    m=*a;
    m+=*b-3;
    return(&m);}
    main()
    {int x=21,y=35,*a=&x,*b=&y;
    int *k;
    k=fun(a,b);
    printf("%d\n",*k);}
    A)53
    B)21
    C)35
    D)14
    (35)已知int a[10];則對(duì)a數(shù)組元素的正確引用是
    A)a[10]
    B)a
    C)a+5
    D)a[10-10]
    (36)在C語(yǔ)言中,一維數(shù)組的定義方法為
    類(lèi)型說(shuō)明符 數(shù)組名
    A)[常量表達(dá)式]
    B)[整型常量]
    C)[整型變量]
    D)[整型常量]或[整型表達(dá)式]
    (37)閱讀下列程序,則運(yùn)行結(jié)果為
    #include "stdio.h"
    fun()
    { static int x=5;
     x++;
     return x;}
    main()
    { int i,x;
     for(i=0;i<3;i++)
     x=fun();
     printf("%d\n",x);}
    A)5
    B)6
    C)7
    D)8
    (38)下列程序的輸出結(jié)果是
    #include "stdio.h"
    #defineM(x,y)x%y
    main()
    { int a,m=12,n=100;
    a=M(n,m);
    printf("%d\n",a--);}
    A)2
    B)3
    C)4
    D)5
    (39)閱讀下面程序,則程序段的功能是
    #include "stdio.h"
    main()
    { int c[]={23,1,56,234,7,0,34},i,j,t;
    for(i=1;i<7;i++)
    { t=c[i];j=i-1;
    while(j>=0 && t>c[j])
    {c[j+1]=c[j];j--;}
    c[j+1]=t;}
    for(i=0;i<7;i++)
    printf("%d ",c[i]);
    putchar(′\n′);}
    A)對(duì)數(shù)組元素的升序排列
    B)對(duì)數(shù)組元素的降序排列
    C)對(duì)數(shù)組元素的倒序排列
    D)對(duì)數(shù)組元素的隨機(jī)排列
    (40)閱讀下列程序,則執(zhí)行后的結(jié)果為
    #include "stdio.h"
    main()
    { int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
    printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
    A)3e,6
    B)62,5
    C)56,5
    D)3E,6
    (41)下列選項(xiàng)中錯(cuò)誤的說(shuō)明語(yǔ)句是
    A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′};
    B)char a[]={"toyou\0"};
    C)char a[]="toyou\0";
    D)char a[]=′toyou\0′;
    (42)下述對(duì)C語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的是
    A)字符數(shù)組的下標(biāo)從0開(kāi)始
    B)字符數(shù)組中的字符串可以進(jìn)行整體輸入/輸出
    C)可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值
    D)字符數(shù)組可以存放字符串
    (43)閱讀下列程序,則在執(zhí)行后,程序的運(yùn)行結(jié)果為
    #include "stdio.h"
    #include "string.h"
    main()
    {char a[30]="nice to meet you!";
    strcpy(a+strlen(a)/2,"you");
    printf("%s\n",a);}
    A)nice to meet you you
    B)nice to
    C)meet you you
    D)nice to you
    (44)閱讀下面程序,則執(zhí)行后的結(jié)果是
    #include "stdio.h"
    main()
    {char str[]="tomeetme",*p;
    for(p=str;p  printf("\n");}
    A)tomeetme
    B)tmem
    C)oete
    D)tome
    (45)下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)如下:t to meet me<回車(chē)>
    則程序輸出的結(jié)果是
    #include "stdio.h"
    main(argc,argv)
    int argc;char *argv[];
    {int i;
    printf("%d\n",argc);}
    A)3
    B)4
    C)2
    D)以上答案都不正確
    (46)閱讀下面程序,則執(zhí)行后的結(jié)果為
    #include "stdio.h"
    long fun(int n)
    {if(n>2)
    return(fun(n-1)+fun(n-2));
    else return(2);}
    main()
    {printf("%ld\n",fun(5));}
    A)10
    B)15
    C)20
    D)以上3個(gè)答案都不正確
    (47)已知如下定義,則sizeof(a)的值是
    struct{int i;
    char c;
    double a; } a;
    A)8
    B)9
    C)10
    D)11
    (48)已知函數(shù)的原形如下,其中結(jié)構(gòu)體a為已經(jīng)定義過(guò)的結(jié)構(gòu),且有下列變量定義
    struct a *f(int t1,int *t2,strcut a t3,struct a *t4)
    struct a p,*p1;int i;
    則正確的函數(shù)調(diào)用語(yǔ)句為
    A)&p=f(10,&i,p,p1);
    B)p1=f(i++,(int *)p1,p,&p);
    C)p=f(i+1,&(i+2),*p,p);
    D)f(i+1,&i,p,p);
    (49)下面程序段的輸出為
    #include "stdio.h"
    main()
    { printf("%d\n",12<<2);}
    A)0
    B)47
    C)48
    D)24
    (50)假定當(dāng)前盤(pán)符下有兩個(gè)文本文件,如下
    文件名 a1.txt a2.txt
    內(nèi)容 123# 321#
    則下面程序段執(zhí)行后的結(jié)果為
    #include "stdio.h"
    void fc(FILE *p)
    { char c;
     while((c=fgetc(p))!=′#′)putchar(c);}
    main()
    { FILE *fp;
    fp=fopen("a1.txt","r");
    fc(fp);
    fclose(fp);
    fp=fopen("a2.txt","r");
    fc(fp);
    fclose(fp);
    putchar(′\n′);}
    A)123321
    B)123
    C)321
    D)以上答案都不正確 二、填空題
    (1)常用的黑箱測(cè)試有等價(jià)分類(lèi)法、 【1】 、因果圖法和錯(cuò)誤推測(cè)法4種。
    解析: 黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)分類(lèi)法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法4種。
    (2)測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而 【2】 的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
    解析: 軟件測(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定;調(diào)試也稱(chēng)排錯(cuò),它是一個(gè)與測(cè)試有聯(lián)系又有區(qū)別的概念。具體來(lái)說(shuō),測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤。
    (3)軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、 【3】 維護(hù)和預(yù)防性維護(hù)。
    解析: 軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。改正性維護(hù)是指在軟件交付使用后,為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過(guò)程;適應(yīng)性維護(hù)是指為了使軟件適應(yīng)變化,而去修改軟件的過(guò)程;完善性維護(hù)是指為了滿(mǎn)足用戶(hù)對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性;預(yù)防性維護(hù)是為了提高軟件的可維護(hù)性、可靠性等,為以后的進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。
    (4)在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱(chēng)為【4】 。
    解析: 在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(lèi)(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。
    (5)關(guān)鍵字ASC和DESC分別表示 【5】 的含義。
    解析: ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語(yǔ)句中的ORDER子句中。
    (6)定義int a=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為 【6】 。
    【命題目的】考查對(duì)于基本運(yùn)算符的掌握情況。
    【解題要點(diǎn)】++和--做前綴使用的時(shí)候,先對(duì)變量進(jìn)行增1或減1,之后進(jìn)行其他的運(yùn)算。
    【考點(diǎn)鏈接】賦值運(yùn)算符的優(yōu)先級(jí)僅僅高于逗號(hào)運(yùn)算符。
    (7)以下程序的輸出結(jié)果是 【7】 。
    #include "stdio.h"
    main()
    {int a=065;
     printf("%d\n",--a);
    }
    【命題目的】考查對(duì)于數(shù)據(jù)的格式化輸出的掌握情況。
    【解題要點(diǎn)】八進(jìn)制的65轉(zhuǎn)換為十進(jìn)制的53之后減1輸出。
    【考點(diǎn)鏈接】0開(kāi)頭的是八進(jìn)制整數(shù)。
    (8)閱讀下面程序,則執(zhí)行后的輸出結(jié)果是 【8】 。
    #include "stdio.h"
    main()
    {int x,y,z;
    x=1;y=2;z=3;
    if(x>y)if(x>z)printf("%d",x);
    else printf("%d",y);
    printf("%d\n",z);
    }
    【命題目的】考查對(duì)于if語(yǔ)句的掌握情況。
    【解題要點(diǎn)】C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf("%d\n",z);語(yǔ)句。
    (9)如下語(yǔ)句printf("%c\n",′B′+40);在執(zhí)行后的輸出結(jié)果是 【9】 。
    【命題目的】考查對(duì)于字符常量運(yùn)算的掌握情況。
    【解題要點(diǎn)】在C程序中的字符量可參與任何整數(shù)運(yùn)算。
    【考點(diǎn)鏈接】%c是以字符的形式輸出。
    (10)閱讀下面程序,則程序的執(zhí)行結(jié)果為 【10】 。
    #include "stdio.h"
    main()
    {int a=30,b=20,z;
    z=fun(a+b,a-b);
    printf("%d\n",z);
    }
    fun(int a,int b)
    {int z;
    z=a/b;
    return z;
    }
    【命題目的】考查對(duì)于函數(shù)的調(diào)用和返回值的掌握情況。
    【解題要點(diǎn)】函數(shù)調(diào)用的時(shí)候,函數(shù)名字必須與所調(diào)用的函數(shù)名完全一致,形參與實(shí)參類(lèi)型要一致,在沒(méi)有給出函數(shù)返回值類(lèi)型的情況下,默認(rèn)為整形,當(dāng)返回值為整型的函數(shù)放到主函數(shù)后面時(shí),可以不需要事先說(shuō)明就調(diào)用這個(gè)函數(shù)。
    【考點(diǎn)鏈接】retrun既可以返回一個(gè)普通常量,也可以返回一個(gè)指針變量。
    (11)下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個(gè)數(shù)中,求出的和最小的數(shù)據(jù),請(qǐng)?zhí)羁铡?BR>    fun(int *p,int n)
    {int *q;
     int max,min;
     max=min=*p;
     for(q=p; 【11】 ;q++)
     if( 【12】 )max=*q;
     else if( 【13】 )min=*q;
    }
    【命題目的】考查對(duì)于函數(shù)的地址傳遞的掌握情況。
    【解題要點(diǎn)】通過(guò)地址傳遞可以在被調(diào)函數(shù)中對(duì)調(diào)用函數(shù)中的變量進(jìn)行引用。
    (12)下面的函數(shù)fun的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位放在一維數(shù)組中返回,二進(jìn)制的最低位放在下標(biāo)為0的元素中,其他依次類(lèi)推,請(qǐng)?zhí)羁铡?BR>     fun(int x,int b[])
    { int k=0,r;
    do{
     r=x% 【14】 ;
     b[ 【15】 ]=r;
     x/= 【16】 ;
    }while(x);
    }
    【命題目的】考查對(duì)于數(shù)組操作的綜合運(yùn)用。
    【解題要點(diǎn)】深刻理解十進(jìn)制轉(zhuǎn)化為二進(jìn)制的方法,即取余法;數(shù)組名作為實(shí)參,在函數(shù)內(nèi)部可以直接修改調(diào)用函數(shù)中定義的數(shù)組的值。
    【考點(diǎn)鏈接】do…while循環(huán),先執(zhí)行循環(huán)體,后判斷循環(huán)條件。
    (13)下面函數(shù)的功能是將一個(gè)字符串的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?BR>    void fun(char str[])
    {int i,j, 【17】 ;
     for(i=0,j= 【18】 ;i { k=str[i];
    str[i]=str[j];
    str[j]=k;
    }
    }
    (14)閱讀下面程序,則程序的執(zhí)行結(jié)果為【19】。
    #include "stdio.h"
    fun(int k,int *p)
    { int a,b;
    if(k==1||k==2)
     *p=1;
    else{ fun(k-1,&a);
    fun(k-2,&b);
    *p=a+b;
     }
    }
    main()
    { int x;
     fun(6,&x);
     printf("%d\n",x);
    }
    (14)閱讀下面程序,則程序的執(zhí)行結(jié)果為【19】。
    #include "stdio.h"
    fun(int k,int *p)
    { int a,b;
    if(k==1||k==2)
     *p=1;
    else{ fun(k-1,&a);
    fun(k-2,&b);
    *p=a+b;
     }
    }
    main()
    { int x;
     fun(6,&x);
     printf("%d\n",x);
    }
    (15)閱讀下列程序,則程序的輸出結(jié)果為【20】。
    #include "stdio.h"
    struct ty
    {int data;
     char c;
    };
    main()
    { struct ty a={30,′x′};
     fun(a);
     printf("%d%c",a.data,a.c);
    }
    fun(struct ty b)
    { b.data=20;
    b.c=′y′;
    }
    【命題目的】考查對(duì)于結(jié)構(gòu)體的掌握情況。
    【解題要點(diǎn)】本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。