當前位置:首頁 » 編程語言 » 2017c語言二級考試題庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

2017c語言二級考試題庫

發布時間: 2023-02-17 16:14:23

1. 計算機二級c語言模擬題及答案

2017年計算機二級C語言模擬題及答案

1.1 單選題

1.下列變數名中,非法的是( C )。

A.A25 B.My_car

C.My-str D.abc

2.下列常量中,十六進制int型常量是( A )。

A.0x5f B.x2a

C.046 D.7a

3.下列常量中,不是字元常量的是( B )。

A.' ' B."y"

C.'x' D.'7'

4.在函數體內定義了下述變數a,a的存儲類為( D )。

int a;

A.寄存器類 B.外部類

C.靜態類 D.自動類

5.下列關於變數存儲類的描述中,錯誤的是( C )。

A.任何變數定義後都具有一個確定的存儲類

B.變數的存儲類確定了變數的作用域和壽命

C.定義變數時沒有存儲類說明符者一律為自動類

D.內部靜態類變數和外部靜態類變數的存儲類說明符都是static

6.下列關於變數數據類型的描述中,錯誤的是( A )。

A.定義變數時int型數據類型可以省略

B.變數的數據類型可以決定該變數占內存的位元組數

C.變數的數據類型是可以被強制的

D.變數的數據類型是有高低之分的

7.長雙精度浮點型常量的後綴是( C )。

A.U B.F

C.L D.無

8.下列運算符中,不能用於浮點數操作的是( D )。

A.++ B.+

C.*= D.&(雙目)

9.下列運算符中,優先順序最高的是( A )。

A.*(雙目) B.||

C.>> D.%=

10.下列運算符中,優先順序最低的是( B )。

A.== B.?:

C.| D.&&

11.已知:int a(3);下列表達式中,錯誤的是( C )。

A.a%2==0 B.a--+2

C.(a2)++ D.a>>=2

12.已知:int b(5),下列表達式中,正確的是( D )。

A.b="a" B.++(b1)

C.b%2.5 D.b=3,b+1,b+2

6

13.下列關於類型轉換的'描述中,錯誤的是( C )。

A.類型轉換運算符是(<類型>)

B.類型轉換運算符是單目運算符

C.類型轉換運算符通常用於保值轉換中

D.類型轉換運算符作用於表達式左邊

1.1 判斷題

×1.C++語言和C語言都是面向對象的程序設計語言。

√2.面向對象方法具有封裝性、繼承性和多態性。

√3.C語言是C++語言的一個子集。C++語言繼承了C語言。

×4.C++語言程序與C語言程序一樣都是函數串。

×5.C++語言支持封裝性和繼承性,不支持多態性。

√6.C++語言比C語言對數據類型要求更加嚴格了。

√7.C++語言對C語言進行了一次改進,使得編程更加方便了。

×8.C++源程序在編譯時可能出現錯誤信息,而在連接時不會出現錯誤信息。

√9.編譯C++源程序時,出現了警告錯(Warning)也可以生成可執行文件。

√10.C++語言程序的實現也要經過編輯、編譯連接和運行3個步驟。

通過對1.5題中3個程序的修改,回答下列問題

從1.5題中第1題程序的修改中,總結出編程應該注意哪些問題。

答:C++程序要包含iostraem.h,main()函數前應加類型說明符void。

C++程序中所出現的變數是否必須先說明後使用?在函數體內說明變數時是否都要放在函數體的開頭?

答:C++程序中所出現的變數必須先說明後使用。在函數體內說明變數時不一定要放在函數體的開頭。

使用cout和插入符(<<)輸出字元串常量時應注意什麼?

答:可輸出一個字元串常量,也可輸出多個字元串常量。每輸出一個字元串常量要使用一次插入符(<<)。

程序中定義過的變數,但沒有賦值,也沒有默認值,這時能否使用?

答:不能使用。因為它的值不確定。

5.一個程序編譯通過並已生成執行文件,運行後並獲得輸出結果,這一結果是否一定正確?

答:不一定正確。可能還有演算法錯。

;

2. 計算機二級考試C語言選擇題(2)

{ char x=0xFFFF;printf("%d\n",x--);}

A.-32767

B.FFFE

C.1

D.32768

22.下面的函數調用語句中func函數的實參個數是( )。

func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

A.3

B.4

C.5

D.8

23.語句“printf("akbre"\’hi\’y\\\bou\n")”;的輸出結果是( )。

A.akbre\’hi\’y ’\\\bou

B.a\bre\’hi\\y\bou

C.re ’hi’you

D.abre’hi’y\bou

24.下面程序輸出的是( )。

main()

{ int t=l;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=0;k<3;k++)printf("%d",a[k]);

printf("\n");

return(a[h]);}

A.1,2,3,

1,5,9,

B.1,3,5,

1,3,j,

C.1,3,5,

0,4,8,

D.1,3。5,

-1,3,7,

25.以下敘述中正確的是( )。

A.預處理命令行必須位於C源程序的起始位置

B.在C語言中,預處理命令行都以“#”開頭

c.每個C程序必須在開頭包含預處理命令行:#include

D.C語言的預處理不能實現宏定義和條件編譯的功能

26.為了避免在嵌套的條件語句if else中產生二義性,C語言規定,else子句總是與( )配對。

A.縮排位置相同if

B.其前面最近的if

C.其後面最近的if

D.同一行上的if

27.設有下列程序段:

char str[]="HelloWorld":

char* plr;

ptr=str:

執行上面的程序段後,*(ptr+10)的'值為( )。

A.’\0 ’

B.’0’

C.不確定的值

D.’0’的地址

28.有以下程序:

void swap(char*x,char*y)

{ char t;

t=*x;*x=*y;*y=t;

}

main()

{ char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執行後的輸出結果是( )。

A.123,abe

B.abc.123

C.1bc,a23

D.321,cba

29.下列程序的運行結果是( )。

#include

main()

{ static char a[]="Languagef",b[]="programe":

char*p1,*p2;int k;

p1=a;p2=b;

for(k=0;k<=8;k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k)):

}

A.gae

B.ang

C.program

D.有語法錯

30.下列程序的運行結果為( )。

#define MAX(x,y)(x)>(y)?(x):(y)

main()

{ int a=2,b=3,C=1,d=3,t:

printf("%d\n",(MAX(a+h,c+d))*100):

}

A.500

B.5

C.4

D.400

31.設int x=7,則~x的值是()。

A.-8

B.7

C.-1

