糯米文學吧

位置:首頁 > 計算機 > 計算機二級

2017年9月計算機二級C語言程序設計備考題

計算機二級考試是計算機等級考試中競爭最激烈的,你知道怎樣備考計算機二級考試嗎?下面是小編為大家帶來的計算機二級C語言程序設計備考題,歡迎閲讀

2017年9月計算機二級C語言程序設計備考題

  備考題一:

編程題

1、三個整數a、b、c,由鍵盤輸入,輸出其中最大的數。

2、從鍵盤輸入的10個整數中,找出第一個能被7整除的數。若找到,打印此數後退出循環;若未找到,打印“not exist”。

3、有一個一維數組,內放10個學生成績,寫一個函數,求出平均分。

4、有N個學生,每個學生的信息包括學號、性別、姓名、四門課的成績,從鍵盤上輸入N個學生的信息,要求輸出總平均成績最高的學生信息,包括學號、性別、姓名和平均成績。

參考答案

1、main()

{ int a,b,c;

printf(“請輸入三個整數:”); scanf(“%d,%d,%d”,&a,&b,&c);

if(aif(belse printf(“max=%d”,b);

else if(aelse printf(“max=%d”,a); }

2、#include”stdio.h”

main()

{ int I,a;

for(I=1;I<=10;I++)

{ scanf(“%d”,&a);

{ if(a%7==0)

printf(“%d”,a); break; } }

if(I==11)

printf(“not exist”); }

3、float average(float array[ ],int n)

{ int I;

float aver,sum=array[0];

for(I=1;Isum=sum+array[I];

aver=sum/n;

return(aver); }

main()

{ float ave,score[10];

int I;

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

scanf("%f",&score[I]);

ave=average(score,10);

printf("%f",ave); }

4、 #include"stdio.h"

#define N 3

struct student

{ long stu_num;

char sex;

char name[15];

int score[4];

float average; };

main()

{ int I,j,index;

float sum,max;

struct student stuarr[N];

for(I=0;I{ printf("please input %d student information:",I+1);

scanf("%ld,%c,%s",&stuarr[I]_num,&stuarr[I],stuarr[I]);

for(j=0;j<4;j++)

scanf("%d",&stuarr[I]e[j]); }

for(I=0;I{ sum=0.0;

for(j=0;j<4;j++)

sum+=stuarr[I]e[j];

stuarr[I]age=sum/4.0; }

max=stuarr[0]age;

index=0;

for(I=1;Iif(stuarr[I]age>max)

{max=stuarr[I]age; index=I; }

printf("總平均成績最高的學生信息是學號=%ld,性別=%c,姓名=%s,平均成績=%4.1f",stuarr[index]_num,stuarr[index],stuarr[index],stuarr[index]age); }

  備考題二:

1.C語言中,關係表達式和邏輯表達式的值是( B ) 。

A、0

B、 0或1

C、 1

D、‘T’或’F’

2. 下面( D )表達式的值為4.

A、 11/3

B、 11.0/3

C、 (float)11/3

D、 (int)(11.0/3+0.5)

【解析】(1)相同數據類型的元素進行數學運算(+、-、*、/)得到結果還保持原數據類型。

(2)不同數據類型的元素進行數學運算,先要統一數據類型,統一的標準是低精度類型轉換為高精度的數據類型。

選項A,11與3為兩個整數,11/3結果的數據類型也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.

選項B,11.0為實數,3為整數,因此首先要統一數據類型,將整型數據3轉換為3.0,轉換後數據類型統一為實型數據,選項B變為11.0/3.0,結果的數據類型也應為實型數據,因此選項B 11.0/3=3.666666

選項C,先將整數11強制類型轉換,轉換為實型11.0,因此選項C變為11.0/3,其後計算過程、結果與選項B同

選項D,首先計算11.0/3,其計算過程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最後將4.166666強制類型轉換為整型,即將其小數部分全部舍掉,結果為4

3.設整型變量 a=2,則執行下列語句後,浮點型變量b的值不為0.5的是( B )

A、b=1.0/a

B、b=(float)(1/A、

C、b=1/(float)a

D、b=1/(a*1.0)

4. 若“int n; float f=13.8;”,則執行“n=(int)f%3”後,n的值是(A)

A、1

B、4

C、4.333333

D、4.6

【解析】“(int)f“表示將f中的值強制類型轉換為整型,即將13.8的小數部分舍掉,轉換為13;然後計算13%3,結果為1,再將結果賦給變量n,因此n的值為1

5. 以下對一維數組a的正確説明是: D

A、char a(10);

B、 int a[];

C、int k=5,a[k];

D、char a[3]={‘a’,’b’,’c’};

【解析】詳見教材P143~144,一維數組的定義、初始化

類型符 數組名 [常量表達式]

類型符是指數組中數組元素的類型;數組名要符合標識符命名規則;常量表達式是指數組的長度(數組中包含元素的個數),其值只能是整數,不可以是變量,而且從1開始計數。

選項A,常量表達式只能放在中括號 [ ]中

選項B,只有在對數組初始化(即賦值)的時候才可以省略數組的長度,B中並未對a進行初始化。

選項C,常量表達式不能為變量。

6.以下能對一維數組a進行初始化的語句是:( C )

A、int a[5]=(0,1,2,3,4,)

B、 inta(5)={}

C、 int a[3]={0,1,2}

D、 int a{5}={10*1}

【解析】詳見教材P145,一維數組的定義、初始化

選項B,D,常量表達式只能放在中括號 [ ]中

選項A,數組可以看做是若干個相同數據類型元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了().

7.在C語言中對一維整型數組的正確定義為 D 。

A、int a(10);

B、int n=10,a[n];

C、int n;a[n];

D、#define N 10

8、已知:int a[10]; 則對a數組元素的正確引用是( D )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

【解析】詳見教材P144,數組元素的`引用

數組名[下標]

引用數組元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變量,且從0開始計數

int a[10]表示定義了一個包含10個整型數據的數組a,數組元素的邏輯地址下標範圍為0~9,即a[0] 表示組中第1個元素; a[1] 表示組中第2個元素; a[2] 表示組中第3個元素; ......;a[9] 表示組中第10個元素.

選項A,超過了數組a的邏輯地址下標範圍;

選項B,邏輯地址下標只能為整數

選項C,邏輯地址下標只能放在[ ]中

9.若有以下數組説明,則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

10.若有説明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則數組a的第一維的大小為: ( B )

A、2

B、3

C、4

D、無確定值

【解析】二維數組的一維大小,即指二維數組的行數,在本題中,按行對二維數組賦值,因此內層有幾個大括號,數組就有幾行