2007年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試試題及答案

字號(hào):

為大家收集整理了《2007年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)C語言筆試試題及答案》供大家參考,希望對(duì)大家有所幫助?。。?BR>    一、選擇題((1)—(10)每小題2分,(11)—(50)每題1分,共60分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)下列敘述中正確的是(B)
    A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)
    B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
    C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
    D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
    (2)在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是(D)
    A)各模塊應(yīng)包括盡量多的功能
    B)各模塊的規(guī)模應(yīng)盡量大
    C)各模塊之間的聯(lián)系應(yīng)盡量緊密
    D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度
    (3)下列敘述中正確的是(A)
    A)軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤
    B)軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置
    C)為了提高軟件測(cè)試的效率,由程序編制者自己來完成軟件測(cè)試的工作
    D)軟件測(cè)試是證明軟件沒有錯(cuò)誤
    (4)下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是(C)
    A)繼承性
    B)多態(tài)性
    C)類比性
    D)封裝性
    (5)下列對(duì)隊(duì)列的敘述正確的是(D)
    A)隊(duì)列屬于非線性表
    B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)
    C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)
    D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
    (6)對(duì)下列二叉樹
     A
       
     B C
    D E F X
     Y Z
    進(jìn)行前序遍歷的結(jié)果為(C)
    A) DYBEAFCZX
    B) YDEBFZXCA
    C) ABDYECFXZ
    D) ABCDEFXYZ
    (7) 某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為(A)
    A) n+1
    B) n-1
    C) 2n
    D) n/2
    (8) 在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是(B)
    A) 并
    B)交
    C)投影
    D)笛卡兒乘積
    (9)在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是(C)
    A) 矩形
    B)橢圓形
    C)菱形
    D)平行四邊形
    (10)下列敘述中錯(cuò)誤的是(A)
    A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
    B) 數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
    C) 數(shù)據(jù)庫設(shè)計(jì)是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
    D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
    (11)算法中,對(duì)需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定,這屬于算法的(C)
    A)正當(dāng)性
    B)可行性
    C)確定性
    D)有窮性
    (12)下列敘述中錯(cuò)誤的是(D)
    A)計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序
    B)C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
    C)后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
    D)后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
    (13)按照C語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是(B)
    A)大寫字母
    B)連接符
    C)數(shù)字字符
    D)下劃線
    (14)以下敘述中錯(cuò)誤的是(C)
    A)C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言
    B)結(jié)構(gòu)化程序有順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
    C)使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題
    D)結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
    (15)對(duì)于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是(A)
       A)程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
       B)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
       C)程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
       D)程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
    (16)設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)(D)
    A)10□X□20□Y〈回車〉
    B)10□X20□Y〈回車〉
    C)10□X〈回車〉
    D)10X〈回車〉
     20□Y〈回車〉 20Y〈回車〉
    (17)若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是(C)
    A)sqrt(abs(n^x+e^x))
    B) sqrt(fabs(pow(n,x)+pow(x,e)))
    C)sqrt(fabs(pow(n,x)+exp(x)))
    D) sqrt(fabs(pow(x,n)+exp(x)))
    (18)設(shè)有定義:int k=0;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是(A)
    A)k++
    B)k+=1
    C)++k
    D)k+1
    (19)有以下程序,其中%u表示按無符號(hào)整數(shù)輸出(B)
    main()
    {unsigned int x=0xFFFF; /* x的初值為十六進(jìn)制數(shù) */
     printf(“%u\n”,x);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)-1
    B)65535
    C)32767
    D)0xFFFF
    (20)設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是(C)
    A)if(x++);
    B)if(x>y&&y!=0);
    C)if(x>y) x- -
    D)if(y<0) {;}
       else y++; else x++;
    (21)以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式(D)
    A)x%2==1
    B)x/2
    C)x%2!=0
    D)x%2==0
    (22)以下敘述中正確的是(C)
    A)break語句只能用于switch語句體中
    B)continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
    C)break 語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
    D)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
    (23)有以下程序(A)
    main()
    {int k=5,n=0;
       do
       {switch(k)
       {case1: case3:n+=1; break;
    default;n=0;k--;
    case2: case4:n+=2;k--;break;
    }
    printf(“%d”,n);
    }while(k>0&&n<5);
    }
    程序運(yùn)行后的輸出結(jié)果是
    A)235
    B)0235
    C)02356
    D)2356
    (24)有以下程序
    mian()
    {int i,j;
     for(i=1;i<4;i++)
    {for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);
    printf(“\n”);
    }
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A) 1*1=1 1*2=2 1*3=3 B) 1*1=1 1*2=2 1*3=3
    2*1=2 2*2=4 2*2=4 2*3=6
    3*1=3 3*3=9
    C) 1*1=1 D) 1*1=1
     1*2=2 2*2=4 2*1=2 2*2=4
     1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9
    (25)以下合法的字符型常量是(A)
    A)”\x13”
    B)”\018”
    C)”65”
    D)”\n”
    (26)在C語言中,函數(shù)返回值的類型最終取決于(A)
    A)函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型
    B)return語句中表達(dá)式值的類型
    C)調(diào)用函數(shù)時(shí)主函數(shù)所傳遞的實(shí)參類型
    D)函數(shù)定義時(shí)形參的類型
    (27)已知大寫字母A的ASCII碼是65,小寫字母aASCII碼是97,以下不能將變量c中大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是(D)
    A)c=(c-A)&+’a’
    B)c=c+32
    C)c=c-‘A’+’a’
    D)c=(‘A’+c)&-‘a(chǎn)’
       (28)有以下函數(shù)
     int fun(char *s)
     {char *t=s;
     while(*t++);
     return(t-s);
    }
    該函數(shù)的功能是(B)
    A)比較兩個(gè)字符的大小
    B)計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
    C)計(jì)算s所指字符串的長度
    D)將s所指字符串復(fù)制到字符串t中
    (29)設(shè)已有定義:float x;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是(D)
    A)float *p=1024;
    B)int *p=(float x);
    C)float p=&x;
    D)float *P=&x;
    (30)有以下程序
     #include
     main()
     {int n,*p=NULL;
    *p=&n;
    printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p);
    }
    該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是(A)
    A)int n,*p=NULL;
    B)*p=&n;
    C)scanf(“%d”,&p)
    D)printf(“%d\n”,p);
    (31)以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行有由小到大排序;當(dāng)flag為0時(shí),進(jìn)行由大到小排序。
       void f(int b[],int n,int flag)
       {int i,j,t;
    for(i=0;i
     for (j=i+1;j
     if(flag?b[i]>b[j]:b[i]
    }
    main()
    {int a[10]={5,4,3,2,1,6,7,8,9,10},i;
     f(&a[2],5,0); f(a,5,1);
     for(i=0;i<10;i++) printf(“%d,”a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)1,2,3,4,5,6,7,8,9,10,
    B)3,4,5,6,7,2,1,8,9,10,
    C)5,4,3,2,1,6,7,8,9,10,
    D)10,9,8,7,6,5,4,3,2,1,
    (32)有以下程序
    void f(int b[])
    {int i;
     for(i=2;i<6;i++) b[i]*=2;
    }
     main()
    {int a[10]={1,2,3,4,5,6,7,8,9,10},i;
    f(a);
    for(i=0;i<10;i++) printf(“%d,”,a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)1,2,3,4,5,6,7,8,9,10,
    B)1,2,6,8,10,12,7,8,9,10
    C)1,2,3,4,10,12,14,16,9,10,
    D)1,2,6,8,10,12,14,16,9,10,
    (33)有以下程序
        typedef struct{int b,p;}A;
        void f(A c) /*注意:c是結(jié)構(gòu)變量名 */
       {int j;
    c.b+=1; c.p+=2;
    }
    main()
    {int i;
    A a={1,2};
    f(a);
    printf(“%d,%d\n”,a.b,a.p);
    }
    程序運(yùn)行后的輸出結(jié)果是(D)
     A)2,3
    B)2,4
    C)1,4
    D)1,2
    (34)有以下程序
    main()
    {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;
    for(i=0;i<4;i++)
     for(j=0;j<3;j++)
     for(k=j+1;k<4;k++)
     if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
     for(i=0;i<4;i++)printf(“%d,”,a[i][j]);
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A)1,6,5,7,
    B)8,7,3,1,
    C)4,7,5,2,
    D)1,6,2,1,
    (35) 有以下程序
    main()
    {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;
    for(i=0;i<3;i++)
     for(k=i+i;k<4;k++) if(a[i][i]
    for(i=0;i<4;i++)printf(“%d,”,a[0][i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)6,2,1,1,
    B)6,4,3,2,
    C)1,1,2,6,
    D)2,3,4,6,
    (36) 有以下程序
    void f(int *q)
    {int i=0;
    for( ; i<5;i++)(*q)++;
    }
    main()
    {int a[5]={1,2,3,4,5},i;
    f(a);
    for(i=0;i<5;i++)printf(“%d,”,a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)2,2,3,4,5,
    B)6,2,3,4,5,
    C)1,2,3,4,5,
    D) 2,3,4,5,6,
    (37) 有以下程序
    #include
    main()
    {char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”;
    strcpy(p+strlen(q),r); strcat(p,q);
    printf(“%d%d\n”,sizeof(p),strlen(p));
    }
    程序運(yùn)行后的輸出結(jié)果是(C)
    A)20 9
    B)9 9
    C)20 11
    D)11 11
    (38) 有以下程序
       #include
    main()
    {char p[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=”abc”, r[]=”abcde”
    strcat(p,r); Strcpy(p+strlen(q),q);
    Printf(“%d \n”,sizeof(p));
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)9
    B)6
    C)11
    D)7
    (39) 有以下程序
    #include
    main()
    void f(char p[][10], int n ) /* 字符串從小到大排序 */
    { char t[10]; int i,j;
     for(i=0;i
     for(j=i+1;j
     if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }
    }
    main()
     {char p[5][10]={“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”};
    f(p,5);
     printf(“%d\n”,strlen(p[0]));
    }
    程序運(yùn)行后的輸出結(jié)果是(C)
    A) 2
    B) 4
    C) 6
    D) 3
    (40) 有以下程序
    void f(int n, int *r)
    {int r1=0;
       if(n%3==0) r1=n/3;
    else if(n%5==0) r1=n/5;
    else f(--n,&r1);
    *r=r1;
    }
    main()
    {int m=7,r;
       f(m,&r); printf(“%d\n,r”);
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A) 2
    B) 1
    C)3
    D) 0
    (41)有以下程序
        main(int argc,char *argv[])
        {int n=0,i;
    for(i=1;i n=n*10+*argv[i]-‘0’;
    printf(“%d\n”,n);
    }
    編譯連接后生成可執(zhí)行文件tt.exe,若運(yùn)行時(shí)輸入以下命令行
    tt 12 345 678
    程序運(yùn)行后的輸出結(jié)果是(D)
    A) 12
    B) 12345
    C)12345678
    D) 136
    (42) 有以下程序
    int a=4;
    int f(int n)
    {int t=0; static int a=5;
     if(n%2) {int a=6; t+=a++;}
    else {int a=7 ;t+=a++;}
    return t+a++;
    }
    main()
    {int s=a,i=0;
    for(;i〈2;i++) s+=f(i);
    printf (“%d\n”,s);
    }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)24
    B)28
    C)32
    D)36
    (43) 有一個(gè)名為init.txt的文件,內(nèi)容如下:
    #define HDY(A,B) A/B
    # define PRINT(Y) Printf(“y=%d\n.,Y)
    有以下程序
    #include “init.txt”
    main()
    {int a=1,b=2,c=3,d=4,k;
    K=HDY(a+c,b+d);
    PRINT(K);
    }
    下面針對(duì)該程序的敘述正確的是(D)
    A)編譯有錯(cuò)
    B)運(yùn)行出錯(cuò)
    C)運(yùn)行結(jié)果為 y=0
    D) 運(yùn)行結(jié)果為 y=6
    (44) 有以下程序
    main()
    {char ch[]=“uvwxyz”,*pc;
       Pc=ch; printf(“%c\n”,*(pc+5));
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A)z
    B)0
    C)元素ch[5]的地址
    D)字符y的地址
    (45) 有以下程序
    struct S {int n; int a[20];};
    void f(struct S *P)
    {int i,j,t;
    for(i=0;in-1;i++)
    for(j=i+1;jn;j++)
    if(p->a[i]>p->a[j]) { t=p->a[i]; p->a[i]=p->a[j]; p->a[j]=t; }
    }
    main()
    {int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
    f(&s);
    for(i=0;i printf(“%d”,s.a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A)1,2,3,4,5,6,7,8,9,10,
    B)10,9,8,7,6,5,4,3,2,1,
    C)2,3,1,6,8,7,5,4,10,9,
    D)10,9,8,7,6,1,2,3,4,5,
    (46) 有以下程序
    struct S{ int n; int a[20]; };
    void f(int *a,int n)
    {int i;
     for(i=0;i a[i]+=i;
    }
    main()
    {int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
    f(s.a, s.n);
    for(i=0;i printf(“%d”,s.a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A)2,4,3,9,12,12,11,11,18,9,
    B)3,4,2,7,9,8,6,5,11,10,
    C)2,3,1,6,8,7,5,4,10,9,
    D)1,2,3,6,8,7,5,4,10,9,
    (47) 有以下程序段
    typedef struct node { int data; struct node *next; } *NODE;
    NODE p;
    以下敘述正確的是(C)
    A)p是指向struct node結(jié)構(gòu)變量的指針的指針
    B)NODE p;語句出錯(cuò)
    C)p是指向struct node結(jié)構(gòu)變量的指針
    D)p是struct node結(jié)構(gòu)變量
    (48)有以下程序
    main()
    {unsigned char a=2,b=4,c=5,d;
       d=a|b; d&=c; printf(“%d\n”,d); }
    程序運(yùn)行后的輸出結(jié)果是(B)
    A)3
    B)4
    C)5
    D)6
    (49)有以下程序
    #include
    main()
    {FILE *fp; int k,n,a[6]={1,2,3,4,5,6};
    fp=fopen(“d2.dat”,”w”);
    fprintf(fp,”%d%d\n”,a[0],a[1],a[2]); fprintf(fp, “%d%d%d \n”,a[3],a[4],a[5]);
    fclose(fp);
    fp=fopen(“d2.dat”,”r”);
    fscanf(fp, “%d%d”,&k,&n); printf(“%d%d\n”,k,n);
    fclose(fp);
    }
    程序運(yùn)行后的輸出結(jié)果是(D)
    A)1 2
    B)1 4
    C)123 4
    D) 123 456
    (50)有以下程序
    #include
    main ()
    {FILE *fp; int i,a[6]={1,2,3,4,5,6k};
    fp=fopen(“d3.dat”,”w+b”);
    fwrite(a,sizeof(int),6,fp);
    fseek(fp,sizeof(int)*3,SEEK_SET);/*該語句使讀文件的位置指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù)*/
    fread(a,sizeof(int),3,fp); fclose(fp);
    for(i=0;i<6;i++) printf(“%d,”,a[i]);
    }
    程序運(yùn)行后的輸出結(jié)果是(A)
    A)4,5,6,4,5,6,
    B)1,2,3,4,5,6,
    C)4,5,6,1,2,3,
    D)6,5,4,3,2,1,
    二.填空題(每空2分,共40分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
    (1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
    (2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
    (3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
    (4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
    (5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
    二.填空題(每空2分,共40分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]至[20]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須寫完整.
    (1) 在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為___63____。
    (2) 軟件測(cè)試分為白箱(盒)測(cè)試和黑箱(盒)測(cè)試,等價(jià)類劃分法屬于__黑箱(或黑盒) 測(cè)試。
    (3) 在數(shù)據(jù)庫系統(tǒng)中,實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 __數(shù)據(jù)庫管理系統(tǒng)__。
    (4) 軟件生命周期可分為多個(gè)階段,一般分為定義階段、開發(fā)階段和維護(hù)階段。編碼和測(cè)試屬于 開發(fā)_____階段。
    (5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用數(shù)據(jù)字典 對(duì)其中的圖形元素進(jìn)行確切解釋。
    (11)已定義char ch=”$”;int i=1,j;執(zhí)行j=!ch&&i++以后,i的值為1
    (12)以下程序的輸出結(jié)果是 5 4
    # include
    main()
    { char a[]={‘\1’,’\2’,’\3’,’\4’,’\0’};
    printf(“%d %d\n”,sizeof(a),srelen(a));
    }
    (13)設(shè)有定義語句:int a[][3]={{0},{1},{2}};,則數(shù)組元素a[1][2]的值為 0
    (14)以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?BR>    main()
    {int x[10],a[9],I;
    for (i=0;i<10;i++)
    scanf(“%d”,&x[i]);
    for( i=1 ;i<10;i++)
    a[i-1]=x[i]+ x[i-1] ;
    for(i=0;i<9;i++)
    printf(“%d”,a[i]);
    printf(“\n”);
    (15) 以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的值,輸出到屏幕上,請(qǐng)?zhí)羁眨?BR>    main()
    {int x,y,z,max,*px,*py,*pz,*pmax;
    scanf(“%d%d%d”,&x,&y,&z);
    px=&x;
    py=&y;
    pz=&z;
    pmax=&max;
     *pmax=*px(或*pmax=x) ;
    if(*pmax<*py)*pmax=*py;
    if(*pmax<*pz)*pmax=*pz;
    printf(“max=%d\n”,max);
    }
    (16)以下程序的輸出結(jié)果是 10
    int fun(int*x,int n)
    {if(n==0)
    return x[0];
    else return x[0]+fun(x+1,n-1);
    }
    main()
    {int a[]={1,2,3,4,5,6,7};
    printf(“%d\n”,fun(a,3));
    }
    (17)以下程序的輸出結(jié)果是 35
    # include
    main()
    {char *s1,*s2,m;
    s1=s2=(char*)malloc(sizeof(char));
    *s1=15;
    *s2=20;
    m=*s1+*s2;
    printf(“%d\n”,m);
    }
    (18)設(shè)有說明
    struct DATE{int year;int month; int day;};
    請(qǐng)寫出一條定義語句,該語句定義d為上述結(jié)構(gòu)體變量,并同時(shí)為其成員year、month、day 依次賦初值2006、10、1: struct DATA d={2006,10,1};
    (19) 設(shè)有定義:FILE *fw;,請(qǐng)將以下打開文件的語句補(bǔ)充完整,以便可以向文本文件readme.txt的最后續(xù)寫內(nèi)容。
    fw=fopen(“readme.txt”, "a" )
    一、選擇題:
    1-5 24134
    6-10 31321
    11-15 34231
    16-20 43113
    21-25 43421
    26-30 14241
    31-35 22412
    36-40 23232
    41-45 42411
    46-50 13241
    二、填空題:
    1. 63
    2,墨盒
    3.DBNS
    4,開發(fā)
    5,數(shù)據(jù) 字典
    6,a-14
    7,0
    8,無答案
    9,# 與號(hào)
    10,9
    11,1
    12,5_4
    13,13 0
    14,i=1
    15,X[i-1]
    16,無答案
    17,10
    18,40
    19,無答案
    20,"20a"