精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

計算機等級考試高級語言程序設計考試心得

發布時間:2011-09-28 共1頁

  由于自學考試的社會性,為了體現公正和公平,試題不能像本科院校中常見的那樣重復使用。自學考試的試卷內容有廣泛且分散的特點,這要求考生必須全面地復習教材的內容。

  1.單項選擇題

  試題中的單項選擇題中的多數試題涉及整本教材介紹的概念和知識點。為解答這類試題,要求考生要熟練地掌握和熟記大綱中指出的“識記”和“領會”的內容。考生應摘出教材中有關C語言的重要概念、定義、有關語言成分性質的敘述,對它們深入的理解和熟記,并對語言的一些基本規定能作簡單的應用。清考生注意,理解、熟記和大段地背誦的區別。由于考題表現形式的多樣性,理解是最重要的,僅對關鍵性的概念才有準確熟記的必要,多數的概念因是理解,并要求能熟練應用。試題通常要求對某個概念、術語或計算結果作出判斷,或對一些規定作簡單的應用等。由于計算機科學是一門新興學科,許多概念還沒有唯一性的定義,不同書籍由于出發點或論述領域不同,同一概念會有不同的說法,為此考生在復習迎考時,不要脫離指定自學考試教材,而從其它教材出發進行復習。

  【例1】設有以下代碼定義字符數組c和字符指針變量pc:

  char c[10]=“abed”,*pc=c;

  問*(pc+4)的值。供選擇的答案有:

  ①“abcd‘   ②’\0‘    ③ ’ d‘         ④不能確定

  上述代碼使字符數組c的前5個元素依次為:c[0]=‘a’c[1]=‘b’, c[2]=‘c’, c[3]= ‘d’,c[4]=‘\0’。初始化pc=c使字符指針變量pc指向c數組的首元素c[0].而表達式pc+4的值是c[4]的指針。因此,表達式*(pc+4)就是引用c[4].所以問題的解答為②。

  【例2】指出下列說法中錯誤的敘述。

  ①構成數組的所有元素的數據類型必須是相同的②用指針法引用數組元素允許數組元素的下標越界③一維數組元素的下標為1,2,3,……

  ④定義數組時的長度可以是整型常量表達式

  由數組的概念知,數組的全部元素有相同的數據類型,另在定義數組時,需指出數組的元素個數,指定數組元素個數的表達式必須在編譯時可計算的,即只允許是常量表達式,不可以含有變量。所以①和④是正確的敘述,不是問題要求的解答。在C語言中,當指針指向數組的某元素(不一定是數組的首元素)時,可利用該指針加減一個整表達式,構成指針表達式指向數組的某元素,然后用取內容運算符。間接引用指針表達式所指的數組元素。如有代碼:

  int a[100],* P;

  表達式p=&a“20]使p指向a[20],,通過p引用數組a[l],可用表達式*(p-19)。由C語言的約定,當指針指向數組某元素時,用指針表達式引用它所指的數組的某元素也可寫成等價的下標引用形式,如表達式*(p-9)可以等價地寫成p[-19].這里-19是一個負整數,所以敘述②也是一個正確敘述。這種表示方法是借用下標表示法,與指針加減的整表達式引用數組元素,其中加減的整數實際不是數組元素的下標。還需要指出一點,指針與整表達式和的新指針不應該指向數組之外的別的地址。如前述的例子中指針變量p指向a[20],表達式*(p+n)中的 n要求不能小于 20,也不能大于 79.最后,C語言規定數組元素的下標從0開始順序編號,所以選擇③才是錯誤的敘述。

  2.填充題

  填充題要考核的內容與選擇題的考核內容基本相同,但考核的形式不同。填充題的試題多數是從基本概念兒語言關于數據類型、程序對象、程序結構等的規定、C程序設計基本技巧等引伸的具體應用。如C語言規定每個字符占一個字節,每個字符串除存儲它所包含的字符外,在字符串最后一個字符之后還存有一個字符串結束符。對于這樣兩個基本概念和規定,填充題可能是問具體的一個字符和一個字符串各占多少個字節等。因填充題是概念或規定的具體應用,解答的難度也就比選擇題的要大,不可能有猜得分的機會。

  【例3】下列函數的功能是統計并返回形參指針S所指向的字符串所含字符‘A’的個數。試完成程序,寫出應填寫在程序空框中的代碼。

  int counts(char *s)

  { int n;

  for( n=0;。 ; s++)

  if(*s==‘A’)n++;

  return n;}

  為統計字符指針s所指字符串包含的某字符的出現次數,必須用一個循環順序考察整個字符串。由從指針s所指字符串的首字符開始,每考察一個字符后,指針s后移一個字符位置,考察循環直至字符率結束終止。所以填寫在空框中的正確代碼可寫成* S! =‘\ 0’。由于字符串束符‘\ 0’的代碼為 8位全0,其值為 0,正確解答也可寫成* S!= 0,或更簡潔地寫成*s.

  【例4】在內存中存儲‘A’要占用____字節,存儲“A”又要占用____字節。

  由于C語言規定字符只占1個字節,一個具體的字符當然也只占1個字節。字符串“A”要有1個字節用于存儲字符‘A’,另需要1個字節存儲字符串的結束符,所以它要占用連續的2個字節。

  【例5】設整型變量a、b的值均為3,執行語句:

  b= a++, b++, ++a;

  后,a的值為____,b的值為____.

  該試題的表達式書寫形式一般不會直接出現在實際應用程序中,但作為考核考生對有關表達式的計算規則,也不失為是一個很有意義的試題。賦值表達式自右至左計算,而逗號運算符的優先級最低,并且逗號表達式自左至右逐一計算,并以最后子表達式的值為逗號表達式的結果。上述表達式的計算順序可用以下3個表達式語句等價表示:

  b=a++;b++;++a;

  由以上一系列表達式知,變量b的最終值與其原來值無關,表達式b= a+十是先計算a++。表達式a+十的值是變量a的原先值3,但又讓變量a增1后變為4.然后表達式b++又使變量b增1,變成4.而計算++a的值,是讓a增1,使a的值變為5.所以上述表達式使變量a的值變為5,b的值變為4.

  如上述表達式改寫為:

  b+=(a++,b++,++a);

  請讀者回答執行該表達式后,變量a和b的值又分別為多少。

  3.程序分析題

  程序分析題要求考生閱讀程序,回答程序的輸出結果,或指出程序的功能。回答這類問題,要求考生將自己當作一臺假想的計算機,模擬執行序。

百分百考試網 考試寶典

立即免費試用