D.1

32.有以下程序:

void fun(char*a,char*b)

{a=b; (*a)++; }

main()

{char c1=’A ’,c2=’a’,*p1,*p2;

p1=&c1;p2=*c2;fun(p1,p2);

printf("%C%c\n",c1,c2);

}

程序運行後的輸出結果是()。

A.Ab

B.aa

C.Aa

D.Bb

33.有以下程序:

int fun(int n)

{if(n==l)return l;

else return(n+fun(n一1)):

}

main()

{int x;

scanf("%d",&x);x=fun(x);printf("%d\n",

x):

}

執行程序時,給變數X輸入10,程序的輸出結果是()。

A.55

B.54

C.65

D.45

34.有以下程序:

void f(int x,int y)

{int t;

if(x}

main()

{int a=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

printf("%d,%d,%d\n",a,b,c);

}

執行後輸出結果是()。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5

35.以下程序的輸出結果是()。

main()

{char*s="12134211";

int v[4]=(0,0,0,0),k,i;

for(k=0;s[k];k++)

{switch(s[k])

{case’1’:i=0;

case’2’:i=1;

case’3’:i=2;

3. 2017年計算機二級C語言模擬題及答案(2)

大家做好准備迎接考試了嗎?誠意整理「2017年計算機二級C語言模擬題及答案(2)」,歡迎廣大考生前來學習。

2017年計算機二級C語言模擬題及答案(2)

1). 若變數已正確定義並賦值,以下符合C語言語法的表達式是

A.a:=b+1

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b

正確答案:B

答案解析:選項A中包含一個不合法的運算符":=";選項C應改為(int)18.5%3;選項D可理解為兩個表達式:a+7=c+b和a=a+7,其中第一個是錯的,因為C語言規定賦值號的左邊只能是單個變數,不能是表達式或常量等。因此,正確答案是選項B,它實際上相當於a=(b=c+2),進而可分解為兩個表達式:b=c+2和a=b。

2). 結構化程序設計的基本原則不包括( )

A.多元性

B.自頂向下

C.模塊化

D.逐步求精

正確答案:A

答案解析:結構化程序設計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態性。

3). 下面選項中關於位運算的敘述正確的是( )

A.位運算符都需要兩個操作數

B.左移運算的結果總是原操作數據2倍

C.右移運算時,高位總是補0

D.位運算的對象只能是整型或字元型數據

正確答案:D

答案解析:位運算則是以位(bit)一級進行的運算,位運算符中除″~″以外,均為二元運算符,即要求兩側各有一個運算量,運算量只能是整型或字元型的數據,不能為實型數據。其中右移時,右端(低位)移出的二進制數舍棄,左端(高位)移入的二進制數分兩種情況:對於無符號整數和正整數,高位補0;對於負整數,高位補1。而左移運算在沒有溢出的前提下每移動一位,相當於原數據的2倍。

4). 定義無符號整數類為UInt,下面可以作為類UInt實例化值的是( )

A.-369

B.369

C.0.369

D.整數集合{1,2,3,4,5}

正確答案:B

答案解析:UInt表示的是無符號整數類,所以它的每個實例都是一個無符號整數,所以排除選項A和選項C,選項D是整數集合,所以也排除。

5). 下列關於類、對象、屬性和方法的敘述中,錯誤的是( )。

A.類是對一類具有相同的屬性和方法對象的描述

B.屬性用於描述對象的狀態

C.方法用於表示對象的行為

D.基於同一個類產生的兩個對象不可以分別設置自己的屬性值

正確答案:D

答案解析:類是對一類具有相同的屬性和方法對象的描述,屬性用於描述對象的狀態,方法用於表示對象的行為,基於同一個類產生的兩個對象是可以分別設置自己的屬性值。

6). 下列描述中正確的是( )

A.軟體交付使用後還需要再進行維護

B.軟體工具交付使用就不需要再進行維護

C.軟體交付使用後其生命周期就結束

D.軟體維護是指修復程序中被破壞的指令

正確答案:A

答案解析:通常將軟體產品從提出、實現、使用維護到停止使用退役的過程稱為軟體生命周期。軟體生命周期分為軟體定義、軟體開發及軟體運行維護三個階段。已交付的軟體投入運行後,應在運行使用中不斷地維護,根據新提出的需要進行必要而且可能的擴充和刪改。

7). 資料庫設計包括兩個方面的設計內容,它們是

A.概念設計和邏輯設計

B.模式設計和內模式設計

C.內模式設計和物理設計

D.結構特性設計和行為特性設計

正確答案:A

答案解析:資料庫設計包括資料庫概念設計和資料庫邏輯設計兩個方面的內容。

8). 以下不能輸出字元A的語句是(註:字元A的ASCII碼值為65,字元a的ASCII碼值為97)( )

A.printf (″%c ″, ′a′-32);

B.printf (″%d ″, ′A′);

C.printf (″%c ″, 65);

D.printf (″%c ″, ′B′-1);

正確答案:B

答案解析:在選項B的輸出函數中,大寫字元′A′以整型數據的形式輸出。

9). 下列描述中正確的是( )

A.程序就是軟體

B.軟體開發不受計算機系統的限制

C.軟體既是邏輯實體,又是物理實體

D.軟體是程序、數據與相關文檔的集合

正確答案:D

答案解析:計算機軟體與硬體是計算機系統中相互依存的兩部分。計算機軟體是包括程序、數據及相關文檔的完整集合。軟體由兩部分組成:一部分是機器可執行的程序和數據;二是機器不可執行的,與軟體開發、運行、維護、使用等有關的文檔。軟體具有以下六個特點:①軟體是一種邏輯實體,而不是物理實體,具有抽象性。②軟體的生產與硬體不同,它沒有明顯的製作過程。③軟體在運行、使用期間不存在磨損、老化問題。④軟體的開發、運行對計算機系統具有依賴性,受計算機系統的限制,這導致了軟體移值的問題。⑤軟體復雜性高,成本昂貴。⑥軟體的開發涉及諸多社會因素。

10). 以下不合法的用戶標識符是( )。

A.804zhang

B._ hh

C.yy614

D.If

正確答案:A

答案解析:C語言規定,標識符是由字母、數字或下劃線組成,並且它的第一個字元必須是字母或下劃線。

4. 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); }

5. 2017年計算機二級C語言模擬題及答案(3)

2017年計算機二級C語言模擬題及答案(3)

1). 以下選項中不合法的標識符是( )

A.FOR

B.&a

