2025年全國計算機二級等級考試模擬試卷及答案(共五套)_第1頁
2025年全國計算機二級等級考試模擬試卷及答案(共五套)_第2頁
2025年全國計算機二級等級考試模擬試卷及答案(共五套)_第3頁
2025年全國計算機二級等級考試模擬試卷及答案(共五套)_第4頁
2025年全國計算機二級等級考試模擬試卷及答案(共五套)_第5頁
已閱讀5頁,還剩103頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2025年全國計算機二級等級考試模擬試卷及答案(共五套)2025年全國計算機二級等級考試模擬試卷及答案(第一套)1.下列關于棧敘述正確的是()。A)算法就是程序B)設計算法時只需要考慮數據結構的設計C)設計算法時只需要考慮結果的可靠性D)以上三種說法都不對參考答案:D2.下列敘述中正確的是()。A)有一個以上根結點的數據結構不一定是非線性結構B)只有一個根結點的數據結構不一定是線性結構C)循環鏈表是非線性結構D)雙向鏈表是非線性結構參考答案:B3.下列關于二叉樹的敘述中,正確的是()。A)葉子結點總是比度為2的結點少一個B)葉子結點總是比度為2的結點多一個C)葉子結點數是度為2的結點數的兩倍D)度為2的結點數是度為1的結點數的兩倍參考答案:B4.軟件生命周期中的活動不包括()。A)市場調研B)需求分析C)軟件測試D)軟件維護參考答案:A5.某系統總體結構圖如下圖所示:該系統總體結構圖的深度是()。A)7B)6C)3D)2參考答案:C6.程序調試的任務是()。A)設計測試用例B)驗證程序的正確性C)發現程序中的錯誤D)診斷和改正程序中的錯誤參考答案:D7.下列關于數據庫設計的敘述中,正確的是()。A)在需求分析階段建立數據字典B)在概念設計階段建立數據字典C)在邏輯設計階段建立數據字典D)在物理設計階段建立數據字典參考答案:A8.數據庫系統的三級模式不包括()。A)概念模式B)內模式.C)外模式D)數據模式參考答案:D9有三個關系R、S和T如下:則由關系R和S得到關系T的操作是()。A)自然連接B)交C)投影D)并參考答案:A10.下列選項中屬于面向對象設計方法主要特征的是()。A)繼承B)自頂向下C)模塊化D)逐步求精參考答案:A11.以下敘述中錯誤的是A)算法正確的程序可以有零個輸入B)算法正確的程序最終一定會結束C)算法正確的程序可以有零個輸出D)算法正確的程序對于相同的輸入一定有相同的結果參考答案:C12.以下敘述中正確的是A)C語句必須在一行內寫完B)C程序中的每一行只能寫一條語句C)C語言程序中的注釋必須與語句寫在同一行D)簡單C語句必須以分號結束參考答案:D13.以下選項中關于C語言常量的敘述錯誤的是A)經常被使用的變量可以定義成常量B)常量分為整型常量、實型常量、字符常量和字符串常量C)常量可分為數值型常量和非數值型常量D)所謂常量,是指在程序運行過程中,其值不能被改變的量參考答案:A14.以下選項中,不合法的C語言用戶標識符是A)a_bB)AaBcC)a--bD)_1參考答案:C15.若變量均已正確定義并賦值,以下合法的C語言賦值語句是A)x=y==5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;參考答案:A16.設有定義:inta;floatb;執行scanf("%2d%f",&a,&b);語句時,若從鍵盤輸入876543.0<回車>則a和b的值分別是A)87和6.0B)876和543.0C)87和543.0D)76和543.0參考答案:A17.有以下定義語句,編譯時會出現編譯錯誤的是A)chara='\x2d';B)chara='\n';C)chara='a';D)chara="aa";參考答案:D18.當變量c的值不為2、4、6時,值也為"真"的表達式是A)(c>=2&&c<=6)&&(c%2!=1)B)(c==2)||(c==4)||(c==6)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)||(c!=3)||(c!=5)參考答案:D19.有以下計算公式若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是A)if(x>=0)y=sqrt(x);if(x<0)y=sqrt(-x);B)if(x>=0)y=sqrt(x);elsey=sqrt(-x);C)y=sqrt(x);if(x<0)y=sqrt(-x);D)y=sqrt(x>=0?x:-x);參考答案:C20.有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執行后的輸出結果是A)y=-1B)y=0C)y=1D)while構成無限循環參考答案:A21.有以下程序#include<stdio.h>main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執行后的輸出結果是A)5B)24C)32D)40參考答案:C22.有以下程序#include<stdio.h>main(){ints;scanf("%d",&s);while(s>0){switch(s){case1:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,則輸出結果是A)66656B)6566456C)66666D)6666656參考答案:B23.以下敘述中錯誤的是A)用戶定義的函數中可以沒有return語句B)用戶定義的函數中可以有多個return語句,以便可以調用一次返回多個函數值C)用戶定義的函數中若沒有return語句,則應當定義函數為void類型D)函數的return語句中可以沒有表達式參考答案:B24.有以下程序#include<stdio.h>voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){charb='a',a='A';fun(&b,a);printf("%c,%c\n",b,a);}程序運行后的輸出結果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B參考答案:A25.列選項中,能正確定義數組的語句是A)intnum[0...2008];B)intnum[];C)intN=2008;intnum[N];D)#defineN2008intnum[N];參考答案:D26.以下函數實現按每行8個輸出w所指數組中的數據#include<stdio.h>voidfun(int*w,intn){inti;for(i=0;i<n;i++){______________printf("%d",w[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;參考答案:C27.有以下程序#include<stdio.h>voidfun(char*c){while(*c){if(*c>='a'&&*c<='z')*c=*c-('a'-'A');c++;}}main(){chars[81];gets(s);fun(s);puts(s);}當執行程序時從鍵盤上輸入HelloBeijing<回車>,則程序的輸出結果是A)hellobeijingB)HelloBeijingC)HELLOBEIJINGD)hELLOBeijing參考答案:C28.有以下程序#include<stdio.h>main(){inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};inti,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][i]);}程序運行后的輸出結果是A)1,6,2,1,B)8,7,3,1,C)4,7,5,2,D)1,6,5,7,參考答案:D29.有以下程序(strcat函數用以連接兩個字符串)#include<stdio.h>#include<string.h>main(){chara[20]="ABCD\0EFG\0",b[]="IJK";strcat(a,b);printf("%s\n",a);}程序運行后的輸出結果是A)IJKB)ABCDE\0FG\0IJKC)ABCDIJKD)EFGIJK參考答案:C30.有以下程序段charname[20];intnum;scanf("name=%snum=%d",name,&num);當執行上述程序段,并從鍵盤輸入:name=Lilinum=1001<回車>后,name的值為A)name=Lilinum=1001B)name=LiliC)Lilinum=D)Lili參考答案:D31.有以下程序#include<stdio.h>main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運行后的輸出結果是A)zB)0C)元素ch[5]的地址D)字符y的地址參考答案:A32.有以下程序#include<stdio.h>main(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='a'&&s[i]<='z')n++;printf("%d\n",n);}程序運行后的輸出結果是A)0B)2C)3D)5參考答案:B33.有以下程序#include<stdio.h>intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%d",&x);x=fun(x);printf("%d\n",x);}執行程序時,給變量x輸入10,程序的輸出結果是A)55B)54C)65D)45參考答案:A34.有以下程序#include<stdio.h>intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;printf("%d,",f(++n));printf("%d\n",f(n++));}程序運行后的輸出結果是A)3,3B)1,1C)2,3D)1,2參考答案:D35.設有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是A)CIN是structTT類型的變量B)TT是struct類型的變量C)可以用TT定義結構體變量D)可以用CIN定義結構體變量參考答案:D36.有以下程序#include<stdio.h>structord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序運行后的輸出結果是A)3,4B)4,1C)2,3D)1,2參考答案:C37.有以下程序#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結果是A)0B)-12C)-20D)10參考答案:C38.有以下程序#include<stdio.h>main(){inta=2,b;b=a<<2;printf("%d\n",b);}程序運行后的輸出結果是A)2B)4C)6D)8參考答案:D39.下列關于C語言文件的敘述中正確的是A)文件由一系列數據依次排列組成,只能構成二進制文件B)文件由結構序列組成,可以構成二進制文件或文本文件C)文件由數據序列組成,可以構成二進制文件或文本文件D)文件由字符序列組成,其類型只能是文本文件參考答案:C40.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d,",a[i]);}程序的運行結果是A)1,2,3,0,0,0,0,0,0,0,B)1,2,3,1,2,3,0,0,0,0,C)123,0,0,0,0,123,0,0,0,0,D)1,2,3,0,0,1,2,3,0,0,參考答案:D2025年全國計算機二級等級考試模擬試卷及答案(第二套)1.一個棧的初始狀態為空。現將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA參考答案:B2.下列敘述中正確的是()。A)循環隊列有隊頭和隊尾兩個指針,因此,循環隊列是非線性結構B)在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況C)在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況D)循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定參考答案:D3.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是()。A)O(n)B)O(n2)C)D)參考答案:C4.下列敘述中正確的是()。A)順序存儲結構的存儲一定是連續的,鏈式存儲結構的存儲空間不一定是連續的B)順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構C)順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表D)鏈式存儲結構比順序存儲結構節省存儲空間參考答案:A5.數據流圖中帶有箭頭的線段表示的是()。A)控制流B)事件驅動C)模塊調用D)數據流參考答案:D6.在軟件開發中,需求分析階段可以使用的工具是()。A)N-S圖B)DFD圖C)PAD圖D)程序流程圖參考答案:B7.在面向對象方法中,不屬于"對象"基本特點的是()。A)一致性B)分類性C)多態性D)標識唯一性參考答案:A8.一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是()。A)一對一B)一對多C)多對一D)多對多參考答案:B9.在數據管理技術發展的三個階段中,數據共享最好的是()。A)人工管理階段B)文件系統階段C)數據庫系統階段D)三個階段相同參考答案:C10.有三個關系R、S和T如下:由關系R和S通過運算得到關系T,則所使用的運算為()。A)笛卡爾積B)交C)并D)自然連接參考答案:D11.下列敘述中錯誤的是()。A)C程序可以由多個程序文件組成B)一個C語言程序只能實現一種算法C)C程序可以由一個或多個函數組成D)一個C函數可以單獨作為一個C程序文件存在參考答案:B12.以下選項中,能用作數據常量的是()。A)115LB)0118C)1.5e1.5D)o115參考答案:A13.按照C語言規定的用戶標識符命名規則,不能出現在標識符中的是()。A)大寫字母B)下劃線C)數字字符D)連接符參考答案:D14.設變量已正確定義并賦值,以下正確的表達式是()。A)x=y+z+5,++yB)int(15.8%5)C)x=y*5=x+zD)x=25%5.0參考答案:A15.設有定義:intx=2;,以下表達式中,值不為6的是()。A)2*x,x+=2B)x++,2*xC)x*=(1+x)D)x*=x+1參考答案:A16.有以下程序:#include<stdio.h>main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結果是()。A)2,3,3B)2,3,2C)2,3,1D)2,2,1參考答案:C17.有以下程序:#include<stdio.h>main(){charc1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出結果是()。A)E,68B)D,69C)E,DD)輸出無定值參考答案:A18.若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x-y)等價的是()。A)(x-y<0||x-y>0)B)(x-y<0)C)(x-y>0)D)(x-y==0)參考答案:A19.有以下程序:#include<stdio.h>main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序運行后的輸出結果是()。A)3B)2C)1D)0參考答案:D20.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A)switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}B)switch((int)x);{case1:printf("*\n");case2:printf("**\n");}C)switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}D)switch(a+b){case1:printf("*\n");casec:printf("**\n");}參考答案:A21.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是()。A)852B)963C)741D)875421參考答案:A22.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程序運行后的輸出結果是()。A)m=4B)m=2C)m=6D)m=5參考答案:C23.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}A)6B)3C)8D)12參考答案:A24.有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}則以下函數調用語句錯誤的是()。A)k=f(a,b);B)k=add(a,b);C)k=(*f)(a,b);D)k=*f(a,b);參考答案:D25.有以下程序:#include<stdio.h>main(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}25.26.下列定義數組的語句中,正確的是()。A)#defineN10intx[N];B)intN=10;intx[N];C)intx[0..10];D)intx[];參考答案:A26.該程序試圖通過指針p為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的是()A)intn,*p=NULL;B)*p=&n;C)scanf("%d",&p)D)printf("%d\n",p);參考答案:A27.有以下程序:#include<stdio.h>main(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結果是()。A)0304B)2050C)3344D)3040參考答案:D28.有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運行后的輸出結果是()。A)3B)4C)1D)9參考答案:B29.以下語句中存在語法錯誤的是()。A)charss[6][20];ss[1]="right?";B)charss()[20]={"right?"};C)char*ss[6];ss[1]="right?";D)char*ss()={"right?"};參考答案:A30.以下不能將s所指字符串正確復制到t所指存儲空間的是()A)do{*t++=*s++;}while(*s);B)for(i=0;t[i]=s[i];i++);C)while(*t=*s){t++;s++}D)for(i=0,j=0;t[i++]=s[j++];);參考答案:A31.有以下程序:#include<stdio.h>voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執行后的輸出結果是()。A)321,cbaB)abc,123C)123,abcD)1bc,a23參考答案:D32.有以下函數:intfun(char*x,char*y){intn=0;while((*x==*y)&&*x!='\0'){x++;y++;n++;}returnn;}函數的功能是()。A)將y所指字符串賦給x所指存儲空間B)查找x和y所指字符串中是否有'\0'C)統計x和y所指字符串中最前面連續相同的字符個數D)統計x和y所指字符串中相同的字符個數參考答案:C33.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf("%d\n",s);}程序運行后的輸出結果是()。A)10B)30C)0D)64參考答案:D34.在一個C源程序文件中所定義的全局變量,其作用域為()。A)由具體定義位置和extern說明來決定范圍B)所在程序的全部范圍C)所在函數的全部范圍D)所在文件的全部范圍參考答案:A35.以下敘述中錯誤的是()。A)可以通過typedef增加新的類型B)可以用typedef將已存在的類型用一個新的名字來代表C)用typedef定義新的類型名后,原有類型名仍有效D)用typedef可以為各種類型起別名,但不能為變量起別名參考答案:A36.有以下程序:#include<stdio.h>structS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序運行后的輸出結果是()。A)10B)11C)20D)21參考答案:D38.有以下程序:#include<stdio.h>main(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);}程序運行后的輸出結果是()。A)3B)4C)5D)6參考答案:B39.有以下程序:#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf("%d,%d,%d\n",*a,*b,*c);}程序運行后的輸出結果是()。A)1,1,3B)2,2,3C)1,2,3D)3,3,3參考答案:D40.以下敘述中正確的是()。A)當對文件的讀(寫)操作完成之后,必須將它關閉,否則可能導致數據丟失B)打開一個已存在的文件并進行了寫操作后,原有文件中的全部數據必定被覆蓋C)在一個程序中當對文件進行了寫操作后,必須先關閉該文件然后再打開,才能讀到第1個數據D)C語言中的文件是流式文件,因此只能順序存取數據參考答案:A2025年全國計算機二級等級考試模擬試卷及答案(第三套)1.下列敘述中正確的是()。A)棧是"先進先出"的線性表B)隊列是"先進后出"的線性表C)循環隊列是非線性結構D)有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構參考答案:D2.支持子程序調用的數據結構是()。A)棧B)樹C)隊列D)二叉樹參考答案:A3.某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是()。A)10B)8C)6D)4參考答案:C4.下列排序方法中,最壞情況下比較次數最少的是()。A)冒泡排序B)簡單選擇排序C)直接插入排序D)堆排序參考答案:D5.軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。A)編譯程序B)操作系統C)教務管理系統D)匯編程序參考答案:C6.下面敘述中錯誤的是()A)軟件測試的目的是發現錯誤并改正錯誤B)對被調試的程序進行"錯誤定位"是程序調試的必要步驟C)程序調試通常也稱為DebugD)軟件測試應嚴格執行測試計劃,排除測試的隨意性參考答案:A7.下面敘述中錯誤的是()A)軟件測試的目的是發現錯誤并改正錯誤B)對被調試的程序進行"錯誤定位"是程序調試的必要步驟C)程序調試通常也稱為DebugD)軟件測試應嚴格執行測試計劃,排除測試的隨意性參考答案:A8.數據庫應用系統中的核心問題是()。A)數據庫設計B)數據庫系統設計C)數據庫維護D)數據庫管理員培訓參考答案:A9.有兩個關系R,S如下:由關系R通過運算得到關系S,則所使用的運算為()。A)選擇B)投影C)插入D)連接參考答案:B10.將E-R圖轉換為關系模式時,實體和聯系都可以表示為()。A)屬性B)鍵C)關系D)域參考答案:C11.以下敘述中錯誤的是()。A)使用三種基本結構構成的程序只能解決簡單問題B)結構化程序由順序、分支、循環三種基本結構組成C)C語言是一種結構化程序設計語言D)結構化程序設計提倡模塊化的設計方法參考答案:A12.以下四個程序中,完全正確的是()。A)#include<stdio.h>main();{/*/programming/*/printf("programming!\n");}B)#include<stdio.h>main(){/*programming*/printf("programming!\n");}C)#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}D)include<stdio.h>main(){/*programming*/printf("programming!\n");}參考答案:B13.C源程序中不能表示的數制是()。A)十六進制B)八進制C)十進制D)二進制參考答案:D14.以下選項中,能用作用戶標識符的是()。A)0B)88C)voidD)unsigned參考答案:A15.若有定義語句:intx=10;,則表達式x-=x+x的值為()。A)0B)-20C)-10D)10參考答案:C16.有以下程序:#include<stdio.h>main(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);A)1,2B)1,0C)3,2D)0,0參考答案:A17.有以下程序:#include<stdio.h>main(){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結果是:12,a,34,b則正確的輸入格式是(以下代表空格,<CR>代表回車)()。A)12a34b<CR>B)12a34]b<CR>C)12,a,34,b<CR>D)12a34b<CR>參考答案:D18.若變量已正確定義,在if(W)printf("%d\n",k);中,以下不可替代W的是()。A)a<>b+cB)ch=getchar()C)a==b+cD)a++參考答案:A19.有以下程序段:#include<stdio.h>inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結果是()。A)a=10b=50c=30B)a=10b=50c=10C)a=10b=30c=10D)a=50b=30c=50參考答案:B20.有以下程序段:#include<stdio.h>inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結果是()。A)a=10b=50c=30B)a=10b=50c=10C)a=10b=30c=10D)a=50b=30c=50參考答案:B21.以下不構成無限循環的語句或語句組是()。A)n=0;do{++n;}while(n<=0);B)n=0;while(1){n++;}C)n=10;while(n);{n--;}D)for(n=0,i=1;;i++)n+=i;參考答案:A22.有以下程序:#include<stdio.h>main(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}程序運行后的輸出結果是()。A)7B)5C)3D)9參考答案:C23.有以下程序:#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運行后的輸出結果是()。A)7B)10C)8D)9參考答案:D24.若有定義語句:doublea,*p=&a;以下敘述中錯誤的是()。A)定義語句中的*號是一個間址運算符B)定義語句中的*號是一個說明符C)定義語句中的p只能存放double類型變量的地址D)定義語句中,*p=&a把變量a的地址作為初值賦給指針變量p參考答案:A25.若有定義語句:doublex,y,*px,*py;執行了px=&x;py=&y;之后,正確的輸入語句是()。A)scanf("%lf%le",px,py);B)scanf("%f%f"&x,&y);C)scanf("%f%f",x,y);D)scanf("%lf%lf",x,y);參考答案:A26.以下定義數組的語句中錯誤的是()。A)intnum[][3]={{1,2},3,4,5,6};B)intnum[2][4]={{1,2},{3,4},{5,6}};C)intnum[]={1,2,3,4,5,6};D)intnum[][4]={1,2,3,4,5,6};參考答案:B27.有以下程序:#include<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運行結果是()。A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,參考答案:A28.有以下程序:#include<stdio.h>main(){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若運行時輸入:246<回車>,則輸出結果為()。A)204B)200C)240D)246參考答案:A29.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當執行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A)566.0B)55566.0C)7777.0D)566777.0參考答案:A30.下列語句組中,正確的是()。A)char*s;s="Olympic";B)chars[7];s="Olympic";C)char*s;s={"Olympic"};D)chars[7];s={"Olympic"};參考答案:A31.有以下函數:intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數的功能是()A)計算s所指字符串的長度B)比較兩個字符串的大小C)計算s所指字符串占用內存字節的個數D)將s所指字符串復制到字符串t中參考答案:A32.有以下程序(注:字符a的ASCII碼值為97):#include<stdio.h>main(){char*s={"abc"};do{printf("%d",*s%10);++s;}while(*s);}程序運行后的輸出結果是()。A)789B)abcC)7890D)979899參考答案:A33.設有如下函數定義:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執行調用語句:n=fun(3);,則函數fun總共被調用的次數是()。A)2B)3C)4D)5參考答案:B34.有以下程序:#include<stdio.h>intf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn){staticinta=1;n+=a++;returnn;}程序運行后的輸出結果是()。A)9B)8C)7D)10參考答案:A35.設有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則以下賦值語句中錯誤的是()。A)data2=(2,6);B)data2=data1;C)data2.real=data1.real;D)data2.real=data1.unreal;參考答案:A36.有以下程序:#include<stdio.h>structS{intn;inta[20];};voidf(structS*p){inti,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d,",s.a[i]);}程序運行后的輸出結果是()。A)2,3,1,6,8,7,5,4,10,9,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,4,5,6,7,8,9,10,D)10,9,8,7,6,1,2,3,4,5,參考答案:C37.有以下程序:#include<stdio.h>structS{intn;inta[20];};voidf(structS*p){inti,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d,",s.a[i]);}程序運行后的輸出結果是()。A)2,3,1,6,8,7,5,4,10,9,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,4,5,6,7,8,9,10,D)10,9,8,7,6,1,2,3,4,5,參考答案:C38.以下關于宏的敘述中正確的是()。A)宏替換沒有數據類型限制B)宏定義必須位于源程序中所有語句之前C)宏名必須用大寫字母表示D)宏調用比函數調用耗費時間參考答案:A39.設有以下語句:inta=1,b=2,c;c=a^(b<<2);執行后,c的值為()。A)7B)9C)8D)6參考答案:B40.#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運行結果是()。A)321B)12300C)1D)123參考答案:D2025年全國計算機二級等級考試模擬試卷及答案(第四套)1.下列數據結構中,屬于非線性結構的是()。A)循環隊列B)帶鏈隊列C)二叉樹D)帶鏈棧參考答案:C2.下列數據結構中,能夠按照"先進后出"原則存取數據的是()。A)循環隊列B)棧C)隊列D)二叉樹參考答案:B3.對于循環隊列,下列敘述中正確的是()。A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針參考答案:D4.算法的空間復雜度是指()。A)算法在執行過程中所需要的計算機存儲空間B)算法所處理的數據量C)算法程序中的語句或指令條數D)算法在執行過程中所需要的臨時工作單元數參考答案:A5.軟件設計中劃分模塊的一個準則是()。A)低內聚低耦合B)高內聚低耦合C)低內聚高耦合D)高內聚高耦合參考答案:B6.下列選項中不屬于結構化程序設計原則的是()。A)可封裝B)自頂向下C)模塊化D)逐步求精參考答案:A7.軟件詳細設計生產的圖如下:該圖是()A)N-S圖B)PAD圖C)程序流程圖D)E-R圖參考答案:C8.數據庫管理系統是()。A)操作系統的一部分B)在操作系統支持下的系統軟件C)一種編譯系統D)一種操作系統參考答案:B9.在E-R圖中,用來表示實體聯系的圖形是()。A)橢圓形B)矩形C)菱形D)三角形參考答案:C10.有三個關系R、S和T如下:則關系T是由關系R和S通過某種操作得到,該操作為()。A)選擇B)投影C)交D)并參考答案:D11.以下關于結構化程序設計的敘述中正確的是A)結構化程序使用goto語句會很便捷B)在C語言中,程序的模塊化是利用函數實現的C)一個結構化程序必須同時由順序、分支、循環三種結構組成D)由三種基本結構構成的程序只能解決小規模的問題參考答案:B12.對于一個正常運行的C程序,以下敘述中正確的是A)程序的執行總是從main函數開始,在程序的最后一個函數中結束B)程序的執行總是從程序的第一個函數開始,在main函數結束C)程序的執行總是從main函數開始D)程序的執行總是從程序的第一個函數開始,在程序的最后一個函數中結束參考答案:C13.以下選項中能表示合法常量的是A)1,200B)1.5E2.0C)'\'D)"\007"參考答案:D14.以下定義語句中正確的是A)inta=b=0;B)charA=65+1,b='b';C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;參考答案:B15.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是A)x+1=yB)++x,y=x--C)x=x+10=x+yD)double(x)/10參考答案:B16.若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是(注:□代表一個空格符)A)1,2,3<回車>B)□□□1,2,3<回車>C)1,□□□2,□□□3<回車>D)1□2□3<回車>參考答案:D17.以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)A)printf("%c\n",'a'-32);B)printf("%d\n",'A');C)printf("%c\n",65);D)printf("%c\n",'B'-1);參考答案:B18.若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能確定參考答案:A19.設有定義:inta=1,b=2,c=3;以下語句中執行效果與其它三個不同的是A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}參考答案:C20.有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執行后的輸出結果是A)y=0B)y=-1C)y=1D)while構成無限循環參考答案:B21.有以下程序#include<stdio.h>main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結果是A)1*1=11*2=21*3=32*2=42*3=63*3=9B)1*1=11*2=21*3=32*1=22*2=43*1=3C)1*1=11*2=22*2=41*3=32*3=63*3=9D)1*1=12*1=22*2=43*1=33*2=63*3=9參考答案:A22.有以下程序#include<stdio.h>main(){inti=5;do{if(i%3==1)if(i%5==2){printf("*%d",i);break;}i++;}while(i!=0);printf("\n");}程序的運行結果是A)*2*6B)*3*5C)*5D)*7參考答案:D23.有以下程序#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%3.0f\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結果是A)500B)401C)503D)1404參考答案:C24.若有以下函數首部intfun(doublex[10],int*n)則下面針對此函數的函數聲明語句中正確的是A)intfun(double,int);B)intfun(double*,int*);C)intfun(double*x,intn);D)intfun(doublex,int*n);參考答案:B25.有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序運行后的輸出結果是A)2,1,1,2B)1,2,1,2C)2,1,2,1D)1,2,2,1參考答案:D26.若有以下定義intx[10],*pt=x;則對x數組元素的正確引用是A)pt+3B)*&x[10]C)*(pt+10)D)*(x+3)參考答案:D27.有以下程序#include<stdio.h>main(){inti,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);}程序執行后的輸出結果是A)20B)25C)45D)36參考答案:B28.有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i];}main(){intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序的運行結果是A)1,0,7,0,B)1,2,3,4,C)1,4,5,9,D)3,4,8,10,參考答案:A29.設有定義:char*c;以下選項中能夠使c正確指向一個字符串的是A)charstr[]="string";c=str;B)scanf("%s",c);C)c=getchar();D)*c="string";參考答案:A30.若有定義語句:chars[10]="1234567\0\0";則strlen(s)的值是A)7B)8C)9D)10參考答案:A31.有以下程序#include<stdio.h>#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序運行后的輸出結果是A)11B)9C)6D)7參考答案:C32.有以下程序(說明:字母A的ASCII碼值是65)#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(){chara[]="BYTE";fun(a);printf("\n");}程序運行后的輸出結果是A)BTB)YEC)YTD)BY參考答案:B33.有以下程序#include<stdio.h>intfun(){staticintx=1;x+=1;returnx;}main(){inti,s=1;for(i=1;i<=5;i++)s+=fun();printf("%d\n",s);}程序運行后的輸出結果是A)120B)11C)6D)21參考答案:D34.有以下程序#include<stdio.h>voidfun2(chara,charB){printf("%c%c",a,b);}chara='A',b='B';voidfun1(){a='C';b='D';}main(){fun1();printf("%c%c",a,b);fun2('E','F');}程序的運行結果是A)ABEFB)CDEFC)ABCDD)CDAB參考答案:B35.以下關于typedef的敘述錯誤的是A)用typedef可以增加新類型B)typedef只是將已存在的類型用一個新的名字來代表C)用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名D)用typedef為類型說明一個新名,通常可以增加程序的可讀性參考答案:A36.程序中已構成如下圖所示的不帶頭結點的單向鏈表結構,指針變量s、p、q均已正確定義,并用于指向鏈表結點,指針變量s總是作為指針指向鏈表的第一個結點。若有以下程序段 q=s; s=s->next;p=s; while(p->next)p=p->next; p->next=q;q->next=NULL;該程序段實現的功能是A)刪除尾結點B)尾結點成為首結點C)刪除首結點D)首結點成為尾結點參考答案:D37.有以下程序#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運行后的輸出結果是A)33B)197C)143D)28參考答案:C38.若有以下程序段intr=8;printf("%d\n",r>>1);輸出結果是A)16B)8C)4D)2參考答案:C39.以下敘述中錯誤的是A)gets函數用于從終端讀入字符串B)getchar函數用于從磁盤文件讀入字符C)fputs函數用于把字符串輸出到文件D)fwrite函數用于以二進制形式輸出數據到文件參考答案:B40.有以下程序#include<stdio.h>main(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執行后abc.dat文件的內容是A)ChinaB)ChinangC)ChinaBeijingD)BeijingChina參考答案:B2025年全國計算機二級等級考試模擬試卷及答案(第五套)1下列敘述中正確的是()。A)線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的B)線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構C)線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構D)線性表的鏈式存儲結構與順序存儲結構在存儲空間的需求上沒有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論