版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級C語言機試(選擇題)模擬試卷20(共9套)(共270題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、數(shù)據庫系統(tǒng)的核心是()。A、數(shù)據模型B、軟件開發(fā)C、數(shù)據庫設計D、數(shù)據庫管理系統(tǒng)標準答案:D知識點解析:數(shù)據庫管理系統(tǒng)DBMS是數(shù)據庫系統(tǒng)的核心。DBMS是負責數(shù)據庫的建立、使用和維護的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據庫命令以及應用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔著數(shù)據庫的安全保護工作,按照DBA所規(guī)定的要求,保證數(shù)據庫的完整性和安全性。2、有以下程序#includeintfun(inta,intb){if(b=0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序的運行結果是()。A、1B、2C、3D、4標準答案:B知識點解析:由程序可知,函數(shù)fun(inta,intb)是一個遞歸函數(shù)。所以當主函數(shù)中調用“fun(4,2)”時,其執(zhí)行過程如下“fun(4,2)->fun(3,1)->fun(2,0)”,其返回值為2。所以正確答案為選項B)。3、已知下面的程序段,正確的判斷是()。#defineM2#defineN(m)((M+1)*m)……x=3*(M+N(5));A、程序錯誤,不允許嵌套定義B、x=51C、x=25D、程序錯誤,宏定義不允許有參數(shù)標準答案:B知識點解析:C語言中的宏定義允許嵌套定義,也允許帶變量。在對源程序編譯時,先有一個預處理過程,其中一個任務就是替換宏定義。預處理程序掃描源程序若干遍,能夠識別出嵌套的宏定義和帶參數(shù)的宏定義。將參數(shù)代入整理得x=51。4、有以下程序,程序運行后的輸出結果是main(){intm=12,n=34;printf(“%d%d”,m++,++n);printf(“%d%d\n”,n++,++m);}A、12353514B、12353513C、12343514D、12343513標準答案:A知識點解析:本題主要考查自加運算符,自加運算符++在變量前表示先增加然后再使用,++在變量后表示先使用然再增加。本題中,第一個printf語句m++表示先輸出m的值,然后m增加,因此首先輸出的是12,然后m的值變成13,++n表示n首先增加l變成35然后輸出,因此輸出的是35;在第二個printf。語句中,n++是先輸出11的值然后增加,即輸出35,n的值變?yōu)?6,H仰表示先增加m的值再輸出,m的值由13變成14,故最后輸出的是14。5、公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是()。A、1:1B、m:1C、1:mD、m:n標準答案:C知識點解析:一個部門可以有多名員工,所以實體部門和職員間的聯(lián)系是1:m聯(lián)系。6、從工程管理角度看,軟件設計一般分為兩步完成,它們是A、概要設計與詳細設計B、數(shù)據設計與接□設計C、軟件結構設計與數(shù)據設計D、過程設計與數(shù)據設計標準答案:A知識點解析:軟件設計是開發(fā)階段最重要的步驟。從王程管理的角度來看可分為兩步:概要設計和詳細設計。概要設計是將軟件需求轉化為軟件體系結構,確定系統(tǒng)級接口、全局數(shù)據結構或數(shù)據庫模式:詳細設計是指確立每個模塊的實現(xiàn)算法和局部數(shù)據結構,用適應方法表示算法和數(shù)據結構的細節(jié)。從技術觀點來看,軟件設計包括軟件結構設計(定義軟件系統(tǒng)各主要部件之間的關系)、數(shù)據設計(將分析時創(chuàng)建的模型轉化為數(shù)據結構)、接口設計(描述軟件內部、軟件與協(xié)作系統(tǒng)之間以及軟件與人之問如何通信)、過程設計(把系統(tǒng)結構部件轉換成軟件的過程)四個步驟。7、支持子程序調用的數(shù)據結構是()。A、棧B、樹C、隊列D、二叉樹標準答案:A知識點解析:棧支持子程序調用。棧是一種只能在一端進行插入或刪除的線性表。在主程序調用子函數(shù)時要首先保存主程序當前的狀態(tài),然后轉去執(zhí)行子程序,最終把子程序的執(zhí)行結果返回到主程序中調用子程序的位置,繼續(xù)向下執(zhí)行,這種調用符合棧的特點,所以A選項正確。8、已定義以下函數(shù)intfun(int*p){return*p;}fun函數(shù)的返回值是()。A、一個整數(shù)B、不確定的值C、形參P中存放的值D、形參P的地址值標準答案:A知識點解析:返回值為指針變量指向的數(shù)據,該數(shù)據已被定義為整型,因此A選項正確。9、下列敘述中錯誤的是()。A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中可以有多個return語句,以便可以調用一次返回多個函數(shù)值C、用戶定義的函數(shù)中若沒有return語句,則應當定義函數(shù)為void類型D、函數(shù)的return語句中可以沒有表達式標準答案:B知識點解析:本題重點考查函數(shù)返回值的相關知識。函數(shù)的值只能通過return語句返回主調函數(shù),在函數(shù)中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。因此選擇B選項。10、有以下程序:#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標準答案:D知識點解析:本題中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內分配存儲單元,在程序整個運行期間都不釋放。所以第1次循環(huán)s的值為2;第2次循環(huán)中,返回的x值為4,所以s的值為8;第3次循環(huán),返回的x值為8,所以s的值為64。11、如果定義floata[10],x;則以下敘述中正確的是A、表達式a+l是非法的B、語句a=&x;是非法的C、三個表達式a[1]、*(a+1)、*&a[1]表示的意思完全不同D、表達式木&a[1]是非法的,應該寫成木(&(a[1]))標準答案:B知識點解析:定義語句floata[10],x;以后,數(shù)組名a表示了數(shù)組元素的首地址,是常量在程序中不能更改,因此選項A是的描述是正確的。而指向運算符和取址運算符,是互反運算符優(yōu)先級相同,*&a[1]和*(&a[1])含義相同。12、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);}程序運行后輸出結果是A、1,2,3,4,5,6,B、6,5,4,3,2,1,C、4,5,6,1,2,3,D、1,2,3,3,2,1,標準答案:B知識點解析:本題考查文件操作函數(shù),fprintf和rewind函數(shù),rewind函數(shù)將文件內部的位置指針重新指向一個流(數(shù)據流/文件)的開頭,程序首先是將數(shù)組a的六個數(shù)寫入d2文件中,然后又將a數(shù)組從后往前覆蓋到d2中的內容,所以結果為6,5,4,3,2,1,選項B正確。13、以下不合法的字符常量是()。A、’\\’B、’\"’C、’\018’D、’\xcc’標準答案:C知識點解析:轉義字符中,八進制的表示形式為\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。14、有以下程序,程序運行后的輸出結果是#include<stdio.h>main(){inta=3;printf("%d\n",(a+=a-=a*a));}A、9B、0C、3D、-12標準答案:D知識點解析:對于表達式“a+=a=a*a”相當于“a=a-(a*a)”,然后汁算“a=a+a”,a的初值為3,則表達式的值為-12。15、有以下程序#include#includeStructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0};a=fla);printf("%d,%s,%6.1fln",a.a,a.b,a.c);}structAf(StructAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序運行后的輸出結果是A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0標準答案:B知識點解析:在主函數(shù)中定義結構體A的變量a,并對其賦初值,再調用函數(shù)f(a),在函數(shù)f(a)qp對結構體變量a的各個成員重新進行了賦值操作,并把其值返回在屏幕上輸出。16、要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán)。若變量已正確定義,以下正確的程序段是A、while(ch=getchar0=’N’)printf("%c",ch);B、while(ch=getchar()=="N")printf("%c",ch);C、while((ch=getchar())!=’N’)printf("%c",ch);D、while((ch=getchar())==’N’)printf("%c",ch);標準答案:C知識點解析:while循環(huán)的執(zhí)行過程如下:①計算while后面圓括號中表達式的值,當值為非0時,執(zhí)行步驟②;當值為0時,執(zhí)行步驟④;②執(zhí)行循環(huán)體一次:③轉去執(zhí)行步驟①;④退出循環(huán)。在選項C中,表達式(ch=getchar())!=’N’表示輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán)。17、以下敘述中錯誤的是A、typedef的作用是用一個新的標識符來代表已存在的類型名B、typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤C、可以用typedef說明的新類型名來定義變量D、用typedef可以說明一種新的類型名標準答案:B知識點解析:typedef語句的作用僅僅是用“標識符”來代表已存在的“類型名”,并未產生新的數(shù)據類型,原來類型名依然有效。為了便于識別,一般習慣將新的類型名用大寫字母表示。18、以下敘述中正確的是A、continue語句使得整個循環(huán)終止B、break語句不能用于提前結束for語句的本層循環(huán)C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標準答案:C知識點解析:break語句通常用在循環(huán)語句和開關語句中。當break用于開關語句switch中時,可使程序跳出switch而執(zhí)行switch以后的語句;當break語句用于do-while、for、while循環(huán)語句中時,可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句,即滿足條件時便跳出循環(huán)。continue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán)。A、B和D三個選項中均有錯誤。因此C選項正確。19、有以下程序structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1tha",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運行后的輸出結果是A、1002,ChangRong,1202.0B、1001,ZhangDa,1098.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0標準答案:B知識點解析:在主函數(shù)中定義結構體A的變量a,并對其賦初值,再調用函數(shù)f(a),形參t接收實參的數(shù)據,在函數(shù)f(t)中對結構體變量t的各個成員進行了賦值操作,需要注意的,形參和實參之間是數(shù)據傳遞,因此對形參的操作對實參不產生影響,因此在主函數(shù)輸出仍然輸出變量a的數(shù)據20、以下敘述中錯誤的是A、用typedef可以說明一種新的類型名B、typedef的作用是用一個新的標識符來代表已存在的類型名C、可以用typedef說明的新類型名來定義變量D、typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤標準答案:D知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,新類型可以使用小寫,所以D選項錯誤。21、設有定義:struct{charmark[12];intnum1;doublenum2;}t1,t2;若變量均已正確賦初值,則以下語句中錯誤的是()。A、t2.mark=t1.mark;B、t2.num1=t1.num1;C、t1=t2;D、t2.num2=t1.num2;標準答案:A知識點解析:同類型的結構體之間可以直接賦值,數(shù)組卻不可以,答案選A。22、有以下函數(shù):intfun(char*x,char*y){intn=0;while((*x==*y)&&*x?。健痋0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。A、將y所指字符串賦給x所指存儲空間B、查找x和y所指字符串中是否有’\0’C、統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)D、統(tǒng)計x和y所指字符串中相同的字符個數(shù)標準答案:C知識點解析:本題中由循環(huán)條件可知遇到’\0’或x與y所指的字符的值不等中的一個條件時就結束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。23、在E-R圖中,用來表示實體聯(lián)系的圖形是A、橢圓形B、矩形C、菱形D、三角形標準答案:C知識點解析:在E-R圖中實體集用矩形,屬性用橢圓,聯(lián)系用菱形。24、學生和課程的關系模式定義為:S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學號、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號、課程名、先選課);SC(S#,C#,G)(其屬性分別學號、課程號和成績)。關系中包含對主屬性傳遞依賴的是()。A、S#→SdB、S#→Sd,(S#,C#)→GC、S#→Sd,Sd→DcD、C#→P#,(S#,C#)→G標準答案:C知識點解析:關系SC的主屬性為(S#、C#),但在SC中S#(學號)單獨就可以決定Sd(所在系)。sd(所在系)可決定Dc(所在系的系主任),故對主屬性傳遞依賴的是S#→Sd,Sd→Dc。25、以下敘述中錯誤的是()。A、C語言程序在運行過程中的所有計算都以二進制方式進行B、C語言程序在運行過程中的所有計算都以十進制方式進行C、所有C語言程序都需要編譯、鏈接無誤后才能運行D、C語言程序中字符變量存放的是字符的ASCII值標準答案:B知識點解析:C程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。故本題答案為B選項。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、以下選項中不合法的標識符是A、FORB、&aC、printD、_00標準答案:B知識點解析:介法的標識符要滿足組成字符為a~z以及A~z,數(shù)字字符0到9和下劃線,其中數(shù)字不開頭,不能是關鍵字。選項B)中,&不屬于組成字符,是錯誤的。2、若變量已正確定義并賦值,以下不能構成C語句的選項是A、A=a+b;B、B++;C、a=a+bD、A?a:b;標準答案:C知識點解析:C語言語句的表示為分號,不加分號的表達式不能看成C語句。3、以下選項中不合法的標識符是A、FORB、&aC、printD、——00標準答案:B知識點解析:合法的標識符要滿足組成字符為a~z以及A~z,數(shù)字字符0到9和下劃線,其中數(shù)字不開頭,不能是關鍵字。選項B中,&不屬于組成字符,是錯誤的。4、以下選項中不合法的標識符是A、.FORB、&aC、printD、0標準答案:B知識點解析:合法的標識符要滿足組成字符為a~z以及A~z,數(shù)字字符0到9和下劃線,其中數(shù)字不開頭,不能是關鍵字。選項B中,&不屬于組成字符,是錯誤的。5、在數(shù)據處理中,其處理的最小單位是()。A、數(shù)據B、數(shù)據項C、數(shù)據結構D、數(shù)據元素標準答案:B知識點解析:數(shù)據元素是由多個數(shù)據項組成,數(shù)據是能夠被計算機識別、存儲和加工處理的信息載體,數(shù)據處理的最小單位是數(shù)據項。6、按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是A、連接符B、大寫字母C、數(shù)字字符D、下劃線標準答案:A知識點解析:在C語言中,合法標識符的命令規(guī)則是:標識符可以由字母、數(shù)字或下劃線組成,并且第一個字符必須為字母或下劃線。在C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符。選項A是連字符,不在C語言規(guī)定的命名變量標識符的范圍內。7、C語言中的標識符分為關鍵字、預定義標識符和用戶標識符,以下敘述正確的是A、關鍵字可用作用戶標識符,但失去原有含義B、在標識符中大寫字*和小寫字*被認為是相同的字符C、用戶標識符可以由字*和數(shù)字任意順序組成D、預定義標識符可用作用戶標識符,但失去原有含義標準答案:D知識點解析:預定義標識符是C語言中的標識符,在C語言中也有特定的含義,如函數(shù)printf、scanf、sin等和編譯預處理命令名(如define和inc1ude)。預定義標識符可以作為用戶標識符使用,只是這樣會失去系統(tǒng)規(guī)定的原義。8、某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)A、3B、4C、6D、7標準答案:D知識點解析:根據二叉樹的性質,度為0的結點(即葉子結點)總是比度為2的結點多一個。題目中的二叉樹的葉子結點為1,因此度為2的結點的數(shù)目為0,故該二叉樹為7層,每層只有一個結點。9、執(zhí)行以下程序段后,w的值為()。intw=’A’,x=14,y=15;w=((x‖y)&&(w<’a’));A、-1B、NULLC、1D、0標準答案:C知識點解析:字符變量w的初值為字符“’A’”,其ASCH碼值為65,字符“’at’”的ASCII碼值為97,所以關系表達式“w<’a’”的值為1:變量x=14,變量y=15,“x‖y”為或,x、y均為真,所以x‖y的結果1。因而邏輯表達式“(x‖y)&&(w<’a’)”的值為1。10、下面函數(shù)調用語句含有實參的個數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));A、1B、2C、3D、5標準答案:B知識點解析:本題考查函數(shù)調用時的實參形式。這里有一個逗號運算的考查,(a,b)的運算結果為b,因而只有一個值,結合func的調用形式,可以知道實參的個數(shù)只有2個。11、某系統(tǒng)結構圖如下圖所示該系統(tǒng)結構圖的寬度是()。A、2B、3C、4D、n標準答案:D知識點解析:系統(tǒng)結構圖的寬度指的是整體控制跨度(最大模塊數(shù)的層)的表示,上圖中系統(tǒng)結構圖的寬度為n,答案選D。12、帶鏈隊列空的條件是A、front=rear=NULLB、front=rear=-1C、front=NULL且rear=-1D、front=-1且rear=NULL標準答案:A知識點解析:帶鏈隊列空的條件有兩個:一個是front=rear,一個是它們都等于空。13、數(shù)據流圖用于抽象描述一個軟件的邏輯模型,數(shù)據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據流圖合法圖符的是()。A、控制流B、加工C、存儲文件D、源和潭標準答案:A知識點解析:數(shù)據流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構成,包括4個方面,即加工、數(shù)據流、存儲文件、源和潭。14、以下不構成無限循環(huán)的語句或語句組是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;標準答案:A知識點解析:選項B)中while(1)永遠為真所以進入死循環(huán),選項C)中while(n=10)同理,選項D)中for循環(huán)沒有循環(huán)限定條件也將進入無限循環(huán),只有選項A)中while(n<=0)循環(huán)判定成立,循環(huán)將不進入無限循環(huán)。15、若有以下程序#includemain(){inta=1,b=2,c=3,d=4;if((a=2)&&(b=1))c=2;if((c==3)Il(d=-1))a=5;printf("%d,%d,%d,%d\n",a,b,c,d);)則程序的輸出結果是A、2,1,2,-1B、2,2,2,4C、1,2,3,4D、5,1,2,-1標準答案:D知識點解析:代碼中有兩條并列的if語句,第一條if語句,邏輯與表達式(a=2)&&f1)=1)中,a=2,則執(zhí)行b=1,得到該邏輯與表達式值為1,執(zhí)行分支語句c=2;第二條if語句(c==3)‖(d=-1),c==3不成立,執(zhí)行d=-1,而后得出整個邏輯與表達式值為1,執(zhí)行分支語句a=5。16、下面描述中錯誤的是A、系統(tǒng)總體結構圖支持軟件系統(tǒng)的詳細設計B、軟件設計是將軟件需求轉換為軟件表示的過程C、數(shù)據結構與數(shù)據庫設計是軟件設計的任務之一D、PAD圖是軟件詳細設計的表示工具標準答案:A知識點解析:軟件設計是將軟件需求轉換為軟件表示的過程;數(shù)據結構與數(shù)據庫設計是軟件設計的任務之一;PAD圖,即問題分析圖,是一種主要用于描述軟件詳細設計的圖形工具。17、有以下程序:#includemain(){inta[]={10,20,30,40},*P=a,i;for(i=0;i<=3;i++){a[i]=*p;P++;}prinff(“%d\n”,a[2]);}程序運行后的輸出結果是()。A、30B、40C、10D、20標準答案:A知識點解析:for循環(huán)結束后,數(shù)組a的值并沒有變化,由于數(shù)組是由0開始,所以a[2]的值是30。18、在一個C源程序文件中所定義的全局變量,其作用域為A、由具體定義位置和extern說明來決定范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、所在文件的全部范圍標準答案:A知識點解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結束止。在同一編譯單位內用extern說明符擴展全局變量的作用域(當全局變量定義在后,引用它的函數(shù)在前時,應該在引用它的函數(shù)中用extern對此全局變量進行說明,以便通知編譯程序:該變量是一個已在外部定義了的全局變量,已經分配了存儲單元,不需要再為它分配存儲單元。這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾)。當一個程序由多個編譯單位構成,并且在每個文件中均需要引用同一個全局變量,這時只在其中一個文件中定義所有的全局變量,而在其他用到這些全局變量的文件中用extern對這些變量進行說明。19、有以下程序:#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標準答案:D知識點解析:調用f(a,b)函數(shù)返回3,調用f(a,c)函數(shù)返回6,所以外層調用f(f(a,1)),f(a,c));即調用f(3,6)函數(shù)返回9。20、學校的每個社團都有一名團長,且一個同學可同時擔任多個社團的團長,則實體團長和實體社團問的聯(lián)系是A、一對多B、多對多C、多對一D、一對一標準答案:A知識點解析:一對多關系是關系數(shù)據庫中兩個表之間的一種關系,該關系中第一個表中的單個行可以與第二個表中的一個或多個行相關,但第二個表中的一個行只可以與第一個表中的一個行相關。本題中,一個團長可以對應多個社團,一個社團只有一個團長,因此是一對多關系。21、設有定義:struet{charmark[12];intnum1;doublenum2;}t1,t2;,若變量均已正確賦初值,則一中錯誤的是()。A、t1=t2;B、t2.num1=t1.num1;C、t2.mark=t1.mark;D、t2.hum2=t1.num2:標準答案:C知識點解析:本題考查結構體變量的引用。C選項中mark為結構體中的數(shù)組,不能直接賦值,所以C選項錯誤。22、如果定義floata[10],x;則以下敘述中正確的是A、表達式a+1是非法的B、語句a=&x;是非法的C、三個表達式a[1]、*(a+1)、*&a[1]表示的意思完全不同D、表達式*&a[1]是非法的,應該寫成*(&(a[1]))標準答案:B知識點解析:定義語句floata[10],x;以后,數(shù)組名a表示了數(shù)組元素的首地址,是常量在程序中不能更改,因此選項A是的描述是正確的。而指向運算符和取址運算符,是互反運算符優(yōu)先級相同,*&a[1]和*(&a[1])含義相同。23、以下選項中合法的變量是A、5aB、A%C、_10_D、sizeof標準答案:C知識點解析:對于變量的命名要利用標識符命名,所謂標識符就是C語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。其中標識符構成:①標識符由字母、數(shù)字和下劃線組成;②第一個字符必須為字母或下劃線;因此選項A)中數(shù)字開頭,選項B)出現(xiàn)了非法字符%,而選項D)中sizeof為關鍵字,不能為變量命名。24、一個工作人員可使用多臺計算機,而一臺計算機被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是A、一對一B、一對多C、多對多D、多對一標準答案:C知識點解析:如果一個工作人員只能使用一臺計算機且一臺計算機只能被一個工作人員使用,則關系為一對一;如果一個工作人員可以使用多臺計算機,但是一臺計算機只能被一個工作人員使用,則關系為一對多;如果一個工作人員可以使用多臺計算機,一臺計算機也可以被多個工作人員使用,則關系為多對多。25、在滿足實體完整性約束的條件下A、一個關系中應該有一個或多個候選關鍵字B、一個關系中只能有一個候選關鍵字C、一個關系中必須有多個候選關鍵字D、一個關系中可以沒有候選關鍵字標準答案:A知識點解析:在關系數(shù)據庫中,實體完整性的概念是主屬性不能為空。在滿足實體完整性的前提下,必須在關系中存在主屬性,也就是在關系中應該有候選關鍵字。一個關系中可以有一個或者多個候選關鍵字。26、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d"&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是(注:口代表一個空格符)A、口口口1,2,3B、1,口口口2,口口口3C、1,2,3D、1口2口3標準答案:D知識點解析:本題主要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如%c,%d,%s,%f等。其作用是將輸入的數(shù)據轉換為指定的格式,賦給scanf的二個參量(是地址1)所指定的內存單元(可能一次使用多個)中。格式說明以“%”字符為標志。②普通字符,是需要用戶在輸入時原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進制輸入三個數(shù)據。要求在輸入數(shù)據時,兩個數(shù)據間一定以一個逗號“,”作為間隔符。27、有以下程序yoidfunl(char*p){char*q;q*p;while(*q!=’0’){(*q)++;q++;}}main(){chara[]={“Program”),*p;p=&a[3];funl(p);printf(“%s\n”,a);}程序執(zhí)行后的輸出結果是A、PrphsbnB、ProhsbnC、ProgsbnD、Program標準答案:B知識點解析:在函數(shù)voidfun1(char*p)中,語句(*q)++的功能是q所指的字符加1,變成其后面的字符;q++就是指釗。q指向下一個字符的位置。所以在主函數(shù)中,語句p=&a[3]的作用是使指針p指向字符數(shù)組a[]中的第四個字符的位置,即p指向字符’g’;然后調用函數(shù)fun1(p)后,字符’g’變成Ih,字符’r’變成’s’,字符’a’變成’b’,字符’m’變成’n’,因而字符數(shù)組a[]中的內容就成“Prohsbn”。28、下列函數(shù)的功能是voidfun(char*a,char*b){while((*b=*a)!=’\0’){a++;b++;}}A、使指針b指向a所指字符串B、將a所指字符串和b所指字符串進行比較C、將a所指字符串賦給b所指空間D、檢查a和b所指字符串中是否有’\0’標準答案:C知識點解析:在while語句的條件中是把字符*a的值賦給字符*b,然后再判斷字符*的值是否等于字符串的結束字符(’\0’),當不等于結束字符(’\0’)時,把字符指針變量a,b分別加1,指它們的下一個字符,直到字符串a的結束。這樣程序執(zhí)行的結果就是把字符串a賦給了b所指的存儲空間。29、有以下程序#includemain(){inti,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í)行后的輸出結果是()。A、x=8B、x=4C、x=6D、x=12標準答案:A知識點解析:continue語句是跳過當前循環(huán)層余下未執(zhí)行的語句,繼續(xù)執(zhí)行下一次循環(huán)。外層循環(huán)i從0到1,內層循環(huán)j從0到3,外層循環(huán)2次,內層循環(huán)2*4為8次。每次內層循環(huán)若j值為偶數(shù)則x自加1,每次外層循環(huán)x自加兩次,所以x的自加次數(shù)為2*2+2*(4-2)=8,所以答案選A。30、有以下程序#includefunc(intn){staticintnum=1;num=num+n;prinff("%d",num);}voidmain(){func(3);func(4);printf("\n");}程序運行后的輸出是A、45B、35C、48D、34標準答案:C知識點解析:在函數(shù)func(intn)中定義了局部靜態(tài)變量num,,其初始值等于1,所以在主函數(shù)中執(zhí)行func(3),輸出4,此時靜態(tài)變量num的值等于4,當退出函數(shù)func(3)時,其值不會丟失,所以當在執(zhí)行func(4)時,輸出8。31、有下列程序:main(){inta[4][4]:{{1,4,3,2),{8,6,5,7),{3,7,2,5),{4,8,6,1)),i,k,t;for(i=0;i<3;i++)for(k=i+l;k<4;k++)if(a[i][i]<a[k][1[]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++)printf("%d,",a[0][i]);}程序運行后的輸出結果是A、6,2,1,1,B、1,1,2,6,C、2,3,4,6,D、6,4,3,2,標準答案:D知識點解析:利用二重for循環(huán)對二維數(shù)組a[4][4]的主對角線上的元素{1,6,2,1}實現(xiàn)按列從大到小排序,所以數(shù)組a[4][4]的值變?yōu)閧{6,4,3,2,},{8,2,5,7},{3,7,1,5},{4,8,6,1},最后輸出數(shù)組a[4][4]第一行上的元素,所以輸出結果為6,4,3,2。32、若有以下程序#includemain(){intc;c=13|5;printf("%d\n",c);}則程序的輸出結果是A、13B、15C、18D、5標準答案:A知識點解析:本題考查位運算中按位或運算符,或運算只要兩個比較的位中有一個為1,其結果是1,否則結果為0,,13用二進制表示為00001101,5用二進制表示為00000101,或后00001101,即13,選項A正確。33、有以下程序#includemain(){intc[6]={10,20,30,40,50,60},*p,*s;p=c;s=&c[5];printf("%d\n",s-p);}程序運行后的輸出結果是A、50B、6C、5D、60標準答案:C知識點解析:主函數(shù)中指針變量p指向數(shù)組c,s保存了數(shù)組最后一個元素的地址,那么s中為兩個地址之間的元素差5。34、有以下程序#includeintfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);return(p);}main(){printf("%d\n",fun(9));}程序運行后的輸出結果是()。A、7B、5C、9D、4標準答案:A知識點解析:考查函數(shù)的遞歸調用。fun(9)=9-fun(7)=9-(7-fun(5))=2+(5-fun(3))=7-(3-fun(1))=7,所以答案選A。35、設有定義:intx[2][3];則以下關于二維數(shù)組x的敘述錯誤的是A、數(shù)組x可以看作是由x[0]和x[1]兩個元素組成的一維數(shù)組B、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0C、元素x[0]可看作是由3個整型元素組成的一維數(shù)組D、x[0]和x[1]是數(shù)組名,分別代表一個地址常量標準答案:B知識點解析:二維數(shù)組的元素在內存中占一系列連續(xù)的存儲單元。數(shù)組元素在內存中的排列順序是先存放第0行的元素,再存放第1行的元素……稱這種存放順序為按行存放。可以把一個二維數(shù)組看成是一個一維數(shù)組,每個數(shù)組元素又是包含有若干個元素的一維數(shù)組。另外在給二維數(shù)組賦初值時可以不用含花括號對。例如,inta[4][3]={1,2,4,5};在編譯時,系統(tǒng)將按a數(shù)組元素在內存中排列的順序,將花括號內的數(shù)據一一對應地賦給各個元素,若數(shù)據不足,系統(tǒng)將給后面的元素自動補初值0。以上將給a數(shù)組第一行的元素和第二行的第一個元素依次賦予1、2、4、5,其他元素的初值都為0。36、以下敘述中正確的是A、下面的語句用賦初值方式來定義字符串,其中,“’\0’"是必須的charstr1[]={’s’,’t’,’r’,’1’,’\0’);B、有定義語句:charstr1[]="str1";,數(shù)組str1將包含4個元素C、字符串常量“str1”的類型是:字符串數(shù)據類型D、字符數(shù)組的每個元素可存放一個字符,并且最后一個元素必須是“’\0’”字符標準答案:B知識點解析:選項B)中除了字符串中實際字符之外,還要存儲字符串結束標志,應為5個元素。在c語言中沒有字符串數(shù)據類型,因此選項C)不正確,選項D)字符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個元素為字符串結束標志。37、以下敘述中正確的是A、字符串數(shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組B、charca[3][5]={"A","BB","CCC"};是不合語法的C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標準答案:A知識點解析:本題考查字符串數(shù)組的相關知識,選項B、C、D都是合語法的。38、若有定義語句:doublea,*p=&a;以下敘述中錯誤的是A、定義語句中的*號是一個說明符B、定義語句中的p只能存放double類型變量的地址C、定義語句中*p=&a把變量a的地址作為初值賦給指針變量pD、定義語句中的*號是一個間址運算符標準答案:D知識點解析:在指針定義語句“doublea,*p=&a”中,指針變量p前面的*號,只是一個說明符,說明變量p是指針類型的變量。39、C語言中的標識符分為關鍵字、預定義標識符和用戶標識符,以下敘述正確的是A、關鍵字可用作用戶標識符,但失去原有含義B、預定義標識符可用作用戶標識符,但失去原有含義C、在標識符中大寫字母和小寫字母被認為是相同的字符D、用戶標識符可以由字母和數(shù)字任意順序組成標準答案:B知識點解析:關鍵字不可用作C語言的標識符,所以A錯誤,在標識符中大寫字母與小寫字母作為不同字符處理,所以C錯誤?標識符由下劃線,字母,數(shù)字組成,且必須以下劃線和字母開始,所以D錯誤。40、有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s\n",*p);}main(){char*a[]=("Morning","Afternoon","Evening","Night");fun(a);}程序的運行結果是A、fternoonB、MorningC、orningD、Afternoon標準答案:D知識點解析:在程序中,指針的指針變量a和p都是指向字符串的指針。執(zhí)行fun(a)語句時,p指向的是字符串數(shù)組a的第一個字符串“Morning”,p自加1之后,*p指向了字符串數(shù)組a的第2個字符串“Afternoon”。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述正確的是()。A、可以把define和if定義為用戶標識符B、可以把define定義為用戶標識符,但不能把if定義為用戶標識符C、可以把if定義為用戶標識符,但不能把define定義為用戶標識符D、define和if都不能被定義為用戶標識符標準答案:B知識點解析:在C語言中,define是編譯預處理命令動詞,通常用來定義符號常數(shù),但它不是保留字,可以被定義為用戶標識符,而if是保留字,不能被定義為用戶標識符。2、設有定義:chars[10];inti=0;,以下不能將一行(不超過100個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、scanf(’’%s’’,s);C、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;D、do{scanf(’’%c’’,&s[i]);)while(s[i++]!=’\n’);s[i]=’\0’;標準答案:B知識點解析:本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時的結束標志為回車或者空格。因此選項B不能,選項C和選項D中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此正確。3、下列敘述中正確的是()。A、數(shù)據庫系統(tǒng)避免了一切冗余B、數(shù)據庫系統(tǒng)減少了數(shù)據冗余C、數(shù)據庫系統(tǒng)中數(shù)據的一致性是指數(shù)據類型一致D、數(shù)據庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據標準答案:B知識點解析:數(shù)據庫系統(tǒng)共享性大,冗余度小,但只是減少了冗余,并不是避免一切冗余。數(shù)據的一致性是指在系統(tǒng)中同一數(shù)據在不同位置的出現(xiàn)應保持相同的值,而不是數(shù)據類型的一致。數(shù)據庫系統(tǒng)比文件系統(tǒng)有更強的管理控制能力,而不是管理更多的數(shù)據。4、下列關于算法的描述中錯誤的是A、算法強調動態(tài)的執(zhí)行過程,不同于靜態(tài)的計算公式B、算法必須能在有限個步驟之后終止C、算法設計必須考慮算法的復雜度D、算法的優(yōu)劣取決于運行算法程序的環(huán)境標準答案:D知識點解析:算法的優(yōu)劣取決自身的運行效率,時間和空間復雜度高低,并不取決于運行算法程序的環(huán)境,故選項D錯誤。5、若各選項中所用變量已正確定義,fun()函數(shù)中通過return語句返回一個函數(shù)值,下列選項中錯誤的程序是()。A、main(){…x=fun(2,10);…)floatfun(intamintb){…}B、floatfun(inta,intb){…}main(){…x=fun(id);…}C、floatfun(int,int);main(){…x=fun(inta,intb);…)floatfun(inta,intb){…}D、main(){floatfun(inti,intj);…x=fun(ij);…)floatfun(inta,intb){…)標準答案:A知識點解析:C語言規(guī)定,函數(shù)必須先定義,后調用(函數(shù)的返回值類型為int或char類型除外)。選項A)中,調用的子函數(shù)在調用的后面定義,所以不正確。在選項B)、C)中,被調用函數(shù)在主調函數(shù)之前定義,再在主函數(shù)中調用,所以是正確的;選項D)中,在主調函數(shù)中先對子函數(shù)floatfun(inti,intj)進行了定義,然后進行調用。6、以下正確的字符串常量是A、abc’B、OlympicGamesC、’’’D、’\\\’’標準答案:C知識點解析:字符串常量是由雙引號括起來的一串字符。在C語言中,以一個反斜線開頭后跟一個特定的字符,用來代表一個特定的ASCⅡ字符。利用兩個’\\’表示一個反斜杠,因此選項D的表示無法確認表示幾個反斜杠。7、下面函數(shù)調用語句含有實參的個數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));A、1B、2C、3D、5標準答案:B知識點解析:本題考查函數(shù)調用時的實參形式。這里有一個逗號運算的考查,(a,b)的運算結果為b,因而只有一個值,結合func的調用形式,可以知道實參的個數(shù)只有2個。8、某二叉樹的前序遍歷序列與中序遍歷序列相同,均為ABCDEF,則按層次輸出(同一層從左到右)的序列為A、ABCDEFB、BCDEFAC、FEDCBAD、DEFABC標準答案:A知識點解析:前序遍歷次序:根左右;中序遍歷次序:左根右。由定義可以知道:①前序遍歷中第一個就是樹根結點,即A結點;②在中序遍歷中,根結點左邊的是左子樹集,右邊的是右子樹集,即BCDEF是根結點A的右子樹集合。問題就會轉化為:求前序遍歷是BCDEF,中序遍歷是BCDEF的子樹,方法同上。詳細推理過程:步驟1:由ABCDEF得出根結點為A,由中序遍歷可知:左子樹為空,A{BCDEF};步驟2:由BCDEF得出右子樹集合的根節(jié)點為B,由中序可知:左子樹為空,B{CDEF};步驟3:同理,二叉樹更新后如下。所以按層次輸出(同一層從左到右)的序列為ABCDEF,選項A正確。9、一般情況下,當對關系R和S進行自然連接時,要求R和S含有一個或者多個共有的()。A、記錄B、行C、屬性D、元組標準答案:C知識點解析:進行自然連接時要求兩個關系具有相同列,即屬性。10、以下敘述中正確的是A、在C語言程序設計中,所有函數(shù)必須保存在一個源文件中B、在算法設計時,可以把復雜任務分解成一些簡單的子任務C、只要包含了三種基本結構的算法就是結構化程序D、結構化程序必須包含所有的三種基本結構,缺一不可標準答案:B知識點解析:模塊化設計思想,就是把復雜的任務分成簡單的子任務,用函數(shù)或者過程描述子任務,C語言中一個程序可以包括多個源文件,每個源文件可以有若干個函數(shù),結構化的程序由順序結構、循環(huán)結構和選擇結構三種基本結構組成,不一定全要包括這三種結構,而算法不等于程序。11、以下選項中,合法的一組C語言數(shù)值常量是()。A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10,0003.e5標準答案:A知識點解析:考查整型常量、實型常量。選項B)的"028"錯,以0開頭表示為八進制整常數(shù),不能出現(xiàn)數(shù)字8;選項C)的"4e1.5"錯,e后面應為整數(shù),"0abc"錯,八進制整常數(shù)只能由0~7構成;選項D)的"10,000"錯,C語言沒有千分號,所以答案選A)。12、以下敘述中正確的是()。A、整型變量可以分為int型、short型、long型和unsigned型四種B、在C程序中的八進制和十六進制,可以是浮點數(shù)C、八進制數(shù)的開頭要使用英文字母o,否則不能與十進制區(qū)分開D、英文大寫字母X和英文小寫字母x都可以作為二進制數(shù)字的開頭字符標準答案:A知識點解析:八進制和十六進制是對整型常量的描述,不能為浮點數(shù)據,選項B)錯誤;八進制開頭以數(shù)字0開始,選項C)錯誤;C語言中沒有二進制,0X和0x是十六進制的前綴,選項D)錯誤;答案選A)。13、關系模型中的關系模式至少應是A、1NFB、2NFC、3NFD、BCNF標準答案:A知識點解析:目前關系數(shù)據庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。滿足最低要求的范式是第一范式(1NF)。14、以下敘述中錯誤的是A、用戶定義的函數(shù)中可以沒有return語句B、用戶定義的函數(shù)中可以有多個return語句,以便可以調用一次返回多個函數(shù)值C、用戶定義的函數(shù)中若沒有return語句,則應當定義函數(shù)為void類型D、函數(shù)的return語句中可以沒有表達式標準答案:B知識點解析:本題重點考察函數(shù)返回值的相關知識,函數(shù)的值只能通過return語句返回主調函數(shù),在函數(shù)中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為"空類型",類型說明符為"void"。因此B選項正確。15、正確的結構體類型說明和變量定義是()。A、typedefstructf{intn;charc;}STR;STRt1,t2;B、structSTR;{intn;charC;};STRt1,t2;C、typedefstmctSTR;{intn=0;charc=’A’;}t1,t2;D、struct{intn;charc;}STR;STRt1,t2;標準答案:A知識點解析:定義結構體類型的一般形式為:struct結構體名{成員列表};struct結構體名后不能加“:”號。但定義完之后要在句末加分號,所以選項B、C有誤,選項D中定義無名稱的結構體類型同時定義結構體變量形式應為“stmctt1,t2;”。選項A為用戶自定義類型,其為正確的定義形式。16、以下敘述中正確的是A、charca[3][5]={"A","BB","CCC"};是不合語法的B、字符串數(shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標準答案:B知識點解析:字符串數(shù)組,也就是二維字符數(shù)組,其中每個元素為一個字符串,選項B的說法正確。選項A和C)對于ca的定義是正確的。選項D定義一個指針數(shù)組,可以保存多個字符串的首地址。17、若有以下程序#includeint*f(int*s,int*t){int*k;if(*s<*t){k=s;s=t;t=k;}returns;}Inain(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結果是A、3,5,5,3,5B、5,3,5,3,5C、5,3,3,5,5D、3,5,3,5,5標準答案:D知識點解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個參數(shù)小于第二個參數(shù),那么交換指針的指向,這對于實參指向的數(shù)據時沒有影響的。最后返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調用r=f(p,q),返回q的地址,因此*p=3,*q=5,*r=5。18、若有定義語句:inta=3,b=2,c=1;以下選項中錯誤的賦值表達式是()。A、a=(b=4)=3;B、a=b=c+1;C、a=(b=4)+c;D、a=1+(b=c=4);標準答案:A知識點解析:不能將變量或常量賦給一個表達式,所以A選項中(b=4)=3是錯誤的。19、與數(shù)學表達式x≥y≥z對應的C語言表達式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)‖(y>=x)標準答案:B知識點解析:若要表示x大于等于y,同時y大于等于z,需要用邏輯與表達式連接。20、有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A、自然連接B、交C、投影D、并標準答案:A知識點解析:關系R和關系S有公共域,關系T是通過公共域的等值進行連接的結果,符合自然連接,選A。21、有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain(){intx[N][N]={{1,2,3,4),{5,6,7,8},{9,10,11,12},{13,14,15,16)),y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序運行后的輸出結果是A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,標準答案:B知識點解析:fun函數(shù)的功能是求出二維數(shù)組a中第i行第i個元素與第N-1-i元素的差,賦給b[i]。在主函數(shù)中,把實參二維數(shù)組x和一維數(shù)組y傳遞給形參a和b,最后輸出一維數(shù)組y中元素的值。22、以下數(shù)組定義中錯誤的是()。A、intx[2][3]={{1,2},{3,4},{5,6}};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={1,2,3,4,5,6};標準答案:A知識點解析:二維數(shù)組的第一維數(shù)據表示行數(shù),第二維數(shù)據表示列數(shù),所以x[2][3]中的數(shù)據應為兩行三列,和定義內容不符,選項A)錯誤,答案選A)。23、有以下程序#include<stdio.h>main(){inti,s=1;intfun(){staticintx=1;for(i=1;i<=3;i++)x*=2;s*=fun();returnx;}printf("%d\n",s);}程序運行后的輸出結果是A、0B、10C、30D、64標準答案:D知識點解析:本題考查了靜態(tài)局部變量,該局部變量的值在函數(shù)調用結束后如果不消失而保留原值。函數(shù)fun的功能返回2的乘方,主函數(shù)fun函數(shù)調用3次,因此第一次s累乘2,第二次累乘4,第三次累乘8,即為2*4*8,值為64。24、有以下程序#includemain(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運行后的輸出結果是()。A、zB、0C、元素ch[5]的地址D、字符y的地址標準答案:A知識點解析:數(shù)組名表示該數(shù)組的首地址,*pc=ch則將pc指向了字符數(shù)組ch的第一個元素的地址,*(ch+i)、ch[i]、pc[i]和*(pc+i)四者等價,所以*(pc+5)表示字符數(shù)組ch的第六個元素,即z,答案選A。25、下列關于棧敘述正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠不能被刪除D、棧底元素最先被刪除標準答案:A知識點解析:棧是先進后出的數(shù)據結構,所以棧頂元素最后入棧卻最先被刪除。棧底元素最先入棧卻最后被刪除。所以選擇A)。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列與隊列結構有關聯(lián)的是A、函數(shù)的遞歸調用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務的作業(yè)調度標準答案:D知識點解析:隊列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪除。2、數(shù)據模型的三個要素是()。A、外模式、概念模式、內模式B、實體完整性、參照完整性、用戶自定義完整性C、數(shù)據增加、數(shù)據修改、數(shù)據查詢D、數(shù)據結構、數(shù)據操作、數(shù)據約束標準答案:D知識點解析:數(shù)據模型是數(shù)據特征的抽象,所描述的內容有三個部分:數(shù)據結構、數(shù)據操作、數(shù)據約束。數(shù)據結構主要描述數(shù)據的類型、內容、性質以及數(shù)據間的聯(lián)系等。數(shù)據操作主要描述在相應數(shù)據結構上的操作類型與操作方式。數(shù)據約束主要描述數(shù)據結構內數(shù)據間的語法、語義聯(lián)系,它們之間的制約與依存關系,以及數(shù)據動態(tài)變化的規(guī)則,以保證數(shù)據的正確、有效與相容。3、結構化程序所要求的基本結構不包括A、順序結構B、GOTO跳轉C、選擇(分支)結構D、重復(循環(huán))結構標準答案:B知識點解析:結構化程序的基本結構有:順序結構、選擇結構和循環(huán)結構,沒有GOTO跳轉結構。4、在面向對象方法中,不屬于“對象”基本特點的是A、一致性B、分類性C、多態(tài)性D、標識唯一性標準答案:A知識點解析:對象具有如下特征:標識惟一性、分類性、多態(tài)性、封裝性、模塊獨立性。5、有以下程序,程序運行后的輸出結果是#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y、z);}A、2,3,1B、2,3,2C、2,3,3D、2,2,1標準答案:A知識點解析:在程序中,整型變量x、y的初值部為1,賦值語句“z=x++,y++,++y”右邊的“x++,y++,++y”是一個逗號表達式,所以逗號表達式的值為++y的值。執(zhí)行逗號表達式“x++,y++,++y”后,)的值為2,y的值為3,z取逗號表達式的值,為1。6、下列選項中屬于面向對象設計方法主要特征的是()。A、繼承B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:面向對象設計方法的基本概念有對象、類和實例、消息、繼承與多態(tài)性,所以答案為A。7、若有以下程序main(){inta=6,b=0,c=0;for(;a&&(b==0);){b+=a;a-=c++;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結果是A、6,0,0B、5,6,0C、6,6,1D、5,6,1標準答案:C知識點解析:循環(huán)條件a&&fb==0),a非零同時b==0則執(zhí)行循環(huán)體,否則退出。循環(huán)體執(zhí)行一次,此時b=6,a=6,c=1。8、交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。A、&B、∧C、‖D、~標準答案:B知識點解析:按邏輯位運算的特定作用主要有3點:①用按位與運算將特定位清0或保留特定位;②用按位或運算將特定的位置設置為1;③用按位異或運算將某個變量的特定位翻轉或交換兩個變量的值。9、有以下程序main(){intk=5;while(-k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結果是A、2B、4C、1D、死循環(huán)標準答案:C知識點解析:在程序語句中,k的初始值為5,進行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減l變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結果為1。10、有以下程序:#include<stdio.h>main(){charch[]=’’uvwxyz’’,*pc;pc=ch;printf(’’%c\n’’,*(pc+5));}程序的運行結果是()。A、zB、0C、元素ch[5]的地址D、字符y的地址標準答案:A知識點解析:語句pc=ch;使得指針變量指向字符數(shù)組ch的首地址,即指向字符’u’,則pc+5指向的是字符向后移動5位,指向字符’z’,所以輸出的*pc+5的值即為’z’,因此A選項正確。11、有以下程序#includeintf(intx);main(){inta,b=0;for(a=0;a<3;a++){b=b+f(a);putchar(’A’+b);}}intf(intX){returnx*x+1;}A、BCDB、BDIC、ABED、BCF標準答案:B知識點解析:在函數(shù)main()中,第一次執(zhí)行for循環(huán)時,b的值等于1,此時輸出字母B;第二次執(zhí)行for循環(huán)時,b的值等于3,此時輸出字母D:第三次執(zhí)行for循環(huán)時,b的值等于8,此時輸出字母I。12、有以下程序#include<stdi0-h>intfuna(inta,intb){retuma+b;}intfunb(inta,intb){returna-b;}intSSS(int(*t)0,intx,intY){return((*t)(x,y));}main(){intx;x=sss(funa,9,3);x+=sss(funb,8,3);printf(’’%dkn’’,x);}程序運行后的輸出結果是A、17B、23C、24D、22標準答案:A知識點解析:函數(shù)funa的功能計算兩個數(shù)據的和,funb的功能計算兩個數(shù)據的差,函數(shù)sss中利用指向函數(shù)的指針作為函數(shù)的參數(shù),可以往調用的時候,根據接收的函數(shù)地址來決定調用那一個函數(shù)。土函數(shù)中調用x=sss(funa,9,3),將funa函數(shù)的地址傳遞給t,因此sss函數(shù)成為求兩個數(shù)據的和12,繼續(xù)將funb函數(shù)地址傳給t,求兩個數(shù)據差為5,和s累加后結果為17。13、有以下程序structA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n.",a.a,a.b,a.c);}voidf(StELlctAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運行后的輸出結果是A、1002,ChangRong,1202.0B、1001,ZhangDa,1098.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0標準答案:B知識點解析:在主函數(shù)中定義結構體A的變量a,并對其賦初值,再調用函數(shù)f(a),形參t接收實參的數(shù)據,在函數(shù)f(t)中對結構體變量t的各個成員進行了賦值操作,需要注意的,形參和實參之間是數(shù)據傳遞,因此對形參的操作對實參不產生影響,因此在主函數(shù)輸出仍然輸出變量a的數(shù)據14、若有以下程序#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結果是A、10B、6C、7D、3標準答案:C知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!=1不成立,執(zhí)行else分支,r=1;第二條if表達式b==2成立,執(zhí)行r+=12,r=3;第三條if語句c!=3不成立,執(zhí)行else分支,分支為空語句;第四條if分支d==4成立,執(zhí)行該if分支語句,r+=4,r=7。15、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);while(i++);pfintf("%d\n",i);其輸出結果是A、0,0B、1,1C、0,1D、程序進入無限循環(huán)標準答案:C知識點解析:do…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計算while后一對圓括號中表達式的值。當值為非0時,轉去執(zhí)行步驟①;當值為0時,執(zhí)行步驟③。⑨退出do…while循環(huán)。對于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語句,輸出變量i的值0。再判斷while后面括號中表達式i++的值,其值為0,所以循環(huán)結束。此時變量i的值經過自加已經變?yōu)?,所以再次輸出i的值“1”。16、以下錯誤的定義語句是()。A、intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B、intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C、intx[][3]={{0},{1},{1,2,3}};D、intx[][3]={1,2,3,4};標準答案:A知識點解析:考查二維數(shù)組的初始化。初始化二維數(shù)組的時候可以對其部分元素賦初值,還可以對數(shù)組的全部元素賦初值。若全部賦初值,則第一維的元素個數(shù)可以不指定,但是第二維元素個數(shù)不可以省略,所以答案選A。17、以下敘述中錯誤的是A、函數(shù)的返回值類型不能是結構體類型,只能是簡單類型B、只要類型相同,結構體變量之間可以整體賦值C、可以通過指針變量來訪問結構體變量的任何成員D、函數(shù)可以返回指向結構體變量的指針標準答案:A知識點解析:函數(shù)的返回值類型可以是結構體類型。結構體變量之間可以相互復制。18、有三個關系R、S和T如下:則由關系R和S得到關系T的操作是A、選擇B、差C、交D、并標準答案:B知識點解析:關系T是關系R的一部分,并且是關系R去掉R和S相同的元素,符合差操作。19、設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為A、’\0’B、0C、NULLD、非0值標準答案:D知識點解析:ANSIC提供的feof函數(shù)的功能是判斷fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則feof函數(shù)的值為1,否則為0,表示文件尚未結束。20、一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯(lián)系是A、一對一B、一對多C、多對多D、多對一標準答案:C知識點解析:因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。21、關于C語言的符號常量,以下敘述中正確的是A、符號常量的符號名是標識符,但必須大寫B(tài)、符號常量是指在程序中通過宏定義用一個符號名來代表一個常量C、符號常量在整個程序中其值都不能再被重新定義D、符號常量的符號名必須是常量標準答案:B知識點解析:在C語言中,可以用一個標識符來代表一個常量,稱為符號常量。這個標識符必須在程序中進行特別的"指定",并符合標識符的命名規(guī)則。用作符號常量的標識符通常采用大寫字母表示,在主函數(shù)中其值不能再被定義。所以選擇B選項。22、若有以下程序#includemain(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結果是A、10B、7C、6D、3標準答案:B知識點解析:else總是和與之最近的上面的if配對,執(zhí)行第一個if,判斷條件不成立,執(zhí)行elser=1;語句。再執(zhí)行第二個if語句中的判斷條件,成立,左移執(zhí)行r+=2,r的值為3,再執(zhí)行第三個if的判斷條件,不成立執(zhí)行第7行else后面的空語句";"。再執(zhí)行第四個if的判斷條件d==4成立,執(zhí)行r+=4,r的值為7。然后打印輸出。23、每所學校都有一名校長,而每個校長只在一所學校任職,則實體學校和實體校長之間的聯(lián)系是()。A、一對一B、一對多C、多對一D、多對多標準答案:A知識點解析:每所學校只有一名校長,每個校長只在一所學校任職,則實體學校和實體校長之間是一對一的聯(lián)系。24、有下列程序#include<stdio.h>main(){charb[]="happynewyear",k;for(k=0;b[k];k++)printf("%c",b[k]-’a’+’A’);}程序執(zhí)行后的輸出結果是()。A、hAppynewyeArB、HappynewyearC、HAPPYNEWYEARD、HaPPYNEWYEaR標準答案:C知識點解析:程序定義一個字符數(shù)組b,并使用字符串“happynewyear”進行初始化,然后通過for循環(huán),遍歷字符數(shù)組b中的每個字符,然后將b中的字符元素修改為大寫字母
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度標準托盤租賃與信息化管理系統(tǒng)合同3篇
- Unit 3 discovery說課稿 -2024-2025學年滬教版(五四制)英語六年級上冊
- 2025年制動軟管總成項目可行性研究報告
- 二零二五年度汽車租賃代售與維修服務合作協(xié)議4篇
- 2025年中國刷盒行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 二零二五版冬春救助項目合同爭議解決合同3篇
- 二零二五年度純凈水資源開發(fā)與綜合利用合作協(xié)議4篇
- 2025年度智能家居個人集資房買賣合同2篇
- 2025年新概念咖啡館經營管理承包合同3篇
- 2025版跨境電商企業(yè)進口關稅繳納合同范本4篇
- 2024年湖北省武漢市中考英語真題(含解析)
- DLT 261《火力發(fā)電廠熱工自動化系統(tǒng)可靠性評估技術導則》題庫
- 自動化立體庫貨架驗收報告
- 消防系統(tǒng)工程質量控制資料檢查記錄
- 中藥封包療法操作規(guī)范
- TPO27聽力題目及答案
- 新浪網刪貼申請文檔 (個人)
- 低溫乙烯罐內罐預冷過程溫度急降原因探討
- 世界各國電壓頻率一覽表(精編版)
- (完整版)裝飾裝修工程監(jiān)理細則(詳解)最新(精華版)
- 一條小路通羅馬攻略
評論
0/150
提交評論