C.print

D._00

正確答案:B

答案解析:合法的標識符要滿足組成字元為a~z以及A~Z,數字字元0到9和下劃線,其中數字不開頭,不能是關鍵字。選項B中,&不屬於組成字元,是錯誤的。

2). 下列描述中正確的是( )

A.程序就是軟體

B.軟體開發不受計算機系統的限制

C.軟體既是邏輯實體,又是物理實體

D.軟體是程序、數據與相關文檔的集合

正確答案:D

答案解析:計算機軟體與硬體是計算機系統中相互依存的兩部分。計算機軟體是包括程序、數據及相關文檔的完整集合。軟體由兩部分組成:一部分是機器可執行的程序和數據;二是機器不可執行的,與軟體開發、運行、維護、使用等有關的文檔。軟體具有以下六個特點:①軟體是一種邏輯實體,而不是物理實體,具有抽象性。②軟體的生產與硬體不同,它沒有明顯的製作過程。③軟體在運行、使用期間不存在磨損、老化問題。④軟體的開發、運行對計算機系統具有依賴性,受計算機系統的限制,這導致了軟體移值的問題。⑤軟體復雜性高,成本昂貴。⑥軟體的開發涉及諸多社會因素。

3). 變數a中的數據用二進製表示的形式是01011101,變數b中的數據用二進製表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是

A.a^b

B.a|b

C.a&b

D.a<<4

正確答案:A

答案解析:本題考查的是位運算的知識,對於任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化,故本題選A。

4). 下列關於棧敘述正確的是( )

A.棧頂元素最先能被刪除

B.棧頂元素最後才能被刪除

C.棧底元素永遠不能被刪除

D.以上三種說法都不對

正確答案:A

答案解析:棧是先進後出的線性表,棧頂的元素最先被刪除,棧底的元素最後被刪除。

5). 已知 int a=1,b=3則a^b的值為

A.3

B.1

C.2

D.4

正確答案:C

答案解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。

6). 按條件f對關系R進行選擇,其關系代數表達式為( )

A.R|X|R

B.R|X|Rf

C.бf(R)

D.∏f(R)

正確答案:C

7). 信息隱蔽的概念與下述哪一種概念直接相關( )

A.軟體結構定義

B.模塊獨立性

C.模塊類型劃分

D.模擬耦合度

正確答案:B

8). 變數a中的數據用二進製表示的形式是01011101,變數b中的數據用二進製表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是

A.a^b

B.a|b

C.a&b

D.a<<4

正確答案:A

答案解析:本題考查的是位運算的知識,對於任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化,故本題選A。

9). 下列關於棧敘述正確的是( )

A.棧頂元素最先能被刪除

B.棧頂元素最後才能被刪除

C.棧底元素永遠不能被刪除

D.以上三種說法都不對

正確答案:A

答案解析:棧是先進後出的線性表,棧頂的元素最先被刪除,棧底的元素最後被刪除。

10). 已知 int a=1,b=3則a^b的值為

A.3

B.1

C.2

D.4

正確答案:C

答案解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。

6. 計算機二級C語言測試題及答案解析

2017年計算機二級C語言測試題及答案解析

全國計算機等級考試(National Computer Rank Examination,以下簡稱 NCRE),是經原國家教育委員會(現教育部)批准,由教育部考試中心主辦,面向社會,用於考查非計算機專業應試人員計算機應用知識與技能的全國性計算機水平考試體系。下面是2017年計算機二級C語言測試題及答案解析。歡迎閱讀。

2017年計算機二級C語言測試題及答案解析

1.(A )是構成C語言程序的基本單位。

A、函數

B、過程

C、子程序

D、子常式

2.C語言程序從 C 開始執行。

A、 程序中第一條可執行語句

B、 程序中第一個函數

C、 程序中的main函數

D、包含文件中的第一個函數

3、以下說法中正確的是( C )。

A、C語言程序總是從第一個定義的函數開始執行

B、在C語言程序中,要調用的函數必須在main( )函數中定義

C、C語言程序總是從main( )函數開始執行

D、C語言程序中的main( )函數必須放在程序的開始部分

4.下列關於C語言的說法錯誤的是( B ) 。

A、 C程序的工作過程是編輯、編譯、連接、運行

B、 C語言不區分大小寫。

C、 C程序的三種基本結構是順序、選擇、循環

D、C程序從main函數開始執行

5.下列正確的標識符是(C)。

A、-a1

B、a[i]

C、a2_i

D、int t

5~8題為相同類型題

考點:標識符的命名規則

只能由字母、數字、下劃線構成

數字不能作為標識符的開頭

關鍵字不能作為標識符

選項A中的“-” ,選項B中“[”與“]”不滿足(1);選項D中的int為關鍵字,不滿足(3)

6.下列C語言用戶標識符中合法的是(B )。

A、3ax

B、x

C、case

D、-e2 E)union

選項A中的標識符以數字開頭不滿足(2);選項C,E均為為關鍵字,不滿足(3);選項D中的“-”不滿足(1);

7.下列四組選項中,正確的C語言標識符是( C )。

A、 %x

B、a+b

C、a123

D、123

選項A中的“%” ,選項B中“+”不滿足(1);選項D中的標識符以數字開頭不滿足(2)

8、下列四組字元串中都可以用作C語言程序中的標識符的是( A)。

A、print _3d db8 aBc

B、Iam one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

選項B中的“”,”$” ,選項D中“>”,”#”,”.”,”-”不滿足(1);選項C中的while為關鍵字,不滿足(3)

9.C語言中的簡單數據類型包括(D )。

A、整型、實型、邏輯型

B、整型、實型、邏輯型、字元型

C、整型、字元型、邏輯型

D、整型、實型、字元型

10.在C語言程序中,表達式5%2的結果是 C 。

A、2.5

B、2

C、1

D、3

%為求余運算符,該運算符只能對整型數據進行運算。且符號與被模數相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/為求商運算符,該運算符能夠對整型、字元、浮點等類型的數據進行運算,5/2=2

11.如果int a=3,b=4;則條件表達式"aA、 3

B、 4

C、 0

D、1

詳見教材P97.

表達式1?表達式2:表達式3

先計算表達式1,

若表達式1成立, 則選擇計算表達式2,並表達式2的值作為整個大表達式的值;

若表達式1不成立,則選擇計算表達式3,並將表達式3的值作為整個大表達式的值

此題中的aa為3,b為4。a12.若int x=2,y=3,z=4 則表達式x

A、4

B、3

C、2

D、0

E)1

13.C語言中,關系表達式和邏輯表達式的值是( B ) 。

A、0

B、 0或1

C、 1

D、‘T’或’F’

14. 下面( D )表達式的值為4.

A、 11/3

B、 11.0/3

C、 (float)11/3

D、 (int)(11.0/3+0.5)

14~16題為同一類型

詳見教材P54~56.

(1)相同數據類型的元素進行數學運算(+、-、*、/)得到結果還保持原數據類型。

(2)不同數據類型的元素進行數學運算,先要統一數據類型,統一的標準是低精度類型轉換為高精度的數據類型。

選項A,11與3為兩個整數,11/3結果的數據類型也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.

選項B,11.0為實數,3為整數,因此首先要統一數據類型,將整型數據3轉換為3.0,轉換後數據類型統一為實型數據,選項B變為11.0/3.0,結果的數據類型也應為實型數據,因此選項B 11.0/3=3.666666

選項C,先將整數11強制類型轉換,轉換為實型11.0,因此選項C變為11.0/3,其後計算過程、結果與選項B同

選項D,首先計算11.0/3,其計算過程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最後將4.166666強制類型轉換為整型,即將其小數部分全部舍掉,結果為4

15.設整型變數 a=2,則執行下列語句後,浮點型變數b的值不為0.5的是( B)

A、b=1.0/a

B、b=(float)(1/A、

C、b=1/(float)a

D、b=1/(a*1.0)

16. 若“int n; float f=13.8;”,則執行“n=(int)f%3”後,n的值是(A)

A、1

B、4

C、4.333333

D、4.6

“(int)f“表示將f中的值強制類型轉換為整型,即將13.8的小數部分舍掉,轉換為13;然後計算13%3,結果為1,再將結果賦給變數n,因此n的值為1

17. 以下對一維數組a的正確說明是: D

A、char a(10);

B、 int a[];

C、int k=5,a[k];

D、char a[3]={‘a’,’b’,’c’};

詳見教材P143~144,一維數組的定義、初始化

類型符 數組名 [常量表達式]

類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;常量表達式是指數組的長度(數組中包含元素的個數),其值只能是整數,不可以是變數,而且從1開始計數。

選項A,常量表達式只能放在中括弧 [ ]中

選項B,只有在對數組初始化(即賦值)的時候才可以省略數組的長度,B中並未對a進行初始化。

選項C,常量表達式不能為變數。

18.以下能對一維數組a進行初始化的.語句是:( C )

A、int a[5]=(0,1,2,3,4,)

B、 inta(5)={}

C、 int a[3]={0,1,2}

D、 int a{5}={10*1}

詳見教材P145,一維數組的定義、初始化

選項B,D,常量表達式只能放在中括弧 [ ]中

選項A,數組可以看做是若干個相同數據類型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了().

19.在C語言中對一維整型數組的正確定義為 D 。

A、int a(10);

B、int n=10,a[n];

C、int n;a[n];

D、#define N 10

int a[N];

20、已知:int a[10]; 則對a數組元素的正確引用是( D )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

詳見教材P144,數組元素的引用

數組名[下標]

引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變數,且從0開始計數

int a[10]表示定義了一個包含10個整型數據的數組a,數組元素的邏輯地址下標范圍為0~9,即a[0] 表示組中第1個元素; a[1] 表示組中第2個元素; a[2] 表示組中第3個元素; ......;a[9] 表示組中第10個元素.

選項A,超過了數組a的邏輯地址下標范圍;

選項B,邏輯地址下標只能為整數

選項C,邏輯地址下標只能放在[ ]中

21.若有以下數組說明,則i=10;a[a[i]]元素數值是(C)。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A、10

B、9

C、6

D、5

先算a[a[i]]內層的a[i],由於i=10,因此a[i]即a[10].

a[10]對應下面數組中的元素為9. 因此a[a[i]]即為a[9]

a[9]對應下面數組中的元素為6. 因此a[9]即為6

22.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )

A、2

B、3

C、4

D、無確定值

5 7

D、3 6 9

二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個大括弧,數組就有幾行

23.對二維數組的正確定義是(C)

詳見教材P149~152,二維數組的定義、初始化

類型符 數組名 [常量表達式][常量表達式]

二維數組可以看做是矩陣

類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;第一個常量表達式是指數組的行數;第二個常量表達式是指數組的列數;常量表達式的值只能是整數,不可以是變數,而且從1開始計數。

一維數組初始化時可以省略數組長度

二維數組初始化時可以省略行數,但不能省略列數

選項A,B,都省略了列數

選項D,不符合二維數組定義的一般形式,行、列常量表達式應該放在不同的[]中

A、int a[ ][ ]={1,2,3,4,5,6};

B、int a[2] []={1,2,3,4,5,6};

C、int a[ ] [3]={1,2,3,4,5,6};

D、int a[2,3]={1,2,3,4,5,6};

24.已知int a[3][4];則對數組元素引用正確的是__C___

A、a[2][4]

B、a[1,3]

C、a[2][0]

D、a(2)(1)

詳見教材P150,數組元素的引用

數組名[下標] [下標]

引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變數,且從0開始計數

第一個[下標]表示行邏輯地址下標,第二個[下標]表示列邏輯地址下標。

本題圖示詳見P149圖6.7

因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;

選項A,列邏輯地址下標超過范圍

選項B,D,的引用形式不正確。

25.C語言中函數返回值的類型是由 A 決定的.

A、函數定義時指定的類型

B、 return語句中的表達式類型

C、 調用該函數時的實參的數據類型

D、形參的數據類型

26. 在C語言中,函數的數據類型是指(A )

A、 函數返回值的數據類型

B、 函數形參的數據類型

C、 調用該函數時的實參的數據類型

D、任意指定的數據類型

27.在函數調用時,以下說法正確的是( B)

A、函數調用後必須帶回返回值

B、實際參數和形式參數可以同名

C、函數間的數據傳遞不可以使用全局變數

D、主調函數和被調函數總是在同一個文件里

28. 在C語言中,表示靜態存儲類別的關鍵字是: ( C )

A、 auto

B、 register

C、static

D、extern

29.未指定存儲類別的變數,其隱含的存儲類別為(A )。

A、auto

B、static

C、extern

D、register

30. 若有以下說明語句:

struct student

{ int num;

char name[ ];

float score;

}stu;

則下面的敘述不正確的是: (D )

A、 struct是結構體類型的關鍵字

