c語言上機(jī)試題
C語言能以簡易的方式編譯、處理低級存儲(chǔ)器。它是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。一般只比匯編語言代碼生成的目標(biāo)程序效率低10%~20%。因此,C語言可以編寫系統(tǒng)軟件。所以,像這類編程類的課程沒有一定的試題練習(xí)是不能真正把知識(shí)學(xué)到家的。
下半年計(jì)算機(jī)二級c語言基礎(chǔ)試題
任何設(shè)計(jì)活動(dòng)都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設(shè)計(jì)也不例外。下面是小編收集的關(guān)于計(jì)算機(jī)二級c語言基礎(chǔ)試題,希望大家認(rèn)真閱讀!
下半年計(jì)算機(jī)二級c語言基礎(chǔ)試題1
一、選擇:
1.給出以下定義:
char acX[ ]= "abcdefg";
char acY[ ]= {'a','b','c','d','e','f','g'};
則正確的敘述為( )
A) 數(shù)組acX和數(shù)組acY等價(jià) B) 數(shù)組acX和數(shù)組acY的長度相同
C) 數(shù)組acX的長度大于數(shù)組acY的長度 D) 數(shù)組acX的長度小于數(shù)組acY的長度
答案:C
2.
void example(char acHello[])
{
printf("%d", sizeof(acHello));
return;
}
void main()
{
char acHello[] = "hello";
example(acHello);//數(shù)組名稱作參數(shù),傳的是地址,一個(gè)地址占四個(gè)字節(jié)
return;
}
的輸出是
A 4 B 5 C 6 D不確定
答案:A
3. 有以下程序段
char acArr[]= "ABCDE";
2017年全國計(jì)算機(jī)二級c語言考試題庫
C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。下面是小編整理的關(guān)于全國計(jì)算機(jī)二級c語言考試試題,歡迎參考!
5.3 填空題
1.如果將調(diào)用一個(gè)函數(shù)的'過程分為3個(gè)步驟,第1步是轉(zhuǎn)去執(zhí)行被調(diào)用函數(shù) ,第2步是執(zhí)行被調(diào)用函數(shù)的語句 ,第3步是返回操作。
2.函數(shù)的存儲(chǔ)類分兩種,它們分別是外部 函數(shù)和內(nèi)部函數(shù),其中內(nèi)部 函數(shù)的存儲(chǔ)類說明不可省略,該說明符是 static 。
3.使用關(guān)鍵字inline說明的函數(shù)稱為內(nèi)聯(lián) 函數(shù),具有相同函數(shù)名但具有不同實(shí)現(xiàn)的函數(shù)稱為重載 函數(shù)。
4.在調(diào)用一個(gè)函數(shù)過程中可以直接或間接地調(diào)用該函數(shù),則該函數(shù)稱為被調(diào)用 函數(shù)。這種調(diào)用稱為嵌套 調(diào)用。
5.在引用調(diào)用中,函數(shù)實(shí)參用變量名 ,形參用 引用名 。
5.5 編程題
1. 從鍵盤上輸入8個(gè)浮點(diǎn)數(shù),編程求出其和以及平均值。要求寫出求和以及平均值的函數(shù)。
答:編程如下:
#include
double s,sum(double b[],int n),average(int n);
void main()
{
double a[8];
cout<<"輸入8個(gè)double型數(shù) ;";
for(int i=0;i<8;i++)
cin>>a[i];
2017年3月計(jì)算機(jī)二級c語言模擬試題
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
(1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A.循環(huán)隊(duì)列
B.帶鏈隊(duì)列
C.二叉樹
D.帶鏈棧
(2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是
A.循環(huán)隊(duì)列
B.棧
C.隊(duì)列
D.二叉樹
(3)對于循環(huán)隊(duì)列,下列敘述中正確的是
A.隊(duì)頭指針是固定不變的
B.隊(duì)頭指針一定大于隊(duì)尾指針
C.隊(duì)頭指針一定小于隊(duì)尾指針
D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針
(4)算法的空間復(fù)雜度是指
A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)
(5)軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D. 高內(nèi)聚高耦合
(6)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是
A.可封裝
B. 自頂向下
C.模塊化
D. 逐步求精
(7)數(shù)據(jù)庫管理系統(tǒng)是
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D. 一種操作系統(tǒng)
(8)在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是
2017年全國計(jì)算機(jī)c語言程序設(shè)計(jì)考試試題及答案
《C語言程序設(shè)計(jì)》講述了C語言的基本概念、各種數(shù)據(jù)類型的使用技巧、程序流程控制、數(shù)組、函數(shù)、指針以及有關(guān)程序設(shè)計(jì)的方法等內(nèi)容。下面是小編整理的關(guān)于國計(jì)算機(jī)c語言程序設(shè)計(jì)考試試題及答案,歡迎參考!
一、單項(xiàng)選擇
1.下列變量名中,非法的是( C )。
A.A25 B.My_car
C.My-str D.abc
2.下列常量中,十六進(jìn)制int型常量是( A )。
A.0x5f B.x2a
C.046 D.7a
3.下列常量中,不是字符常量的是( B )。
A.'\n' B."y"
C.'x' D.'\7'
4.在函數(shù)體內(nèi)定義了下述變量a,a的存儲(chǔ)類為( D )。
int a;
A.寄存器類 B.外部類
C.靜態(tài)類 D.自動(dòng)類
5.下列關(guān)于變量存儲(chǔ)類的描述中,錯(cuò)誤的是( C )。
A.任何變量定義后都具有一個(gè)確定的存儲(chǔ)類
B.變量的存儲(chǔ)類確定了變量的`作用域和壽命
C.定義變量時(shí)沒有存儲(chǔ)類說明符者一律為自動(dòng)類
D.內(nèi)部靜態(tài)類變量和外部靜態(tài)類變量的存儲(chǔ)類說明符都是static
6.下列關(guān)于變量數(shù)據(jù)類型的描述中,錯(cuò)誤的是( A )。
A.定義變量時(shí)int型數(shù)據(jù)類型可以省略
B.變量的數(shù)據(jù)類型可以決定該變量占內(nèi)存的字節(jié)數(shù)
C.變量的數(shù)據(jù)類型是可以被強(qiáng)制的
2017年計(jì)算機(jī)c語言二級考試試題及答案
程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具,給出這種語言下的程序。程序設(shè)計(jì)過程應(yīng)當(dāng)包括分析、設(shè)計(jì)、編碼、測試、排錯(cuò)等不同階段。yjbys小遍小編整理了一套計(jì)算機(jī)c語言二級考試試題及答案,希望可以幫助大家!
一、單項(xiàng)選擇
1 下列數(shù)據(jù)中,為字符串常量的是()。 D
A、'A'
B、How do you do.
C、$abc
D、"house"
2 以下所列的C語言常量中,錯(cuò)誤的是( )。 B
A、0xFF
B、1.2e0.5
C、2L
D、'\72'
3 以下程序的輸出結(jié)果是()。 D
main()
{float x=3.6;
int i;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A、x=3.600000,i=4
B、x=3 i=3.600000
C、x=3,i=3
D、x=3.600000,i=3
4 若k是整型,則以下程序段的執(zhí)行結(jié)果是:( ) B
k=-3;
if(k<=0) printf("####")
else printf("&&&&");
A、####
B、有語法錯(cuò)誤,無結(jié)果
yahoo在線筆試題(c語言)
當(dāng)前位置: 選擇試題類型>>答題
C試題
類型:C試題 | 試題:55道試題(50道選擇題,5道問答題)
注意: 答題過程如果您不提交答案,或者關(guān)閉瀏覽器退出,我們將不再允許您再次答題。
謝謝!
試題 選項(xiàng)
Question 1. (單選)
在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關(guān)鍵碼值11,所需的關(guān)鍵碼比
較次數(shù)為(3)
1. 2
2. 3
3. 4
4. 5
Question 2. (單選)
設(shè)散列表的存儲(chǔ)空間大小為19,所用散列函數(shù)為h(key)=key mod 19,用開地址線性探查法解
決碰撞。散列表的當(dāng)前
狀態(tài)如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 190 194 768 559 582 39
3 208.現(xiàn)要將關(guān)鍵碼
值75插入到該散列表中,其地址應(yīng)為 (1)
1. 1
2. 11
3. 5
4. 15
Question 3. (單選)
作業(yè)管理的主要任務(wù)包括作業(yè)輸入、作業(yè)處理和作業(yè)輸出。其中作業(yè)處理的工作是Ⅰ.作業(yè)
調(diào)度 Ⅱ.作業(yè)控制 Ⅲ.
作業(yè)后備 (3)
1. 只有Ⅰ
2. 只有Ⅱ
3. Ⅰ和Ⅱ
4. 都是
Question 4. (單選)
系統(tǒng)為了管理文件,設(shè)置了專門的數(shù)據(jù)結(jié)構(gòu)----文件控制塊(FC。FCB是在執(zhí)行下列哪一個(gè)系
統(tǒng)調(diào)用時(shí)建立的? (1)
1. create
2. open
3. read
4. write
Question 5. (單選)
下面關(guān)于通道的敘述中,正確的是Ⅰ.通道相當(dāng)于一個(gè)功能簡單的處理機(jī)Ⅱ.通道完成數(shù)據(jù)輸
入輸出工作Ⅲ.通道與
CPU共用一個(gè)內(nèi)存 (4)
1. Ⅰ和Ⅱ
2. Ⅰ和Ⅲ
3. Ⅱ和Ⅲ
4. 都是
Question 6. (單選)
互操作性是指在不同環(huán)境下的應(yīng)用程序可以相互操作,交換信息。要使采用不同數(shù)據(jù)格式的
各種計(jì)算機(jī)之間能夠相
互理解,這一功能是由下面哪一層來實(shí)現(xiàn)的? (2)
1. 應(yīng)用層
2. 表示層
3. 會(huì)話層
4. 傳輸層
Question 7. (單選)
在UNIX的Shell程序中,可以使用位置變量。若要指明Shell引用的最近后臺(tái)進(jìn)程的號(hào)碼,可
以使用位置變量 (2)
1. $$
2. $!
3. $#
4. $-
Question 8. (單選)
設(shè)二叉樹根結(jié)點(diǎn)的層次為0,一棵深度(高度)為k的滿二叉樹和同樣深度的完全二叉樹各有
f個(gè)結(jié)點(diǎn)和c個(gè)結(jié)點(diǎn),下列
關(guān)系式不正確的是: (2)
1. f>=c
2. c>f
3. f=2k+1-1
4. C>2k-1
Question 9. (單選)
單鏈表的每個(gè)結(jié)點(diǎn)中包括一個(gè)指針link,它指向該結(jié)點(diǎn)的后繼結(jié)點(diǎn),F(xiàn)要將指針q指向的新
結(jié)點(diǎn)插入到指針p指向的
單鏈表結(jié)點(diǎn)之后,下面的操作序列中哪一個(gè)是正確的? (3)
1. q:=p^.link; p^.link:=q^.link
2. p^.link:=q^.link; q:=P^.link
3. q^.link:=p^.link; p^.link:=q;
4. p^.link:=q; q^.link:=p^,link
Question 10. (單選)
某二叉樹結(jié)點(diǎn)的對稱序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。
該二叉樹結(jié)點(diǎn)的前序序
列為 (2)
1. E、G、F、A、C、D、B
2. E、A、C、B、D、G、F
3. E、A、G、C、F、B、D
4. E、G、A、C、D、F、B
Question 11. (單選)
某二叉樹結(jié)點(diǎn)的對稱序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。
該二叉樹對應(yīng)的樹林包
括多少棵樹? (2)
1. 1
2. 2
3. 3
4. 4
Question 12. (單選)
某二叉樹結(jié)點(diǎn)的對稱序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E。
該二叉樹對應(yīng)的樹林結(jié)
點(diǎn)的層次次序序列為 (1)
1. E、G、F、A、C、D、B
2. E、A、C、B、D、G、F
3. E、A、G、C、F、B、D
4. E、G、A、C、D、F、B
Question 13. (單選)
假設(shè)就緒隊(duì)列中有10個(gè)進(jìn)程,系統(tǒng)將時(shí)間片設(shè)為200ms, CPU進(jìn)行進(jìn)程切換要花費(fèi)10ms。則
系統(tǒng)開銷所占的比率約
為 (2)
1. 1%
2. 5%
3. 10%
4. 20%
Question 14. (單選)
長度相同但格式不同的2種浮點(diǎn)數(shù),假設(shè)前者階碼長、尾數(shù)短,后者階碼短、尾數(shù)長,其它
規(guī)定均相同,則它們可
表示的數(shù)的范圍和精度為: (2)
1. 兩者可表示的數(shù)的范圍和精度相同
2. 前者可表示的數(shù)的范圍大但精度低
3. 后者可表示的數(shù)的范圍大且精度高
4. 前者可表示的數(shù)的范圍大且精度高
Question 15. (單選)
所謂“變號(hào)操作”是指將一個(gè)整數(shù)變成絕對值相同但符號(hào)相反的另一個(gè)整數(shù)。假設(shè)使用補(bǔ)
碼表示的8位整數(shù)
X=10010101,則經(jīng)過變號(hào)操作后結(jié)果為:(4)
1. 1101010
2. 10101
3. 11101010
4. 1101011
Question 16. (單選)
設(shè)有一個(gè)用數(shù)組Q[1..m」表示的環(huán)形隊(duì)列,約定f為當(dāng)前隊(duì)頭元素在數(shù)組中的位置,r為隊(duì)
尾元素的后一位置(按順
時(shí)針方向),若隊(duì)列非空,則計(jì)算隊(duì)列中元素個(gè)數(shù)的公式應(yīng)為:(2)
1. r-f
2. (m+r-f) mod m
3. (m-r+f)mod m
4. (m-r-f) mod m
Question 17. (單選)
計(jì)算機(jī)最主要的工作特點(diǎn)是(2)
1. 存儲(chǔ)程序與自動(dòng)控制
2. 高速度與高精度
3. 可靠性與可用性
4. 有記憶能力
Question 18. (單選)
計(jì)算機(jī)中數(shù)據(jù)的表示形式是(3)
1. 八進(jìn)制
2. 十進(jìn)制
3. 二進(jìn)制
4. 十六進(jìn)制
Question 19. (單選)
下面列出的四種存儲(chǔ)器中,易失性存儲(chǔ)器是(1)
1. RAM
2. ROM
3. PROM
4. CD-ROM
Question 20. (單選)
I/O接口位于 (2)
1. 總線和設(shè)備之間
2. CPU和I/O設(shè)備之間
3. 主機(jī)和總線之間
4. CPU和主存儲(chǔ)器之間
Question 21. (單選)
計(jì)算機(jī)硬件能直接識(shí)別和執(zhí)行的只有(4)
1. 高級語言
2. 符號(hào)語言
3. 匯編語言
4. 機(jī)器語言
Question 22. (單選)
具有多媒體功能的微型計(jì)算機(jī)系統(tǒng)中,常用的CD-ROM是(2)
1. 只讀型大容量軟盤
2. 只讀型光盤
3. 只讀型硬盤
4. 半導(dǎo)體只讀存儲(chǔ)器
Question 23. (單選)
微機(jī)中1K字節(jié)表示的'二進(jìn)制位數(shù)是(4)
1. 1000
2. 8x1000
3. 1024
4. 8x1024
Question 24. (單選)
下列字符中,ASCII碼值最小的是(2)
1. a
2. A
3. x
4. Y
Question 25. (單選)
OSI(開放系統(tǒng)互聯(lián))參考模型的最低層是(3)
1. 傳輸層
2. 網(wǎng)絡(luò)層
3. 物理層
4. 應(yīng)用層
Question 26. (單選)
在面向?qū)ο蟮南到y(tǒng)中,系統(tǒng)責(zé)任的良好分配原則是(3)
1. 在類之間均勻分配
2. 集中分配在少數(shù)控制類中
3. 根據(jù)交互圖的消息進(jìn)行分配
4. 根據(jù)個(gè)人喜好進(jìn)行分配
Question 27. (單選)
在CMM模型中,對軟件成熟度有以下5個(gè)級別,請從低到高排序
a 初始級:
軟件過程的特點(diǎn)是無秩序的,偶爾甚至是混亂的。幾乎沒有什么過程是經(jīng)過定義的,成功依
賴于個(gè)人的努力。
b 優(yōu)化級:
利用來自過程和來自新思想、新技術(shù)的先導(dǎo)性試驗(yàn)的定量反饋信息,使持續(xù)過程改進(jìn)成為
可能。
c 已定義級:
管理活動(dòng)和工程活動(dòng)兩方面的軟件過程均已文檔化、標(biāo)準(zhǔn)化、并集成到組織的標(biāo)準(zhǔn)軟件過
程。
d 已管理級:
已采集詳細(xì)的有關(guān)軟件過程和產(chǎn)品質(zhì)量的度量,無論軟件過程還是產(chǎn)品均得到定量了解和控
制。
e 可重復(fù)級:
已建立基本的項(xiàng)目管理過程去跟蹤成本、進(jìn)度和功能性。必要的過程紀(jì)律已經(jīng)就位,使具
有類似應(yīng)用的項(xiàng)目。能重
復(fù)以前的成功。
(3)
1. acdbe
2. adceb
3. aecdb
4. abcde
Question 28. (單選)
在下面所列舉的邏輯測試覆蓋中,測試覆蓋最強(qiáng)的是(3)
1. 條件覆蓋
2. 條件組合覆蓋
3. 語句覆蓋
4. 條件及判定覆蓋
Question 29. (單選)
一般來說,在軟件維護(hù)過程中,大部分工作是由什么引起的(3)
1. 適應(yīng)新的軟件環(huán)境
2. 適應(yīng)新的硬件環(huán)境
3. 用戶的需求改變
4. 程序的可靠性
Question 30. (單選)(2)
PSP是?
1. 團(tuán)隊(duì)軟件過程
2. 個(gè)體軟件過程
3. 過程改進(jìn)過程
4. 質(zhì)量管理過程
Question 31. (單選)
假定a和b為int型變量,則執(zhí)行以下語句后b的值為 (4)
a=1; b=10;
do { b-=a; a++; } while (b--<0);
1. 9
2. -2
3. -1
4. 8
Question 32. (單選)
設(shè)有以下宏定義:
#define N 3
#define Y(n) ( (N+1)*n)
則執(zhí)行語句:z=2 * (N+Y(5+1));后,z的值為 (3)
1. 出錯(cuò)
2. 42
3. 48
4. 54
Question 33. (單選)
執(zhí)行以下程序段后,m的值為 (1)
int a[2][3]={ {1,2,3},{4,5,6} };
int m,*p;
p=a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
1. 15
2. 14
3. 13
4. 12
Question 34. (單選)
有以下程序
main()
{ char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));
}
輸出結(jié)果是 (4)
1. gm
2. rg
3. or
4. ga
Question 35. (單選)
有以下程序
int fun(int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a, b, c, d;
a=30; b=50;
fun(a,b,c,&d);
printf("%d,%d
", c, d);
}
輸出結(jié)果是 (3)
1. 50,30
2. 30,50
3. 80,-20
4. 80,20
Question 36. (單選)
下述標(biāo)識(shí)符中, 合法的用戶標(biāo)識(shí)符是(4)
1. A#C
2. getch
3. void
4. sizeOf
Question 37. (單選)
以下選項(xiàng)中合法的字符常量是(3)
1. A
2. '10'
3. 68
4. D
Question 38. (單選)
以下敘述正確的是 (3)
1. 在C程序中,main函數(shù)必須位于程序的最前面
2. C程序的每行中只能寫一條語句
3. C語言本身沒有輸入輸出語句
4. 在對一個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤
Question 39. (單選)
以下敘述中不正確的是 (4)
1. 在不同的函數(shù)中可以使用相同名字的變量
2. 函數(shù)中的形式參數(shù)是局部變量
3. 在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
4. 在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
Question 40. (單選)
設(shè)int類型的數(shù)據(jù)長度為2個(gè)字節(jié),則 unsigned int 類型數(shù)據(jù)的取值范圍是 (2)
1. 0~255
2. 0~65535
3. -32768~32767
4. -256~255
Question 41. (單選)
某文件中定義的靜態(tài)全局變量(或稱靜態(tài)外部變量)其作用域是 (2)
1. 只限某個(gè)函數(shù)
2. 本文件
3. 跨文件
4. 不限制作用域
Question 42. (單選)
語句:printf("%d
",12 012);的輸出結(jié)果是 (3)
1. 12
2. 012
3. 8
4. 6
Question 43. (單選)
設(shè)int x=4; 則執(zhí)行以下語句: x+=x-=x-x;后,x的值為 (3)
1. 0
2. 4
3. 8
4. 12
Question 44. (單選)
while(!x)中的(!x)與下面條件等價(jià)。 (4)
1. x==1
2. x!=1
3. x!=0
4. x==0
Question 45. (單選)
已知int i,a;執(zhí)行語句: i=(a=2*3,a*5),a+6;后,變量i的值是 (3)
1. 6
2. 12
3. 30
4. 36
Question 46. (單選)
整型變量x和y的值相等、且為非0值,則以下選項(xiàng)中,結(jié)果為零的表達(dá)式是 (4)
1. x || y
2. x | y
3. x y
4. x ^ y
Question 47. (單選)
x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是 (2)
1. INPUT x、y、z;
2. scanf("%d%d%d",x,&y,&z);
3. scanf("%d%d%d",x,y,z);
4. read("%d%d%d",x,y,z);
Question 48. (單選)
以下各選項(xiàng)企圖說明一種新的類型名,其中正確的是 (2)
1. typedef v1 int;
2. typedef int v3;
3. typedef v4: int;
4. typedef v2=int;
Question 49. (單選)
char x=3,y=6,z;
z=x^y<<2;
則z的二進(jìn)制值是 (2)
1. 10100
2. 11011
3. 11100
4. 11000
Question 50. (單選)
若有說明:int i, j=2,*p=i;,則能完成i=j賦值功能的語句是 (2)
1. i=*p;
2. *p=*j;
3. i=j;
4. i=**p;
Question 51. (問答)
給定一個(gè)整型變量a,寫兩段代碼,第一個(gè)設(shè)置a的bit 3,第二個(gè)清除a的bit 3。在以上兩
個(gè)操作中,要保持其它
位不變。
a|=0x4;
int b=a0x7;
a>>=4;
a=(a<<4)|b;
Question 52. (問答)
有雙向循環(huán)鏈表結(jié)點(diǎn)定義為:
struct node
{ int data;
struct node *front,*next;
};
有兩個(gè)雙向循環(huán)鏈表A,B,知道其頭指針為:pHeadA,pHeadB,請寫一函數(shù)將兩鏈表中dat
a值相同的結(jié)點(diǎn)刪除
struct node
{ int data;
struct node *front,*next;
};
node* del(node *pHead){
if(pHead==pHead->next){
free(pHead);
return NULL;
}
node *p=pHead;
pHead->next->front=pHead->front;
pHead->front->next=pHead->next;
pHead=pHead->next;
free(p);
return pHead;
}
void delequ(node*pHeadA,node *pHeadB){
node *pA=pHeadA;
node *pB;
int flag;
do{
flag=0;
pB=pHeadB;
do{
if(pB->data==pA->data){
if(pA==pHeadA){
pHeadA=pA=del(pHeadA);
flag=1;
}
else{
pA=del(pA);
}
pB=del(pB);
break;
}
pB=pB->next;
}while(pB!=pHeadB);
if(flag==0){
pA=pA->next;
}
}while(!pA & !pB && (flag||(pA!=pHeadA)));
}
Question 53. (問答)
編程實(shí)現(xiàn):找出兩個(gè)字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串為"c
ad"
char* constr(char *A,char *B){
int lenA=strlen(A),lenB=strlen(B);
int itmp,conlen=0;
char *pequ,*pH=NULL;
char *pA,*pB,*pA2,*pB2;
for(pA=A;pA-Afor(pB=B;pB-Bif(*pB==*pA){
pA2=pA+1;
pB2=pB+1;
for(itmp=1;*pA2==*pB2 & pA2++-Aif(itmp>conlen){
conlen=itmp;
pH=pA;
}
}
pB++;
}
}
pequ=(char*)malloc(conlen+1);
memcpy(pequ,pH,conlen);
*(pequ+conlen)='';
return pequ;
}
Question 54. (問答)
說明關(guān)鍵字static和volatile的含義
static用于外部變量或者函數(shù)時(shí),限制了它們的作用域?yàn)槲募䞍?nèi)部;static也可以用于內(nèi)
部變量,這樣,內(nèi)部變量在每次函數(shù)調(diào)用時(shí)都為同一存儲(chǔ),值具有連續(xù)性。
volatile說明了一個(gè)變量的值是會(huì)隨機(jī)變化的,即使程序沒有對它進(jìn)行任何賦值操作。它
告訴編譯器的優(yōu)化處理器,這些變量是實(shí)實(shí)在在存在的,在優(yōu)化過程中不能無故消除,這樣就保證了編譯后的代碼在每次操作是從變量地址處取數(shù)。
Question 55. (問答)
編程實(shí)現(xiàn):把十進(jìn)制數(shù)(long型)分別以二進(jìn)制和十六進(jìn)制形式輸出,不能使用printf系列
庫函數(shù)
void put(long data){
long mask=0x1<<(8*sizeof(long)-1);
int i;
char c;
if(datamask)
putchar('1');
else
putchar('0');
mask=0x1<<(8*sizeof(long)-2);
for(i=1;i<8*sizeof(long);i++){
if(datamask)
putchar('1');
else
putchar('0');
mask>>=1;
}
putchar(' ');
mask=0xf<<(8*sizeof(long)-4);
c=(datamask)>>(8*sizeof(long)-4);
if(c<10)
putchar(c+'0');
else
putchar(c+'a');
mask=0xf<<(8*sizeof(long)-8);
for(i=1;i<2*sizeof(long);i++){
c=(datamask)>>(8*sizeof(long)-4*i-4);
if(c<10)
putchar(c+'0');
else
putchar(c+'a');
mask>>=4;
}
}
注意: 一旦您提交答題后,將不能再修改您的答案。
華為C語言筆試題
一、判斷題(對的寫t,錯(cuò)的寫f并說明原因,每小題4分,共20分)
1、有數(shù)組定義int a[2][2]={{1},{2,3}};則a[0][1]的'值為0。( )
2、int (*ptr) (),則ptr是一維數(shù)組的名字。( )
3、指針在任何情況下都可進(jìn)行>, <, >=, <=, = =運(yùn)算。( )
4、switch(c) 語句中c可以是int, long, char, float, unsigned int 類型。( )
5、#define print(x) printf("the no, "#x",is ")
二、填空題(共30分)
1、在windows下,寫出運(yùn)行結(jié)果,每空2分,共10分。
char str[ ]= "hello";
char *p=str;
int n=10;
sizeof(str)=( )
sizeof(p)=( )
sizeof(n)=( )
void func(char str[100])
{ }
sizeof(str)=( )
2、void setmemory(char **p, int num)
{ *p=(char *) malloc(num);}
void test(void)
{ char *str=null;
getmemory(str,100);
2017計(jì)算機(jī)二級c語言考試試題大全
“C語言程序設(shè)計(jì)”是計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)專業(yè)的一門技術(shù)基礎(chǔ)課程,也是程序設(shè)計(jì)的啟蒙語言課程。下面是小編整理的關(guān)于計(jì)算機(jī)二級c語言考試試題,歡迎參考!
一、單選題
1.當(dāng)一個(gè)函數(shù)沒有返回值時(shí),該函數(shù)類型應(yīng)說明為( A )。
A.void B.int
C.無 D.任意
2.下列關(guān)于設(shè)置函數(shù)默認(rèn)的參數(shù)值的描述中,錯(cuò)誤的是( C )。
A.可對函數(shù)的部分參數(shù)或全部參數(shù)設(shè)置默認(rèn)值
B.在有函數(shù)說明時(shí),默認(rèn)值應(yīng)設(shè)置在函數(shù)說明時(shí),而不是定義時(shí)
C.設(shè)置函數(shù)默認(rèn)參數(shù)值時(shí),只可用常量不可用含有變量的表達(dá)式
D.設(shè)置函數(shù)參數(shù)默認(rèn)值應(yīng)從右向左設(shè)置
3.下列關(guān)于被調(diào)用函數(shù)中return語句的描述中,錯(cuò)誤的是( D )。
A.一個(gè)函數(shù)中可以有多條return語句
B.return語句具有返回程序控制權(quán)的`作用
C.函數(shù)通過return語句返回值時(shí)僅有一個(gè)
D.一個(gè)函數(shù)中有且僅有一條return語句
4.函數(shù)返回值的類型是由( B )決定的。
A.調(diào)用該函數(shù)的調(diào)用函數(shù)的類型
B.定義該函數(shù)時(shí)所指定的類型
C.return語句中表達(dá)式的類型
D.接收函數(shù)返回值的變量或?qū)ο蟮念愋?
5.下列設(shè)置函數(shù)參數(shù)默認(rèn)值的說明語句中,錯(cuò)誤的是( C )。
A.int fun(int x , int y=10); B.int fun(int x=5, int =10);
2017年全國計(jì)算機(jī)c語言試題及答案
C語言是把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來的工作單元。下面是小編整理的關(guān)于全國計(jì)算機(jī)c語言試題及答案,歡迎參考!
單選題
1.下列關(guān)于語句的描述中,錯(cuò)誤的是( A )。
A.C++程序中的函數(shù)是由若干條語句組成的
B.每條語句都要實(shí)現(xiàn)某種操作
C.條件語句是用來實(shí)現(xiàn)分支操作的
D.循環(huán)語句是用來在一定條件下重復(fù)執(zhí)行某段程序的
2.下列關(guān)于條件語句的描述中,錯(cuò)誤的是( C )。
A.if語句中最多只能有一個(gè)else子句
16
B.if語句的if體內(nèi)可以出現(xiàn)開關(guān)語句
C.if語句中else if子句和else子句的順序是沒有限制的
D.if語句中else子句是與它最近的if子句配對的
3.下列關(guān)于開關(guān)語句的描述中,錯(cuò)誤的是( B )。
A.開關(guān)語句中,case子句的'個(gè)數(shù)是不受限制的
B.開關(guān)語句中,case子句的語句序列中一定要有break語句
C.開關(guān)語句中,default子句可以省略
D.開關(guān)語句中,右花括號(hào)具有退出開關(guān)語句的功能
4.下列關(guān)于循環(huán)語句的描述中,錯(cuò)誤的是( A )。
A.while循環(huán)語句中<條件>給定的表達(dá)式不能為非0的常量,否則便是死循環(huán)
B.for循環(huán)語句的循環(huán)體內(nèi)可以出現(xiàn)while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句
C.循環(huán)語句的循環(huán)體可以是空語句
華碩-嵌入式程序員C語言筆試題目
預(yù)處理器(Preprocessor)
1 . 用預(yù)處理指令#define 聲明一個(gè)常數(shù),用以表明1年中有多少秒(忽略閏年問題)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在這想看到幾件事情:
1) #define 語法的基本知識(shí)(例如:不能以分號(hào)結(jié)束,括號(hào)的使用,等等)
2)懂得預(yù)處理器將為你計(jì)算常數(shù)表達(dá)式的值,因此,直接寫出你是如何計(jì)算一年中有多少秒而不是計(jì)算出實(shí)際的值,是更清晰而沒有代價(jià)的。
3) 意識(shí)到這個(gè)表達(dá)式將使一個(gè)16位機(jī)的整型數(shù)溢出-因此要用到長整型符號(hào)L,告訴編譯器這個(gè)常數(shù)是的長整型數(shù)。
4) 如果你在你的表達(dá)式中用到UL(表示無符號(hào)長整型),那么你有了一個(gè)好的起點(diǎn)。記住,第一印象很重要。
2 . 寫一個(gè)"標(biāo)準(zhǔn)"宏MIN ,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。
#define MIN(A,B) ((A) <= (B) ? (A) : (B))
這個(gè)測試是為下面的目的而設(shè)的:
1) 標(biāo)識(shí)#define在宏中應(yīng)用的基本知識(shí)。這是很重要的。因?yàn)樵?嵌入(inline)操作符 變?yōu)闃?biāo)準(zhǔn)C的一部分之前,宏是方便產(chǎn)生嵌入代碼的唯一方法,對于嵌入式系統(tǒng)來說,為了能達(dá)到要求的性能,嵌入代碼經(jīng)常是必須的方法。
2)三重條件操作符的知識(shí)。這個(gè)操作符存在C語言中的原因是它使得編譯器能產(chǎn)生比if-then-else更優(yōu)化的代碼,了解這個(gè)用法是很重要的。
3) 懂得在宏中小心地把參數(shù)用括號(hào)括起來
4) 我也用這個(gè)問題開始討論宏的副作用,例如:當(dāng)你寫下面的代碼時(shí)會(huì)發(fā)生什么事?
least = MIN(*p++, b);
3. 預(yù)處理器標(biāo)識(shí)#error的目的是什么?
如果你不知道答案,請看參考文獻(xiàn)1。這問題對區(qū)分一個(gè)正常的伙計(jì)和一個(gè)書呆子是很有用的。只有書呆子才會(huì)讀C語言課本的附錄去找出象這種問題的答案。當(dāng)然如果你不是在找一個(gè)書呆子,那么應(yīng)試者最好希望自己不要知道答案。
死循環(huán)(Infinite loops)
4. 嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢?
這個(gè)問題用幾個(gè)解決方案。我首選的方案是:
while(1)
{
}
一些程序員更喜歡如下方案:
for(;;)
{
}
這個(gè)實(shí)現(xiàn)方式讓我為難,因?yàn)檫@個(gè)語法沒有確切表達(dá)到底怎么回事。如果一個(gè)應(yīng)試者給出這個(gè)作為方案,我將用這個(gè)作為一個(gè)機(jī)會(huì)去探究他們這樣做的基本原理。如果他們的基本答案是:"我被教著這樣做,但從沒有想到過為什么。"這會(huì)給我留下一個(gè)壞印象。
第三個(gè)方案是用 goto
Loop:
...
goto Loop;
應(yīng)試者如給出上面的方案,這說明或者他是一個(gè)匯編語言程序員(這也許是好事)或者他是一個(gè)想進(jìn)入新領(lǐng)域的BASIC/FORTRAN程序員。
數(shù)據(jù)聲明(Data declarations)
5. 用變量a給出下面的定義
a) 一個(gè)整型數(shù)(An integer)
b)一個(gè)指向整型數(shù)的指針( A pointer to an integer)
c)一個(gè)指向指針的的指針,它指向的指針是指向一個(gè)整型數(shù)( A pointer to a pointer to an intege)r
d)一個(gè)有10個(gè)整型數(shù)的數(shù)組( An array of 10 integers)
e) 一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù)的。(An array of 10 pointers to integers)
f) 一個(gè)指向有10個(gè)整型數(shù)數(shù)組的指針( A pointer to an array of 10 integers)
g) 一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)( An array of ten pointers to functions that take an integer argument and return an integer )
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer
人們經(jīng)常聲稱這里有幾個(gè)問題是那種要翻一下書才能回答的問題,我同意這種說法。當(dāng)我寫這篇文章時(shí),為了確定語法的正確性,我的確查了一下書。但是當(dāng)我被面試的時(shí)候,我期望被問到這個(gè)問題(或者相近的問題)。因?yàn)樵诒幻嬖嚨倪@段時(shí)間里,我確定我知道這個(gè)問題的答案。應(yīng)試者如果不知道所有的答案(或至少大部分答案),那么也就沒有為這次面試做準(zhǔn)備,如果該面試者沒有為這次面試做準(zhǔn)備,那么他又能為什么出準(zhǔn)備呢?
Static
6. 關(guān)鍵字static的作用是什么?
這個(gè)簡單的問題很少有人能回答完全。在C語言中,關(guān)鍵字static有三個(gè)明顯的作用:
1)在函數(shù)體,一個(gè)被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。
2) 在模塊內(nèi)(但在函數(shù)體外),一個(gè)被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個(gè)本地的全局變量。
3) 在模塊內(nèi),一個(gè)被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個(gè)函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用。
大多數(shù)應(yīng)試者能正確回答第一部分,一部分能正確回答第二部分,同是很少的人能懂得第三部分。這是一個(gè)應(yīng)試者的嚴(yán)重的缺點(diǎn),因?yàn)樗@然不懂得本地化數(shù)據(jù)和代碼范圍的好處和重要性。
Const
7.關(guān)鍵字const有什么含意?
我只要一聽到被面試者說:"const意味著常數(shù)",我就知道我正在和一個(gè)業(yè)余者打交道。去年Dan Saks已經(jīng)在他的文章里完全概括了const的所有用法,因此ESP(譯者:Embedded Systems Programming)的每一位讀者應(yīng)該非常熟悉const能做什么和不能做什么.如果你從沒有讀到那篇文章,只要能說出const意味著"只讀"就可以了。盡管這個(gè)答案不是完全的答案,但我接受它作為一個(gè)正確的`答案。(如果你想知道更詳細(xì)的答案,仔細(xì)讀一下Saks的文章吧。)
如果應(yīng)試者能正確回答這個(gè)問題,我將問他一個(gè)附加的問題:
下面的聲明都是什么意思?
const int a;
int const a;
const int *a;
int * const a;
int const * a const;
/******/
前兩個(gè)的作用是一樣,a是一個(gè)常整型數(shù)。第三個(gè)意味著a是一個(gè)指向常整型數(shù)的指針(也就是,整型數(shù)是不可修改的,但指針可以)。第四個(gè)意思a是一個(gè)指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)。最后一個(gè)意味著a是一個(gè)指向常整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是不可修改的,同時(shí)指針也是不可修改的)。如果應(yīng)試者能正確回答這些問題,那么他就給我留下了一個(gè)好印象。順帶提一句,也許你可能會(huì)問,即使不用關(guān)鍵字 const,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關(guān)鍵字const呢?我也如下的幾下理由:
1) 關(guān)鍵字const的作用是為給讀你代碼的人傳達(dá)非常有用的信息,實(shí)際上,聲明一個(gè)參數(shù)為常量是為了告訴了用戶這個(gè)參數(shù)的應(yīng)用目的。如果你曾花很多時(shí)間清理其它人留下的垃圾,你就會(huì)很快學(xué)會(huì)感謝這點(diǎn)多余的信息。(當(dāng)然,懂得用const的程序員很少會(huì)留下的垃圾讓別人來清理的。)