2017年計算機二級考試即將在九月份進行,你準備好了嗎?下面是小編為大家帶來的計算機二級C語言程式設計練習題,歡迎閱讀。
練習題一:
1.若有以下陣列說明,則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
2.若有說明: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
二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行
3.對二維陣列的正確定義是(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};
4.已知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,的.引用形式不正確。
5.C語言中函式返回值的型別是由 A 決定的.
A、函式定義時指定的型別
B、 return語句中的表示式型別
C、 呼叫該函式時的實參的資料型別
D、形參的資料型別
6. 在C語言中,函式的資料型別是指(A )
A、 函式返回值的資料型別
B、 函式形參的資料型別
C、 呼叫該函式時的實參的資料型別
D、任意指定的資料型別
7.在函式呼叫時,以下說法正確的是( B )
A、函式呼叫後必須帶回返回值
B、實際引數和形式引數可以同名
C、函式間的資料傳遞不可以使用全域性變數
D、主調函式和被調函式總是在同一個檔案裡
8. 在C語言中,表示靜態儲存類別的關鍵字是: ( C )
A、 auto
B、 register
C、static
D、extern
9.未指定儲存類別的變數,其隱含的儲存類別為(A )。
A、auto
B、static
C、extern
D、register
10. 若有以下說明語句:
struct student
{ int num;
char name[ ];
float score;
}stu;
則下面的敘述不正確的是: (D )
A、 struct是結構體型別的關鍵字
B、 struct student 是使用者定義的結構體型別
C、 num, score都是結構體成員名
D、 stu是使用者定義的結構體型別名
11.若有以下說明語句:
struct date
{ int year;
int month;
int day;
}brithday;
則下面的敘述不正確的是__C___.
A、 struct是宣告結構體型別時用的關鍵字
B、 struct date 是使用者定義的結構體型別名
C、 brithday是使用者定義的結構體型別名
D、year,day 都是結構體成員名
12. 以下對結構變數stul中成員age的非法引用是 B
struct student
{ int age;
int num;
}stu1,*p;
p=&stu1;
A、
B、
C、 p->age
D、(*p)
13.設有如下定義:
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;
14.設有以下說明語句:
typedef struct stu
{ int a;
float b;
} stutype;
則下面敘述中錯誤的是( D )。
A、struct是結構型別的關鍵字
B、struct stu是使用者定義的結構型別
C、a和b都是結構成員名
D、stutype是使用者定義的結構體變數名
15.語句int *p;說明了 C 。
A、p是指向一維陣列的指標
B、p是指向函式的指標,該函式返回一int型資料
C、p是指向int型資料的指標
D、p是函式名,該函式返回一指向int型資料的指標
練習題二:
1、以下語句的輸出結果是( )。
int a=-1,b=4,k;
k=(+ +a<0)&&!(b - -<=0);
printf("%d,%d,%d",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",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",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!");
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”,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