B、 struct student 是用戶定義的結構體類型

C、 num, score都是結構體成員名

D、 stu是用戶定義的結構體類型名

31.若有以下說明語句:

struct date

{ int year;

int month;

int day;

}brithday;

則下面的敘述不正確的是__C___.

A、 struct是聲明結構體類型時用的關鍵字

B、 struct date 是用戶定義的結構體類型名

C、 brithday是用戶定義的結構體類型名

D、year,day 都是結構體成員名

32. 以下對結構變數stul中成員age的非法引用是 B

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A、 stu1.age

B、 student.age

C、 p->age

D、(*p).age

33.設有如下定義:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正確的賦值語句是 C

A、 p=&a;

B、 p=datA、a;

C、p=&datA、a;

D、*p=datA、a;

34.設有以下說明語句:

typedef struct stu

{ int a;

float b;

} stutype;

則下面敘述中錯誤的是( D )。

A、struct是結構類型的關鍵字

B、struct stu是用戶定義的結構類型

C、a和b都是結構成員名

D、stutype是用戶定義的結構體變數名

35.語句int *p;說明了 C 。

A、p是指向一維數組的指針

B、p是指向函數的指針,該函數返回一int型數據

C、p是指向int型數據的指針 // 指針的定義教材P223

D、p是函數名,該函數返回一指向int型數據的指針

36.下列不正確的定義是(A )。

A、int *p=&i,i;

B、int *p,i;

C.int i,*p=&i;

D、int i,*p;

選項A先定義一個整型指針變數p,然後將變數i的地址賦給p。然而此時還未定義變數i因此編譯器無法獲得變數i的地址。(A與C對比,選項C先定義變數i,則在內存中為i分配空間,因此i在內存空間的地址就可以確定了;然後再定義p,此時可以為p賦i的地址,C正確)

37. 若有說明:int n=2,*p=&n,*q=p,則以下非法的賦值語句是: (D )

A、p=q

B、*p=*q

C、n=*q

D、p=n

p,q同為整型指針變數,二者裡面僅能存放整型變數的地址。

選項A,q中為地址,因此可將此地址賦給p

選項B,*p表示p所指向對象n的內容,即一個整數;*q表示q所指向對象的內容,由於在定義q時為其初始化,將p中n的地址給q,因此p中存放n的地址,*q表示q所指向對象n的內容.因此*p=*q 相當於 n=n;

選項C,n=*q 等價於n=n;

選項D,p中只能存放地址,不能將n中的整數值賦給p

38.有語句:int a[10],;則 B 是對指針變數p的正確定義和初始化。

A、int p=*a;

B、int *p=a;

C、int p=&a;

D、int *p=&a;

選項A,a是數組名,不是指針變數名,因此不可用*標注數組名a

選項C,a是數組名,數組名就是地址,無需再用地址符號。而且在定義指針變數p時,應在變數名前加*,標明p是指針變數

選項D,a是數組名,數組名就是地址,無需再用地址符號。

39.若有說明語句“int a[5],*p=a;”,則對數組元素的正確引用是( C )。

A、a[p]

B、p[a]

C、*(p+2)

D、p+2

首先定義一個整型數組a,a的長度為5,然後定義一個指針變數p,並同時對p進行初始化,將數組a的地址賦給p。因此此時p中存放的數組a的首地址,即數組中第一個元素a[0]的地址。

對於數組元素下標的引用(詳見p144), 一般形式 數組名[下標] 其中下標為邏輯地址下標,從0開始計數,方括弧中的下標可以是變數,可以是表達式,但結果一定要是整數。

選項A,p中存放的是地址,不是整數,不能做數組元素的下標

選項B,a是數組名,數組名就是地址,不是整數,不能做數組元素的下標

選項C,(重點!!!詳見p231~234) p+2表示指向同一數組中的下兩個元素的地址,當前p指向a[0],則p+2表示a[2]的地址,因此*(p+2)表示a[2]的內容

40. 有如下程序

int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

則數值為9的表達式是 B

A、 *P+9

B、 *(P+8)

C、 *P+=9

D、P+8

(重點!!!詳見p231~234)

首先定義一個整型數組a,a的長度為5,然後定義一個指針變數P,並同時對P進行初始化,將數組a的地址賦給P。因此此時P中存放的數組a的首地址,即數組中第一個元素a[0]的地址。

數組中9對應的是a[8], 選項B,P+8表示數組中後8個元素的地址,即a[8]的地址。*(P+8)則表示該地址內所存放的內容,即a[8]的值。

選項A,*P表示P所指向對象的內容,此時P指向a[0], *P即a[0]的值1. *P+9=1+9=10

選項C,*P表示P所指向對象的內容,此時P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等價於a[0]=a[0]+9.

選項D,P+8表示數組中後8個元素的地址,即a[8]的地址,而非a[8]中的值。

41. 在C語言中,以 D 作為字元串結束標志

A、’ ’

B、’ ’

C、 ’0’

D、’’

42.下列數據中屬於“字元串常量”的是(A )。

A、“a”

B、{ABC}

C、‘abc’

D、‘a’

若干個字元構成字元串

在C語言中,用單引號標識字元;用雙引號標識字元串

選項B,C,分別用{}和’’標識字元串

選項D,標識字元。

43.已知char x[]="hello", y[]={'h','e','a','b','e'};, 則關於兩個數組長度的正確描述是 B .

A、相同

B、x大於y

C、x小於y

D、以上答案都不對

C語言中,字元串後面需要一個結束標志位'',通常系統會自動添加。

對一維數組初始化時可採用字元串的形式(例如本題數組x),也可採用字元集合的形式(例如本題數組y)。在以字元串形式初始化時,數組x不盡要存儲字元串中的字元,還要存儲字元串後的結束標志位,因此數組x的長度為6;在以字元集合形式初始化時,數組y,僅存儲集合中的元素,因此數組y長度為5

;

7. 計算機二級C語言操作題積累

2017年計算機二級C語言操作題積累

多媒體計算機是當前計算機領域中最引人注目的高新技術之一。多媒體計算機就是利用計算機技術、通信技術和大眾傳播技術,來綜合處理多種媒體信息的計算機。下面是我整理的關於計算機二級C語言操作題積累,歡迎大家參考!

一、單選題(每小題1分,共40分)

1[單選題] 下列關於綜合布線系統的描述中,錯誤的是()。

A.雙絞線扭絞可以減少電磁干擾

B.管理子系統設置在樓層配線間內

