<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            試題

            下半年計算機二級C語言全真模擬題

            時間:2025-05-16 09:37:34 曉麗 試題 我要投稿

            2024下半年計算機二級C語言全真模擬題

              在日常學習和工作中,我們都可能會接觸到試題,借助試題可以更好地考核參考者的知識才能。那么一般好的試題都具備什么特點呢?下面是小編精心整理的2024下半年計算機二級C語言全真模擬題,歡迎大家借鑒與參考,希望對大家有所幫助。

              下半年計算機二級C語言全真模擬題 1

              一、選擇題((1)-(10)、(21)-(40)每題2分,(11)-(20)每題1分,共70分)下列各題A)、B)、 C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。

              (1)下列敘述中正確的是()

              A)棧是“先進先出”的線性表

              B)隊列是“先進后出”的線性表

              C)循環隊列是非線性結構

              D)有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

              (2)支持子程序調用的數據結構是()

              A)棧

              B)樹

              C)隊列

              D)二叉樹

              (3)某二叉樹有5個度為z的結點,則該二叉樹中的葉子結點數是()

              A)10

              B)8

              C)6

              D)4

              (4)下列排序方法中,最壞情況下比較次數最少的是()

              A)冒泡排序

              B)簡單選擇排序

              C)直接插入排序

              D)堆排序

              (5)軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()

              A)編譯程序

              B)操作系統

              C)教務管理系統

              D)匯編程序

              (6)下面敘述中錯誤的是()

              A)軟件測試的目的是發現錯誤并改正錯誤

              B)對被調試的程序進行“錯誤定位”是程序調試的必要步驟

              C)程序調試通常也稱為Debug

              D)軟件測試應嚴格執行測試計劃,排除測試的隨意性

              (7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是( )

              A)提高耦合性降低內聚性有利他哦高模塊的獨立性

              B)降低耦合性提高內聚性有利于提高模塊的獨立性

              C)耦合性是指一個模塊內部各個元索間彼此結合的緊密程度

              D)內聚性是指模塊間互相連接的緊密程度

              (8)數據庫應用系統中的核心問題是()

              A)數據庫設計

              B)數據庫系統設計

              C)數據庫維護

              D)數據庫管理員培訓

              (9)有兩個關系R,S如下:

              由關系R通過運算得到關系S,則所使用的運算為()

              A)選擇。

              B)投影。

              C)插入。

              D)連接。

              (10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為(  )

              A)屬性

              B)鍵

              C)關系

              D)域

              (11)以下選項中合法的標識符是()

              A)1_1

              B)1-1

              C)_11

              D)1__

              (12)若函數中有定于語句:intk;,則( )

              A)系統將自動給K賦初值0

              B)時k中的值無定義

              C)系統將自動給k賦初值-1

              D)這時k中無任何值

              (13)以下選項中,能用作數據常量的是()

              A)0115

              B)0118

              C)1.5e1.5

              D)115L

              (14)設有定義:intx=2;,以下表達式中,值不為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);的輸出結果是()

              A)123.141593

              B)123.141593

              C)12,3.141593

              D)123.1415930

              (16)若有定義語句:doublex,y,*px,*pY;執行了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〔表達式)語句其中“表達式”

              A)必須是邏輯表達式

              B)必須是關系表達式

              C)必須是邏輯表達式或關系表達式

              D)可以是任意合法的表達式

              (18)有以下程序

              #include

              main(){intx;

              scarf(“&d”,&x);if(x<=3);elseif(x!=10)printf(“&d\n”。,x);}

              程序運行時,輸入的值在哪個范圍才會有輸出結果()

              A)不等于10的整數

              B)大于3且不等10的整數

              C)大于3或等于10的.整數

              D)小于3的整數

              (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);}

              程序運行后的輸出結果是()

              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(“*”);程序段的輸出結果是()

              A)********

              B)****

              C)**

              D)*

              (21)有以下程序#iinclude

              ma1n(){char*S={“ABC”};

              do

              {printf(“%d”;*s%l0);s++}whi1e(*s);}

              注意:字母A的ASCII碼值為650.程序運行后的輸出結果是()

              A)5670

              B)656667

              C)567

              D)ABC

              (22)設變量己正確定義,以下不能統計出一行中輸入字符個數(不包含回車符)的程序段是( )

              A)n=0;while((ch=get))!=’\n’)n++;

              B)n=0;while(get)!=’1n‘)n++;

              C)for(n=0;get)!=’\n’;n++);

              D)n=0;for(ch=get);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的值為自負b,程序輸出的結果是: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);}

              程序運行后的輸出結果是()

              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,程序運行后的輸出結果是()

              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);}

              程序運行后的輸出結果是()

              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;}

              程序運行后的輸出結果是()

              A)1,3

              B)2,3

              C)1,4

              D)1,2

              (28)以卜函數按每行8個輸出數組中的數據voldfun(int*w,intn){inti;

              for(i=0;i  printf(“\n”);}

              下劃線處應填入的語句是()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數組元素的正確引用是()

              A)*&x[10]

              B)*(x+3)

              C)*(pt+10)

              D)pt+3

              (30)設有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()

              A)gets(s);

              B)while((s[i++]=get))!=’\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]);}

              程序運行后的輸出結果是()

              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)));}

              程序運行后的輸出結果是()

              A)3

              B)6

              C)8

              D)12

              (34)設函數中有整型變量n,為保證其在未賦初值的情況下初值為0,應選擇的存儲類別是()

              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”);}

              程序運行后的輸出結果是()

              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));}程序運行后的輸出結果是()

              A)14.0

              B)31.5

              C)7.5

              D)程序有錯無輸出結果

              (37)有以下程序#includestructord

              {intx,y;}bt[2]={1,2,3,4};main(){struct

              ord

              *p=dt;

              printf(“%d”,++p->x);

              printf(“%d\n”,++p->y);

              }

              程序的運行結果是()

              A)1,2

              B)2,3

              C)3,4

              D)4,1

              (38)設有宏定義:#defineIsDIV(k,n)((k%n=I)?1:0)且變量m己正確定義并賦值,則宏調用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是()

              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);

              }

              程序運行后的輸出結果是( )

              A)21

              B)11

              C)6

              D)1

              (40)有以下程序#includemain(){FILE*f;

              f=fopen(“filea.txt”,“w”);fprintf(f,“abc”);fclose(f);}

              若文本文件filea.txt中原有內容為:hello,則運行以上程序后,文件filea.txt中的內容為()

              A)helloabc

              B)abclo

              C)abc

              D)ahchelln

              二、填空題(每空2分,共30分)請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。

              (1)假設用一個長度為50的數組(數組元索的下標從0到49)作為棧的存化空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下標),則棧中具有【1】個元素。

              (2)軟件測試可分為白盒測試和黑盒測試。基本路徑測試屬于【2】測試。

              (3)符合結構化原則的三種基本控制結構是:選擇結構、循環結構和【3】。(4)數據庫系統的核心是【4】。

              (5)在E-K圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是【5】框。

              (6)表達式(int)((doubleXS/2)+2.5)的值是【6】

              (7)若變量x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf【7】,x/y;補充完整,使其輸出的計算結果形式為: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回車后,能否輸出結果、結束運行(請回答能或不能)【8】。

              (9)以下程序運行后的輸出結果是【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’<回車>輸出結果為【10】。#include

              main.(){chara=0,ch;while((ch=get))!=’\n’){if(a%2!=0&&(ch>=’a’&&ch<=’z’))ch=ch-’a’+A’;a++;putch);}

              printf(“\n”);}

              (11)有以下程序,程序執行后,輸出結果是【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)請將以下程序中的函數聲明語句補充完整。#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)以下程序用來判斷指定文件是否能正常打開,請填空#includemain(){FILE*fp;

              if(((fp=fopen(“test.txt”,“r”))==【13】))printf(“未能打開文件!\n”);else

              printf(“文件打開成功!\n”);}

              (14)下列程序的運行結果為【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循環中輸出鏈表結點數據域中的數據。請填空。

              #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”);}

              下半年計算機二級C語言全真模擬題 2

              1、以下說法中正確的是( C )。

              A、C語言程序總是從第一個定義的函數開始執行。

              B、在C語言程序中,要調用的函數必須在main( )函數中定義。

              C、C語言程序總是從main( )函數開始執行。

              D、C語言程序中的main( )函數必須放在程序的開始部分。

              2.(A )是構成C語言程序的基本單位。

              A、函數

              B、過程

              C、子程序

              D、子例程

              3.C語言程序從 C 開始執行。

              A、 程序中第一條可執行語句

              B、 程序中第一個函數

              C、 程序中的main函數

              D、包含文件中的第一個函數

              4.下列關于C語言的說法錯誤的是( B ) 。

              A、 C程序的工作過程是編輯、編譯、連接、運行

              B、 C語言不區分大小寫。

              C、 C程序的三種基本結構是順序、選擇、循環

              D、C程序從main函數開始執行

              5.下列正確的標識符是(C )。

              A、-a1

              B、a[i]

              C、a2_i

              D、int t

              5~8題為相同類型題

              考點:標識符的命名規則

              只能由字母、數字、下劃線構成

              數字不能作為標識符的開頭

              關鍵字不能作為標識符

              選項A中的“-” ,選項B中“[”與“]”不滿足(1);選項D中的int為關鍵字,不滿足(3)

              6.下列C語言用戶標識符中合法的是(B )。

              A、3ax

              B、x

              C、case

              D、-e2 E)union

              選項A中的標識符以數字開頭不滿足(2);選項C,E均為為關鍵字,不滿足(3);選項D中的“-”不滿足(1);

              7.下列四組選項中,正確的C語言標識符是( C )。

              A、 %x

              B、a+b

              C、a123

              D、123

              選項A中的“%” ,選項B中“+”不滿足(1);選項D中的標識符以數字開頭不滿足(2)

              8、下列四組字符串中都可以用作C語言程序中的標識符的是( A)。

              A、print _3d db8 aBc

              B、Iam one_half start$it 3pai

              C、str_1 Cpp pow while

              D、Pxq My->book line# His.age

              選項B中的“”,”$” ,選項D中“>”,”#”,”.”,”-”不滿足(1);選項C中的while為關鍵字,不滿足(3)

              9.C語言中的簡單數據類型包括(D )。

              A、整型、實型、邏輯型

              B、整型、實型、邏輯型、字符型

              C、整型、字符型、邏輯型

              D、整型、實型、字符型

              10.在C語言程序中,表達式5%2的結果是 C 。

              A、2.5

              B、2

              C、1

              D、3

              %為求余運算符,該運算符只能對整型數據進行運算。且符號與被模數相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

              /為求商運算符,該運算符能夠對整型、字符、浮點等類型的數據進行運算,5/2=2

              11.如果int a=3,b=4;則條件表達式"a

              B、 4

              C、 0

              D、1

              詳見教材P97.

              表達式1?表達式2:表達式3

              先計算表達式1,

              若表達式1成立, 則選擇計算表達式2,并表達式2的值作為整個大表達式的值;

              若表達式1不成立,則選擇計算表達式3,并將表達式3的值作為整個大表達式的值

              此題中的a

              a為3,b為4。a

              12.若int x=2,y=3,z=4 則表達式x=()

              B、3

              C、2

              D、0 E)1

              13.C語言中,關系表達式和邏輯表達式的值是( B ) 。

              A、0

              B、 0或1

              C、 1

              D、‘T’或’F’

              14. 下面( D )表達式的值為4.

              A、 11/3

              B、 11.0/3

              C、 (float)11/3

              D、 (int)(11.0/3+0.5)

              14~16題為同一類型

              (1)相同數據類型的元素進行數學運算(+、-、*、/)得到結果還保持原數據類型。

              (2)不同數據類型的元素進行數學運算,先要統一數據類型,統一的標準是低精度類型轉換為高精度的數據類型。

              選項A,11與3為兩個整數,11/3結果的數據類型也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.

              選項B,11.0為實數,3為整數,因此首先要統一數據類型,將整型數據3轉換為3.0,轉換后數據類型統一為實型數據,選項B變為11.0/3.0,結果的數據類型也應為實型數據,因此選項B 11.0/3=3.666666

              選項C,先將整數11強制類型轉換,轉換為實型11.0,因此選項C變為11.0/3,其后計算過程、結果與選項B同

              選項D,首先計算11.0/3,其計算過程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最后將4.166666強制類型轉換為整型,即將其小數部分全部舍掉,結果為4

              15.設整型變量 a=2,則執行下列語句后,浮點型變量b的值不為0.5的是( B )

              A、b=1.0/a

              B、b=(float)(1/A、

              C、b=1/(float)a

              D、b=1/(a*1.0)

              16. 若“int n; float f=13.8;”,則執行“n=(int)f%3”后,n的值是(A)

              A、1

              B、4

              C、4.333333

              D、4.6

              “(int)f“表示將f中的值強制類型轉換為整型,即將13.8的小數部分舍掉,轉換為13;然后計算13%3,結果為1,再將結果賦給變量n,因此n的值為1

              17. 以下對一維數組a的正確說明是: D

              A、char a(10);

              B、 int a[];

              C、int k=5,a[k];

              D、char a[3]={‘a’,’b’,’c’};

              詳見教材P143~144,一維數組的定義、初始化

              類型符 數組名 [常量表達式]

              類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;常量表達式是指數組的長度(數組中包含元素的個數),其值只能是整數,不可以是變量,而且從1開始計數。

              選項A,常量表達式只能放在中括號 [ ]中

              選項B,只有在對數組初始化(即賦值)的時候才可以省略數組的長度,B中并未對a進行初始化。

              選項C,常量表達式不能為變量。

              18.以下能對一維數組a進行初始化的語句是:( C )

              A、int a[5]=(0,1,2,3,4,)

              B、 inta(5)={}

              C、 int a[3]={0,1,2}

              D、 int a{5}={10*1}

              詳見教材P145,一維數組的定義、初始化

              選項B,D,常量表達式只能放在中括號 [ ]中

              選項A,數組可以看做是若干個相同數據類型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了().

              19.在C語言中對一維整型數組的正確定義為 D 。

              A、int a(10);

              B、int n=10,a[n];

              C、int n;a[n];

              D、#define N 10

              int a[N];

              20、已知:int a[10]; 則對a數組元素的正確引用是( D )。

              A、a[10]

              B、a[3.5]

              C、a(5)

              D、a[0]

              詳見教材P144,數組元素的引用

              數組名[下標]

              引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開始計數

              int a[10]表示定義了一個包含10個整型數據的數組a,數組元素的邏輯地址下標范圍為0~9,即a[0] 表示組中第1個元素; a[1] 表示組中第2個元素; a[2] 表示組中第3個元素; ......;a[9] 表示組中第10個元素.

              選項A,超過了數組a的邏輯地址下標范圍;

              選項B,邏輯地址下標只能為整數

              選項C,邏輯地址下標只能放在[ ]中

              21.若有以下數組說明,則i=10;a[a[i]]元素數值是(C )。

              int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

              A、10

              B、9

              C、6

              D、5

              先算a[a[i]]內層的a[i],由于i=10,因此a[i]即a[10].

              a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]

              a[9]對應下面數組中的元素為6. 因此a[9]即為6

              22.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )

              A、2

              B、3

              C、4

              D、無確定值

              5 7

              D、3 6 9

              二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個大括號,數組就有幾行

              23.對二維數組的正確定義是(C )

              詳見教材P149~152,二維數組的定義、初始化

              類型符 數組名 [常量表達式][常量表達式]

              二維數組可以看做是矩陣

              類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;第一個常量表達式是指數組的行數;第二個常量表達式是指數組的列數;常量表達式的值只能是整數,不可以是變量,而且從1開始計數。

              一維數組初始化時可以省略數組長度

              二維數組初始化時可以省略行數,但不能省略列數

              選項A,B,都省略了列數

              選項D,不符合二維數組定義的一般形式,行、列常量表達式應該放在不同的[]中

              A、int a[ ][ ]={1,2,3,4,5,6};

              B、int a[2] []={1,2,3,4,5,6};

              C、int a[ ] [3]={1,2,3,4,5,6};

              D、int a[2,3]={1,2,3,4,5,6};

              24.已知int a[3][4];則對數組元素引用正確的是__C___

              A、a[2][4]

              B、a[1,3]

              C、a[2][0]

              D、a(2)(1)

              詳見教材P150,數組元素的引用

              數組名[下標] [下標]

              引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開始計數

              第一個[下標]表示行邏輯地址下標,第二個[下標]表示列邏輯地址下標。

              本題圖示詳見P149圖6.7

              因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;

              選項A,列邏輯地址下標超過范圍

              選項B,D,的.引用形式不正確。

              25.C語言中函數返回值的類型是由 A 決定的.

              A、函數定義時指定的類型

              B、 return語句中的表達式類型

              C、 調用該函數時的實參的數據類型

              D、形參的數據類型

              26. 在C語言中,函數的數據類型是指(A )

              A、 函數返回值的數據類型

              B、 函數形參的數據類型

              C、 調用該函數時的實參的數據類型

              D、任意指定的數據類型

              27.在函數調用時,以下說法正確的是( B )

              A、函數調用后必須帶回返回值

              B、實際參數和形式參數可以同名

              C、函數間的數據傳遞不可以使用全局變量

              D、主調函數和被調函數總是在同一個文件里

              28. 在C語言中,表示靜態存儲類別的關鍵字是: ( C )

              A、 auto

              B、 register

              C、static

              D、extern

              29.未指定存儲類別的變量,其隱含的存儲類別為(A )。

              A、auto

              B、static

              C、extern

              D、register

              30. 若有以下說明語句:

              struct student

              { int num;

              char name[ ];

              float score;

              }stu;

              則下面的敘述不正確的是: (D )

              A、 struct是結構體類型的關鍵字

              B、 struct student 是用戶定義的結構體類型

              C、 num, score都是結構體成員名

              D、 stu是用戶定義的結構體類型名

              31.若有以下說明語句:

              struct date

              { int year;

              int month;

              int day;

              }brithday;

              則下面的敘述不正確的是__C___.

              A、 struct是聲明結構體類型時用的關鍵字

              B、 struct date 是用戶定義的結構體類型名

              C、 brithday是用戶定義的結構體類型名

              D、year,day 都是結構體成員名

              32. 以下對結構變量stul中成員age的非法引用是 B

              struct student

              { int age;

              int num;

              }stu1,*p;

              p=&stu1;

              A、 stu1.age

              B、 student.age

              C、 p->age

              D、(*p).age

              33.設有如下定義:

              struck sk

              { int a;

              float b;

              }data;

              int *p;

              若要使P指向data中的a域,正確的賦值語句是 C

              A、 p=&a;

              B、 p=datA、a;

              C、p=&datA、a;

              D、*p=datA、a;

              34.設有以下說明語句:

              typedef struct stu

              { int a;

              float b;

              } stutype;

              則下面敘述中錯誤的是( D )。

              A、struct是結構類型的關鍵字

              B、struct stu是用戶定義的結構類型

              C、a和b都是結構成員名

              D、stutype是用戶定義的結構體變量名

              35.語句int *p;說明了 C 。

              A、p是指向一維數組的指針

              B、p是指向函數的指針,該函數返回一int型數據

              C、p是指向int型數據的指針 // 指針的定義教材P223

              D、p是函數名,該函數返回一指向int型數據的指針

              36.下列不正確的定義是( A )。

              A、int *p=&i,i;

              B、int *p,i;

              C.int i,*p=&i;

              D、int i,*p;

              選項A先定義一個整型指針變量p,然后將變量i的地址賦給p。然而此時還未定義變量i因此編譯器無法獲得變量i的地址。(A與C對比,選項C先定義變量i,則在內存中為i分配空間,因此i在內存空間的地址就可以確定了;然后再定義p,此時可以為p賦i的地址,C正確)

              37. 若有說明:int n=2,*p=&n,*q=p,則以下非法的賦值語句是: ( D )

              A、p=q

              B、*p=*q

              C、n=*q

              D、p=n

              p,q同為整型指針變量,二者里面僅能存放整型變量的地址。

              選項A,q中為地址,因此可將此地址賦給p

              選項B,*p表示p所指向對象n的內容,即一個整數;*q表示q所指向對象的內容,由于在定義q時為其初始化,將p中n的地址給q,因此p中存放n的地址,*q表示q所指向對象n的內容.因此*p=*q 相當于 n=n;

              選項C,n=*q 等價于n=n;

              選項D,p中只能存放地址,不能將n中的整數值賦給p

              38.有語句:int a[10],;則 B 是對指針變量p的正確定義和初始化。

              A、int p=*a;

              B、int *p=a;

              C、int p=&a;

              D、int *p=&a;

              選項A,a是數組名,不是指針變量名,因此不可用*標注數組名a

              選項C,a是數組名,數組名就是地址,無需再用地址符號。而且在定義指針變量p時,應在變量名前加*,標明p是指針變量

              選項D,a是數組名,數組名就是地址,無需再用地址符號。

              39.若有說明語句“int a[5],*p=a;”,則對數組元素的正確引用是( C )。

              A、a[p]

              B、p[a]

              C、*(p+2)

              D、p+2

              首先定義一個整型數組a,a的長度為5,然后定義一個指針變量p,并同時對p進行初始化,將數組a的地址賦給p。因此此時p中存放的數組a的首地址,即數組中第一個元素a[0]的地址。

              對于數組元素下標的引用(詳見p144), 一般形式 數組名[下標] 其中下標為邏輯地址下標,從0開始計數,方括號中的下標可以是變量,可以是表達式,但結果一定要是整數。

              選項A,p中存放的是地址,不是整數,不能做數組元素的下標

              選項B,a是數組名,數組名就是地址,不是整數,不能做數組元素的下標

              選項C,(重點!!!詳見p231~234) p+2表示指向同一數組中的下兩個元素的地址,當前p指向a[0],則p+2表示a[2]的地址,因此*(p+2)表示a[2]的內容

              40. 有如下程序

              int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

              則數值為9的表達式是 B

              A、 *P+9

              B、 *(P+8)

              C、 *P+=9

              D、P+8

              (重點!!!詳見p231~234)

              首先定義一個整型數組a,a的長度為5,然后定義一個指針變量P,并同時對P進行初始化,將數組a的地址賦給P。因此此時P中存放的數組a的首地址,即數組中第一個元素a[0]的地址。

              數組中9對應的是a[8], 選項B,P+8表示數組中后8個元素的地址,即a[8]的地址。*(P+8)則表示該地址內所存放的內容,即a[8]的值。

              選項A,*P表示P所指向對象的內容,此時P指向a[0], *P即a[0]的值1. *P+9=1+9=10

              選項C,*P表示P所指向對象的內容,此時P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等價于a[0]=a[0]+9.

              選項D,P+8表示數組中后8個元素的地址,即a[8]的地址,而非a[8]中的值。

              41. 在C語言中,以 D 作為字符串結束標志

              A、’ ’

              B、’ ’

              C、 ’0’

              D、’’

              42.下列數據中屬于“字符串常量”的是( A )。

              A、“a”

              B、{ABC}

              C、‘abc’

              D、‘a’

              若干個字符構成字符串

              在C語言中,用單引號標識字符;用雙引號標識字符串

              選項B,C,分別用{}和’’標識字符串

              選項D,標識字符。

              43.已知char x[]="hello", y[]={h,e,a,b,e};, 則關于兩個數組長度的正確描述是 B .

              A、相同

              B、x大于y

              C、x小于y

              D、以上答案都不對

              C語言中,字符串后面需要一個結束標志位,通常系統會自動添加。

              對一維數組初始化時可采用字符串的形式(例如本題數組x),也可采用字符集合的形式(例如本題數組y)。在以字符串形式初始化時,數組x不盡要存儲字符串中的字符,還要存儲字符串后的結束標志位,因此數組x的長度為6;在以字符集合形式初始化時,數組y,僅存儲集合中的元素,因此數組y長度為5。

              計算機二級C語言測試題及答案

              (1)下述關于數據庫系統的敘述中正確的是________。

              A)數據庫系統減少了數據冗余

              B)數據庫系統避免了一切冗余

              C)數據庫系統中數據的一致性是指數據類型的一致

              D)數據庫系統比文件系統能管理更多的數據

              答案:A

              評析:由數據的共享自身又可極大地減少數據冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值。

              (2)關系表中的每一橫行稱為一個________。

              A)元組B)字段C)屬性D)碼

              答案:A

              評析:在關系數據庫中,關系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。

              (3)數據庫設計包括兩個方面的設計內容,它們是________。

              A)概念設計和邏輯設計B)模式設計和內模式設計

              C)內模式設計和物理設計D)結構特性設計和行為特性設計

              答案:A

              評析:數據庫設計可分為概念設計與邏輯設計。概念設計的目的是分析數據間內在語義關聯,在此基礎上建立一個數據的抽象模型。邏輯設計的主要工作是將ER圖轉換為指定的RDBMS中的關系模型。

              (4)請讀程序:

              #include

              main

              {

              int a;float b,c;

              scanf(“%2d%3P%4f’,&a,&b,&C);

              printf(” a=%d,b=%ec。%f ”,a,b,C);

              }

              若運行時從鍵盤上輸入9876543210l,則上面程序的輸出結果是________。

              A)a=98,b=765,c=432 1

              B)a=1 0,b=432,c=8765

              C)a=98,b=765.000000,c=432 1.000000

              D)a=98,b=765.0,c=432 1.0

              答案:C

              評析:scanf把用戶從鍵盤錄入的數字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

              (5)一個良好的算法由下面的基本結構組成,但不包括__________。

              A)順序結構B)選擇結構C)循環結構D)跳轉結構

              答案:D

              評析:1966年,Bohra和Jacopini提出了以下三種基本結構,用這三種基本結構作為表示一個良好算法的基本單元:1、順序結構;2、選擇結構;3、循環結構。

              (6)請選出以下程序的輸出結果________。

              #include

              sub(x,y,z)

              int x,y,星符號z:

              {星符號z變化,所以此次函數被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發生變化,其值為-12-(-5)=-7。

              (7)下面程序在屏幕上的輸出是________。

              main

              {

              printf(”ab c”);

              }

              A)ab c B)a c C)abc D)ab c

              答案:B

              (8)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是_______。

              A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運算符(++、–),在c語言解析表達式時,它總是進行貪婪咀嚼,這樣,該表達式就被解析為i++ ++ +i,顯然該表達式不合c語言語法。

              (10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態存儲單元

              int星符號int) D)(int星符號)

              答案:D

              評析:不論p是指向什么類型的指針變量,都可以通過強制類型轉換的方法使之類型一致,強制類型轉換的格式為(數據類型+)。

              (11)下面程序輸出的結果是__________。

              main

              {

              int i=5,J=9,x;

              x=(I==j?i:(j=7));

              printf(” %d,%d”,I,J);

              }

              A)5,7 B)5,5 C)語法錯誤D)7,5

              答案:A

              評析:條件表達式的一般形式為:表達式I?表達式2:表達式3;先求解表達式1,若為真則求解表達式2;若表達式l的值為假,則求解表達式3。本題中先判斷i==j,不等,執行j=7;然后執行x=7。故本題為A。

            【下半年計算機二級C語言全真模擬題】相關文章:

            2015下半年計算機二級C語言全真模擬題答案07-13

            計算機二級《C語言程序設計》全真試題01-06

            計算機二級C語言上機模擬題02-14

            2015下半年全國計算機二級考試C語言全真模擬試題03-01

            計算機二級C語言上機精選模擬題及答案03-22

            2016計算機二級《C語言》模擬題及答案02-15

            計算機C語言模擬題06-03

            2015下半年計算機二級考試C語言考前模擬題06-29

            計算機二級C語言專題模擬題及答案201702-15

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院