中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      計(jì)算機(jī)二級考試C語言模擬題及答案

      時(shí)間:2024-09-20 10:21:41 煒玲 計(jì)算機(jī)等級 我要投稿
      • 相關(guān)推薦

      2025計(jì)算機(jī)二級考試C語言模擬題及答案

        現(xiàn)如今,我們很多時(shí)候都會有考試,接觸到試題,試題是學(xué)校或各主辦方考核某種知識才能的標(biāo)準(zhǔn)。一份好的試題都是什么樣子的呢?下面是小編幫大家整理的2025計(jì)算機(jī)二級考試C語言模擬題及答案,歡迎閱讀與收藏。

      2025計(jì)算機(jī)二級考試C語言模擬題及答案

        計(jì)算機(jī)二級考試C語言模擬題及答案 1

        一、選擇題(每小題1分,共40小題,共40分)

        1.算法的空間復(fù)雜度是指( )。

        A.算法程序的長度

        B.算法程序中=的指令條數(shù)

        C.算法程序所占的存儲空間

        D.算法執(zhí)行過程中所需要的存儲空間

        2.下列敘述中正確的是( )。

        A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

        B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

        C.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

        D.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

        3.簡單的交換排序方法是( )。

        A.快速排序

        B.選擇排序

        C.堆排序

        D.冒泡排序

        4.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是( )。

        A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

        B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

        C.不允許使用GOT0語句

        D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

        5.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和( )。

        A.可重用性差

        B.安全性差

        C.非持久性

        D.冗余性

        6.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是( )。

        A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

        B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

        C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

        D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念

        7.對如下二叉樹進(jìn)行后序遍歷的結(jié)果為( )。

        A.ABCDEF

        B.DBEAFC

        C.ABDECF

        D.DEBFCA

        8.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指( )。

        A.模塊間的關(guān)系

        B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述

        C.軟件層次結(jié)構(gòu)

        D.軟件開發(fā)過程

        9.兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為( )。

        A.耦合度

        B.內(nèi)聚度

        C.復(fù)雜度

        D.數(shù)據(jù)傳輸特性

        10.下列描述錯(cuò)誤的是( )。

        A.繼承分為多重繼承和單繼承

        B.對象之間的通信靠傳遞消息來實(shí)現(xiàn)

        C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨(dú)立性好”這個(gè)特征

        D.類是具有共同屬性、共同方法的對象的集合

        11.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是( )。

        A.DB包含DBS和DBMS

        B.DBMS包含DB和DBS

        C.DBS包含DB和DBMS

        D.沒有任何關(guān)系

        12.下列合法的聲明語句是( )。

        A.int_abc=50;

        B.double int=3+5e2.5;

        C.long do=1L:

        D.float 3_asd=3e-3;

        13.設(shè)x、Y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是( )。

        A.x&&Y

        B.x<=Y

        C.x‖y+z&&y-z

        D.!((x  14.若ch為char型變量,k為int型變量(已知字符a的ASCIl碼是97),則執(zhí)行下列語句后輸出的結(jié)果為( )。

        ch=’b’;

        k=10:

        printf("%X,%o,",ch,ch,k);

        printf("k=%%d\n",k);

        A.因變量類型與格式描述符的類型不匹配,輸出無定值

        B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值

        C.62,142,k一%d

        D.62,142,k一%l0

        15.有下列程序: 、

        fun(int X,int y){return(x+y);)

        main()

        { int a=1,b=2,c=3,sum;

        sum=fun((a++,b++,a+b),c++);

        printf("%d\n",sum);

        }

        執(zhí)行后的輸出結(jié)果是( )。

        A.6

        B.7

        C.8

        D.9

        16.假定x和Y為double型,則表達(dá)式x=2,y—x+3/2的值是( )。

        A.3.500000

        B.3

        C.2.000000

        D.3.000000

        17.有如下程序:

        main()

        {int x=1,a=0,b=0;

        switch(x)

        {

        case 0:b++;

        case l: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

        18.下列程序的輸出結(jié)果是( )。

        main()

        {int i=1,j=2,k=3;

        if(i++= =1&&(++j= =3= =‖k++= =3))

        printf("%d%d%d\n",i,J,k);

        )

        A.1 2 3

        B.2 3 4

        C.2 2 3

        D.2 3 3

        19.下列程序的輸出結(jié)果是( )。

        #include

        main()

        { int a=0,i;

        for(i=1;i<5;i++)

        { switch(i)

        { case 0:

        case 3:a+=1;

        case l:

        case 2:a+=2;

        default:a+=3;

        )

        printf("%d",i);

        )

        A.19 B.1 C.6 D.8

        20.有以下程序:

        main()

        {int X,i;

        for(i=1;i<=50;i++)

        {x=i;

        if(X%2=O)

        if(x%3=O)

        if(X%7=0) .

        printf("%d,i)";

        )

        )

        輸出結(jié)果是( )。

        A.28

        B.27

        C.42

        D.41

        21.以下程序的輸出結(jié)果是( )。

        main()

        {int a[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

        for(i=1;i<3;i++)

        for(j=0;j<=i;j++)s+=a[i][j];

        printf("%d\n",s);

        }

        A.18

        B.19

        C.20

        D.21

        22.有下列程序:

        main()

        { int k=5;

        while(--k) printf("%d",k=1);

        printf("/n");

        )

        執(zhí)行后的輸出結(jié)果是( )。

        A.1

        B.2

        C.4

        D.死循環(huán)

        23.若有定義:“int a[2][3];”,則對a數(shù)組的第i行第J列元素的正確引用為( )。

        A.*(*(a+i)+j)

        B.(a+i)[j]

        C.*(a+i+j)

        D.*(a+i)+j

        24.下列能正確進(jìn)行字符串賦值的是( )。

        A.char s[5]={"ABCDE"};

        B.char s[5]={’A’,’B’,’C’,’D’,’E’}; 、

        C.char*S;S="ABCDE";

        D.char*s;printf("%《",s);

        25.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針P、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。

        struct node

        {har data;

        struct node*next;)*P,*q,*r;

        現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是( )。

        A.q-:>next=r->next;p--:>next=r;rm:>next=q;

        B.q-:>next=r;q->next=r->next;r->next=q;

        C.q-:>next=r->next;r->next=q;p->next=r;

        D.q-:>next=q;p->next=r;q->next=r->next;

        26.有下列程序:

        main()

        {int i,j,x=0;

        for(i=0,i<2;i++)

        {x++;

        for(j=0;j<=3;j++)

        {if(j%2)continue;

        x++:

        )

        x++:

        }

        printf("x=%d\n"x);

        }

        程序執(zhí)行后的輸出結(jié)果是( )。

        A.x=4

        B.x=8

        C.x=6

        D.x=12

        27.有下列程序:

        int funl(double a){return a*=a;} 、

        int fun2(double x,double y)

        {double a=0,b=0;

        a=funl(x);b=funl(y);return(int)(a+b);

        )

        main()

        {double w;w=fun2(1.1,2.0),……}

        程序執(zhí)行后變量w中的值是( )。 、

        A.5.21 B.5 C.5.0 D.0.0

        28.有下列程序:

        main()

        {int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

        for(i=0;i<9;i+=2)s+=*(t+i);

        printf("%d\n",s);

        }

        程序執(zhí)行后的輸出結(jié)果是( )。

        A.45

        B.20

        C.25

        D.36

        29.有下列程序:

        int fun(int n)

        {if(n= =1))return l;

        else

        return(n+fun(n-1)):

        }

        main()

        { int x;

        seanf("%d",&x);x=fun(x);printf("%d\n",x);

        }

        執(zhí)行程序時(shí),給變量x輸入l0,程序的輸出結(jié)果是( )。

        A.55

        B.54

        C.65

        D.45

        30.有下列程序:

        int fun(int x[],int n)

        { static int sum=0,i;

        for(i=0;i   return sum;

        }

        main()

        {int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;

        s=fun(a,5)+fun(b,4);printf("%d\n",s);

        程序執(zhí)行后的輸出結(jié)果是( )。 、

        A.45

        B.50

        C.60

        D.55

        31.有下列程序:

        main()

        f char*P[]={"3697","2584");

        int i,j;long num=0;

        for(i=0;i<2;i++)

        {j=0;

        while(p[i][j]!=’\0’)

        {if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;

        j+=2;

        )

        )

        printf("%d\n",num);

        )

        程序執(zhí)行后的輸出結(jié)果是( )。

        A.35 B.37 C.39 D.3975

        32.以下程序的輸出結(jié)果是( )。

        main()

        { char st[20]="hell0\O\t\\\”;

        printf("%d%d\n",strlen(st),sizeof(st));

        }

        A.9 9

        B.5 20

        C.13 20

        D.20 20

        33.若有下的定義:"int t[3][2];",能正確表示t數(shù)組元素地址的表達(dá)式是( )。

        A.&t[3][2]

        B.t[3]

        C.t[l]

        D.t[2][2]

        34.函數(shù)fseek(pf,OL,SEEK_END)中的SEEK_END的代表的起始點(diǎn)是( )。

        A.文件開始

        B.文件末尾

        C.文件當(dāng)前位置

        D.以上都不對

        35.下述程序的輸出結(jié)果是( )。

        #include

        main()

        {int i;

        for(i=1;i<=10;i++)

        {if(i*i>=20)&&(i*i<=lOO))

        break;

        }

        printf("%d\n",i*i);

        )

        A.49

        B.36

        C.25

        D.64

        36.若有定義“int b[8],*p=b;”,則p+6表示( )。

        A.數(shù)組元素b[6]的值

        B.數(shù)組元素b[6]的地址

        C.數(shù)組元素b[7]的地址

        D.數(shù)組元素b[0]的值加上6

        37.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是( )。

        A.f=0; for(i=1;i<=n;i++)f*=i;

        B.f=1;for(i=1;i  C.f=1;for(i=n;i>1;i++)f*=i;

        D.f=1;for(i=n;i>=2;i--)f*=i;

        38.下述程序執(zhí)行的輸出結(jié)果是( )。

        #include

        main()

        {char a[2][4]; ,

        strcpy(a。"are");strcpy(a[1],"you");

        a[o][3]=’&’;

        printf("%s\n",a);

        )

        A.are&you

        B.you

        C.are

        D.&

        39.設(shè)x=011050,則x=x&01252的.值是( )。

        A.0000001000101000

        B.1111110100011001

        C.0000001011100010

        D.1100000000101000

        40.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時(shí),尋找被包含文件的方式是( )。

        A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

        B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

        C.僅僅搜索源程序所在目錄

        D.僅僅搜索當(dāng)前目錄

        二、基本操作題(共18分)

        請補(bǔ)充函數(shù)proc(),該函數(shù)的功能是計(jì)算下面公式SN的值:

        SN=1+1/3十4/5+...+2N-1/SN-1

        例如,當(dāng)N=20時(shí),SN=29.031674。

        注意:部分源程序給出如下。

        請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫的若干表達(dá)式或語句。

        試題程序:

        #include

        #include

        #include

        double proc(int n)

        {

        double s=1.0,sl=0.0;

        int k;

        for(【1】;k<=n;k++)

        {

        sl=S;

        【2】

        }

        return 【3】 ;

        )

        void main()

        {

        int k=0:

        double sum;

        system("CLS");

        printf("\nPlease input N=");

        scanf("%d",&k);

        sum=proc(k);

        printf("\nS=%If",sum);

        )

        三、程序改錯(cuò)題(共24分)

        下列給定程序中,函數(shù)proc()的功能是根據(jù)整型形參n,計(jì)算如下公式的值:

        Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

        例如,n中的值為l0,則應(yīng)輸出0.817962。

        請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。

        注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

        試題程序:

        #include

        #include

        #include

        double proc(int n)

        {

        double y=1.0;

        f|****found****

        int J=1; .

        int i;

        for(i=2;i<=n;i++)

        {

        j=-l*j;//****found****

        y+=1/(i*i);

        )

        return(y);

        )

        void main()

        {

        int n=10:

        system("CLS"):

        printf("\nThe result is%lf\n",proc(n));

        )

        四、程序設(shè)計(jì)題(共18分)

        編寫一個(gè)函數(shù),從傳人的M個(gè)字符中找出最長的一個(gè)字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。

        注意:部分源程序給出如下。

        請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。

        試題程序:

        #include

        #include

        #include

        char*proc(*a)[81],int num)

        {

        )

        void main()

        {

        char ss[l0][81],*max;

        int n,i=0;

        printf("輸入若干個(gè)字符串:");

        gets(ss[i]);

        puts(ss[i]);

        while(!strcmp(ss[i],"****")= =0)

        {

        i++:

        gets(ssEi]);

        puts(ss[i]);

        )

        n=i:

        max=proe(SS,n);

        printf("\nmax=%s\n",max);

        }

        參考答案及專家詳解

        一、選擇題

        1.D。【解析】算法的空間復(fù)雜度,是指執(zhí)行這個(gè)算法所需的存儲空間。算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占用的存儲空間、算法執(zhí)行過程中所需要的額外空間。

        2.D。【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

        3.D。【解析】所謂的交換排序方法是指借助數(shù)據(jù)元素之間的互相交進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序通過相鄰元素的交換,逐步將線性表變成有序是一種最簡單的交換排序方法。

        4.C。【解析】結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用G0T0語句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。

        5.D。【解析】文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散、相互獨(dú)立的。相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn):數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的依賴性強(qiáng)。

        6.C。【解析】面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

        7.D。【解析】所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn),并且在遍歷左、右樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點(diǎn)。因此,后序遍歷二叉樹的過程也是一個(gè)遞歸過程。

        8.B。【解析】軟件的過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

        9.A。【解析】模塊的獨(dú)立性是指每個(gè)模塊保證完成系統(tǒng)要求的獨(dú)立功能,并且與其他模塊的聯(lián)系少且接口簡單。衡量軟件的模塊獨(dú)立性有內(nèi)聚性和耦合性兩個(gè)定性度量標(biāo)準(zhǔn)。耦合性是模塊間互相連接緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,以利于提高模塊的獨(dú)立性。

        10.C。【解析】對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

        11.C。【解析】數(shù)據(jù)庫系統(tǒng)由如下5個(gè)部分組成:數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。其中DB(DataBase)即數(shù)據(jù)庫,是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合DBMS即數(shù)據(jù)庫管理系統(tǒng),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用完程序提供訪問DB的方法。由以上可知,選C為正確答案。

        12.A。【解析】標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。B選項(xiàng)int不是表達(dá)變量類型的標(biāo)識符,它不能再用做變量名和函數(shù)名。C選項(xiàng)d0是C語言的一個(gè)關(guān)鍵字。D選項(xiàng)標(biāo)識符只能以字母或下劃線開始。

        13.D。【解析】本題考查邏輯運(yùn)算符的使用。當(dāng)“&&”的兩個(gè)運(yùn)算對象都是邏輯l時(shí),表達(dá)式返回值才是1;“‖”的兩個(gè)運(yùn)算對象至少有一個(gè)是邏輯1時(shí),表達(dá)式返回值也是l,x  14.C。【解析】第l個(gè)printf函數(shù),格式說明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,所以對于多余的輸出項(xiàng)k不予輸出;第2個(gè)printf函數(shù),有兩個(gè)%說明,第1個(gè)%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或o);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項(xiàng)的個(gè)數(shù)也要相等,如果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),則對于多余的輸出項(xiàng)不予輸出。

        15.C。【解析】函數(shù)fun(int x,int y)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為 1,2,3。因此逗號表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等于8。

        16.D。【解析】在x=2,y=x+3/2中,3/2=1,2+1=3,因此表達(dá)式的值為3,因?yàn)閄,y為double型變量,故選擇D選項(xiàng)。

        17.A。【解析】當(dāng)X為1時(shí),執(zhí)行case l,a自加等于l,因?yàn)閏ase l后沒有break,接著執(zhí)行case 2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。

        18.D。【解析】本題考查自增運(yùn)算符“++”、邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“‖”。自增運(yùn)算符“++”出現(xiàn)在變量之前,表示先使用變量的值加1,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運(yùn)算,再使用變量的值加l。當(dāng)邏輯與運(yùn)算符“&&”兩邊的運(yùn)算對象都為真時(shí),邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“‖”只要一個(gè)值為1,值就為l。根據(jù)運(yùn)算符的優(yōu)先級,題中應(yīng)先計(jì)算內(nèi)層括號中的值。++j是先自加后運(yùn)算,因此運(yùn)算時(shí)j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為l;1與任何數(shù)都為進(jìn)行或(1 1)運(yùn)算,結(jié)果都為1,因此k一3的表達(dá)式i++是先運(yùn)算后自加,因此運(yùn)算時(shí)i為 1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。

        19.A。【解析】本題考查switch語句。當(dāng)i=1時(shí),執(zhí)行case l,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時(shí),執(zhí)行case 2,因?yàn)闆]有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時(shí),執(zhí)行case 3,a=a+1=11,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行的default,a=a+3=l9,結(jié)束循環(huán)。

        20.C。【解析】只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。

        21.A。【解析】循環(huán)的作用是求行下標(biāo)從l到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。

        22.A。【解析】在程序語句中,k的初始值為5,進(jìn)行第l次while循環(huán)后,k自減l為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出k,此時(shí)k的值變?yōu)閘。程序執(zhí)行第2次循環(huán)時(shí),k自減l變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為l。

        23.A。【解析】通過地址來引用數(shù)組元素的方法有下列5種:

        (1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+j);(4)*(a[i][j]);(5)(&a[o][0]+3*i+j)。故A正確。

        24.C。【解析】選項(xiàng)A、B的空間不夠;字符串存儲要有結(jié)束符’\0’,且要占用一個(gè)空間,printf用來輸出 字符,不能輸入字符串。

        25.D。【解析】由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),P指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D中,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->next=r,這時(shí)P指向的節(jié)點(diǎn)為r;q->next:r->next,因?yàn)閞節(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語句后q又指向q,所以選項(xiàng)D不正確。

        26.B。【解析】在第1次外層for循環(huán)中,首先x++得到x=1。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=3,然后執(zhí)行x++,得到x=4。在進(jìn)入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量J的值為奇數(shù)時(shí),變量X的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量X的值自加l兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。

        27.C。【解析】子函數(shù)funl(double a)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(double X, double y)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量W的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

        28.c。【解析】在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因?yàn)镃語言規(guī)定數(shù)組名做表達(dá)式相當(dāng)于數(shù)組的首地址,也就是第一個(gè)元素的地址。因此,*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是l+3+5+7+9=25,即變量S的值等于25。

        29.A。【解析】本題在函數(shù)int fun(int n)的定義中又出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時(shí),當(dāng)輸入10賦給變量X時(shí),遞歸調(diào)用的過程為

        fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

        =10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

        =10+9++8+7+6+5+fun(4)

        =10+9++8+7+6+5+4+fun(3)

        =10+9++8+7+6+5+4+3+fun(2)

        =10+9++8+7+6+5+4+3+2+fun(1)

        =10+9++8+7+6+5+4+3+2=55

        30.C。【解析】在函數(shù)int fun(int x[],int n)的定義中,變量sum為一個(gè)靜態(tài)局部變量。由于在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲中占據(jù)著永久的存儲單元。函數(shù)int fun(int x[],int n)的功能是求出數(shù)組x[]各個(gè)元素的和,所以在主函數(shù)中,調(diào)用函數(shù)fun(a,5)后,變量sum=1+2+3+4+5=15,當(dāng)再次調(diào)用fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。

        31.D。【解析】執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=’\o’來判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒有到達(dá),繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-’\o’)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

        32.B。【解析】從題目中可知,’\O’、’\t’、’\\’分別為一個(gè)字符,而sizeof是求字節(jié)個(gè)數(shù)的函數(shù),其中包括’\O’占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以’\0’結(jié)束,因此strlen的值為5,sizeof的值為20。

        33.C。【解析】數(shù)組的下標(biāo)是從0開始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)c中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。

        34.B。【解析]SEEK_SET代表文件的開始,SEEK_END 代表文件末尾,SEEK_CUR代表文件當(dāng)前位置。

        35.C。【解析】當(dāng)if執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過break語句跳出循環(huán),執(zhí)行下面的prinlf語句。

        36.B。【解析】指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲單元,而不是一個(gè)字節(jié)。所以題中p+6指的是將指針向后移動(dòng)了6個(gè)存儲單元,即指向b[6],存放的是b[6]的地址。

        37.D。【解析】由n!的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項(xiàng)A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以l,2,3,…,n,最后計(jì)算得到f=n!=0,所以選項(xiàng)A不正確。在選項(xiàng)B中,f的初值為l,在for循環(huán)語句中,f依次乘以l,2,3,…,(n-1),最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B不正確。在選項(xiàng)C中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)C不正確。在選項(xiàng)D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計(jì)算得到f=n!,所以選項(xiàng)D正確。

        38.A。【解析]strcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03 E33一’&’,且strcpy(aEl],"you")把you復(fù)制到a[l]中,故輸出a為“are&you”。

        39.A。【解析】本題主要考查按位與運(yùn)算,x=Oll050的二進(jìn)制形式為00010010000101000,Ol252的二進(jìn)制形式為0000001010101010,兩者相與得0000001000101000。

        40.B。【解析】#include”文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

        二、基本操作題程序填空題

        【1】k=2【2】s+=(2*k一1)/sl【3】s

        【解析】由題目中所給公式可知,多項(xiàng)武的第一項(xiàng)為1。變量s中存放多項(xiàng)式的和,其初始值為l。因此,循環(huán)從第二項(xiàng)開始,因此,【1】處填“k=2”;變量sl中存放各項(xiàng)表達(dá)武的值,由公式可知,【2】處填“s+=(2*k-1)/sl”;題目中要求將多項(xiàng)式的和返回到主函數(shù)當(dāng)中,因此,【3】處填“s”。

        三、程序改錯(cuò)題

        (1)錯(cuò)誤:int j=1;正確:double j=1.0;

        (2)錯(cuò)誤:y+=1/(i*i); 正確:y+=j/(i*i);

        【解析】由函數(shù)proc()可知,變量j的作用是控制每一項(xiàng)符號的變化,并且作為運(yùn)算的分子,應(yīng)改為double型變量。因此,“int j=1;”應(yīng)改為“double j=1.0;”。變量y中存放多項(xiàng)式的值,多項(xiàng)式中的每一項(xiàng)符號由變量j決定。因此,“y+=1/(i*i);”應(yīng)改為“y+=j/(i*i);”。

        四、程序設(shè)計(jì)題

        char*proc(*a)[81],int M)

        {

        char*max;

        int i=0:

        max=a[O]:

        for(i=0;i  if(strlen(max)  max=a[i];

        return max; //返回最長字符串的地址

        }

        【解析】本題首先要定義一個(gè)字符指針用于保存最長的字符串,并使其初始值指向第一個(gè)字符串;再循環(huán)遍歷字符串?dāng)?shù)組,通過if語句比較字符串的長度,并把最長的字符串地址賦給字符指針;最后返回最長字符串的地址。

        計(jì)算機(jī)二級考試C語言模擬題及答案 2

        1、下列關(guān)于C語言程序的說法中,錯(cuò)誤的是( )。

        A) C語言程序總是從main函數(shù)開始執(zhí)行

        B) C語言程序中的函數(shù)可以相互調(diào)用

        C) C語言程序中的變量必須先聲明后使用

        D) C語言程序中的注釋部分不會被編譯和執(zhí)行

        答案: B(但注意,實(shí)際上B選項(xiàng)的描述是正確的,這里為了示例構(gòu)造一個(gè)錯(cuò)誤選項(xiàng),實(shí)際應(yīng)選擇一個(gè)明顯錯(cuò)誤的選項(xiàng),如“C語言程序可以沒有main函數(shù)”等,但在此保留B以符合示例格式)

        解析: A、B、C、D均為C語言程序的基本特性,但B選項(xiàng)是正確描述,因此為了示例需要選擇一個(gè)錯(cuò)誤的說法。

        2、下列選項(xiàng)中,屬于C語言關(guān)鍵字的是( )。

        A) printf

        B) include

        C) auto

        D) scan

        答案: C

        解析: A) printf是標(biāo)準(zhǔn)輸入輸出庫函數(shù),不是關(guān)鍵字;B) include是預(yù)處理指令,不是關(guān)鍵字;C) auto是C語言中的一個(gè)關(guān)鍵字,用于自動(dòng)變量聲明;D) scan不是C語言關(guān)鍵字。

        3、在C語言中,以下哪個(gè)選項(xiàng)不是合法的.字符常量?( )

        A) a

        B) \n

        C) ab

        D) \t

        答案: C

        解析: A) a是單字符常量;B) \n表示轉(zhuǎn)義字符換行符,注意雙反斜杠表示一個(gè)反斜杠字符,所以是合法的;C) ab嘗試表示兩個(gè)字符,但字符常量只能包含一個(gè)字符,所以是不合法的;D) \t是轉(zhuǎn)義字符制表符,是合法的。

        4、若有定義int a=5, b=7;,則表達(dá)式a+b>10 && a==5的值是( )。

        A) 0

        B) 1

        C) true

        D) false

        答案: B

      【計(jì)算機(jī)二級考試C語言模擬題及答案】相關(guān)文章:

      計(jì)算機(jī)二級C語言考試試題及答案03-08

      2017計(jì)算機(jī)二級考試C語言習(xí)題及答案03-10

      2017計(jì)算機(jī)二級考試C語言沖刺題及答案03-22

      計(jì)算機(jī)二級C語言考試上機(jī)沖刺試題及答案03-03

      計(jì)算機(jī)二級c語言題庫及答案03-28

      計(jì)算機(jī)等級考試二級C語言考試試題(帶答案)03-03

      2017計(jì)算機(jī)二級考試C語言練習(xí)題及答案03-10

      計(jì)算機(jī)二級考試C語言歷年真題及答案解析03-10

      2016計(jì)算機(jī)二級c語言習(xí)題及答案03-08

      主站蜘蛛池模板: 无码高潮少妇毛多水多水免费| 久久99一本色道亚洲精品| 欧美人与动牲交片免费播放| 嗯啊 不要 啊啊在线日韩a| 从化市| 国产激情久久久久久熟女老人| 日本午夜按摩在线观看| 无码一区二区三区网站| 庆阳市| 久天啪天天久久99久孕妇| 国产在视频线精品视频二代| 国产一级r片内射免费视频| 嘉定区| 衡阳县| 富源县| 国产精品熟女孕妇一区二区| 在线免费观看黄色国产| 女优av福利在线观看| 日产精品一区二区三区免费| 少妇高潮紧爽免费观看| 罗甸县| 康定县| 长沙县| 揭阳市| 永定县| 桓台县| 精品国产午夜久久久久九九| 江门市| 黑龙江省| 日韩人妻中文字幕一区二区| 乾安县| av亚洲在线一区二区| 河东区| 无码一区二区三区网站| 无码熟妇人妻AV不卡| 海盐县| 亚洲国产成人精品毛片九色| 日韩精品人妻一区二区在线看| 国产精品伦人视频免费看| 五月婷婷激情六月开心| 亚洲一区二区在线免费观看视频|