C.多介質插座是用來連接銅纜和光纖的

D.對於建築群子系統直埋布線是最理想的方式

2[單選題] IP地址塊59.67.79.128/28、59.67.79.144/28和59.67.79.160/27經聚合後可用地址數為()。

A.62

B.64

C.126

D.128

3[單選題] IP地址塊202.111.15.128/28、202.111.15.144/28和202.111.15.160/28經過聚合後可用的地址數為()。

A.40

B.42

C.44

D.46

4[單選題] 下列攻擊手段中,基於網路的入侵防護系統無法阻斷的是()。

A.SYNFlooding

B.SQL注入

C.DDOS

D.PingofDeath

5[單選題] 差異備份、增量備份、完全備份三種備份策略的備份速度由快到慢依次為()。

A.增量備份、差異備份、完全備份

B.差異備份、增量備份、完全備份

C.完全備份、差異備份、增量備份

D.完全備份、增量備份、差異備份

6[單選題] CiscoPIX525防火牆用來允許數據流從具有較低安全級介面流向較高安全級介面的配置命令是()。

A.fixup

B.conit

C.global

D.nameif

7[單選題] 在Windows2003系統下DHCP伺服器中添加排除時,應輸入的信息是()。

A.起始IP地址和結束IP地址

B.起始IP地址和網關地址

C.起始IP地址和MAC地址

D.起始IP地址和掩碼

8[單選題] 下列關於伺服器技術的描述中,錯誤的是()。

A.集群系統中一台主機出現故障時不會影響系統的性能

B.採用RISC結構處理器的伺服器通常使用UNIX系統

C.熱插拔功能允許用戶在不切斷電源的情況下更換硬碟、電源等

D.分布式內存訪問(NUMA.技術將對稱多處理器(SMP)和集群(Cluster)技術結合起來

9[單選題] 下列對交換機中交換表的描述中,錯誤的是()。

A.在一些高端交換機中,交換表通常被保存在CAM存儲器中

B.交換表中沒有接收幀的目的MAC地址時,交換機用Flood技術轉發該幀

C.使用“showmac-addres-table”命令可顯示小型交換機的交換表內容

D.交換表的內容包括目的IP地址及其所對應的交換機埠號

10[單選題] 下列關於無線網路HipeR1AN/2協議的描述中,錯誤的.是()。

A.採用5GHz工作頻段

B.上行速率最多可達54Mbps

C.室外最大覆蓋范圍為30米

D.可支持面向連接的傳輸服務

二、綜合題(每空2分,共40分)

(1)打開工作簿文件EXCEL.xlsx,將工作表sheetl的Al:El單元格合並為一個單元格,內容水平居中,計算“合計”列的內容,將工作表命名為“科研經費使用情況表”.

(2)選取“科研經費使用情況表”的“項目編號”列和“合計”列的單元格內容,建立“簇狀棱錐圖”,x軸上的項為項目編號,圖表標題為“科研經費使用情況圖”,插入到表的A7:El8單元格區域內.

三、演示文稿題

打開考生文件夾下的演示文稿yswg.pptx,按照下列要求完成對此文稿的修飾並保存.

(1)整個演示文稿設置成“時裝設計”模板;將全部幻燈片切換效果設置成“分割”.

(2)將第二張幻燈片對象部分的動畫效果設置為“向內溶解”;在演示文稿的開始處插入一張“標題幻燈片”,作為文稿的第一張幻燈片,主標題鍵人“諷刺與幽默”,並設置為60磅、加粗、紅色(請用自定義標簽中的紅色250,綠色1,藍色1).

二、電子表格題

(1)【解題步驟】

步驟1:通過“答題”菜單打開EXCEL.xlsx文件,選中A1:E1單元格,在【開始】功能區的【對齊方式】分組中,單擊“合並後居中”按鈕,合並單元格並使內容居中。

步驟2:計算“合計”列內容。在E3單元格中插入公式“=SUM(B3:D3)”,並按回車鍵,將滑鼠移動到E3單元格的右下角,按住滑鼠左鍵不放向下拖動即可計算出其他行的值。

註:當滑鼠指針放在已插入公式的單元格的右下角時,它會變為小十字“+”,按住滑鼠左鍵拖動其到相應的單元格即可進行數據的自動填充。

步驟3:雙擊現有名稱,輸入新名稱“科研經費使用情況表”。

步驟4:保存文件。

(2)【解題步驟】

步驟1:按照要求建立“簇狀棱錐圖”。選中“項目編號”列和“合計”列,在【插入】功能區的【圖表】分組中,單擊“創建圖表”按鈕,彈出“插入圖表”對話框,在“柱形圖”中選擇“簇狀棱錐圖”,單擊“確定”按鈕,即可插入圖表。

步驟2:按照題目要求設置圖表標題。在插入的圖表中,選中圖表標題,改為“科研經費使用情況圖”。

步驟3:調整圖的大小並移動到指定位置。選中圖表,按住滑鼠左鍵單擊圖表不放並拖動,將其拖動到A7:El8單元格區域內。

註:不要超過這個區域。如果圖表過大,無法放下,可以將滑鼠放在圖表的右下角,當滑鼠指針變為“、”時。按住左鍵拖動可以將圖表縮小到指定區域內。

步驟4:保存文件。

三、演示文稿題

(1)【解題步驟】

步驟1:通過“答題”菜單打開ysw9.pptx文件,按照題目要求設置幻燈片模板。選中幻燈片,在【設計】功能區的【主題】分組中,單擊“其他”下拉三角按鈕,選擇“時裝設計”模板。

步驟2:按照題目要求設置幻燈片的切換效果。選中幻燈片,在【切換】功能區的【切換到此幻燈片】分組中,單擊“其他”下拉三角按鈕,在“細微型”選項組中選擇“分割”效果。

(2)【解題步驟】

步驟1:按照題目要求設置剪貼畫的動畫效果。選中第二張幻燈片的圖片,在【動畫】功能區的【動畫】分組中,單擊“其他”下拉三角按鈕,選擇“更多進入效果”選項,彈出“更改進入效果”對話框。在“基本型”選項組中選擇“向內溶解”效果,單擊“確定”按鈕。

步驟2:按照要求插入新幻燈片。用滑鼠右鍵單擊第一張幻燈片前面的位置,在【開始】功能區的【幻燈片】分組中,單擊“新建幻燈片”下拉三角按鈕,選擇“標題幻燈片”選項。新插入的幻燈片作為第一張幻燈片。

步驟3:在第一張幻燈片的“單擊此處添加標題”處輸入“諷刺與幽默”。

步驟4:按題目要求設置字體。選中“諷刺與幽默”,在【開始】功能區的【字體】分組中,單擊“字體”按鈕,彈出“字體”對話框。在“字體”選項卡中,設置“大小”為“60磅”,設置“字體樣式”為“加粗”。單擊“字體顏色”下拉三角按鈕,選擇“其他顏色”選項,彈出“顏色”對話框。單擊“自定義”選項卡,設置“紅色”為“250”,設置“綠色”為…l’,設置“藍色”為…l’,單擊“確定”按鈕,再單擊“確定”按鈕。

步驟5:保存文件。

三、應用題(共20分)

;

8. 計算機二級考試C語言知識點歸納

2017年計算機二級考試C語言知識點歸納

計算機二級考試是全國計算機等級考試(National Computer Rank Examination,簡稱NCRE)四個等級中的一個等級,考核計算機基礎知識和使用一種高級計算機語言編寫程序以及上機調試的基本技能。下面是2017年計算機二級考試C語言知識點歸納。歡迎閱讀。

總體上必須清楚的

1)程序結構是三種:順序結構 ,循環結構

