點擊查看:2018年9月計算機二級C語言考試沖刺提分試題匯總
1、以下語句的輸出結果是( )。
int a=-1,b=4,k;
k=(+ +a<0)&&!(b - -<=0);
printf("%d,%d,%d\n",k,a,b);
A. 1,0,4
B. 1,0,3
C. 0,0,3
D. 0,0,4
2、下列程序的輸出結果是( )。
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
3、執行下面的程序后,a的值是( )。
#define SQR(X) X*X
main( )
{ int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a); }
A. 10
B. 1
C. 9
D. 0
4、設A為存放(短)整型的一維數組,如果A的首地址為P,那么A中第i 個元素的地址為( )。
A.P+i*2
B. P+(i-1)*2
來源:考試大
C. P+(i-1)
D. P+i
5、下列程序執行后輸出的結果是( )。
int d=1;
fun (int p)
{ int d=5;
d + =p + +;
printf("%d,",d); }
main( )
{ int a=3;
fun(a);
d + = a + +;
printf("%d\n",d); }
A. 8, 4
B. 9, 6
C. 9, 4
D. 8, 5
6、表達式:10!=9的值是( )。
A. true
B. 非零值
C. 0
D. 1
7、若有說明: int i,j=7, *p=&i;, 則與i=j; 等價的語句是( )。
A. i= *p;
B. *p=*&j;
C. i=&j;
D. i=* *p;
8、不能把字符串: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!";
9、在C程序中有如下語句:char *func(int x,int y); 它是( )。
A. 對函數func的定義。
B. 對函數func的調用。
C.對函數func的原型說明。
D. 不合法的。
10、以下程序的輸出結果是( )。
char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A. 15
B. 14
C. 7
D. 6
參考答案:1、D 2、D 3、B 4、B 5、A 6、D 7、B 8、B 9、C 10、D
11[單選題] 如果定義
float a[10],x;
則以下敘述中正確的是
A.語句a=&x;是非法的B.表達式a+1是非法的C.三個表達式a[1]、*(a+1)、*&a[1]表示的意思完全不同D.表達式,&a[1]是非法的,應該寫成+(&(a[1]))
參考答案:A
參考解析:B選項中,表達式a+1不是非法的;C選項中,*(a+1)即指a[1];D選項中,*&a[1]不是非法的。因此A選項正確。
12[單選題] 以下敘述中正確的是( )
A.'\0'表示字符O
B."a"表示一個字符常量
C.表達式:'a'>'b'的結果是”假”
D.'\"'是非法的
參考答案:C
參考解析:A選項中,'\0'表示結束;B選項中,字符常量是用單引號括起來的一個字符;D選項中,'\"'是雙引號符。因此C選項正確。
13[單選題] 下列關于數據庫設計的敘述中,正確的是( )。
A.在需求分析階段建立數據字典
B.在概念設計階段建立數據字典
C.在邏輯設計階段建立數據字典
D.在物理設計階段建立數據字典
參考答案:A
參考解析:數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實和完善的。
14[單選題] 軟件設計中劃分模塊的一個準則是( )。
A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦臺
參考答案:B
參考解析:一般較優秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
15[單選題] 在一個C源程序文件中所定義的全局變量,其作用域為( )。
A.由具體定義位置和extem說明來決定范圍
B.所在程序的全部范圍
C.所在函數的全部范圍
D.所在文件的全部范圍
參考答案:A
參考解析:全局變量的作用域是從聲明處到文件的結束。所以選擇A)。
16[單選題] 若有C語言表達式2+3*4+7/3,以下選項中敘述正確的執行順序是
A.先執行3*4得12,再執行2+12得14,再執行7/3得2,最后執行14+2得16
B.先執行3*4得12,再執行7/3得2.5,最后執行2+12+2.5得16.5
C.先執行7/3得2,再執行3*4得12,再執行12+2得l4,最后執行2+14得l6
D.先執行2+3得5,再執行5*4得20,再執行20+7得27,最后執行27/3得9
參考答案:A
參考解析:首先,在c語言中,乘除法優先級要高于加減法,其次,除法運算符"/"兩邊參加運算對象都是整數,運算結果要取整,故排除B,D選項;C語言中。因為“*”和“/”都滿足從左到右的運算規則,故應先計算3*4=12。因此c排除,答案為A選項。
17[單選題] 以下敘述中正確的是( )。
A.c語言規定必須用main作為主函數名,程序將從此開始執行
B.可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C.c語言程序將從源程序中第一個函數開始執行、
D.main的各種大小寫拼寫形式都可以作為主函數名,如MAIN,Main等
參考答案:A
參考解析:C語言中的主函數只能是main()函數,不能任意指定,所以B選項錯誤。C語言從主函數main()開始,到主函數main()結束,所以C選項錯誤。主函數必須寫成小寫的main,不能混淆大小寫,所以D選項錯誤。
18[單選題] 設變量已正確定義并賦值,以下正確的表達式是( )。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
參考答案:A
參考解析:B與D選項中取模運算符%的左右兩個操作數均應為整數,所以B、D錯誤。c選項中不能將X+Y的值賦給表達式Y*5,所以c錯誤。
19[單選題] 設文件指針fp已定義,執行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是( )。
A.只能寫不能讀
B.寫操作結束后可以從頭開始讀
C.可以在原有內容后追加寫
D.可以隨意讀和寫
參考答案:A
參考解析:考查文件操作函數fopen的基礎知識, 以”W”方式打開文件,只能寫不能讀。選項A正確。
20[單選題] 設Z.X樹中共有31個結點,其中的結點值互不相同。如果該二叉樹的后序序列與中序序列相同,該二叉樹的深度為( )。
A.31B.16C.17D.5
參考答案:A
參考解析:二叉樹遍歷可以分為3種:黃序遍歷(訪問根結點在訪問左子樹和訪問右子樹之前)、中序童歷(訪問根結點在訪問左子樹和訪問右子樹兩者之問)、后序童歷(訪問根結點在訪問左子樹和訪問右子樹之后)。由結點售互不相同而后序序列與中序序列相同,可知該二叉樹所有的結點都沒有右子樹,所以31個結點的二叉樹深度為31:故選A選項。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: