2013計算機二級C語言完整預(yù)測試題及答案二

字號:

為大家收集整理了《2013計算機二級C語言完整預(yù)測試題及答案二》供大家參考,希望對大家有所幫助?。?!
    一、選擇題((1)-(10)、(21)-(40)每題2分,(11)-(20)每題1分,共70分)下列各題A)、B)、 C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)下列敘述中正確的是()
    A)棧是“先進(jìn)先出”的線性表
    B)隊列是“先進(jìn)后出”的線性表
    C)循環(huán)隊列是非線性結(jié)構(gòu)
    D)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
    (2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()
    A)棧
    B)樹
    C)隊列
    D)二叉樹
    (3)某二叉樹有5個度為z的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是()
    A)10
    B)8
    C)6
    D)4
    (4)下列排序方法中,壞情況下比較次數(shù)少的是()
    A)冒泡排序
    B)簡單選擇排序
    C)直接插入排序
    D)堆排序
    (5)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()
    A)編譯程序
    B)操作系統(tǒng)
    C)教務(wù)管理系統(tǒng)
    D)匯編程序
    (6)下面敘述中錯誤的是()
    A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
    B)對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟
    C)程序調(diào)試通常也稱為Debug
    D)軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性
    (7)耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是( )
    A)提高耦合性降低內(nèi)聚性有利他哦高模塊的獨立性
    B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
    C)耦合性是指一個模塊內(nèi)部各個元索間彼此結(jié)合的緊密程度
    D)內(nèi)聚性是指模塊間互相連接的緊密程度
    (8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是()
    A)數(shù)據(jù)庫設(shè)計
    B)數(shù)據(jù)庫系統(tǒng)設(shè)計
    C)數(shù)據(jù)庫維護
    D)數(shù)據(jù)庫管理員培訓(xùn)
    (9)有兩個關(guān)系R,S如下:
    由關(guān)系R通過運算得到關(guān)系S,則所使用的運算為()
    A)選擇
    B)投影
    C)插入
    D)連接
    (10)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為(  )
    A)屬性
    B)鍵
    C)關(guān)系
    D)域
    (11)以下選項中合法的標(biāo)識符是()
    A)1_1
    B)1-1
    C)_11
    D)1__
    (12)若函數(shù)中有定于語句:intk;,則( )
    A)系統(tǒng)將自動給K賦初值0
    B)時k中的值無定義
    C)系統(tǒng)將自動給k賦初值-1
    D)這時k中無任何值
    (13)以下選項中,能用作數(shù)據(jù)常量的是()
    A)0115
    B)0118
    C)1.5e1.5
    D)115L
    (14)設(shè)有定義:intx=2;,以下表達(dá)式中,值不為6的是()
    A)x*=x+1
    B)x++,2*x
    C)x*=(i+x)
    D)2*x,x+=2
    (15)程序段:intx=12;doubley=3.141593;printf(“%d%8.6f”,x,y);的輸出結(jié)果是()
    A)123.141593
    B)123.141593
    C)12,3.141593
    D)123.1415930
    (16)若有定義語句:doublex,y,*px,*pY;執(zhí)行了px=&x;py=&y;之后,正確的輸入語句是()
    A)scarf(“%f%1”,x,y);
    B)scarf(“%f%f”,&x,&y);
    C)scarf(“%lf”,px,py);
    D)scarf(“%lf%lf”,x,y);
    (17)以下是if語句的基本形式:()if〔表達(dá)式)語句其中“表達(dá)式”
    A)必須是邏輯表達(dá)式
    B)必須是關(guān)系表達(dá)式
    C)必須是邏輯表達(dá)式或關(guān)系表達(dá)式
    D)可以是任意合法的表達(dá)式
    (18)有以下程序
    #include
    main(){intx;
    scarf(“&d”,&x);if(x<=3);elseif(x!=10)printf(“&d\n”。,x);}
    程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()
    A)不等于10的整數(shù)
    B)大于3且不等10的整數(shù)
    C)大于3或等于10的整數(shù)
    D)小于3的整數(shù)
    (19)有以下程序
    #include
    main()
    {inta=1,b=2,c=3,d=0;
    if(a==1&&b++==2)if(b!=21}c--!=3)printf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,%d,%d\n”,a,b,c);elseprintf(“%d,ad,%d\n”,a,b,c);}
    程序運行后的輸出結(jié)果是()
    A)1,2,3
    B)1,3,2
    C)1,3,3
    D)3,2,1
    (20)以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=l;k<3;k十F);printf(“*”);程序段的輸出結(jié)果是()
    A)********
    B)****
    C)**
    D)*
    (21)有以下程序#iinclude
    ma1n(){char*S={“ABC”};
    do
    {printf(“%d”;*s%l0);s++}whi1e(*s);}
    注意:字母A的ASCII碼值為650.程序運行后的輸出結(jié)果是()
    A)5670
    B)656667
    C)567
    D)ABC
    (22)設(shè)變量己正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)的程序段是( )
    A)n=0;while((ch=getchar())!=’\n’)n++;
    B)n=0;while(getchar()!=’1n‘)n++;
    C)for(n=0;getchar()!=’\n’;n++);
    D)n=0;for(ch=getchar();ch!=’\n’;n++);
    (23)有以下程序
    #include
    main()
    {intal,a2;charcl,c2;
    scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2);printf(“%d,%c.%d,%c”,a1,c1,a2,c2);}
    若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為自負(fù)b,程序輸出的結(jié)果是:12,a,34,b則正確的輸入格式是(以下~代表空格,代表回車)()
    A)i2a34b
    B)12~a~34~b
    C)12,a,34,b
    D)12~a34~b
    (24)有以下程序
    #include
    intf(intx,inty){return((y-x)*x);)main()
    {inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(“od\n”,d);}
    程序運行后的輸出結(jié)果是()
    A)10
    B)9
    C)8
    D)7
    (25)有以下程序
    #include
    voidfun(char*s){while(*s)
    {if(*s%2==0)printf(“%c”,*s);s++;}}
    main(){chara[]=(“good”};fun(a);printf(“\n”);}
    注意:字母a的ASCII碼值為97,程序運行后的輸出結(jié)果是()
    A)d
    B)go
    C)god
    D)good
    (26)有以下程序#include
    voidfun(int*a,int*b){int*c;
    c=a;a=b;b=c;}
    main()
    {intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf(“%d,%d,”,*P,*q):fun(&X,&y);printf(“%d,%d\n”;*p.*q);}
    程序運行后的輸出結(jié)果是()
    A)3,5.5,3
    B)3,5,3,5
    C)5,3,3,5
    D)5,3,5,3
    (27)有以下程序
    #include
    voidflint*p,int*q);main()
    intm=l,n=2,*r=&m;f(r,&n);printf(“%d,od”,m,n);}
    voidf(int*p,int*q){p=p+l:*q=*q+1;}
    程序運行后的輸出結(jié)果是()
    A)1,3
    B)2,3
    C)1,4
    D)1,2
    (28)以卜函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)voldfun(int*w,intn){inti;
    for(i=0;i  printf(“\n”);}
    下劃線處應(yīng)填入的語句是()A)if(i/8==0)printf(“\n”);B)if(i/8==0)continue;C)if(i%8==0)printf(“\n”);D)if(i%8==0)contInue;
    (29)若有以下定義intx[1O],*pt=x;
    則對x數(shù)組元素的正確引用是()
    A)*&x[10]
    B)*(x+3)
    C)*(pt+10)
    D)pt+3
    (30)設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()
    A)gets(s);
    B)while((s[i++]=getchar())!=’\n’);s[i]=’\0’;
    C)scarf(“%s”,s);
    D)do{scarf(“%c”,&s[i]);}while(s[i++]!=’\n‘);s[i]=’\0’;
    (31)有以下程序
    #include
    nain()
    {char*a[]=(“abed”,“ef”,“gh”,“ijk”};intI;for(i=0;i<4;i++)printf(“%c”,*a[i]);}
    程序運行后的輸出結(jié)果是()
    A)aegi
    B)dfhk
    C)abed
    D)abcdefghijk
    (32)以下選項中正確的語句組是()
    A)chars[];s=“BOOK!”;
    B)char*s={“BOOK!”};
    C)charsf10};s=“BOOK!”;
    D)char*s=“BOOK!”;
    (33)有以下程序#include
    intfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);main()(inta=4,b=5,c=6;ptintf(“%d\n”,fun(2*a,fun(b,c)));}
    程序運行后的輸出結(jié)果是()
    A)3
    B)6
    C)8
    D)12
    (34)設(shè)函數(shù)中有整型變量n,為保證其在未賦初值的情況下初值為0,應(yīng)選擇的存儲類別是()
    A)auto
    B)register
    C)static
    D)auto或register
    (35)有以下程序
    #includeintb=2.;
    intfun(int*k)
    {b=*k+b;return(b);}main()
    {inta〔10],{1,2,3,4,5,6,7,8),i;
    for(i=2;i<4;i++)(b=fun(&a[i])+b;printf(“%d”;b);printf(“\n”);}
    程序運行后的輸出結(jié)果是()
    A)1012
    B)810
    C)1028
    D)101b
    (36)有以下程序#include#definePT3.5;
    #defineS(x)PT*x*x;main()
    {inta=1,b=2;printf(“%4.if\n”,S(a+b));}程序運行后的輸出結(jié)果是()
    A)14.0
    B)31.5
    C)7.5
    D)程序有錯無輸出結(jié)果
    (37)有以下程序#includestructord
    {intx,y;}bt[2]={1,2,3,4};main(){struct
    ord
    *p=dt;
    printf(“%d”,++p->x);
    printf(“%d\n”,++p->y);
    }
    程序的運行結(jié)果是()
    A)1,2
    B)2,3
    C)3,4
    D)4,1
    (38)設(shè)有宏定義:#defineIsDIV(k,n)((k%n=I)?1:0)且變量m己正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達(dá)的是()
    A)判斷m是否能被5或者7整除
    B)判斷m是否能被5和7整除
    C)判斷m被5或者7整除是否余1
    D)判斷m被J和7整除是否都余
    (39)有一以下程序#includemain(){inta=5,b=1,t;t=(a《2)|b;printf(“%d\n”,t);
    }
    程序運行后的輸出結(jié)果是( )
    A)21
    B)11
    C)6
    D)1
    (40)有以下程序#includemain(){FILE*f;
    f=fopen(“filea.txt”,“w”);fprintf(f,“abc”);fclose(f);}
    若文本文件filea.txt中原有內(nèi)容為:hello,則運行以上程序后,文件filea.txt中的內(nèi)容為()
    A)helloabc
    B)abclo
    C)abc
    D)ahchelln
    二、填空題(每空2分,共30分)
    請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。
    (1)假設(shè)用一個長度為50的數(shù)組(數(shù)組元索的下標(biāo)從0到49)作為棧的存化空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【1】個元素。
    (2)軟件測試可分為白盒測試和黑盒測試?;韭窂綔y試屬于【2】測試。
    (3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。(4)數(shù)據(jù)庫系統(tǒng)的核心是【4】。
    (5)在E-K圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是【5】框。
    (6)表達(dá)式(int)((doubleXS/2)+2.5)的值是【6】
    (7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf【7】,x/y;補充完整,使其輸出的計算結(jié)果形式為:x/y=11。
    (8)有以下程序#includemain(){charc1,c2;
    scanf(“%c”,&c1);
    while(c1<65||c1>90)scanf(“%c”,&c1);c2=c1+32;
    printf(“%c,%c\n”,c1,c2);}
    程序運行輸入65回車后,能否輸出結(jié)果、結(jié)束運行(請回答能或不能)【8】。
    (9)以下程序運行后的輸出結(jié)果是【9】。#includemain()intk=1,s=0;do{
    if((k%2)!0)continue;s+=k;k++;
    }while(k>10);printf(“s=od\n”,s);}
    (10)下列程序運行時,若輸入labced}df’<回車>輸出結(jié)果為【10】。#include
    main.(){chara=0,ch;while((ch=getchar())!=’\n’){if(a%2!=0&&(ch>=’a’&&ch<=’z’))ch=ch-’a’+A’;a++;putchar(ch);}
    printf(“\n”);}
    (11)有以下程序,程序執(zhí)行后,輸出結(jié)果是【11】。
    #include
    voidfun{int*a){a[0]=a[1];}
    main(){inta[10]={10,9,8,7,6,5,4,3,2,1},i;for(i=2;i>=0;i--)fun(&a[i]);for.(i=0;i<10;i++)printf(“%d”},a[1]);printf(“\n”);}
    (12)請將以下程序中的函數(shù)聲明語句補充完整。#includeint【12】;main(){intx,y,(*p)();scarf(“%d%d”,&x,&y);p=max;
    printf(“%d\n”,(*p)(x.y));}
    intmax(inta,intb){return(a>b?a:b);}
    (13)以下程序用來判斷指定文件是否能正常打開,請?zhí)羁?includemain(){FILE*fp;
    if(((fp=fopen(“test.txt”,“r”))==【13】))printf(“未能打開文件!\n”);else
    printf(“文件打開成功!\n”);}
    (14)下列程序的運行結(jié)果為【14】#include#includeStructA
    (inta;charb[10];doublec;};voidf(structA*t);main()
    {structAa=(1001,“ZhangDa”,1098.0};f(&a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}
    voidf(structA*t)
    {strcpy(t->b,“ChangRong”);}
    (15)以下程序把三個NODETYPE型的變量鏈接成一個簡單的鏈表,并在while循環(huán)中輸出鏈表結(jié)點數(shù)據(jù)域中的數(shù)據(jù)。請?zhí)羁铡?BR>    #includestructnode
    {intdata;structnode*next:};typedefstructnodeNODETYPE;
    main()
    {NODETYPEa,b,c,*h,*p:
    a.data=10;b.data=20:c.data=30;h=&a;a.next=&b;b.next=&c;c.next=’\0’;p=h;
    while(p){printf(“%d,”;p->data);【15】;}printf(“\n”);}
    參考答案
    選擇題:1~10:DACDC ABABC 11~20:CBDDA CDBCB
    21~30:CDABA BACBC 31~40:ADBCC CBDAC
    填空題:(1)19
    (2)白盒
    (3)順序結(jié)構(gòu)
    (4)數(shù)據(jù)庫管理系統(tǒng)(DBMS)
    (5)菱形
    (6)4
    (7)"x/y=%d"
    (8)能
    (9)s=0
    (10)1AbCeDf2dF
    (11)7777654321
    (12)max(inta,intb)
    (13)NULL
    (14)1001,ChangRong,1098.0
    (15)p=p—>next