(三個循環結構),選擇結構(if 和 switch)

2)讀程序都要從main()入口,然後從最上面順序

往下讀(碰到循環做循環,碰到選擇做選擇)。

3)計算機的數據在電腦中保存是以二進制的形式。

數據存放的位置就是他的地址。

4)bit是位 是指為0 或者1。 byte 是指位元組,

一個位元組 = 八個位。

5)一定要記住二進制如何劃成十進制。

概念常考到的:

1)、編譯預處理不是C語言的一部分,不再運行

時間。C語言編譯的程序稱為源程序,

它以ASCII數值存放在文本文件中。

2)、每個C語言程序中main函數是有且只有一個。

3)、在函數中不可以再定義函數。

4)、演算法是一定要有輸出的,他可以沒有輸入。

5)、break可用於循環結構和switch語句。

6)、逗號運算符的級別最低。

第一章

1)合法的用戶標識符考查:

合法的要求是由字母,數字,下劃線組成。

有其它元素就錯了。

並且第一個必須為字母或則是下劃線。

第一個為數字就錯了。

關鍵字不可以作為用戶標識符號。

main define scanf printf 都不是關鍵字。迷惑你的

地方If是可以做為用戶標識符。因為If中的

第一個字母大寫了,所以不是關鍵字。

2)實型數據的合法形式:

2.333e-1 就是合法的,且數據是2.333×10-1。

考試口訣:e前e後必有數,e後必為整數。.

3)字元數據的合法形式::

'1'是字元佔一個位元組,"1"是字元串占兩個

位元組(含有一個結束符號)。

'0' 的ASCII數值表示為48,'a' 的ASCII數值是97,

'A'的ASCII數值是65。

4) 整型一般是兩個位元組, 字元型是一個位元組,

雙精度一般是4個位元組:

考試時候一般會說,在16位編譯系統,或者

是32位系統。碰到這種情況,不要去管,一樣做題。

掌握整型一般是兩個位元組, 字元型是一個位元組,

雙精度一般是4個位元組就可以了。

5)轉義字元的考查:

在程序中 int a = 0x6d,是把一個十六進制的數給

變數a 注意這里的0x必須存在。

在程序中 int a = 06d, 是一個八進制的形式。

在轉義字元中,’x6d’才是合法的,0不能寫,

並且x是小寫。

‘141’是合法的。

‘108’是非法的,因為不可以出現8。

轉義字元意義 ASCII碼值(十進制)

a 響鈴(BEL) 007

 退格(BS) 008

f 換頁(FF) 012

換行(LF) 010

回車(CR) 013

水平製表(HT) 009

v 垂直製表(VT) 011

\ 反斜杠 092

? 問號字元 063

' 單引號字元 039

" 雙引號字元 034

空字元(NULL) 000

ddd 任意字元三位八進制

xhh 任意字元二位十六進制

6)算術運算符號的優先順序別:

同級別的有的是從左到右,有的是從右到左。

7)強制類型轉換:

一定是(int)a 不是 int(a),注意類型上

一定有括弧的。

注意(int)(a+b)和(int)a+b 的區別。

前是把a+b轉型,後是把a轉型再加b。

8)表達式的考查:

是表達式就一定有數值。

賦值表達式:表達式數值是最左邊的數值,

a=b=5;該表達式為5,常量不可以賦值。

自加、自減表達式:假設a=5,++a(是為6),

a++(為5);

運行的機理:++a 是先把變數的數值加上1,

然後把得到的數值放到變數a中,然後再用這

個++a表達式的數值為6,而a++是先用該表達

式的數值為5,然後再把a的數值加上1為6,

再放到變數a中。 進行了++a和a++後在下面的

程序中再用到a的話都是變數a中的6了。

考試口訣:++在前先加後用,++在後先用後加。

逗號表達式:優先順序別最低 ;表達式的數值

逗號最右邊的那個表達式的數值。

(2,3,4)的表達式的數值就是4。

9)位運算的考查:

會有一到二題考試題目。

總的處理方法:幾乎所有的'位運算的題目

都要按這個流程來處理(先把十進制變成

二進制再變成十進制)。

例1:char a = 6, b;

b = a<<2; 這種題目的計算是先要把a的十進

制6化成二進制,再做位運算。

例2:一定要記住,

例3:在沒有捨去數據的時候,<<左移一位表示

乘以2;>>右移一位表示除以2。

10)018的數值是非法的,八進制是沒有8的,

逢8進1。

11)%符號兩邊要求是整數。不是整數就錯了。

12)兩種取整丟小數的情況:

1、int a =1.6;

2、(int)a;

第二章

1)printf函數的格式考查:

%d對應整型;%c對應字元;%f對應單精度等等。

寬度的,左對齊等修飾。

%ld對應 long int;%lf 對應double。

2)scanf函數的格式考察:

注意該函數的第二個部分是&a 這樣的地址,不是a;

Scanf(“%d%d%*d%d”,&a,&b,&c);跳過輸入的

第三個數據。

3)putchar ,getchar 函數的考查:

char a = getchar() 是沒有參數的,從鍵盤得到

你輸入的一個字元給變數a。

putchar(‘y’)把字元y輸出到屏幕中。

4)如何實現兩個變數x ,y中數值的互換

(要求背下來)

