二級c語言上機真題
1. 求2011年九月以及以前的計算機二級考試c語言試題及答案、以及考試內容分析和解題技巧。記住只要C的。
(1)下面敘述正確的是________。
A)演算法的執行效率與數據的存儲結構無關
B)演算法的空間復雜度是指演算法程序中指令(或語句)的條數
C)演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
D)演算法的時間復雜度是指執行演算法程序所需要的時間
(1)C
知識點:演算法的基本概念;演算法復雜度的概念和意義(時間復雜度與空間復雜度)
評 析:演算法的設計可以避開具體的計算機程序設計語言,但演算法的實現必須藉助程序設計語言中提供的數據類型及其演算法。數據結構和演算法是計算機科學的兩個重要支柱。它們是一個不可分割的整體。演算法在運行過程中需輔助存儲空間的大小稱為演算法的空間復雜度。演算法的有窮性是指一個演算法必須在執行有限的步驟以後結束。演算法的時間復雜度是指執行演算法所需要的計算工作量,即演算法執行過程中所需要的基本運算次數。
(2)以下數據結構屬於非線性數據結構的是________。
A)隊列 B)線性表 C)二叉樹 D)棧
(2)C
知識點:棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算
評 析:線性表、棧和隊列等數據結構所表達和處理的數據以線性結構為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂的元素,即剛剛被插入的元素。所以棧又稱後進先出表(Last In First Out)。隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最後一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(First In First Out)。二叉樹的數據結構是樹型結構,結構中數據元素之間存在著一對多的關系,因此它是一種非線性數據結構。
(3)在一棵二叉樹上第8層的結點數最多是________。
A)8 B)16 C)128 D)256
(3)C
知識點:二叉樹的定義及其存儲結構
評 析:根據二叉樹的性質:二叉樹第i(I>1)層上至多有2i-1個結點。得到第8層的結點數最多是128。
(4)下面描述中,不符合結構化程序設計風格的是________。
A)使用順序、選擇和重復(循環)三種基本控制結構表示程序的控制邏輯
B)自頂向下
C)注重提高程序的執行效率
D)限制使用goto語句
(4)C
知識點:結構化程序設計
評 析:結構化程序設計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。「自頂向下」是說,程序設計時,應先考慮總體,後考慮細節,先考慮全局目標,後考慮局部目標;「逐步求精』』是說,對復雜問題,應設計一些子目標作過渡,逐步細節化;「模塊化」是說,一個復雜問題肯定是由若干稍簡單的問題構成,解決這個復雜問題的程序,也應對應若干稍簡單的問題,分解成若干稍小的部分。
(5)下面概念中,不屬於面向對象方法的是________。
A)對象、消息 B)繼承、多態 C)類、封裝 D)過程調用
(5)D
知識點:面向對象的程序設計方法、對象、方法、屬性及繼承與多態性
評 析:面向對象方法是一種運用對象、類、封裝、繼承、多態和消息等概念來構造、測試、重構軟體的方法。面向對象方法從對象出發,發展出對象、類、消息、繼承等概念。
(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟體開發階段是________。
A)可行性分析 B)需求分析 C)詳細設計 D)程序編碼
(6)B
知識點:結構化設計方法
評 析:軟體開發階段包括需求分析、總體設計、詳細設計、編碼和測試五個階段。其中需求分析階段常用的工具是數據流程圖和數據字典。
(7)軟體生命周期中所花費用最多的階段是________。
A)詳細設計 B)軟體編碼 C)軟體測試 D)軟體維護
(7)D
知識點:軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境
評 析:軟體生命周期分為軟體定義、軟體開發及軟體運行維護3個階段。本題中詳細設計、軟體編碼和軟體測試都屬於軟體開發階段;維護是軟體生命周期的最後一個階段,也是持續時間最長,花費代價最大的一個階段,軟體工程學的一個目的就是提高軟體的可維護性,降低維護的代價。
(8)資料庫系統的核心是________。
A)數據模型 B)DBMS C)軟體工具 D)資料庫
(8)B
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評 析:資料庫管理系統DBMS是資料庫系統的核心。DBMS是負責資料庫的建立、使用和維護的軟體。DBMS建立在操作系統之上,實施對資料庫的統一管理和控制。用戶使用的各種資料庫命令以及應用程序的執行,最終都必須通過DBMS。另外,DBMS還承擔著資料庫的安全保護工作,按照DBA所規定的要求,保證資料庫的完整性和安全性。
(9)下列敘述中正確的是________。
A)數據處理是將信息轉化為數據的過程
B)資料庫設計是指設計資料庫管理系統
C)如果一個關系中的屬性或屬性組並非該關系的關鍵字,但它是另一個關系的關鍵
字,則稱其為本關系的外關鍵字
D)關系中的每列稱為元組,一個元組就是一個欄位
(9)C
知識點:數據模型,實體聯系模型及E-R圖,從E-R圖導出關系數據模型
評 析:數據處理是指將數據轉換成信息的過程,故選項A敘述錯誤;設計資料庫的目的實質上是設計出滿足實際應用需求的實際關系模型,故選項B敘述錯誤;關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性。對應存儲文件中的欄位,故D選項敘述錯誤。
(10)下列模式中,_______是用戶模式。
A)內模式 B)外模式 C)概念模式 D)邏輯模式
(10)B
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評 析:資料庫管理系統的三級模式結構由外模式、模式和內模式組成。外模式,或稱子模式,或稱用戶模式,是指資料庫用戶所看到的數據結構,是用戶看到的數據視圖。模式,或稱邏輯模式,是資料庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。外模式是模式的一部分。內模式,或稱存儲模式,或稱物理模式,是指數據在資料庫系統內的存儲介質上的表示。即對數據的物理結構和存取方式的描述。
36)演算法的時間復雜度是指_______。
A)執行演算法程序所需要的時間
B)演算法程序的長度
C)演算法執行過程中所需要的基本運算次數
D)演算法程序中的指令條數
(36)C
知識點:演算法復雜度的概念和意義(時問復雜度與空間復雜度)
評析:所謂演算法的時間復雜度,是指執行演算法所需要的計算工作量。為了能夠比較客觀地反映出一個演算法的效率,在度量一個演算法的工作量時,不僅應該與所使用的計算機、程序設計語言以及程序編制者無關,而且還應該與演算法實現過程中的許多細節無關。為此,可以用演算法在執行過程中所需基本運算的執行次數來度量演算法的工作量。
(37)下列敘述中正確的是_______。
A)線性表是線性結構 B)棧與隊列是非線性結構
C)線性鏈表是非線性結構 D)二叉樹是線性結構
(37)A
知識點:線性結構與非線性結構的概念
評析:根據數據結構中各數據元素之間相關聯關系的復雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件: (1)有且只有一個根結點; (2)每一個結點最多有一個前件,也最多有一個後件。則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
(38)下面關於完全二叉樹的敘述中,錯誤的是_______。
A)除了最後一層外,每一層上的結點數均達到最大值
B)可能缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+l
(38)B
知識點:二叉樹的定義及其存儲結構
評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質。滿二叉樹指除最後一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最後一層外,每一層上的結點數均達到最大值,在最後一層上只缺少右邊的若乾子結點(葉子結點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(5),也是正確的。
(39)結構化程序設計主要強調的是_______。
A)程序的規模 B)程序的易讀性
C)程序的執行效率 D)程序的可移植性
(39)B
知識點:結構化程序設計
評析:結構化程序設計主要強調的足結構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試.以保證程序的正確性。
(40)在軟體生命周期中,能准確地確定軟體系統必須做什麼和必須具備哪些功能的階段是_______。
A)概要設計 B)詳細設計 C)可行性分析 D)需求分析
(40)D
知識點:軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境
評析:通常,將軟體產品從提出、實現、使用維護到停止使用退役的過程稱為軟體生命周期。也就是說,軟體產品從考慮其概念開始,到該軟體產品不能使用為止的整個時期都屬於軟體生命周期。軟體生命周期的主要活動階段為:
① 可行性研究和計劃制定。確定待開發軟體系統的開發目標和總的要求,給出它的功能、性能、可靠性以及介面等方面的可行方案,制定完成開發任務的實施計劃。
②需求分析。對待開發軟體提出的需求進行分析並給出詳細定義,即准確地確定軟體系統的功能。編寫軟體規格說明書及初步的用戶手冊,提交評審。
③軟體設計。系統設計人員和程序設計人員應該在反復理解軟體需求的基礎上,給出軟體的結構、模塊的劃分、功能的分配以及處理流程。
④軟體實現。把軟體設計轉換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟體測試。在設計測試用例的基礎上,檢驗軟體的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟體投入運行,並存運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。
(41)數據流圖用於抽象描述一個軟體的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是_______。
A)控制流 B)加工 C)數據存儲 D)源和潭
(41)A
知識點:結構化分析方法,數據流圖,數據字典,軟體需求規格說明書
評析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據源)、源和潭。
(42)軟體需求分析一般應確定的是用戶對軟體的_______。
A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求
(42)D
知識點:結構化設計方法
評析:軟體需求分析中需要構造一個完全的系統邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務。因此,需求分析應確定用戶對軟體的功能需求和非功能需求。
(43)下述關於資料庫系統的敘述中正確的是_______。
A)資料庫系統減少了數據冗餘
B)資料庫系統避免了一切冗餘
C)資料庫系統中數據的一致性是指數據類型的一致
D)資料庫系統比文件系統能管理更多的數據
(43)A
知識點:資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統
評析:由於數據的集成性使得數據可為多個應JH=j所共享,特別是在網路發達的今天,資料庫與網路的結合擴大了數據關系的應用范圍。數據的共享自身義可極大地減少數據冗餘性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。
(44)關系表中的每一橫行稱為一個_______。
A)元組 B)欄位 C)屬性 D)碼
(44)A
知識點:資料庫的基本概念:資料庫.資料庫管理系統,資料庫系統
評析:在關系資料庫中,關系模型採用二維表來表示,簡稱「表」。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。
(45)資料庫設計包括兩個方面的設計內容,它們是_______。
A)概念設計和邏輯設計 B)模式設計和內模式設計
C)內模式設計和物理設計 D)結構特性設計和行為特性設計
(45)A
知識點:資料庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略
評析:資料庫設計可分為概念設計與邏輯設計。資料庫概念設計的目的是分析數據問內存語義關聯,在此基礎上建立一個數據的抽象模型。資料庫邏輯設計的主要工作是將E-R圖轉換為指定的RDBMS中的關系模型。
(61)字元(char)型數據在微機內存中的存儲形式是________。
A)反碼 B)補碼
C)EBCDIC碼 D)ASCII碼
(61)D
知識點:字元數據在內存中的存儲形式
評析:將一個字元常量放到一個字元變數中,實際上並不是把該字元本身放到內存單元中去,而是將該字元的ASCII碼值放到存儲單元中。
71)演算法的空間復雜度是指_______。
A)演算法程序的長度 B)演算法程序中的指令條數
C)演算法程序所佔的存儲空間 D)演算法執行過程中所需要的存儲空間
(71)D
知識點:演算法的復雜度
評析:一個演算法的空間復雜度,一般是指執行這個演算法所需的內存空間。
一個演算法所佔用的存儲空間包括演算法程序所佔的空間、輸入的初始數據所佔的存儲空間以及演算法執行過程中所需要的額外空間。
(72)下列關於棧的敘述中正確的是_______。
A)在棧中只能插入數據 B)在棧中只能刪除數據
C)棧是先進先出的線性表 D)棧是先進後出的線性表
(72)D
知識點:棧的輸入輸出操作
評析:棧是限定在一端進行插入與刪除的線性表。
棧是按照「先進後出」的或「後進先出」的原則組織數據的,因此,棧也被稱為「先進後出」表或「後進先出」表。
(73)在深度為5的滿二叉樹中,葉子結點的個數為_______。
A)32 B)31 C)16 D)15
(73)C
知識點:二叉樹的概念
評析:所謂滿二叉樹是指除最後一層外,每層上的所有結點都有兩個子結點。也就是說,在滿二又樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第K層上有2k-1個結點,且深度為m的滿二叉樹有2m個結點。
在滿二叉樹中,最後一層的結點個數就是葉子結點的個數,本題中深度為5,故葉子結點數為25-1=24==16。
(74)對建立良好的程序設計風格,下面描述正確的是_______。
A)程序應簡單、清晰、可讀性好 B)符號名的命名要符合語法
C)充分考慮程序的執行效率 D)程序的注釋可有可無
(74)A
知識點:程序設計風格
評析:要形成良好的程序設計風格,主要應注重和考慮下述一些因素:符號名的命名應具有一定的實際含義,以便於對程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應優先考慮清晰性,除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。
(75)下面對對象概念描述錯誤的是_______。
A)任何對象都必須有繼承性 B)對象是屬性和方法的封裝體
C)對象問的通訊靠消息傳遞 D)操作是對象的動態性屬性
(75)A
知識點:對象的概念
評析:對象是由數據和容許的操作組成的封裝體,與客觀實體有直接的對應關系。對象之間通過傳遞消息互相聯系,以模擬現實世界中不同事物彼此之間的聯系。
(76)下面不屬於軟體工程的3個要素的是_______。
A)工具 B)過程 C)方法 D)環境
(76)D
知識點:軟體:[程的要素
評析:軟體工程包括3個要素,即方法、工具和過程。
(77)程序流程圖(PFD)中的箭頭代表的是_______。
A)數據流 B)控制流 C)調用關系 D)組成關系
(77)B
知識點:軟體設計工具
評析:程序流程圖(PFD)是一種傳統的、應用廣泛的軟體過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
(78)在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是_______。
A)資料庫系統 B)文件系統 C)人工管理 D)數據項管理
(78)A
知識點:數據管理技術的發展
評析:在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和資料庫系統階段。其中數據獨立性最高的階段是資料庫系統。
2. 9月計算機二級《C語言》上機考題及答案
1、以下選項中屬於C語言的數據類型是()。
A. 復合型
B. 雙精度型
C. 邏輯型
D. 集合型
2、以下說法中正確的是()。
A. C語言程序總是從第一個的函數開始執行
B. 在C語言程序中,要調用的函數必須在main()函數中定義
C. C語言程序總是從main()函數開始執行
D. C語言程序中的main()函數必須放在程序的開始部分
3、選出下列標識符中不是合法的標識符的是()。
A. hot_do
B. cat1
C. _pri
D. 2ab
4、下列描述中不正確的是()。
A、字元型數組中可能存放字元串。
B、可以對字元型數組進行整體輸入、輸出。
C、可以對整型數組進行整體輸入、輸出。
D、 不能在賦值語句中通過賦值運算符“=”對字元型數組進行整體賦值。
5、若已定義:int a[9], *p=a;並在以後的語句中未改變p的值,不能表示a[1]地址的表達式為()。
A. p+1
B. a+1
C. a++
D. ++p
6、設有如下定義: int x=10,y=3,z; 則語句printf("%d ",z=(x%y,x/y)); 的輸出結果是()。
A. 1
B. 0
C. 4
D. 3
7、定義如下變數和數組: int i, x[3][3]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的輸出結果是()
A. 1 5 9
B. 1 4 7
C. 3 5 7
D. 3 6 9
8、讀出以下語句的輸出結果是()。
int x=10,y=10;
printf(“%d %d ”,x--,--y);
A. 10 10
B. 9 9
C. 9 10
D. 10 9
9、兩次運行下面的程序,如果從鍵盤上分別輸入6和3,則輸出結果是()。
if(x++>5) printf("%d",x);
else printf("%d ",x - -);
A. 7和5
B. 6和3
C. 7和4
D. 6和4
10、設有如下定義:char *aa[2]={"abcd","ABCD"};則以下說法中正確的是()。
A)aa數組成元素的值分別是"abcd"和ABCD"
B)aa是指針變數,它指向含有兩個數組元素的字元型一維數組
C)aa數組的兩個元素分別存放的是含有4個字元的一維字元數組的`首地址
D)aa數組的兩個元素中各自存放了字元’a’和’A’的地址
11、以下語句的輸出結果是()。
int a=-1,b=4,k;
k=(+ +a<0)&&!(b - -<=0);
printf("%d,%d,%d ",k,a,b);
A. 1,0,4
B. 1,0,3
C. 0,0,3
D. 0,0,4
12、下列程序的輸出結果是()。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB
B. abcABz
C. ABabcz
D. xycdBCD
13、執行下面的程序後,a的值是()。
#define SQR(X) X*X
main()
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d ",a); }
A. 10
B. 1
C. 9
D. 0
14、設A為存放(短)整型的一維數組,如果A的首地址為P,那麼A中第i 個元素的地址為()。
A.P+i*2
B. P+(i-1)*2
C. P+(i-1)
D. P+i
15、下列程序執行後輸出的結果是()。
int d=1;
fun (int p)
{ int d=5;
d + =p + +;
printf("%d,",d); }
main()
{ int a=3;
fun(a);
d + = a + +;
printf("%d ",d); }
A. 8, 4
B. 9, 6
C. 9, 4
D. 8, 5
16、表達式:10!=9的值是()。
A. true
B. 非零值
C. 0
D. 1
17、若有說明: int i,j=7, *p=&i;, 則與i=j; 等價的語句是()。
A. i= *p;
B. *p=*&j;
C. i=&j;
D. i=* *p;
18、不能把字元串:Hello!賦給數組b的語句是()。
A. char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B. char b[10]; b="Hello!";
C. char b[10]; strcpy(b,"Hello!");
D.char b[10]="Hello!";
19、在C程序中有如下語句:char *func(int x,int y); 它是()。
A. 對函數func的定義。
B. 對函數func的調用。
C.對函數func的原型說明。
D. 不合法的。
20、以下程序的輸出結果是()。
char str[15]=”hello!”;
printf(“%d ”,strlen(str));
A. 15
B. 14
C. 7
D. 6
參考答案:
1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D
11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D
3. c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
4. 全國計算機二級C語言上機試題
http://hi..com/bluewin100/blog/item/6f75cdb1c6146250092302d1.html
這個網址是南開一百題的一個拷貝版的網址 算是word版本的吧 你自己去弄吧
http://learning.sohu.com/s2005/jisuanji.shtml
是我曾經用過的網站 希望對你有幫助
另外 我曾經回答過好多相關的問題 如果有時間 你可以看看我回答過的題目 其中還有相關的備考手段 對你很有好處的
祝你成功哦 (*^__^*) 嘻嘻……
5. 計算機二級C語言100套上機填空題和改錯題
南開二級C語言上機100題
1、 改錯題1
下列給定程序的功能是:讀入一個整數(2<=k《=10000》,列印它的所有質因子(即所有為素數的因子)。例如,若輸入整數2310,則應輸出2、3、5、7、11。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <conio.h>
#include <stdio.h>
*******************************
IsPrime(int n); ——————去掉分號
{int i,m;
m=1;
for ( i=2; i<n; i++)
******************************
if !(n%i) ——————if (!(n%i))
{ m=0; break; }
return (m);
}
main()
{ int j,k;
clrscr();
printf("nPlease enter an integer number between 2 and 10000:");scanf("%d",&k);
printf("nnThe prime factor(s) of %d is (are):",k);
for (j=2;j<=k;j++)
if ((!(k%j))&&(IsPrime(j)) printf("n %4d",j);
printf("n");
)
2、 編程題1
m個人的成績存放在score數組中,請編寫函數fun,它的功能是:將低於平均分的人數作為函數值行會,將低於平均分的分數放在below所指的數組中。
例如,但score數組的數據為10、20、30、40、50、60、70、80、90時,函數返回的人數應該時4,below中的數據應為10、20、30、40。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容僅在函數fun的花括弧中填入所編寫的若干語句。
試題程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
int fun (int score[],int m, int below[])
{
——————int i,k=0;float aver=0;
for(i=0;i<m;i++)
aver+=(score[i]);
aver/=m;
for (i=0;i<m;i++)
if (score[i]<aver)
{below[k]=score[i];
k++;
retern(k);}
}
main()
{int i, n, below[9];
int score [9]={10,20,30,40,50,60,70,80,90};
clrscr();
n=fun(score,9,below);
printf("nBelow the average score are:");
for (i=0;i<n;i++) printf ("%d",below[i]);
}
3、 改錯2
下列給定程序中,函數fun的功能是:逐個比較a、b兩個字元串對應位置中的字元,把ASCII值大或等於的字元一次存放到c數組中,形成一個新的字元串。例如,若a中的字元串為aBCDeFgH,b中的字元串為:ABcd,則c中的字元串為:aBcdeFgh。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <studio.h>
#include <string.h>
****************************************
void; fun(char *p,char *q,char *c)——去分號
***************************************
{int k=1; ——1改為0
***************************************
while(*p!=*q) —— != 改為 ||
***************************************
{if (*p<*q) c[k]=*q; ——小於號改為小於等於
else c[k]=*p;
if (*p) p++;
if (*q) q++;
k++;
}
}
main()
{char a[10]="aBCDeFgh",b[10]="ABcd",c[80]={''};
fun(a,b,c);
printf("The string a:"); puts(a);
printf("The string b:"); puts (b);
printf("The result:"); puts(c);
}
4、 改錯3
下列給定程序中,函數fun的功能是:依次取出字元串中所有數字字元,形成新的字元串,並取代原字元串。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <stdio.h>
#include <conio.h>
void fun (char *s)
{ int i,j;
for (i=0,j=0;s[i]!='\0';i++)
****************************************
if (s[i]>='0' && s[i]<='9')
s[j]=s[i]; ——————j改為j++
***************************************
s[j]="\0"; ——————s[j]='\0'
}
main()
{char item[80];
clrscr();
printf("\nEnter a string:");gets(item);
printf("\n\nThe string is :\%s\n",item);
fun (item);
printf("\n\nThe string of changing is :\%s\n",item);
}
5、 改錯4
下列給定程序中,函數fun的功能是:分別銅級字元串中大寫字母和小寫字母的個數。例如,給字元串s輸入:AAaaBBb123CCccccd,則應該輸出結果:upper=6,lower=8。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
**********************************
void fun (char *s,int a, int b) ————a應為*a,b應為*b
{ while(*s)
{ if (*s>='A' && *s<='Z')
***********************************
a++; ————(*a)++;
if (*s>='a' && *s<='z')
************************************
b++; ————(*b)++;
s++;
}
}
main()
{ char s[100];int upper=0,lower=0;
clrscr();
printf("nPlease a string:");gets(s);
fun(s,&upper, &lower);
printf("n upper=%d lower=%dn",upper,lower);
}
6、 改錯5
假定整數數列中的數不重復,並存放在數組中。下列給定程序中,函數fun的功能是:刪除數列中值為x的元素。n中存放的是數列中元素的個數。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <stdio.h>
#define N 20
fun (int *a,int n, int x)
{int p=0,i;
a[n]=x;
while (x!=a[p])
p=p+1;
if (p==n) return -1;
else
{for (i=p;i<n;i++)
******************************************
a[i+1]=a[i]; ————a[i]=a[i+1];
return n-1;
}
}
main()
{int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;
n=10;
printf("The original data:n");
for (i=0;i<n;i++) printf("%5d",w[i]);
printf("nInput x (to delete):");scanf("%d",&x);
printf("Delete:%dn",x);
n=fun(w,n,x);
if (n==-1) printf("***Nor be found!***nn");
else
{printf("The data after deleted:n");
for (i=0,i<n;i++) printf("%5d",w[i]);printf("nn");
}
}
7、 改錯6
下列給定程序中,函數fun的功能是:根據整型形參m的值,計算如下公式的值。t=1-1/2×2-1/3×3-…-1/m×m
例如,若m中的值為5,則應輸出:0.536389。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <conio.h>
#include <stdio.h>
double fun (int m)
{ double y=1.0;
int i;
***************************************
for (i=2;i<m;i++) ———— 「<」改為「<=」
***************************************
y-=1/(i*i); ————「1」改為「1.0」
return(y);
}
main ()
{int n=5;
clrscr();
printf("\nRhe result is %1f\n",fun(n));
}
8、 改錯7
下列給定程序中,函數fun的功能是:用選擇法對數組中的n個元素按從小到大的順序進行排序。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <stdio.h>
#define N 20
void fun(int a[],int n)
{ int i,j,t,p;
for (j=0;j<n-1;j++)
***************************
{p=j ——加上「;」
for (i=j;i,n;i++) ——j改為j+1
if (a[i]<a[p])
*********************************
p=j; ——j改為i
t=a[p];a[p]=a[j];a[j]=t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i,m=5;
printf("排序前的數據:");
for (i=0;i<m;i++) printf("%d",a[i]);printf("\n");
fun(a,m);
printf("排序後的數據:");
for (i=0;i<m;i++) printf("%d",a[i]);printf("\n");
}
9、 改錯8(2004.7.27)
下列給定程序中,函數fun的功能是:在字元串str中找出ASCII碼值最大的字元,將其放在第一個位置上;並將該字元前的原字元向後順序移動。例如,調用fun函數之前給字元串輸入:ABCDeFGH,調用後字元串中的內容為eABCDFGH。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <stdio.h>
fun(char *p)
{ char max,*q;int i=0;
max=p[i];
while(p[i]!=0)
{ if(max<p[i])
{max=p[i];
*******************************
p=q+i; ——改為q=p+i;
}
i++;
}
******************************
while(q<p) ——q<p改為q>p
{*q=*(q-1);
q--;
}
p[0]=max;
}
main()
{char str[80];
printf("Enter a string:");gets(Str);
printf("\nThe original string: ");puts(Str);
fun(str);
printf("\nThe string agter moving:");puts (str);ptintf("\n\n");
}
10、 改錯9(2004.7.27)
下列給定程序中,函數fun的功能是:從n個學生的成績中統計出低於平均分的學生人數,此人數由函數值返回,平均分存放在形參aver所指的存儲單元中。例如,若輸入8名學生的成績:
80.5 60 72 90.5 98 51.5 88 64
則低於平均分的學生人數為4(平均分為:75.5625)。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <conio.h>
#include <stdio.h>
#define N 20
int fun (float *s,int n,float *aver)
{float ave,t=0.0;
int count=0,k,i;
for (k=0;k<n;k++)
*******************************
t=s[k]; ——t+=s[k];
ave=t/n;
for (i=0;i<n;i++)
if (s[i]<ave) count++;
******************************
*aver=&ave; ——去掉&
return count;
}
main()
{float s[30],aver;
int m,i;
clrscr();
printf("nPlease enter m:";scanf("%d",&m);
printf("nPlease enter %d mark:n",m);
for (i=0;i<m;i++) scanf("%f",s+i);
printf("nThe number of students:%dn",fun(s,m,&aver));
printf("Ave=%fn",aver);
)
11、 改錯10(2004.8.1)
下列給定程序中,函數fun的功能是:將s所指字元串中出現的t1所指子串全部替換成t2所指子字元串,所形成的新串放在w所指的數組中。在此處,要求t1和t2所指字元串的長度相同。例如,當s所指字元產中的內容為abcdabfab,t1所指子串中的內容為ab,t2所指子串中的內容為99時,結果,在2
所指的數組中內容應為99cd99f99。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
int fun (char *s, char *t1,char*t2,char*w)
{
int i; char *p,*r,*a;
strcpy(w,s);
while(*w)
{p=w;r=t1;
********************************************
while(r) ——r改為*r
if(*r==*p) {r++;p++}
else break;
if(*r=='')
{a=w;r=t2;
*******************************************
while(*r){*a=*r;a++;r++} ——改為while(*r){*a=*r;a++;r++;}
w+=strlen(t2);
}
else w++;
}
}
main()
{
char s[100],t1[100],t2[100],w[100];
clrscr();
printf("nPlease enter string S:");scanf("%s",s);
printf("nPlease enter string t1:");scanf("%s",t1);
printf("nPlease enter string t2:");scanf("%s",t2);
if (strlen(t1)==strlen(t2))
{
printf("nThe result is :%sn",w);
}
else printf("Error:strlen(t1)!=strlen(t2)n");
}
12、 改錯11(2004.8.1)
給定程序MODI1.C中,fun函數的功能是:先從鍵盤上輸入一個3行3列矩陣的各個元素的值,然後輸出主對角線元素之積。
請改正程序中的錯誤,或在橫線處填上適當的內容並把橫線刪除,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include <stdio.h>
int fun ()
{
int a [3] [3], sum;
int i, j;
***********************************
_____; ——sum = 1;
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
*****************************************
scanf (〃%d〃 a [i] [j]); ——scanf("%d", &a[i][j]);
}
for (i=0; i<3; i++)
sum=sum*a[i] [i];
printf (〃Sum=%dn〃, sum);
}
main ()
{ fun (); }
13、 改錯12(8.1)
下列程序的功能是:讀入一個整數 k(2≤k≤10000),列印它的所有質因子(即所有為素數的因子)。例如,若輸入整數:2310,則應輸出:2、3、5、7、11。
請改正程序中的語法錯誤,使程序能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include 〃conio.h〃
#include 〃stdio.h〃
************************************************
IsPrime ( int n ); ——IsPrime(int n)
{ int i, m;
m = 1;
for ( i = 2; i < n/ i++ )
*********************************************
if !( n%i ) ——if(!(n%i))
{ m=0; break ; }
return ( m );
}
main ()
{ int j, k;
clrscr ();
printf (〃nPease enter an integer number between 2 and 10000:〃); scanf ( 〃%d〃,&k );
printf ( 〃nn The prime factor (s) of % d is ( are ):〃, k );
for ( j = 2; j <= k; j++ )
if ( ( ! k%j ) ) && ( IsPrime ( j ) ) } printf ( 〃n % 4d〃, j );
printf (〃n〃);
}
14、 改錯13(8.4)
下列程序中,fun函數的功能是:根據形參m,計算如下公式的值。
t=1+ 1/2 + 1/3 + 1/4 + … + 1/m
例如,若輸入5,則應輸出2.283333。
請改正程序中的語法錯誤,使程序能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include<conio.h>
#include<stdio.h>
double fun(int m)
{
double t=1.0;
int i;
for(i=2;i<=m;i++)
*******************************************
t+=1.0/k; ——k改為i
*********************************************
____________; ——填return t;
}
main()
{
int m;
clrscr();
printf(「nPlease enter 1 integer number:」);
scanf(「%d」,&m);
printf(「nThe result is %1fn」,fun(m));
}
15、 改錯14(8.4)
下列程序中,fun和funx函數的功能是:
用二分法求方程2x×x×x-4x×x+3x-6=0的一個根,並要求絕對誤差不超過0.001。例如,若給m輸入-100,給n輸入90,則函數求得的一個根為2.000。
請改正程序中的語法錯誤,使程序能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!
試題程序:
#include<stdio.h>
#include<math.h>
double funx(double x)
{
return(2*x*x*x-4*x*x+3*x-6);
}
double fun(double m, double n)
{
**************************************
int r;——改為double r;
r=(m+n)/2;
**********************************
while(fabs(n-m)<0.001) —— "<" 改為" >= "
{if(funx(r)*funx(n)<0 m=r;
else n=r;
r=(m+n)/2;
)
return r;
)
main()
{
double m,n,root;
printf("Enter m n:n");scanf("%1f%1f",&m,&n);
root=fun(m,n);
printf("root=%6.3fn",root);
}
16、 改錯15(8.5)
下列給定程序中,函數fun的功能是:判斷字元ch是否與str所指串中的某個字元相同;若相同,則什麼也不做,若不同,則將器插在串的最後。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
#include <string.h>
**********************************
void fun(char str, char ch)------------------------1
{ while(*str && *str!=ch) str++;
**********************************
if (*str==ch)------------------------------------2
{ str[0]=ch;
*********************************
str[1]='0';------------------------------------3
}
}
main()
{char s[81],c;
clrscr();
printf("nPlease enter a string:n");gets(s)
printf("nPlease enter the character to search:");
c=getchar();
fun(s,c);
printf("nThe result is %sn",s);
}
15 題Answer:
1. void fun(char *str, char ch)
2. if (*str=='
17、 改錯16(8.5)
下列給定程序中,函數Creatlink的功能是:創建帶頭結點的單項鏈表,並為各結點數據域賦0到m-1的值。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct aa
{ int data;
struct aa *next;
}NODE;
NODE *Creatlink(int n, int m)
{NODE *h=Null, *p,*s;
int i;
s=(NODE *)malloc(sizeof(NODE));
********************************************
h=p;-------------------------------------1
p->next=NULL;
for (i=1;i<=n;i++)
{s=(NODE *)malloc(sizeof(NODE));
********************************************
s->data=rand()%m;-----------------------2
s->next=p->next;
p->next=s;
p=p->next;
}
********************************************
return p;--------------------------------3
}
outlink(NODE *h)
{NODE *p;
p=h->next;
printf("nnTHE LIST:nn HEAD");
while(p)
{printf("->%d",p->data);
p=p->next;
}
printf("n");
}
main()
{ NODE *head;
clrscr();
head=Creatlink(8,22);
outlink(head);
}
16 題Answer:
1. h=p=s;
2. s->data=rand()%(m-1);
3. return h;
18、 改錯17(8.5)
下列給定程序中,函數fun的功能是:計算並輸出k以內最大的10個能被13或17整除的自然數之和。k的值由主函數傳入,若k的值為500,則函數值為4622。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
int fun(int k)
{int m=0, mc=0,j;
while ((k>=2)&&(mc<10))
*********************************
{if ((k%13=0)||(k%17=0))-------------------1
{m=m+k;mc++;}
k--;
}
return m;
**********************************
_____________-------------------------------2
main()
{clrscr();
printf("%dn",fun(500));
}
17 題Answer:
1. if ((k%13==0)||(k%17==0))
2. }
19、 改錯18(8.5)
下列給定程序中,函數fun的功能是:實現兩個整數的交換。例如給a和b分別輸入60和65,輸出為:a=65 b=60
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
********************************
void fun (int a,b)--------------------------1
{int t;
*******************************
t=b;b=a;a=t;-------------------------------2
}
main()
{int a,b;
clrscr();
printf("Enter a,b:");scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%dn",a,b);
}
18 題Answer:
1. void fun (int *a,int *b)
2. t=*b;*b=*a;*a=t;
20、 改錯19(8.5)
下列給定程序中,函數fun的功能是:從低位開始取出長整型變數s中偶數位上的數,一次構成一個新數放在t中。例如,當s中的數為7654321時,t是的數為642。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <conio.h>
#include <stdio.h>
********************************
void fun (long s, long t)--------------------------1
{long sl=10;
s/=10;
*t=s%10;
****************************
while (s<0)--------------------------------------2
{s=s/100;
*t=s%10*sl+*t;
sl=sl*10;
}
}
main()
{long s,t;
clrscr();
printf("nPlease enter s:");scanf("%ld",&s);
fun(s,&t);
printf("The result is : %ldn",t);
}
19 題Answer:
1. void fun (long s, long *t)
2. while (s>0)
21、 改錯20(8.5)
N個有序整數數列已放在一堆數組中,下列給定程序中,函數fun的功能是:利用折半查找演算法找整數m再數組中的位置。若找到,則返回其下標值;反之,則返回-1。
折半查找的基本演算法是:每次查找前先確定數組中待查的范圍:low和high(low<high),然後把m與中間位置(mid)中元素的值進行比較。如果m的值大於中間位置元素中的值,則下一次的查找范圍放在中間位置之後的元素中;反之,下一次的查找范圍落在中間位置之前的元素中。直到low>high,查找結束。
請改正程序中的錯誤,使程序能得出正確的結果。
注意,不要改多main函數,不得增行或刪行,也不得更改程序的結構!
試題程序
#include <stdio.h>
#define N 10
************************************
void fun(int a[],int m)--------------------------1
{int low=0,high=N-1,mid;
while(low<=high)
{mid=(low+high)/2;
if (m<a[mid])
high=mid-1;
***************************************
else if (m>=a[mid])----------------------------2
low=mid+1;
else return(mid);
}
return(-1);
}
main()
{int i,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;
printf("a數組中的數據如下:");
for(i=0;i<N;i++) printf("%d",a[i]);
printf("Enter m:");scanf("%d",&m);
k=fun(a,m);
if(k>=0) printf("m=%d,index=%d\n",m,k);
else printf("Not be found!\n");
}
20 題Answer:
1. int fun(int a[],int m)
2. else if (m>a[mid])
6. 2007年計算機等級考試二級C語言上機試題(1-8套) 有 答案 嗎急用,謝謝!
http://www.isud.com.cn/down.asp?cat_id=13&class_id=53
本分類共有96個文件
『計算機』2007年計算機二級C語言上機考試試題(1-8套..
·2007年計算機二級C語言上機考試試題(1-8套)
軟體大小:未知 授權方式:免費下載 下載:5118 推薦程度:
『計算機』全國計算機等級考試一級試題及答案
·1. 微型計算機硬體系統中最核心的部件是( ).B A,主板 B,CPU C,內存儲器 D,I/O設備 2. 下列術語中,屬於顯示器性能指標的是( ).C A,速度 B,可靠性 C......
軟體大小:未知 授權方式:免費下載 下載:5208 推薦程度:
『計算機等級題』全國計算機等級考試一級試題庫
·全國計算機等級考試一級試題庫(答案在題號前面) D(1)引導型病毒程序被存放在 A)最後1個扇區中 B)第2物理扇區中 C)數據扇區中 D)引導扇區中 C(2)文件被感染上病......
軟體大小:未知 授權方式:免費下載 下載:2638 推薦程度:
『計算機等級題』全國計算機等級考試一級試題及答案
·全國計算機等級考試一級試題及答案 1. 微型計算機硬體系統中最核心的部件是( ).B A,主板 B,CPU C,內存儲器 D,I/O設備 2. 下列術語中,屬於顯示器性能指標......
軟體大小:未知 授權方式:免費下載 下載:2091 推薦程度:
『計算機等級題』2004年9月全國計算機等級考試二級C筆試試題..
·2004年9月全國計算機等級考試二級C筆試試題 11.用C語言編寫的代碼程序 A)可立即執行 B)是一個源程序 C)經過編譯即可執行 D)經過編譯解釋才能執行 12.......
軟體大小:未知 授權方式:免費下載 下載:588 推薦程度:
『計算機等級題』全國計算機等級考試一級B模擬試題五
·全國計算機等級考試一級B模擬試題五 (1)我國第一台電子計算機誕生於哪一年 A)1948年 B)1958年 C)1966年 D)1968年【答案】:B 【解析】:我國自......
軟體大小:未知 授權方式:免費下載 下載:550 推薦程度:
『計算機等級題』2004年4月全國計算機等級考試二級C語言筆試..
·2004年4月全國計算機等級考試二級C語言筆試試題基礎知識和C語言程序設計一, 選擇題((1)~(40)每題1分,(41)~(50)每題2分,共60分) 1, 1MB等於......
軟體大小:未知 授權方式:免費下載 下載:481 推薦程度:
『計算機等級題』06年計算機等級考試一級B考試試題及試題分析..
·06年計算機等級考試一級B考試試題及試題分析 1.計算機根據運算速度,存儲能力,功能強弱,配套設備等因素可劃分為(). A)台式計算機,攜帶型計算機,膝上型計算機 B)電......
軟體大小:未知 授權方式:免費下載 下載:888 推薦程度:
『計算機等級題』廣東省計算機等級考試(一級)模擬試題(F)
·廣東省計算機等級考試(一級)模擬試題(F) (考試時間:100分鍾) 系 班 級 學 號 姓 名 說明:(1)請考生在D盤根目錄下建立以自己學號命名文件夾(考生......
軟體大小:未知 授權方式:免費下載 下載:664 推薦程度:
『計算機等級題』計算機等級考試三級網路試題
·計算機等級考試三級網路試題 04年9月 教育部考試中心 版權所有一,選擇題(每小題1分,共60分) 下列各題A,B,C,D四個選項中,只有一個選項是正確的.請將正確選項塗寫......
軟體大小:未知 授權方式:免費下載 下載:634 推薦程度:
『計算機等級題』全國計算機等級考試四級筆試試題
·一,選擇題:((1)-(90))題,分為1分題和2分題,滿分120分.除標注2分題外,其它均為1分題.) 下列各題A),B),C),D)四個選項中,只有一個是正確的,請將正確選項......
軟體大小:未知 授權方式:免費下載 下載:298 推薦程度:
『計算機等級題』計算機等級考試上機模擬試題匯總
·計算機等級考試上機模擬試題匯總模擬試題(一) 1.填空題請補充函數fun(),該函數的功能是:把從主函數中輸入的字元串str2接在字元串str1的後面. 例如:str1......
軟體大小:未知 授權方式:免費下載 下載:778 推薦程度:
『計算機等級題』計算機等級考試二級模擬試題4基礎知識與FOX..
·計算機等級考試二級模擬試題4 基礎知識與FOXBASE程序設計 (考試時間120分鍾,滿分100分) 一,選擇題((1)-(40)每個選項1分,(41)-(50)每個選項......
軟體大小:未知 授權方式:免費下載 下載:330 推薦程度:
『計算機等級題』2005年4月全國計算機等級考試二級筆試試題A..
·2005年4月全國計算機等級考試二級筆試試題 Access 資料庫程序設計 一,選擇題(每小題 2 分,共 70 分) 下列各題 A),B),C),D)四個選項中,只有一......
軟體大小:未知 授權方式:免費下載 下載:420 推薦程度:
『計算機等級題』2006年4月全國計算機等級考試二級VFP試題及..
·2006年4月全國計算機等級考試二級VFP試題及答案 (考試時間90分鍾,滿分100分) 一,選擇題(每小題2分,共70分) 下列各題A),B),C),D)四個選項中,只有一......
軟體大小:未知 授權方式:免費下載 下載:583 推薦程度:
『計算機等級題』計算機等級考試二級VFp筆試試題
·計算機等級考試二級VFp筆試試題 一,選擇題((1)~(35)每小題2分,共70分)下列各題A),B),C),D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在大題卡 相......
軟體大小:未知 授權方式:免費下載 下載:297 推薦程度:
『計算機等級題』全國計算機等級考試二級VFp筆試試題(含答案..
·全國計算機等級考試二級VFp筆試試題(含答案) 一,選擇題((1)~(35)每小題2分,共70分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的,請將......
軟體大小:未知 授權方式:免費下載 下載:356 推薦程度:
『計算機等級題』全國計算機等級考試二級VB上機試題
·全國計算機等級考試二級VB上機試題 (考試時間90分鍾,滿分100分) 1. 基本操作(2小題,每小題15分,共計30分) 注意:下面出現的"考生文件夾"均為%USER% ......
軟體大小:未知 授權方式:免費下載 下載:461 推薦程度:
『計算機等級題』全國計算機等級考試二級C筆試試題
·9月全國計算機等級考試二級C筆試試題 1.與十進制數200等值的十六進制數為 A) A8 B)A4 C)C8 D)C4 2.DOS文件系統的組織結構屬於 A)星......
軟體大小:未知 授權方式:免費下載 下載:213 推薦程度:
『計算機等級題』計算機等級考試試卷二級VFP試題及答案
·計算機等級考試試卷二級VFP試題及答案一,選擇題((1)~(35)每小題2分,共70分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答......
軟體大小:未知 授權方式:免費下載 下載:286 推薦程度:
『計算機等級題』全國計算機等級三級C語言上機試題解析
·全國計算機等級三級C語言上機試題解析三級網路技術和三級資料庫技術的C語言上機試題難度較大,題型多樣,因此頗難掌握,今將這些試題分類解析,希望能幫大家順利通過上機考試. 三級......
軟體大小:未知 授權方式:免費下載 下載:231 推薦程度:
『計算機等級題』計算機等級二級C語言模擬試題
·計算機等級二級C語言模擬試題一,選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的,......
軟體大小:未知 授權方式:免費下載 下載:215 推薦程度:
『計算機等級題』計算機等級考試二級VB全真模擬試題含答案(2..
·計算機等級考試二級VB全真模擬試題含答案(2) 一,選擇題 (1)—(35)題每題2分,共70分. 下列各題A),B),C),D)四個先項中,只有一個選擇是正確的,請將正......
軟體大小:未知 授權方式:免費下載 下載:308 推薦程度:
『計算機等級題』2007年9月計算機等級考試二級VB標准模擬試題..
·2007年9月計算機等級考試二級VB標准模擬試題 ,選擇題1~20每小題2分,21~30每小題3分,共70分 1.在窗體中添加一個命令按鈕,並編寫如下程序: Private ......
軟體大小:未知 授權方式:免費下載 下載:461 推薦程度:
『計算機等級題』2006年4月全國計算機等級考試二級VB程序設計..
·2006年4月全國計算機等級考試二級VB程序設計試題及答案一,選擇題(每小題2分,共70分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的.請將正確選項填塗......
軟體大小:未知 授權方式:免費下載 下載:237 推薦程度:
『計算機等級題』湖南省非計算機專業等級考試試題(FOXPRO一級..
·湖南省非計算機專業等級考試試題(FOXPRO一級選擇題) 1, 要求一個資料庫文件的數值型欄位具有5位小數,那麼該欄位的寬度最少應當定為( ) A,5位 B,6位 C,7位 D......
軟體大小:未知 授權方式:免費下載 下載:1649 推薦程度:
『計算機等級題』全國計算機等級考試一級考試最新模擬試題
·1,設Windows處於系統默認狀態,在Word 97編輯狀態下,移動滑鼠至文檔行首空白處(文本選定區)連擊左鍵三下,結果會選擇文檔的______. A:一句話 B:一行 ......
軟體大小:未知 授權方式:免費下載 下載:195 推薦程度:
『計算機等級題』雲南省計算機等級考試(二級C)模擬試卷試題五..
·雲南省計算機等級考試(二級C)模擬試卷試題五第一卷第一部分:綜合基礎知識(共30分,每項1分) 1. 在下列設備中,不能作為微型計算機的輸出設備的是____. A.列印......
軟體大小:未知 授權方式:免費下載 下載:232 推薦程度:
『計算機等級題』計算機等級考試模擬題(第一套)
·計算機等級考試模擬題(第一套) 判斷正誤題目前常用的國產品牌機是聯想,金長城等.(√ ) 第一部內存儲程序計算機是用匯編語言來設計程序.(×) 二進制數01100101轉......
軟體大小:未知 授權方式:免費下載 下載:379 推薦程度:
『計算機等級題』江蘇省計算機軟體項目開發水平等級考試模擬..
·江蘇省計算機軟體項目開發水平等級考試模擬試題《程序設計》(Java開發員) 考試說明:卷面分100分;時間2小時考生務必將自己的數據文件存放在D盤上,並以自己的考號命名文......
軟體大小:未知 授權方式:免費下載 下載:171 推薦程度:
http://www.zhaoshiti.com.cn/Soft/List.asp?cat_id=53
2007-09-21 2007年9月計算機等級考試二級VB標准模擬試題
2007年9月計算機等級考試二級VB標准模擬試題 ,選擇題1~20每小題2分,21~30每小題3分,共70分 1.在窗體中添加一個命令按鈕,並編寫如下程序: Private Sub Command1Click() X=1:Y=2:Z=3 X=Y:Y=Z:Z=X Print Z End Sub 程序執行後,輸出的結果是()(本題分值:1分) A.3 B.0 C.2 D.1 【正確答案】C 2.下列敘述不正..
推薦程度:授權方式:免費軟體軟體大小:未知下載:82
2007-12-20 微型計算機介面技術復習資料
匯流排 • 匯流排是一組公共的信號傳輸線,用於連接計算機各個部件。 • 位於晶元內部的匯流排稱為內部匯流排。 • 連接微處理器與存儲器、輸入輸出介面,用以構成完整的微型計算機的匯流排稱為系統匯流排(有時也稱為外部匯流排)。 • 微型計算機的系統匯流排分為數據匯流排、地址匯流排和控制匯流排三組。 ……
推薦程度:授權方式:免費軟體軟體大小:未知下載:8
2007-09-21 江蘇省計算機軟體項目開發水平等級考試模擬試題
江蘇省計算機軟體項目開發水平等級考試模擬試題《實際項目開發》(Delphi開發師) 考試時間: 8小時,卷面分:100分項目名稱:招評標管理及決策信息系統要求:根據《招評標管理及決策信息系統需求分析說明書》設計和開發系統,所有文檔必須齊全,格式見文檔模板. (說明:由於時間要求,考試通常分成如下A,B兩類,本試題屬於B類...
推薦程度:授權方式:免費軟體軟體大小:未知下載:17
2007-09-21 江蘇省計算機軟體項目開發水平等級考試模擬試題
江蘇省計算機軟體項目開發水平等級考試模擬試題《程序設計》(Java開發員) 考試說明:卷面分100分;時間2小時考生務必將自己的數據文件存放在D盤上,並以自己的考號命名文件夾. 開發員程序設計題: (1) 試用遞歸演算法求出Fibonacci數列:1,1,2,3,5,8,……的第40個數,即 F1 = 1 (n=1) F2 = 1 (n=2) Fn = Fn-1 +Fn-2 (n>=3..
推薦程度:授權方式:免費軟體軟體大小:未知下載:13
2007-09-21 計算機等級考試模擬題(第一套)
計算機等級考試模擬題(第一套) 判斷正誤題目前常用的國產品牌機是聯想,金長城等.(√ ) 第一部內存儲程序計算機是用匯編語言來設計程序.(×) 二進制數01100101轉換成十六進制數是65.(√) 第二代計算機是電子管為主要邏輯元件,體積大電路復雜且易出故障.(×) 十進制數120轉換成二進制數是1111000.(√) 微處理器就是微..
推薦程度:授權方式:免費軟體軟體大小:未知下載:21
2007-09-21 雲南省計算機等級考試(二級C)模擬試卷試題五
雲南省計算機等級考試(二級C)模擬試卷試題五第一卷第一部分:綜合基礎知識(共30分,每項1分) 1. 在下列設備中,不能作為微型計算機的輸出設備的是____. A.列印機 B.顯示器 C.繪圖儀 D.鍵盤 2. 二進制數101110轉換為等值的八進制數是____. A.45 B.56 C.67 D.78 3. 微型計算機中,普遍使用的字元編碼是____. A.補..
推薦程度:授權方式:免費軟體軟體大小:未知下載:15
2007-09-21 全國計算機等級考試一級考試最新模擬試題
1,設Windows處於系統默認狀態,在Word 97編輯狀態下,移動滑鼠至文檔行首空白處(文本選定區)連擊左鍵三下,結果會選擇文檔的______. A:一句話 B:一行 C:一段 D:全文 2,如果你的計算機已接入Internet,用戶名為Zhs,而連接的服務商主機域名為Public.tpt.cn,則你的E-mail地址應該是_______. 3,在Word編輯狀態下,若想將..
推薦程度:授權方式:免費軟體軟體大小:未知下載:22
2007-09-21 湖南省非計算機專業等級考試試題(FOXPRO一級選擇題)
湖南省非計算機專業等級考試試題(FOXPRO一級選擇題) 1, 要求一個資料庫文件的數值型欄位具有5位小數,那麼該欄位的寬度最少應當定為( ) A,5位 B,6位 C,7位 D,8位 2,某數值型欄位的寬度定為6,小數位為2,該欄位所能存放的最小數值是( ) A,0 B,-999.99 C,-99.99 D,-9999.99 3,可以使用5種不同的數據類型描述資料庫文件中的..
推薦程度:授權方式:免費軟體軟體大小:未知下載:21
2007-09-21 2006年4月全國計算機等級考試二級VB程序設計試題及答案
2006年4月全國計算機等級考試二級VB程序設計試題及答案一,選擇題(每小題2分,共70分) 下列各題A),B),C),D)四個選項中,只有一個選項是正確的.請將正確選項填塗在答題卡相應位置上,答在試卷上不得分. (1)下列選項中不屬於結構化程序設計方法的是. A) 自頂向下B) 逐步求精 C) 模塊化D) 可復用 (2)兩個或兩個以上模塊之間..
推薦程度:授權方式:免費軟體軟體大小:未知下載:18
2007-09-21 計算機等級考試二級VB全真模擬試題含答案(2)
計算機等級考試二級VB全真模擬試題含答案(2) 一,選擇題 (1)—(35)題每題2分,共70分. 下列各題A),B),C),D)四個先項中,只有一個選擇是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分. (1) 下列不能打開屬性窗口的操作是 . A) 執行"視圖"菜單中的"屬性窗口"命令 B) 按F4鍵 C) 按Ctrl+T D) 單擊工..
推薦程度:授權方式:免費軟體軟體大小:未知下載:25
首頁 上一頁 1 2 3 4 5 6 7 8 9 10 下一頁 尾頁
7. 全國計算機二級c語言考試上機都考什麼
上機考試為:(1)填空。
(2)改錯。
(3)編程。(4)選擇。
考試基本要求:
1.熟悉
Visual
C++
6.0
集成開發環境。
2.掌握結構化程序設計的方法,具有良好的程序設計風格。
3.掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。
4.在
Visual
C++
6.0
集成環境下,
能夠編寫簡單的
C
程序,
並具有基本的糾錯和調試程
序的能力
8. 一道二級c語言上機題
從結果上看你的答案是沒有問題,我也不知道你哪裡錯了,但我發現你在邏輯上犯了錯誤!就順便給你說說,M是字元串的最大長度,不是實際長度,當字元串實際長度小於M時,多餘的部分用ASCII的0還是用隨機數來填充,不得而知,這個要看編輯器是哪個,C語言編輯器有好幾個,同一個邏輯錯誤在不同編輯器上表現也不同,有的就對,有的就錯,也可能是你機器上的C調試工具和模擬系統的調試工具不一樣,恰好你的這個邏輯錯誤在你的工具上沒表現出初錯誤,而在模擬系統上檢測時就出現問題!
所以不建議這樣寫for(i=0;i<M;i++)
if(ss[i]==c) k++; return k;
推薦:for(i=0;ss[i];i++) 代替循環,這樣嚴謹些!你可以試試。
當然這種可能有,但不一定是,希望對你有幫助,自學畢竟不可能曉得一個特別容易被忽略的地方。
9. 求全國計算機等級考試二級C語言的真題
http://yunpan.cn/QCwVZT2HztQcE 訪問密碼 6dbd
10. 2011年三月全國計算機二級c真題及答案
2011年3月計算機二級c真題
一、 選擇題
(1)下列關於棧敘述正確的是
A)棧頂元素最先能被刪除
B)棧頂元素最後才能被刪除
C)棧底元素永遠不能被刪除
D)以上三種說法都不對
(2)下列敘述中正確的是
A)有一個以上根結點的數據結構不一定是非線性結構
B)只有一個根結點的數據結構不一定是線性結構
C)循環鏈表是非線性結構
D)雙向鏈表是非線性結構
(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)
A)3 B)4 C)6 D)7
(4)在軟體開發中,需求分析階段產生的主要文檔是
A)軟體集成測試計劃 B)軟體詳細設計說明書
C)用戶手冊 D)軟體需求規格說明書
(5)結構化程序所要求的基本結構不包括
A)順序結構 B)GOTO跳轉
C)選擇(分支)結構 D)重復(循環)結構
(6)下面描述中錯誤的是
A)系統總體結構圖支持軟體系統的詳細設計
B)軟體設計是將軟體需求轉換為軟體表示的過程
C)數據結構與資料庫設計是軟體設計的任務之一
D)PAD圖是軟體詳細設計的表示工具
(7)負責資料庫中查詢操作的資料庫語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言
(8)一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯系是
A)1:1聯系 B)1:m聯系
C)m:1聯系 D)m:n聯系
(9)有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是
A)自然連接 B)交 C)除 D)並
(10)定義無符號整數類為UInt,下面可以作為類UInt實例化值的是
A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}
(11)計算機高級語言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是
A)C語言程序僅可以編譯執行
B)C語言程序僅可以解釋執行
C)C語言程序既可以編譯執行又可以解釋執行
D)以上說法都不對
(12)以下敘述中錯誤的是
A)C語言的可執行程序是由一系列機器指令構成的
B)用C語言編寫的源程序不能直接在計算機上運行
C)通過編譯得到的二進制目標程序需要連接才可以運行
D)在沒有安裝C語言集成開發環境的機器上不能運行C源程序生成的.exe文件
> (13)以下選項中不能用作C程序合法常量的是
A)1,234 B)'123'
C)123 D)"\x7G"
(14)以下選項中可用作C程序合法實數的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E
(15)若有定義語句:int a=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);
(16)有以下程序段
char name[20];
int num;
scanf("name=%s num=%d",name;&num);
當執行上述程序段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為
A)Lili
B)name=Lili
C)Lili num=
D)name=Lili num=1001
(17)if語句的基本形式是:if(表達式)語句,以下關於「表達式」值的敘述中正確的是
A)必須是邏輯值 B)必須是整數值
C)必須是正數 D)可以是任意合法的數值
(18)有以下程序
#include
main()
{ int x=011;
printf("%d\n",++x);
}
程序運行後的輸出結果是
A)12 B)11 C)10 D)9
(19)有以下程序
#include
main()
{ int s;
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);
}
}
運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是
A)6566456 B)66656 C)66666 D)6666656
(20)有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch (n)
{ case 1:
case 3:printf("%d\n",n); break;
case 2:
case 4:printf("%d\n",n); continue;
case 0:exit(0);
}
printf("%d\n",n);
}
以下關於程序段執行情況的敘述,正確的是
A)for循環語句固定執行8次
B)當產生的隨機數n為4時結束循環操作
C)當產生的隨機數n為1和2時不做任何操作
D)當產生的隨機數n為0時結束程序運行
(21)有以下程序
#include
main()
{ char s[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是
A)0 B)3 C)7 D)8
(22)若i和k都是int類型變數,有以下for語句
for(i=0,k=-1;k=1;k++) printf("*****\n");
下面關於語句執行情況的敘述中正確的是
A)循環體執行兩次
B)循環體執行一次
C)循環體一次也不執行
D)構成無限循環
(23)有以下程序
#include
main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf("\n");
}
程序運行後的輸出結果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef
(24)設有定義:double x[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是
A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6); D)scanf("%lf",p[6]);
(25)有以下程序(說明:字母A的ASCII碼值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序運行後的輸出結果是
A)BY B)BT C)YT D) YE
(26)有以下程序段
#include
main()
{ …
while( getchar()
!='\n');
…
}
以下敘述中正確的是
A)此while語句將無限循環
B) getchar()不可以出現在while語句的條件表達式中
C)當執行此while語句時,只有按回車鍵程序才能繼續執行
D)當執行此while語句時,按任意鍵程序就能繼續執行
(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序運行後的輸出結果是
A)3 B)2 C)1 D) 0
(28)若有定義語句:char s[3][10],(*k)[3],*p;,則以下賦值語句正確的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;
(29)有以下程序
#include
void fun(char *c)
{ while(*c)
{ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
當執行程序時從鍵盤上輸入Hello Beijing<回車>,則程序的輸出結果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing
(30)以下函數的功能是:通過鍵盤輸入數據,為數組中的所有元素賦值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i
}
在程序中下劃線處應填入的是
A)x+i B)&x[i+1]
C)x+(i++) D)&x[++i]
(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n %s\n",a,b);
}
程序運行時若輸入:
how are you? I am fine<回車>
則輸出結果是
A)how are you? B)how
I am fine are you? I am fine
C)how are you? I am fine
D)row are you?
(32)設有如下函數定義
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若執行調用語句:n=fun(3);,則函數fun總共被調用的次數是
A)2 B)3 C)4 D)5
(33)有以下程序
#include
int fun (int x,int y)
{ if (x!=y) return ((x+y);2);
else return (x);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序運行後的輸出結果是
A)3 B)6 C)8 D)12
(34)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d\n",s);
}
程序運行後的輸出結果是
A)0 B)10 C)30 D)64
(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf("%d\n",S(k+j));
}
程序運行後的輸出結果是
A)197 B)143 C)33 D)28
(36)設有定義:struct {char mark[12];int num1;double num2;} t1,t2;,若變數均已正確賦初值,則以下語句中錯誤的是
A)t1=t2; B)t2.num1=t1.num1;
C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序
#include
struct ord
{ int x,y;}dt[2]={1,2,3,4};
main()
{
struct ord *p=dt;
printf("%d,",++(p->x)); printf("%d\n",++(p->y));
}
程序運行後的輸出結果是
A)1,2 B)4,1 C)3,4 D)2,3
(38)有以下程序
#i
nclude
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序運行後的輸出結果是
A)10 B)11 C)20 D)21
(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a>>3;
printf("%d\n",c);
}
程序運行後的輸出結果是
A)32 B)16 C)1 D)0
(40)設fp已定義,執行語句fp=fopen("file","w");後,以下針對文本文件file操作敘述的選項中正確的是
A)寫操作結束後可以從頭開始讀 B)只能寫不能讀
C)可以在原有內容後追加寫 D)可以隨意讀和寫
二、填空題
(1)有序線性表能進行二分查找的前提是該線性表必須是 【1】 存儲的。
(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則後序遍歷結果為 【2】 。
(3)對軟體設計的最小單位(模塊或程序單元)進行的測試通常稱為 【3】測試。
(4)實體完整性約束要求關系資料庫中元組的 【4】 屬性值不能為空。
(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱 【5】是關系A的外碼。
(6)以下程序運行後的輸出結果是 【6】 。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}
(7)有以下程序
#include
main()
{ int x;
scanf("%d",&x);
if(x>15) printf("%d",x-5);
if(x>10) printf("%d",x);
if(x>5) printf("%d\n",x+5);
}
若程序運行時從鍵盤輸入12<回車>,則輸出結果為 【7】 。
(8)有以下程序(說明:字元0的ASCII碼值為48)
#include
main()
{ char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序運行時從鍵盤輸入48<回車>,則輸出結果為 【8】 。
(9)有以下函數
void prt(char ch,int n)
{ int i;
for(i=1;i<=n;i++)
printf(i%6!=0?"%c":"%c\n",ch);
}
執行調用語句prt('*',24);後,函數共輸出了 【9】 行*號。
(10)以下程序運行後的輸出結果是 【10】 。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d %d\n",x,y);
}
(11)己知a所指的數組中有N個元素。函數fun的功能是,將下標k(k>0)開始的後續元素全部向前移動一個位置。請填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}
(12)有以下程序,請在 【12】 處填寫正確語句,使程序可正常編譯運行。
#include
【12】 ;
main()
{ double x,y,(*p)();
scanf("%lf%lf",&x,&y);
p=avg;
printf("%f\n",(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}
(13)以下程序運行後的輸出結果是 【13】 。
#include
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf("%d",n[i]); }
printf("\n");
}
(14)以下程序運行後的輸出結果是 【14】 。
#include
#include
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,"welcome");
for(i=6;i>=0;i--) putchar(*(p+i));
printf("\n-"); free(p);
}
(15)以下程序運行後的輸出結果是 【15】 。
#include
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf("%d",x[i]);
printf("\n");
fclose(fp);
}
2011年3月計算機二級c答案:
一、選擇題
01-10:ABDDB ACDCB
11-20:ADBAA ADCAD
21-30:BDBCD CDCCC
31-40:BBBDB CDDCB
二、填空題
1.有序 2.DEBFCA 3.單元 4.主 5.D 6.3 7.1217 8.09 9.4 10.20 0
11.i-1 12.double avg(double a, double b); 13.13715 14.emoclew 15.123456