計算機二級C語言選擇題錯題知識點記錄。
1,在數據流圖中,用標有名字的箭頭表示數據流。在程序流程圖中,用標有名字的箭頭表示控制流。
2,結構化程序設計的基本原則:自頂向下,逐步求精,模塊化,限制使用goto語句。不包括多態性。
3,概要設計說明書是總體設計階段產生的文檔,集成測試計划是在概要設計階段編寫的文檔。
4,算法的有窮性是指:算法的程序的運行時間是有限的。
5,對長度為n的線性表排序,堆排序算法的比較次數是nlog2n,快速排序,冒泡排序,直接插入排序都是n(n-1)/2。
6,E-R圖轉換成關系模型數據則是把圖形分析出來的聯系反映到數據庫中,即設計出表,所以屬於邏輯設計階段。
7,自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,並且在結果中把重復的屬性列去掉。笛卡兒積是利用R集合中元素為第一元素,S集合中元素為第二元素構成的有序對。
8,C語言中的非執行語句不會被編譯,不會生成二進制的機器指令。由C語言構成的指令序列稱為C源程序(它以ASCII代碼形式存放在一個文本文件中),經過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(目標文件),最后要由“連接程序”把此.OBJ文件與C語言提供的各種函數連接起來生成一個后綴為.EXE的可執行文件。
9,小數形式表示的實型常量必須要有小數點,指數形式,以‘e’‘E’后跟一個整數來表示。且規定字母eE之前必須要由數字,且之后的指數必須為整數。
10,C語言標識符由字母,下划線,數字組成,且必須是字母或下划線開頭,關鍵字不能做標識符。C語言嚴格區分大小寫,所以‘FOR’可以作為標識符。
11,代數式子用C語言表示:sqrt(fabs(pow(n,x)+exp(x))) [開方,浮點數絕對值,幾次方,e次方]
12,取模運算符‘%’,二元運算符,具有左結合性,參與運算的量均為整型。
13,sizeof()函數判斷數據類型長度,整型int占有4個字節,double型數據占有8個字節。
14,“%c”為輸入單個字符,getchar()函數也為輸入單個字符。
15,if(a=1) b=1;c=2; else d=3;(這句錯誤,多了一句c=2;)
16,case語句注意有沒有break;
17,for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*"); 程序輸出*。因為for循環后跟了一個空語句,就直接跳出了。
18,不可以將指針賦予一個整數作為地址值。改變形參的值,不會改變對應實參的值。
19,float *p=&x 對 float *p=1024 錯,不能給指針賦予值。
20,x[2][3]定義的是一個兩行三列的二維數組。
21,字符串的輸入不能使用scanf(“%s”,s),而應該使用gets()。可以使用scanf("%c",&s[i]);組合進行處理。
22,sizeof(p)計算的是數組p中所有元素所占用的字節數,而不是char型數據所占字節數。 *q=p;sizeof(*q)正確,sizeof(p[0])正確,sizeof(char)正確。
23,s[i]!=0;for循環判斷的條件是數值不等於0,字符串中出現\0代表轉義為數字0。
24,只有使用才占用內存單元的是:auto和register。auto:函數中的局部變量,動態分配存儲空間,數據存儲在動態存儲區中。register:C語言允許將局部變量的值放在CPU中的寄存器中,這種變量叫“寄存器變量”,只有局部自動變量和形式參數可以作為寄存器變量。extern:外部變量是在函數外部定義的,它的作用域從變量定義開始到本程序末尾。static:在靜態存儲區內分配存儲單元,整個程序運行期間都不釋放。
25,不能在定義結構體的同時,又用結構體類型名定義變量。定義結構體的各個項都可以省略。
26,在被調用函數中改變形參值對於調用函數中的實參沒有影響。
27,C語言的預處理可以實現宏定義和條件編譯的功能。預處理命令是以“#”號開頭的命令,這些命令應寫在函數之外,但不是必須在起始位置書寫。
28,(a>>3)(右移操作)無符號整型變量a的值為8,二進制表示為00001000,右移三位為00000001,十進制為1。
29,fread()函數的參數buffer表示一個內存塊的首地址,代表讀入數據存放的地址。
30,循環隊列有隊頭和隊尾兩個指針,但是循環隊列仍是線性結構。
31,最壞情況下,二分法查找只需要比較log2n次,而順序查找需要比較n次。
32,鏈式存儲結構中每個節點都由數據域與指針域兩部分組成,增加了存儲空間。
33,在需求分析階段可以使用的工具有數據流圖DFD圖,數據字典DD,判定樹與判定表。
34,在數據管理技術發展的三個階段中,數據共享最好的是數據庫系統階段。
35,115L表示115是長整型數據,而不是升的單位。
36,不能將x+z的值賦給表達式y*5,賦值語句左側必須是一個變量。
37,逗號表達式:先計算第一個,再計算第二個,然后以第二個作為整個表達式的值。如果有第三個就接着計算第三個。
38,問號表達式的判斷是,若為非0,和若為0。
29,switch(x)語句后面不應該有分號,x不能用浮點數或long類型,也不能為一個字符串,case后面得跟常量,並且要和x類型一致。(不是看是否有結果,而是看是否格式正確。)
30,(*f)(),f=add;k=*f(a,b) 錯誤
31,數組長度為空,就是非法,int n=10;int x[n]; 錯誤,n為變量,不可以作為數組長度。
32,數組兩實,數組一空二實,指針實,指針空,都是可以的,但是對指針可以單個賦值(相當於把首地址賦予),數組不可以。
33,三種復制方式:for(i=0;t[i]=s[i];i++) while(*t=*s){t++,s++} for(i=0,j=0;t[i++]=s[j++];);
34,全局變量的作用域是從聲明處到文件結束。不是所在文件的全部范圍。
35,關鍵字typedef的作用是將C語言中的已有數據類型作了置換,並不是增加新的類型。
宏定義后面不能跟分號。
36,malloc函數動態分配一個整型內存空間,然后把函數返回的地址用(int *)強制類型轉化為整型指針,不管賦值幾次,最后只會有一個數留在申請的動態內存中。
37,C語言中的文件可以進行隨機讀取,對文件寫操作后不需要關閉再打開,可以使用fseek()函數進行重新定位即可。
38,棧支持子程序調用,棧是一種只能在一端進行插入或刪除的線性索,在主程序調用子函數時要首先保存主程序當前的狀態,然后轉去執行子程序,最終把子程序的執行結果返回到主程序中調用子程序的位置,繼續向下執行,這種調用符合棧的特點。
39,堆排序最最壞情況下需要比較的次數是最少的。
40,軟件測試的目的是為了發現錯誤而執行程序的過程,並不涉及改正錯誤。調試為改正錯誤。
41,耦合性是模塊間互相連接的緊密程度的度量,內聚性是指一個模塊內部各個元素間彼此結合的緊密程度。
42,數據庫應用系統中的核心問題是數據庫的設計。
43,投影運算是指對於關系內的域指定可引入新的運算。
44,關系模式中,實體和聯系都可以表示為關系。
45,C語言中整型常量可以用十進制,八進制和十六進制,但不包括二進制。
46,scanf函數:在輸入多個數據時,若格式控制控制串中無非格式字符,則認為所有輸入的字符均為由有效字符。不需要加空格,最后直接加回車就行。
47,在switch語句中,不一定使用break。
48,double數據,輸入時的格式字符應為%1f或者%1e,float為%f,
49,函數調用中發生的數據傳送是單向的。即只能把實參的值傳遞給形參,而不能把形參的值反向傳遞給實參。
50,字符數組可以在定義的時候初始化,但是不可以在定義數組后,對數組名賦值,數組名是常量,代表數組首地址。
51,宏定義名一般用大寫,但不是必須用大寫。
52,^異或操作。
53,隊列結構對於頭指針有時可能大於隊尾指針,有時可能小於。
54,算法的空間復雜度是指算法在執行過程中所需要的內存空間。
55,N-S圖提出了用方框圖來代替傳統的程序流程圖,PAD圖是問題分析圖,E-R圖是數據庫中用來表示E-R模型的圖示工具。
56,E-R圖中實體用矩形,屬性用圓形,聯系用菱形。
57,scanf("%d,%d,",&a,&b);輸入時切近要輸入逗號,保證匹配。
58,strcat()函數為字符串連接函數,strcpy()函數為字符串拷貝函數(注意這里從拷貝開始后就會清空之后的數據,因為拷貝過來‘/0’,就代表着字符串結束在拷貝數據之后)。
59,在局部變量的作用范圍內,外部變量被“屏蔽”,不起作用。
60,rewind(pf);文件位置指針回到文件開頭。這時再寫入數據會覆蓋之前寫入的數據。
61,軟件生命周期:軟件產品從提出,實現,使用維護到停止使用退役的過程。從概念,到不能使用。開始考慮
62,繼承是指類之間共享屬性和操作的機制。
63,層次模型的基本結構是樹形結構,網狀模型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,三種划分原則是數據之間的聯系方式。
64,數據庫三級模式:概念模式,內模式,外模式。概念:數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據的視圖。外模式:子模式或用戶模式,它是用戶的數據視圖,給出了每個用戶的局部數據描述,內模式:物理模式,給出了數據庫存儲結構與物理存取方法。
65,變量命名:“$”是非法字符。
66,常量中:雙引號表示字符串,單引號表示字符。
67,C語言又提供了兩種特殊的字符:八進制轉義字符和十六進制轉義字符。'\011',這是一個正確的八進制字符常量。
68,strcmp()函數是字符串比較函數,以第一個不相同的字符的大小作為比較的結果,OK<ok,此函數會返回負值。
69,islower()函數是判斷是否為小寫字母。-‘a’+'A'為-32表示轉化為大寫字母。
70,在外部函數內部定義的靜態變量是始終存在的,當函數調用退出后,仍會保存數據。
71,結構體定義的是結構體類型,可以用它去聲明結構體變量。
72,^異或:不同為1,相同為0。
73,線性結構滿足:有且只有一個根節點與每個結點最多有一個前件,也最多有一個后件。有一個以上根節點的數據結構一定是非線性結構。
74,二叉樹性質:在任意一顆二叉樹中,度為0的葉子結點總是比度為2的結點多一個。
75,軟件生命周期可以分為:軟件定義,軟件開發與軟件運行維護三個階段。
76,數據字典是在需求分析階段建立,在數據庫設計過程中不斷完善,修改的。
77,面向對象基本方法的基本概念:對象,類和實例,消息,繼承與多態性。
78,算法特性:有窮性,確定性,可行性,0個或多個輸入,一個或多個輸出。
79,x=5=4+1 不能將4+1的值賦予5 x=y==5;正確
80,%2d%f 輸入876 543.0 分別賦予了87和6.0
81,char a="aa" 錯誤,將常量‘“aa”賦給字符串變量a。
82,(c>=2&&c<=6)||(c!=3)||(c!=5) 結果為真,第一個條件不成立時,c的值肯定不為2,3,4,5,6,
83,外部函數調用時,只有傳遞地址的數才被同步改變。
84,N為變量,不能用來定義數組大小,C語言不允許定義動態數組,定義數組的大小必須為常量表達式。
85,文件是由數據序列組成,可以構成二進制文本或文本文件。
86,遇見宏定義,直接套用,先不管優先級。
87,n++先參與運算,再自增,++n先自增,再參與運算。