不可以把 x=y,y=x; 要用中間變數 t=x;x=y;y=t。

5)如何實現保留三位小數,第四位四捨五入

的程序,(要求背下來)

x=(int)(x*1000+0.5)/1000.0

這個有推廣的意義,注意 x = (int)x 這樣是

把小數部分去掉。

第三章

特別要注意:c語言中是用非0表示邏輯真的,

用0表示邏輯假的。

1)關系表達式:

表達式的數值只能為1(表示為真),

或0(表示假)

當關系的表達是為真的時候得到1。

如 9>8這個是真的,所以表達式的數值就是1;

2)邏輯表達式:

只能為1(表示為真),或0(表示假)

a) 共有&& || ! 三種邏輯運算符號。

b) !>&&>|| 優先的級別。

c) 注意短路現象。考試比較喜歡考到。

d) 要表示 x 是比0大,比10小的方法。0

不可以的(一定記住)。是先計算0

結果為1或則0;再用0,或1與10比較得到的

總是真(為1)。所以一定要用(0

示比0大比10小。

3)if 語句

else 是與最接近的if且沒有else的相組合的。

4)條件表達式:

表達式1 ?表達式2 :表達式3

注意是當非0時候是表達式2的數值,當為0是

就是表達式2的數值。

考試口訣:真前假後。

5)switch語句:

a)一定要注意有break 和沒有break的差別,

沒有break時候,只要有一個case匹配了,剩下

的都要執行,有break則是直接跳出了swich語句。

b)switch只可以和break一起用,不可以

和continue用。

第四章

1)三種循環結構:

a)for(); while(); do- while()三種。

b)for循環當中必須是兩個分號,千萬不要忘記。

c)寫程序的時候一定要注意,循環一定要有結束

的條件,否則成了死循環。

d) do-while()循環的最後一個while();的分號一定

不能夠丟。(當心上機改錯)

2) break 和 continue的差別

記憶方法:

break:是打破的意思,(破了整個循環)所以

看見break就退出真個一層循環。

continue:是繼續的意思,(繼續循環運算),

但是要結束本次循環,就是循環體內剩下的語句

不再執行,跳到循環開始,然後判斷循環條件,

進行新一輪的循環。

3)嵌套循環

就是有循環裡面還有循環,這種比較復雜,要一層

一層一步一步耐心的計算,一般記住兩層是處理

二維數組的。

4) while((c=getchar())!=’ ’)和

while(c=getchar() !=’ ’)的差別

先看a = 3 != 2 和(a=3)!=2 的區別:

(!=號的級別高於=號 所以第一個先計算 3!=2)

第一個a的數值是得到的1;第二個a的數值是3。

考試注意點: 括弧在這里的重要性。

第五章

函數:是具有一定功能的一個程序塊;

1) 函數的參數,返回數值(示意圖):

main()

{

int a = 5,b=6,c;

c = add(a,b);

printf(“%d”,c);

}

調用函數

a,b是實參

整個函數得到一個數值就是

Add函數的返回數值。

int add ( int x,int y)

{

int z;

z=x+y;

return z;

}

被調用函數

x,y是形式參數

函數返回數值是整型

z就是這個add函數計算後得到的結果,就是函數

返回給主程序的返回數值。

程序是在從上往下順序執行,當碰到了函數add後,

把a,b的數值穿給調用函數,程序暫時中斷等待返回數值。

當得到了返回數值後,再順序的往下執行

2)一定要注意參數之間的傳遞

實參和形參之間 傳數值,和傳地址的差別。(考試的重點)

傳數值的話,形參的變化不會改變實參的變化。

傳地址的話,形參的變化就會有可能改變實參的變化。

3)函數聲明的考查:

一定要有:函數名,函數的返回類型,函數的參數類型。

不一定要有:形參的名稱。

第六章

指針變數的本質是用來放地址,而一般的變數是放數值的。

int *p 中 *p和p的差別:

*p可以當做變數來用;*的作用是取後面地址p裡面的數值

p是當作地址來使用。

*p++ 和 (*p)++的之間的差別:改錯題目中很重要

*p++是 地址會變化。

(*p)++ 是數值會要變化。

三名主義:(考試的重點)

數組名:表示第一個元素的地址。數組名不可以自加,

他是地址常量名。(考了很多次)

函數名:表示該函數的入口地址。

字元串常量名:表示第一個字元的地址。

第七章

1一維數組的重要概念:

對a[10]這個數組的討論。

1、a表示數組名,是第一個元素的地址,也就是

元素a[10]的地址。

2、a是地址常量,所以只要出現a++,或者

是a=a+2賦值的都是錯誤的。

3、a是一維數組名,所以它是列指針,也就是

說a+1是跳一列。

對a[3][3]的討論。

1、a表示數組名,是第一個元素的地址,也就是

元素a[10]的地址。

2、a是地址常量,所以只要出現a++,或者

是a=a+2賦值的都是錯誤的。

3、a是二維數組名,所以它是行指針,也就

是說a+1是跳一行。

4、a[0]、a[1]、a[2]也都是地址常量,不可以對

它進行賦值操作,同時它們都是列指針,a[0]+1,

a[1]+1,a[2]+1都是跳一列。

5、注意a和a[0] 、a[1]、a[2]是不同的,它們的

基類型是不同的。前者是一行元素,後三者是一列元素。

二維數組做題目的技巧:

如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。

步驟一:把他們寫成:

第一列第二列第三列

a[0]à 1 2 3 ->第一行

a[1]à 4 5 6—>第二行

a[2]à 7 8 9->第三行

步驟二:這樣作題目間很簡單:

*(a[0]+1)我們就知道是第一行的第一個元素往後

面跳一列,那麼這里就是a[0][1]元素,所以是1。

*(a[1]+2)我們就知道是第二行的第一個元素往後面

跳二列。那麼這里就是a[1][2]元素,所以是6。

一定記住:只要是二維數組的題目,一定是寫成如

上的格式,再去做題目,這樣會比較簡單。

數組的初始化,一維和二維的,一維可以不寫,

二維第二個一定要寫

int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。

但int a[4][]={2,3,4}非法。

二維數組中的行指針

int a[1][2];

其中a現在就是一個行指針,a+1跳一行數組元素。

搭配(*)p[2]指針

a[0],a[1]現在就是一個列指針。a[0]+1 跳一個數組

元素。搭配*p[2]指針數組使用

還有記住脫衣服法則:

a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再

可以變成 *(*(a+2)+3)

;