國家二級(C語言)筆試模擬試卷6(共497題)_第1頁
國家二級(C語言)筆試模擬試卷6(共497題)_第2頁
國家二級(C語言)筆試模擬試卷6(共497題)_第3頁
國家二級(C語言)筆試模擬試卷6(共497題)_第4頁
國家二級(C語言)筆試模擬試卷6(共497題)_第5頁
已閱讀5頁,還剩117頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)筆試模擬試卷6(共9套)(共497題)國家二級(C語言)筆試模擬試卷第1套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、算法的時間復雜度是指()。A、執(zhí)行算法程序所需要的時間B、算法程序的長度C、算法執(zhí)行過程中所需要的基本運算次數(shù)D、算法程序中的指令條數(shù)標準答案:4知識點解析:所謂的算法的時間復雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量算法的工作量。2、下列描述中,不是線性表順序存儲結構特征的是()。A、不便于插入和刪除B、需要連續(xù)的存儲空間C、可隨機訪問D、需另外開辟空間來保存元素之間的關系標準答案:8知識點解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。3、按照“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是()。A、隊列B、棧C、雙向鏈表D、二叉樹標準答案:2知識點解析:棧是一種特殊的線性表,其插入和刪除運算都只在線性表的一端進行,而另一端是封閉的。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的,是按先進后出的原則組織數(shù)據(jù)的。4、有下列二叉樹,對此二叉樹前序遍歷的結果為()。A、ACBEDGFHB、ABDGCEHFC、HGFEDCBAD、ABCDEFGH標準答案:2知識點解析:對二叉樹的前序遍歷是指:先訪問根結點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結點,再依次訪問其左、右子樹。5、對建立良好的程序設計風格,下列描述正確的是()。A、程序應該簡單、清晰、可讀性好B、符號名的命名只需要符合語法C、充分考慮程序的執(zhí)行效率D、程序的注釋可有可無標準答案:1知識點解析:“清晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。6、下列不屬于軟件工程的3個要素的是()。A、工具B、過程C、方法D、環(huán)境標準答案:8知識點解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。7、下列選項中不屬于軟件生命周期開發(fā)階段任務的是()。A、軟件測試B、概要設計C、軟件維護D、詳細設計標準答案:4知識點解析:軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。其中軟件定義階段的主要工作有可行性研究與計劃制定和需求分析等;軟件開發(fā)階段的主要工作有概要設計、詳細設計和測試等:軟件運行維護階段的主要工作是軟件的運行及后期的維護等。8、使用白盒測試法時,確定測試數(shù)據(jù)應該根據(jù)()和指定的覆蓋標準。A、程序的內(nèi)部邏輯B、程序的復雜結構C、使用說明書D、程序的功能標準答案:1知識點解析:白盒測試是把測試對象看作是一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結構及相關信息來設計或選擇測試用例,對程序所有的邏輯路徑進行測試。所以,白盒測試的對象基本上是源程序,以程序的內(nèi)部邏輯和指定的覆蓋標準測試數(shù)據(jù)。9、數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。A、DB包括DBS和DBMSB、DBMS包括DB和DBSC、DBS包括DB和DBMSD、沒有任何關系標準答案:4知識點解析:數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺5個部分組成,可見DB和DBMS都是DBS的組成部分。10、對關系S和只進行集合運算,結果中既包含S中的所有元組也包含只中的所有元組,這樣的集合運算稱為()。A、并運算B、交運算C、差運算D、積運算標準答案:1知識點解析:關系的并運算是指,由結構相同的兩個關系合并,形成一個新的關系,其中包含兩個關系中的所有元組。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、下列敘述錯誤的是()。A、在C語言中的保留字必須小寫B(tài)、變量的存儲類型決定了變量的存儲位置及其生存期C、宏定義以#define開頭,行未必須加分號D、在C語言中的注釋行可以出現(xiàn)在程序的任何位置標準答案:4知識點解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫:②變量的存儲類型不同,其存儲位置和生存期也不一樣;③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。12、若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()A、%、sizeof、>、<<、=B、sizeof、%、>、=、<<C、sizeof、<<、>、%、=D、sizeof、%、<<、>、=標準答案:8知識點解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、<,優(yōu)先級最低的是“=”。13、已知inta=2,b=3;則執(zhí)行表達式a=a<b后,變量a的值為()。A、0B、1C、2D、3標準答案:2知識點解析:先計算關系表達a<b=2<3)為真(表達式為真時,如果變量為int型變量則真用1表示,假用0表示),即a=1。14、假定w、x、y、m均為int型變量,則執(zhí)行下列的語句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;A、3B、4C、5D、6標準答案:1知識點解析:條件表達式“a?b:c”的含義是:當a為真時,其值等于表達式b的值,當a為假時,其值等于表達式c的值。第一個表達式:w=6<x=4為假,所以返回x的值,即m=x=4;第二個表達式:m=4<y=3為假,所以返回y的值,即m=y=3。15、若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。A、b=double(b);B、++b;C、a=a++5;D、a=double(b);標準答案:2知識點解析:要解答此題只要知道兩個知識點:①在C語言中規(guī)定進行強制類型轉(zhuǎn)換的格式是:(double)變量名;②在C語言中不允許給表達式賦值。16、執(zhí)行下列程序中的輸出語句后,a的值是()。main(){inta;printf("%d\n",(a=2*3,a*5,a+7));}A、17B、37C、6D、13標準答案:4知識點解析:本題考查逗號表達式.本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。17、若有下列定義(設int類型變量占2個字節(jié)):inti=8;則下列語句:.printf("i=%08d",i);輸出的結果是()。A、i=8,B、i=00000008,C、i=08,D、8標準答案:2知識點解析:本題考查printf函數(shù)的格式。“%08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”“8”表示指定數(shù)據(jù)的輸出寬度為8位。18、兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}A、4和2B、4和1C、4和0D、3和1標準答案:1知識點解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀)x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。19、運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結果是()。main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=-b;b=c;c=t;}printf("%f\n%f\n%f/n",a,b,c);}A、1.002.003.00B、1.003.002.00C、132D、3.0000002.0000001.000000標準答案:8知識點解析:本題考查if語句。第1個if語句,實現(xiàn)如果a<b,則交換a、b值的功能;第2個if語句,實現(xiàn)如果a<c,則交換a、c的值的功能:第3個if語句,實現(xiàn)如果b<c,則交換b,c的值的功能。3個if語句結合起來實現(xiàn)的功能就是將a、b、c按從大到小排序。20、下列能正確定義一維數(shù)組的選項是()。A、inta[5]={0,1,2,3,4,5}B、chara[]={0,1,2,3,4,5};C、chara={’A’,’B’,’C’};D、inta[5]="0123";標準答案:2知識點解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C;選項D)中整型數(shù)組,中只能存儲整型數(shù)據(jù),而不能存儲字符串常量“0123”。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。A、不確定的值B、一個整數(shù)C、形參p中存放的值D、形參p的地址值標準答案:2知識點解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。22、下列程序的輸出結果是()。#include<stdio.h>main(){inta=2,b=3,p;p=f(a,b);printf("%d",p);}intf(a,b){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}A、-1B、0C、1D、2標準答案:1知識點解析:本題考查ifelse語句。在intf(a,b)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句;第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。23、有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結果是()。A、5,5B、5,11C、11,11D、11,5標準答案:2知識點解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。24、下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0,j=1;i<j+1;i+=1,j--)printf("%d\n",j);}A、3B、2C、1D、0標準答案:4知識點解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結束循環(huán)。25、設變量x和y均已正確定義并賦值。下列if語句中,在編譯時將產(chǎn)生錯誤信息的是()。A、if(x++);B、if(x>y&&y!=0);C、if(x>0)x--elsey++;D、if(y<0){;}elsex++;標準答案:4知識點解析:選項A)和選項B)在條件判斷語句的后面是空語句,什么都不做;在選項D)if后面是一個復合空語句;而在選項C)中,在x--后面少了一個分號,所以程序段在編譯時,會出現(xiàn)語法錯誤。26、下列字符數(shù)組初始化語句中,不正確的是()。A、charc[]=’goodmoming’;B、charc[20]="goodmorning";C、charc[]={’a’,’b’,’c’,’d’};D、charc[]={"goodmoming"};標準答案:1知識點解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數(shù)組來存儲字符串。選項A)中一個單引號內(nèi)放了若干個字符是錯誤的:選項B)和選項D)選項中將一個字符串賦值給一個字符數(shù)組是允許的。27、下列程序的輸出結果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}A、3B、4C、2D、5標準答案:2知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結果為3+1=4。28、下列程序的運行結果為()。#include<stdio.h>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!=’\0’;i++)if(str[i]!=’a’)str[j++]=str[i];str[j]=’\0’;}voidmain(){charstr[]="abcdef";abc(str);printf("str[]%s",str);}A、str[]=bcdefB、str[]=abcdefC、str[]=aD、str[]=ab標準答案:1知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結果。29、變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。A、&m=8B、*p=8C、*p=1010D、p=&m標準答案:8知識點解析:指針變量是通過指向變量地址來指定變量值的。這里只要取m的地址賦給p,即可實現(xiàn)使p為指向m的指針變量。30、在下列語句中,其含義為“q為一個指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。A、int**q;B、int(*q)();C、int*q;D、int*q();標準答案:2知識點解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。31、下列二維數(shù)組初始化語句中,不正確的是()。A、intb[][2]={1,2,3,4,5,6,7};B、intb[3][5]={0,0,0};C、intb[][4]={{1,2},{3,4,5},{6}};D、intb[3][2]={(1,2),(3,4),(5,6)};標準答案:8知識點解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。在選項D)賦值表達式中對每一維的元素賦初值應用(),而不是()。32、下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inta[10]={1,2;3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運行后的輸出結果是()。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,C、1,8,7,6,5,4,3,2,9,10,D、1,2,10,9,8,7,6,5,4,3,標準答案:4知識點解析:本程序中的函數(shù)sort(inta[],intn)實現(xiàn)的功能是將數(shù)組a中的前n個數(shù)進行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個數(shù)進行從大到小排序,其他數(shù)不變。33、下列判斷正確的是()。A、chara="ABCD";等價于char*a;*a="ABCD";B、charstr[10]={"ABCD"};等價于charstr[10];str[]={"ABCD"};C、char*s="ABCD";等價于chars;*s="ABCD";D、charc[5]="ABCD",d[5]="ABCD";等價于charc[5]=d[5]="ABCD";標準答案:8知識點解析:a="ABCD"書寫錯誤,因為“;”左邊不能出現(xiàn)常量;數(shù)組名s是代表s數(shù)組首地址的地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。34、下列語句中,在字符串s1和s2相等時顯示“theyareEqual”的是()。A、if(*s1==*s2)puts("theyareEqual");B、if(!strcmp(s1,s2))puts("theyareEqual");C、if(s1==s2)Puts("theyareEqual");D、if(strcmp(s1,s2))puts("theyareEqual");標準答案:2知識點解析:字符串比較不能用兩個等于號(==)來進行比較,應使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能是:當字符串s1和s2相等時,返回值為0。因此,當表達式!strcmp(s1,s2)=1時,條件成立,執(zhí)行后面的語句,輸出theyareEqual。35、下列敘述中錯誤的是()。A、在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值B、在C語言中,在調(diào)用函數(shù)時,實參和對應形參在類型上只需賦值兼容C、在C語言中,外部變量的隱含類型是自動存儲類別D、在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量標準答案:4知識點解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。36、下列程序的輸出結果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)putchar(’\n’)main(){intx=2;P(F(5)*x);}A、12B、13C、14D、16標準答案:1知識點解析:本題考查帶參數(shù)的宏的定義及相關運算。P(F(5)*x)=P(2.84+5*2)=P(12.84),調(diào)用w(12.84),輸出(int)(12.84)=12。37、若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;A、st.iB、*p.iC、(*p).iD、p->i標準答案:2知識點解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式即(*p).i和p->i。38、下列說法錯誤的是()。A、下列結構體定義時,占據(jù)了5個字節(jié)的空間structstudent{intnum;intage;charsex;}B、結構體的成員名可以與程序中的變量名相同C、對結構體中的成員可以單獨使用,它的作用相當于普通變量D、結構體可以嵌套定義標準答案:1知識點解析:本題主要考查定義結構體的幾個特點:①結構的定義明確了結構的組成形式,定義了一種C語言中沒有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時候結構的定義并不會使系統(tǒng)為該結構分配內(nèi)存空間,只有在說明結構變量時才分配內(nèi)存空間;②結構體的成員名可以與程序中的變量名相同:③結構體中的成員可以單獨使用,它的作用相當于普通變量;④結構體可以嵌套定義。39、若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。A、10011000B、10001100C、10101000D、10110000標準答案:1知識點解析:本題主要考查運算表達式的運算。3+(int)(x)的結果是10011010,~3的結果是11111100,二者邏輯與得10011000。40、若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。A、wbB、wb+C、rb+D、rb標準答案:2知識點解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件;方式“rb”為輸入打開一個二進制文件。四、公共基礎填空題(本題共5題,每題1.0分,共5分。)41、軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。標準答案:軟件開發(fā)知識點解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設計、詳細設計、編碼和測試)、軟件維護期(即運行維護階段)。42、結構化分析方法是面向______進行分析的方法。標準答案:數(shù)據(jù)流知識點解析:結構化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。43、常用的軟件結構設計工具是結構圖(SC),也稱程序結構圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。標準答案:模塊知識點解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。44、在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果。標準答案:驅(qū)動模塊知識點解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅(qū)動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動模塊,后者稱為承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。45、診斷和改正程序中錯誤的工作通常稱為______。標準答案:調(diào)試知識點解析:程序設計的任務是診斷和改正程序中的錯誤。程序調(diào)試活動由兩部分組成,其一是根據(jù)錯誤的跡象確定程序中錯誤的確切性、原因和位置;其二是對程序進行修改,排除這個錯誤。五、填空題(本題共10題,每題1.0分,共10分。)46、表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。標準答案:float知識點解析:在此表達式中x是float類型的變量,經(jīng)過開方所得到的結果仍是float類型,再和2.8進行運算時,應該先將2.8轉(zhuǎn)換成float類型再運算,最后結果仍是float型。47、下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。標準答案:(y%4==0)&&(y%100!=0)‖(y%400==0)知識點解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%1001=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。48、下列程序的運行結果是______。#include<stdio.h>main(){inta=10,b=3;printf("%d,",a%b);printf("%d,",(a-b,a+b));printf("%d\n",a-b?a-b:a+b);}標準答案:1,13,7知識點解析:本題考查3個知識點:①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結果為最后一個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結果為7。49、要求使下列程序輸出5個整數(shù),請?zhí)羁?。for(i=0;i<=______;printf("%d\n",i+=2));標準答案:8知識點解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。50、下列的for語句的循環(huán)次數(shù)為______。for(x=1,y=0;(y!=19)&&(x<7);x++);標準答案:6知識點解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。51、函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從fp指向的文件中讀入,n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。標準答案:buf的首地址知識點解析:考查fgets()函數(shù)的功能,fgets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:fgets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fgets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結束標志,并以buf作為函數(shù)值返回。52、若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。標準答案:p+=2,*(p++)知識點解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。53、若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)g,結果是______。標準答案:-1知識點解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。54、在宏定義#definePI3.14159中,用宏名PI代替一個______。標準答案:字符串知識點解析:本題考查字符替換格式:#define標識符字符串。55、下列程序的輸出結果是______。#include<stdio.h>sb(ints[].intb){staticintn=3;b=s[n];n--;return(b);}main(){ints[]={1,5,6,8);inti,x=0;for(i=0;i<4;i++){x=sb(s,x);printf(:%d",x);}printf("\n");}標準答案:8651知識點解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。國家二級(C語言)筆試模擬試卷第2套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、從一個長度為n的順序表中刪除第i個元素(1≤i≤n)時,需向前移動______個元素。A、n-iB、n-i+1C、n-i-1D、i標準答案:1知識點解析:暫無解析2、從順序存儲的循環(huán)隊列中刪除一個元素時,是______。A、先移動隊首指針,后取出元素B、先取出元素,后移動隊首指針C、先移動隊尾指針,后取出元素D、先取出元素,后移動隊尾指針標準答案:1知識點解析:暫無解析3、假定在一棵二叉樹中,雙分支結點數(shù)為15個,單分支結點數(shù)為32個,則葉結點數(shù)為______個。A、15B、16C、17D、47標準答案:2知識點解析:暫無解析4、在以下術語中,與數(shù)據(jù)的邏輯結構無關的是______。A、線性結構B、鏈式結構C、樹型結構D、網(wǎng)狀結構標準答案:2知識點解析:暫無解析5、軟件工程的結構化生命周期方法,通常是將軟件生命周期劃分為計劃、開發(fā)和運行3個時期,下列選項中的______工作應屬于軟件開發(fā)期的內(nèi)容。①需求分析②可行性研究③總體設計④問題定義A、①和②B、①和③C、①、②和④D、全部標準答案:2知識點解析:暫無解析6、數(shù)據(jù)管理技術隨著計算機技術的發(fā)展而發(fā)展。數(shù)據(jù)庫階段具有許多特點,但下面列出的特點中,______不是數(shù)據(jù)庫階段的特點。A、數(shù)據(jù)結構化B、數(shù)據(jù)面向應用程序C、數(shù)據(jù)共享性高D、數(shù)據(jù)具有較高的獨立性標準答案:2知識點解析:暫無解析7、下列描述中,錯誤的一條是______。A、已知a=3、b=2、c=l,則表達式(a>b)氣的值為1B、C語言的表達式能構成語句C、表達式(x1=3*5,x1*4),x1+5的值為20D、表達式x1=(b=4)+(c=6)的值為6標準答案:8知識點解析:暫無解析8、執(zhí)行下列語句后的輸出結果為______。enum{x1=3,b=4,C,d,e}data;printf("%d",data=d);A、6B、7C、8D、9標準答案:1知識點解析:暫無解析9、以下敘述中,正確的是______。A、輸入項可以是一個實型常量,例如:scanf("%f",3.5);B、只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");C、當輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&d);D、當輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf("%f",&f);標準答案:8知識點解析:暫無解析10、設x、y、t均為int型變量,執(zhí)行以下語句后,y的值為______。x=y=3;t=++x||++y;A、不定值B、4C、3D、1標準答案:4知識點解析:暫無解析二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、下列程序的輸出結果是______。#include<stdio.h>main(){printf("%d\n",NULL);}A、不確定(因變量無定義)B、0C、-1D、1標準答案:2知識點解析:暫無解析12、下列敘述中,正確的一條是______。A、C語言以函數(shù)為程序的基本單位,便于實現(xiàn)程序的模塊化B、C程序的執(zhí)行總是從程序的第一句開始C、C程序中可以不使用函數(shù)D、C語言提供了一個輸入語句scanf和一個輸出語句printf標準答案:1知識點解析:暫無解析13、若有以下定義和語句,則輸出結果是(口代表空格)______。chars[10];s="abcd";printf("%s\n",s);A、輸出abcdB、輸出aC、輸出abcd口口口口口D、編譯不通過標準答案:8知識點解析:暫無解析14、設x、y\z和k都是int型變量,執(zhí)行表達式x=(y=4,z=16,k=32)后,x的值為______。A、4B、16C、32D、52標準答案:4知識點解析:暫無解析15、下列變量定義中,合法的是______。A、short_a=1-.le-1;B、doubleb=1+5e2.5;C、longdo=0xfdaL;D、float2_and=l-e-3;標準答案:1知識點解析:暫無解析16、用scanf("%d,%d",&a,&b)輸入數(shù)據(jù)時,下面輸入法中,正確的是______。A、123,4B、1234C、123;4D、123:4標準答案:1知識點解析:暫無解析17、下列程序的輸出結果是______。main(){inti;for(i=0;i<2;i++)add();}add(){intx=0;staticinty=0;printf("%d,%d\n",x,y);x++;y=y+2;}A、0,00,0B、0,00,2C、0,01,0D、0,01,2標準答案:2知識點解析:暫無解析18、下列數(shù)據(jù)中,不能存放在動態(tài)存儲區(qū)中的是______。A、函數(shù)形參變量B、局部自動變量C、函數(shù)調(diào)用時的現(xiàn)場保護和返回地址D、局部靜態(tài)變量標準答案:8知識點解析:暫無解析19、下列程序的輸出結果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);A、1010B、1212C、1110D、1113標準答案:8知識點解析:暫無解析20、語句“printf("%d",(a=2)&&(b=-2);”的輸出結果是______。A、無輸出B、結果不確定C、-1D、1標準答案:8知識點解析:暫無解析三、選擇題(2分)(本題共10題,每題1.0分,共10分。)21、以下程序的輸出結果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}A、1B、2C、3D、4標準答案:1知識點解析:暫無解析22、若輸入1.5、2.5,則以下程序的運行結果為______。main(){floata,b;intc;scanf("%f,%f,",&a,&b);c=max(a,b);printf("%d",c);}max(x,y)floatx,y;{floatz;z=x>y?x:y;return(z);}A、1.5B、2.5C、2D、3標準答案:4知識點解析:暫無解析23、程序運行結果為______。#defineR3.0#definePI3.1415926#defineL2*PI*R#defineSPI*R*Rmain(){printf("L=%fS=%f\n",L,S);}A、L=18.849556S=28.274333B、18.849556=18.84955628.274333=28.274333C、L=18.84955628.274333=28.274333D、18.849556=18.849556S=28.274333標準答案:1知識點解析:暫無解析24、如果要限制一個變量只能為本文件所使用,必須通過______來實現(xiàn)。A、外部變量說明B、靜態(tài)內(nèi)部變量說明C、靜態(tài)外部變量說明D、局部變量說明標準答案:4知識點解析:暫無解析25、在下列敘述中,正確的一條是______。A、如果形參發(fā)生改變,不會改變主調(diào)函數(shù)的實參值B、在C語言中,函數(shù)可以遞歸調(diào)用或遞歸定義C、數(shù)組名作函數(shù)參數(shù)時,也采用“值傳送”方式D、預處理時,宏名用字符串代替,并檢查語法正確與否標準答案:1知識點解析:暫無解析26、以下程序的輸出結果是______。#include<stdio.h>structstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}A、ZhangB、ZhaoC、WangD、18標準答案:2知識點解析:暫無解析27、以下程序的輸出結果是______。main(){chara[]="programming",b[]="language";char*p1,*p2;inti;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}A、gmB、rgC、orD、ga標準答案:8知識點解析:暫無解析28、以下C程序的運行結果為______。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}A、sum=10B、sum=55C、sum=100D、sum=88標準答案:2知識點解析:暫無解析29、以下程序的運行結果為______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}A、1123581321B、1122551010C、1258981321D、0112451521標準答案:1知識點解析:暫無解析30、在下列敘述中,正確的一條是______。A、對while循環(huán)、do…while循環(huán)和for循環(huán),可以用continue語句跳出循環(huán)B、表達式1+2<<3和sizeof(3.8)的結果分別為24和8C、函數(shù)fputc(c,stdout)與putchax(c)的結果相同D、在有參函數(shù)中,定義函數(shù)中指定的形參變量在整個程序一開始執(zhí)行時便分配內(nèi)存單元標準答案:4知識點解析:暫無解析四、公共基礎填空題(本題共5題,每題1.0分,共5分。)31、十六進制數(shù)100轉(zhuǎn)換成十進制數(shù)為【】。標準答案:256知識點解析:暫無解析32、對二叉排序樹進行查找的方法是:用待查的值與根結點的值相比,若比根小,則繼續(xù)在【】子樹中找。標準答案:左知識點解析:對二叉排序樹進行查找,若待查的值與根結點的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。33、自盒測試方法重視【】的度量。標準答案:測試覆蓋率知識點解析:白盒測試又稱為結構測試。白盒測試作為對結構的測試,要求對被測程序的各種結構特性進行測試,這種情況被稱為覆蓋,故白盒測試又稱為“基于覆蓋的測試”。白盒測試方法重視測試覆蓋率的度量,力求提高覆蓋率,從而找出被測程序的錯誤。34、下面程序的輸出是【】。main(){inta[]={2,4,6},*ptr=&a[0],x=8,y,z;for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;printf("%d\n",z);}標準答案:6知識點解析:本題變量z的值應為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]35、在雙鏈表中每個結點有兩個指針域:一個指向【】,另一個指向【】。標準答案:前趨結點后繼結點知識點解析:暫無解析五、填空題(本題共14題,每題1.0分,共14分。)36、表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。標準答案:x>5||x<-5或x<-5||x>5知識點解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于-5,用C語言表示即為:x>5||-5或者x<-5||x>5。故本題答案為:x>5||x<-5或者x<-5||x>5。37、以下程序的輸出結果是【】。main(){unsignedshorta=65536;intb;printfC%d\n",b=a);}標準答案:0知識點解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。38、若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。c=(a-=(b-5));c=(a%11)+(b=3);標準答案:3知識點解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達式中,也只有賦值表達式b=3改變了b的值。所以兩行語句抽行完畢,b的值應該為3。39、以下程序運行后的輸出結果是【】。main(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}標準答案:3知識點解析:條件表達式的一般形式為:表達式1?表達式2:表達式3條件運算符的執(zhí)行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執(zhí)行p/10,結果為3。40、函數(shù)pi的功能是根據(jù)以下近似公式求π值:(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)現(xiàn)在請你在下面的函數(shù)中填空,完成求π的功能。#include"math.h"{doubles=0.0;longi;for(i=1;i<=n;i++)s=s+【】;return(sqrt(6*s));}標準答案:1.0/(i*i)或(double)1/(i*i)知識點解析:表達式1+1/(2*2)+1/3*3+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)n即:∑1÷(i×i)i=1對應的C語言的表達式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i*i)返回值為其值截尾取整,即恒為0。41、函數(shù)pi的功能是根據(jù)以下公式近似求得的:pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)請在下面的函數(shù)中天空,完成求pi的功能。#include<math.h>doublepi(longn){doubles=0.0,longi;for(i=1;i<<=n;i++)s=s+【】;return(sqrt(6*s));}標準答案:1.0/i/i或1.0/(i*i)知識點解析:由題面中提供的計算pi的公式可知:在第i項其值為1/(i*i),考慮到運算結果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應填1.0/(i*i)或其等效形式。42、若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。while((ch=getchar())==’e’)printf("*");標準答案:0知識點解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是’a’,因此條件(ch=getchar())==’e’為假,這個循環(huán)不會被執(zhí)行。43、以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結果傳回,請?zhí)羁?。voidfunc(intx,inty,【】z){*z=x+y;}標準答案:int*知識點解析:從題中代碼可知:z應該是一個整型指針,因此應填int*。44、若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。intw[10]={23,54,10,33,47,98,72,80,61},*p=w;標準答案:p[5]或*(p+5)知識點解析:98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種寫法:p[5]、*(p+5)。45、設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】。要求形參名為b。main(){doubles[10][22];intn;……fun(s);……}標準答案:voidfun(doubleb[10][22])知識點解析:本題答案:voidfun(doubleb[10][22])。46、有以下程序:intf(intn){if(n==1)retum1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結果是【】。標準答案:3知識點解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時循環(huán)結束,程序運行后的輸出結果是3。47、以下程序的輸出結果是【】。voidfun(){staticinta=0;a+=2;printf("%d",a);}main(){intcc;for(cc=1;cc<4;cc++)fun();printf(""\n");}標準答案:246知識點解析:循環(huán)for(cc=1;cc<4;cc++)被執(zhí)行了3次。在函數(shù)fun中,由于a是static型變量,所以函數(shù)第1次調(diào)用后,a=2;第2次調(diào)用后,a=4;第3次調(diào)用后,a=6。48、以下程序的輸出結果是【】。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2,c=3,d=3,t;t=MAX(a+b,e+d)*10;printf("%d\n",t);}標準答案:7知識點解析:在C語言中,宏定義是直接替換的,所以在對表達式MAX(a+b,c+d)*l0進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+9d)*10)的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。49、實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。#include<stdio.h>voidmain(intargc,char*argv[]){FILE*f1,*f2;if(argc<【】){printf("parametererror!\n");exit(0);}f1=fopen(argv[1],"r");f2=fopen(argv[2],"w");while(【】)fputc(fgetc(f1),f2);fclose(f1);fclose(f2);}標準答案:3!feof(f1)知識點解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。國家二級(C語言)筆試模擬試卷第3套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、在深度為5的滿二叉樹中,葉子結點的個數(shù)為()。A、32B、31C、16D、15標準答案:4知識點解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結點都有兩個子結點。這就是說,在滿二叉樹中,每層上的結點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結點,且深度為m的滿二叉樹有2m-1個結點。由此可知,本題中葉子結點的個數(shù)為25-1=16。2、若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。A、bdgcefhaB、gdbecfhaC、bdgaechfD、gdbehfca標準答案:8知識點解析:前序遍歷的第一個結點a為樹的根結點;中序遍歷中a左邊的結點為a的左子樹,a右邊的結點為a的右子樹;再分別對a的左右子樹進行上述兩步處理,直到每個結點都找到正確的位置。3、一些重要的程序語言(如Pascal語言)允許過程的遞歸調(diào)用,而實現(xiàn)遞歸調(diào)用中的存儲分配通常用()。A、棧B、堆C、數(shù)組D、鏈表標準答案:1知識點解析:一些較流行的程序語言允許過程的遞歸調(diào)用。遞歸調(diào)用就是過程調(diào)用本身。遞歸實現(xiàn)的是:當過程每一次執(zhí)行后,都能返回到最近一次調(diào)用它的過程中。這樣各調(diào)用點之間形成一種后進先出關系,而棧結構正適合來存儲這些調(diào)用點。4、軟件工程的理論和技術性研究的內(nèi)容主要包括軟件開發(fā)技術和()。A、消除軟件危機B、軟件工程管C、程序設計自動化D、實現(xiàn)軟件可重用標準答案:2知識點解析:軟件工程的目標是:在給定的成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標,軟件工程的理論和技術性研究的內(nèi)容主要包括軟件開發(fā)技術和軟件工程管理。5、開發(fā)軟件時對提高開發(fā)人員工作效率至關重要的是()。A、操作系統(tǒng)的資源管理功能B、先進的軟件開發(fā)工具和環(huán)境C、程序人員的數(shù)量D、計算機的并行處理能力標準答案:2知識點解析:軟件工程鼓勵研制和采用各種先進的軟件開發(fā)方法、工具和環(huán)境,工具和環(huán)境的使用又進一步提高了軟件的開發(fā)效率、維護效率和軟件質(zhì)量。6、在軟件測試設計中,軟件測試的主要目的是()。A、實驗性運行軟件B、證明軟件正確C、找出軟件中全部錯誤D、為發(fā)現(xiàn)軟件錯誤而執(zhí)行程序標準答案:8知識點解析:使用人工或自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。7、數(shù)據(jù)處理的最小單位是()。A、數(shù)據(jù)B、數(shù)據(jù)元素C、數(shù)據(jù)項D、數(shù)據(jù)結構標準答案:4知識點解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項。由若干數(shù)據(jù)項組成數(shù)據(jù)元素,而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體,數(shù)據(jù)結構是指數(shù)據(jù)之間的相互關系和數(shù)據(jù)運算。故正確答案為選項C)。8、索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標準答案:2知識點解析:內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結構與物理存取方法,如數(shù)據(jù)存儲的文件結構、索引、集簇及hash等存取方式與存取路徑。9、下述關于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是()。A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標準答案:1知識點解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應保持相同的值。10、數(shù)據(jù)庫系統(tǒng)的核心是()。A、數(shù)據(jù)庫B、數(shù)據(jù)庫管理系統(tǒng)C、模擬模型D、軟件工程標準答案:2知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、C語言規(guī)定,在一個源程序中,main函數(shù)的位置()。A、必須在最開始B、必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C、可以任意D、必須在最后標準答案:4知識點解析:C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)在程序中的位置可以是任意的。12、下列數(shù)據(jù)中,不合法的C語言實型數(shù)據(jù)的是()。A、0.123B、123e3C、2.1e3.5D、789.0標準答案:4知識點解析:在C語言中,實數(shù)有兩種表示形式。即十進制數(shù)形式和指數(shù)形式,在指數(shù)形式中,字母e的前面必須有數(shù)字,且e的后面必須是整數(shù)。e3,2.1e3.5,e3,e等都是不合法的指數(shù)形式,而123e3或123E3都代表123乘以10的3次方。13、下面四個選項中,均是不合法的用戶標識符的選項是()。A、AP_0doB、floatla0_AC、b-agotointD、_123tempint標準答案:4知識點解析:C語言規(guī)定的標識符只能由字母、數(shù)字和下劃線三種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中的"-"不是組成標識符的三種字符之一,所以,均是不合法用戶標識符的選項是C)。14、設變量a是int型,f是float型,i是double型,則表達式10+’a’+i*f值的數(shù)據(jù)類型為()。A、intB、floatC、doubleD、不確定標準答案:4知識點解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結果最終也是double型。15、能正確表示邏輯關系“a)10或a≤0”的C語言表達式是()。A、a>=10ora<=0B、a>=0|a<=10C、a>=10&&a<=0D、a>=10||a<=0標準答案:8知識點解析:本題考查C語言的邏輯表達式及邏輯或(“||”)運算符的用法?!皘|”表示或的意思,“|”是按位或的意思,“&&”表示且的意思,C語言中沒有“or”這種運算符。16、設以下變量均為int類型,表達式的值不為7的是()。A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)標準答案:4知識點解析:本題考查逗號表達式的用法。C語言中逗號“,”也是一種運算符,稱為逗號運算符。其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。逗號表達式的一般形式為:表達式1,表達式2,表達式3,……,表達式n,其值為表達式n的值。17、若有說明:int*p,m=5,n;以下正確的程序段是()。A、p=&n;scanf("%d",&p);B、p=&n;scanf("%d",*p)C、scanf("%d",&n);*p=6;D、p=&n;*p=m;標準答案:8知識點解析:“&”是求址運算符,“*”是指針變量說明符。選項A),B)應改為scanf("%d",p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,這樣做很危險,建議不使用。18、以下程序段的輸出結果是()。inta=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出錯,無結果標準答案:4知識點解析:在C語言中,對于不同類型的數(shù)據(jù)用不同的格式字符輸出,其中,“%d”是按整型數(shù)據(jù)的實際長度輸出,在“%md”中,m為指定的輸出字段的寬度,如果實際數(shù)據(jù)的位數(shù)小于m,則左端補以空格;若大于m,則按實際位數(shù)輸出。19、若變量a是int類型,并執(zhí)行了語句:a=’A’+1.6;則正確的敘述是()。A、a的值是字符’C’B、a的值是浮點型C、不允許字符型和浮點型相加D、a的值是字符’A’的ASCII碼值加上1標準答案:8知識點解析:字符“A”要轉(zhuǎn)換成相應的ASCII碼值,由于運算結果要賦值給int型變量,所以對1.6進行取整運算,最后a的值應是66。20、有如下程序:#include<stdio.h>main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結果是A、0B、1C、2D、3標準答案:4知識點解析:if語句嵌套使用時,else總是與它上面最近的if配對。因此,本題中先判斷(a<b),因為表達式的值為0,故不執(zhí)行下面的if語句,直接跳到printf行,c值沒有改變。三、選擇題(2分)(本題共30題,每題1.0分,共30分。)21、以下選項中,與k=n++完全等價的表達式是A、k=n,n=n+1B、n=n+l,k=nC、k=++nD、k+=n+1標準答案:1知識點解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價;選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達式和本題中表達式不等價;選項C中先計算表達式左邊的表達式++n的值,執(zhí)行++n后,左邊的表達式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達式和本題中的表達式不等價;選項D中表達式展開為k=k/(n+1),k的值發(fā)生了變化,所以這個表達式和本題中的表達式不等價.所以4個選項中A正確。22、要求以下程序的功能是計算main(){intn;floats;S=1.0;for(n=10;n>1;n--)s=S+1/n;printf("%6.4f\n",S);}程序運行后輸出結果錯誤,導致錯誤結果的程序行是A、s=1.0;B、for(n=10;n>1;n--)C、s=s+1/n;D、prind("%6.4f\n",s);標準答案:4知識點解析:程序中由于n為整型,所以1/n的結果始終為0,故程序最后輸出的結果為0,其結果錯誤,原因為在表達式1/n中1和n均為整型,所以應該將1改為1.0,這樣表達式1.0/n的值不為0,為該數(shù)學表達式的值,因此我們可以知道導致程序運行后輸出結果錯誤的行為s=s+1/n;,所以,4個選項中選項C符合題意。23、若有語句:char*line[5],以下敘述中正確的是A、定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量B、定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組C、定義line是一個指針數(shù)組,語句中的*號稱為間址運算符D、定義line是一個指向字符型函數(shù)的指針標準答案:1知識點解析:理解復雜定義要掌握兩點:一、右結合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應該選擇A。24、有以下程序main(){chara,b,C,*d;a=’\’;b=\\xbc’;c=’\0xab’;d="\0127";princf("%c%c%c%c\n",a,b,c,*D);}編譯時出現(xiàn)錯誤,以下敘述中正確的是A、程序中只有a=’\’;語句不正確B、b=’\xbc’;語句不正確C、d="\0127":語句不正確D、a=’\’;和c=’\0xab’;語句都不正確標準答案:8知識點解析:給字符變量賦值只能賦一個字符,包括轉(zhuǎn)義字符,語句“a=’\’”是錯誤的,因為“\”是轉(zhuǎn)義字符,應該用“\\”來表示,語句“B=’\xbc’;”是正確的,它是將一個用十六進制表示的轉(zhuǎn)義字符賦給一個字符型變量,故選項B不為所選;語句“c=\0xab;”是正確的,反斜線后的十六進制只可由小寫x開頭,不能用Ox。語句“d="\0127";”是正確的,可以給字符型指針變量賦一個字符串,其作用是讓該指針變量指向該字符串,故選項C不正確。所以,D選項為所選。25、有以下程序intfl(intx.ihty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:X;}main(){inta=4,b=3.c=5,d,e,f;d=fl{a,B);d=f1(d,C):e=f2{a,B);e=f2(e.C);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}執(zhí)行后輸出的結果是A、3,4,5B、13,4C、5,4,3D、3,5,4標準答案:4知識點解析:本題考核的知識點是函數(shù)的定義與函數(shù)調(diào)用。函數(shù)f1()的作用是返回形參x和y的較大值,函數(shù)f2()的作用是返回形參x和y的較小值,在main()函數(shù)中通過調(diào)用兩次f1()函數(shù),求得a、b、c的最大值并存放在變量d中,通過調(diào)用兩次f2()函數(shù),求得a、b、c的最小值并存放到變量e中.由程序可知d值為5,f的值為4,e的值為3,因此最后輸出的d,f、e的值為5、4,3。所以,C選項為所選。26、有以下程序:voidfun(char*a,char*B);{a=b;(*A)++;}main(){charc1=’A’,c2=’a’,*p1,*p2;p1=&cl;p2=&c2:fun(p1,p2);printf("%c%c\n",c1,c2);}程序運行后的輸出結果是A、AbB、aaC、AaD、Bb標準答案:1知識點解析:經(jīng)過分析得知fun()函數(shù)的功能:將形參9指向形參b所指的存儲空間,然后使形參a指向變量的值加1。在主函數(shù)中定義了字符型指針變量p1和p2,并讓它們分另別指向c1和c2.然后將p1、p2作為實參傳遞給形參a、b.在fun()函數(shù)中,首先讓指針變量p1向p2,然后p1指向的存儲空間的值加1,即讓變量c2加1為“b”,而c1的值沒有被改變,仍然是“A”。所以,4個選項中選項A符合題意。27、若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是A、p+1B、*(p+3)C、*(p+1)+3D、*(P[0]+2)標準答案:8知識點解析:本題中定義了一個二維數(shù)組c和一個指針數(shù)組p并初始化讓它指向c,顯然此時p中的各元素為地址,選項A中p+1,此時其中的1代表的長度是整個;維數(shù)組c的長度,故p+1將讓p指向c數(shù)組后面的元素,故不能引用c數(shù)組中的成員,故選項A錯誤;同理選項B和選項C都不正確,選項D中p[0]指的是指針數(shù)組中的第一個元素的地址即c的首地址,此時的1的長度代表的是數(shù)組c中一行的長度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)將代表第三行的第一個元素的地址,所以,4個選項中選項D符合題意。28、有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A、5B、6C、8D、9標準答案:8知識點解析:C語言中規(guī)定:一個數(shù)組名代表它的起始地址.本題中,定義了一個長度為10的數(shù)組a并賦初值,數(shù)組名a就是數(shù)組的起始地址,由于數(shù)組下標是從。開始,因此a[0]地址也是a的值,a[1]的地址可以用a+1表示,也就是說a+1指向數(shù)組a中下標為1的元素,同樣a+1是a[i]的地址,*p=&a[3]表明指針變量p指向元素a[3],即p指向數(shù)組a的第4個元素4,p[5]的值應為數(shù)組a中的第9個元素的值即a[8]的值,即p[5]=9,所以b=9。所以,4個選項中選項D符合題意。29、有以下程序main(){inti=1,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);程序運行后的輸出結果是A、123B、234C、223D、233標準答案:8知識點解析:在計算由&&或‖組成的邏輯表達式時一定要注意“短路”現(xiàn)象:&&是邏輯與,要兩邊的運算分量同時為真的時候表達式的值才為真,否則為假,若&&左邊的運算分量為假的時候,無論&&右邊的運算分量如何,整個&&表達式的結果都為假,因此C語言會忽略&&右邊的表達式;‖(邏輯或)也有同樣現(xiàn)象,當‖左邊為真時將忽略右邊的表達式。本題的關鍵點在于邏輯表達式i++==1&&(++j)==3‖k++==3的計算。因

溫馨提示

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

評論

0/150

提交評論