C語言程式設計模擬試題A 附答案

2022-10-10 01:54:02 字數 3426 閱讀 4232

一、 單項選擇題(每題2分,共20分)

1、下列有關c語言的敘述中錯誤的是(d)。

a) c語句必須以分號結束

b) 任何乙個c程式中有且只有乙個主函式

c) 復合語句在語法上可被看作一條語句

d) c程式中對資料的任何操作都可由運算子實現

2、以下不能定義為使用者識別符號的是(c)。

a) main b) _hj c) 2ong d) line1

3、以下能正確定義一維陣列的是(c)。

a) int a[5]=; b) int a[5]=」012345」;

c) char a[ ]=」012345」; d) char a[5]=;

4、執行下列程式段後輸出的結果是(c)。

x = 9;

while (x > 7)

a) **** b) *** c) ** d) *

5、設char str1[10] = 「abcde」, str2[10] = 「xyz」;

則執行語句 printf(「%d」, strlen(strcpy(str1, str2))); 後的輸出結果是(d)。

解析:strcpy(str1,str2); 後,str1 裡是 "xyz", z 後面有字串結束符

strcpy(str1,str2); 執行後,函式返回的是 str1,

因為str1 裡是新值 "xyz", 而

strlen(strcpy(str1,str2)) 就是 strlen(str1的新值),所以得 3。

strlen 統計到字串結束符以前,即,不計入字串結束符。

a) 9 b) 8 c) 5 d) 3

6、若用陣列名作為函式呼叫的實參,則傳遞給形參的是(a)。

a) 陣列的首位址 b) 陣列第乙個元素的值

c) 陣列中全部元素的值 d) 陣列元素的個數

7、在c程式中,若未在函式定義時說明函式型別,則函式預設的型別為(c)。

a)void b)double c)int d)char

8、下面不能正確進行字串賦值操作的語句是(c)。

a) char s[5]=; b) char s[5]; s="abcd";

c) char *s;s="abcdef"; d) char *s="abcd";

解析:這樣理論上的沒錯的把s指標指向字串可以改變s指標但不能改變其指向的值正確的應該是這樣

char s = "abcdef";

或char s[8];strcpy(s, "abcdef");

9、設有說明int s[5]=; int *p=s; 則下列表示式中值為3的是 (c)。

a)++p b)++(*p) c) *(++p) d) *(p+=2)

解析:a是把p得位址後移乙個int單位長度,即使p指向陣列的第二個元素。

b是取得p當前指向的元素值然後加1,即1+1=2;

c是先移動p,使其指向第二個元素,然後取得當前指標指向的元素值,即3.

d是先使p指向陣列的第三個元素,然後去的當前指標指向的元素的值,即5。

10、下面程式的輸出結果是(b)。

int m=13;

int fun( int x, int y)

main( )

a) 1 b) 2 c) 3 d) 10

二、填空題。(每空2分,共30分)

1.設有變數說明語句:

int x=1,y=2;

則執行下述printf語句的輸出結果是__1.000000_

printf("%f\n",1.0+x/y);

2.執行下述程式:

#include <>

main()

若從鍵盤輸入:

12345671

則程式的輸出結果是__17__。

解析:x,y為int型別,x的長度為2,y的長度為1,即x為12,y為5,故x+y=17

3.以下程式的功能是:從鍵盤上輸入若干名學生的成績(百分制,可帶小數,以輸入負數或0為結束標誌),統計並輸出最高成績和最低成績。請填空。

#include <>

main()

printf("\namax=%f\namin=%f\n",amax,amin);

}4.設n是整型變數,且已具有某正整數值。根據下述數學式[+\\frac\\frac+\\frac\\frac++\\frac\\frac', 'altimg':

'', 'w': '237', 'h': '43'}]

求s的值並輸出。可編寫如下之程式段來實現。請填空。

int k;

double s,d;

s=0.0;

d=1.0;

k=0;

do while (k<=n);

printf("%f\n",s);

5.執行下述程式的輸出結果是___-3 -4 0 4 4 3_。

#include <>

main()

printf("\n");

}解析:(i>3)為真時值為1,反之為0,

6.執行下述程式的輸出結果是___6___。

#include <>

main()

,*ptr=&a[0],x=8,y,z;

for (y=0;y<3;y++)

z=(*(ptr+y) printf("%d\n",z);

}7.執行下述程式的輸出結果是_____60__。

#include <>

main()

,(*p)[2];

p=a;

printf("%d\n",*(*(p+2)+1));

}8.執行以下程式的輸出結果是__10_。

#include <>

main()

sum(int k)

9.下述函式定義用來求出兩個整數之各,並通過函式的模擬傳位址呼叫,傳回兩整數相加之和值,請填空。

void add(int x,int y,____int *z ___)

10.函式func的功能是將整型變數x的值轉換成二進位制數,並將該二進位制數的每一位存入由整型指標b所指向的一維陣列a,最低位存放於a[0]中,次低位存放於a[1]中,依此類推。請填空。

void func(int x,int *b)

while (x);

}11.以下程式中函式invert實現將陣列內所有陣列元素的值逆置。比如,執行本程式將輸出:

10 9 8 7 6 5 4 3 2 1

請填空。

#include <>

main()

,i,n=10;

invert(a,n-1);

for (i=0;i<10;i++)

printf("%3d",a[i]);

printf("\n");

} invert(int *s,int num) }

12.若有以下定義和說明,則結構體變數w在記憶體中所佔的位元組數是_____

union aa

{ float x;

C語言程式設計模擬試題

說明 1.本卷共四大題,共7頁.2.本試卷時間120分鐘,滿分100分.1.一 單項選擇題 每題1分,共20分,每小題只有乙個正確答案,請將你認為正確的答案填在對應的括號內。1.以下程式段中i最後的值是 int i 10 switch i 1 a 11 b 13 c 12 d 14 2.若x是int...

C語言程式設計期末試題模擬試卷

16.cpu管理 17.rom18.ctrl 19.shift 20.記憶體 21.64000b 22.b9fah23.1ffff h 三 判斷題 1.錯 2.對 3.對 4.錯 5.錯 6.對 7.錯 8.錯 9.錯 10.對 11.錯 12.對 13.錯 14.錯 15.對 16.對 17.錯 ...

C語言程式設計A課程教學模擬卷2及答案

廣播電視大學2008秋季 c語言程式設計a課程試卷 6 2011年7月考 一 單選題 每小題2分,共20分 1.c語言程式中的基本功能模組為 a.表示式 b.識別符號 c.語句 d.函式 2.邏輯表示式 x 0 y 5 的相反表示式為 a.x 0 y!5 b.x 0 y!5 c.x 0 y!5 d....