國家計算機二級c語言上機真題

2022-10-05 10:54:09 字數 3286 閱讀 7437

1.填空題

請補充main函式,該函式的功能是:從鍵盤輸入乙個字串並儲存在字元str1中,把字串str1中下標為偶數的字元儲存在字串str2中並輸出。例如,當str1=「cdefghij」,則str2=「cegi」。

注意:部分源程式給出如下。

請勿改動主函式main和其他函式中的任何內容,僅在函式fun()的橫線上填入所編寫的若干表示式或語句。

試題程式:

#include<>

#include<>

#define len 80

main()

for(i=0;i *p2++=*(str1+i);

*p2='\0';

printf("\nthe new string is:%s\n",【3】);

}答案及評析:

【1】″%s″,str1 【2】%c 【3】str2

【解析】填空1:本題考查對標準輸入函式scanf()的呼叫格式,當輸入字串時,格式控制字串為″%s″,題目要求輸入的字串儲存在str1中,所以位址表列應為字串的首位址,即為str1。填空2:

本題考查對標準輸出函式printf()的呼叫格式,當輸出為字元型變數時,格式控制字串為″%c″。填空3:題目要求將str1中下標為偶數的字元儲存在字串str2中並輸出,所以printf()函式的輸出表列是str2

2. 改錯題

在主函式中從鍵盤輸入若干個數放入陣列中,用0結束輸入並放在最後乙個元素中。下列給定程式中,函式fun()的功能是計算陣列元素中值為負數的平均值(不包括0)。

例如:陣列中元素的值依次為43,-47,-21,53,-8,12,0,則程式的執行結果為-25.333333。

請改正程式中的錯誤,使它能得到正確結果。

注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。

試題程式:

#include <>

#include <>

double fun(int x[ ])

found

sum=sum\c;

return sum;

}main()

while(x[i++]!=0);

printf("%f\n",fun(x));

}答案及評析:

(1)錯誤:while(x[i]==0)

正確:while(x[i]!=0)

(2)錯誤:sum=sum\c;

正確:sum=sum/c;

【解析】錯誤1:此處考查的是對迴圈條件的理解,當被判斷的陣列元素為0時,說明這是陣列的最後乙個元素,此時要跳出迴圈。

錯誤2:c語言中的除法運算子是"/",而不是"\"。

3. 程式設計題

請編寫乙個函式int fun(int *s,int t,int *k),用來求出陣列的最小元素在陣列中的下標並存放在k所指的儲存單元中。

例如,輸入如下整數:

234 345 753 134 436 458 100 321 135 760

則輸出結果為6,100。

注意:部分源程式給出如下。

請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括號中填入所編寫的若干語句。

試題程式:

#include <>

#include <>

int fun(int *s,int t,int *k)

main()

,k; clrscr();

fun(a, 10, &k);

printf("%d, %d\n ", k, a[k]);

}答案及評析:

int fun(int *s,int t,int *k)

【解析】本題中直接使用指標變數k,但在使用時要注意對k的指標運算,此外,一開始應讓*k的值為陣列中的某一下標值,即*k=0。

1.填空題

請補充函式fun(),該函式的功能是:從『a』到『z』統計乙個字串中所有字母字元各自出現的次數,結果儲存在陣列alf中。注意:不區分大小寫,不能使用字串庫函式。

例如,輸入:「a=abc+5*c」,結果為:a=2,b=1,c=2。

注意:部分源程式給出如下。

請勿改動主函式main和其他函式中的任何內容,僅在函式fun的橫線上填入所編寫的若干表示式或語句。

試題程式:

#include<>

#include<>

#define n 100

void fun(char *tt,int alf)

}main()

printf("\n");

}答案及評析:

【1】alf[i]=0 【2】*p+=32 【3】p++

【解析】填空1:陣列alf[26]用來存放字母字元出現的次數,在使用之前需要清零。填空2:

題目要求不區分大小寫,所以可以先將所有的大寫字母都轉換為對應的小寫字母,然後一併記錄出現的次數。將大寫字母轉換為對應的小寫字母,只需將ascii碼加上32就可以了。填空3:

指標p指向字串tt,通過p自加1來移動指標,訪問字串中的所有字元。

2. 改錯題

下列給定程式中函式fun()的功能是:從低位開始取出長整型變數s中奇數字上的數,依次構成乙個新數放在t中。例如,當s中的數為4576235時,t中的數為4725。

請改正程式中的錯誤,使它能得到正確結果。

注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。

試題程式:

#include<>

#include <>

found

int fun(long s,long *t)

}main()

答案及評析:

(1)錯誤:int fun(long s,long *t)

正確:void fun(long s,long *t)

(2)錯誤:s=s%100;

正確:s=s/100;

【解析】錯誤1:函式由指標來完成引數的傳遞,所以沒有返回值,應定義函式的型別為void。

錯誤2:此處要注意特殊運算符號"%"--取餘和"/"--整除的區別。將乙個數整除100則可得到由其百位數以上的數組成的新數字,將乙個數整除100取餘則可得到由十位數和個位數組成的新數。

3. 程式設計題

請編寫乙個函式fun(),它的功能是:求出乙個4×m整型二維陣列中最小元素的值,並將此值返**用函式。

注意:部分源程式給出如下。

請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括號中填入所編寫的若干語句。

試題程式:

#define m 4

#include <>

fun (int a[m])

main()

計算機二級c語言上機題目整理

一.相關 核心思想 利用 運算可以捨棄低位.例如 1234 1000 捨棄後3位,得到1 1234 100 捨棄後2位,得到12 1234 10 捨棄最後1位,得到123 利用 運算可以捨棄高位.例如 1234 1000 捨棄最高的1位,得到234 1234 100 捨棄最高的2位,得到34 123...

國家計算機二級考試技巧

選擇題分析。選擇題為單選題,是客觀性試題,每道題的分值為2分,試題覆蓋面廣,一般情況下考生不可能做到對每個題目都有把握答對。這時,就需要考生學會放棄,即不確定的題目不要在上面花費太多的時間,應該在此題上做上標記,立即轉移注意力,作答其他題目。最後有空餘的時間再回過頭來仔細考慮此題。但要注意,對於那些...

全國計算機等級二級C語言上機程式設計題題型

特色 提供歷年試題,模擬試題,模擬盤,教程,專業課試題 等。資料豐富,更新快!考試交流論壇 考試吧 第乙個極力推崇人性化服務的綜合考試 服務 面向較高學歷人群,提供計算機類,外語類,學歷類,資格類,四大類考試的全套考試資訊服務.特色 極力推崇人性化服務!讓您最便捷的在最短時間內得到對您最有價值考試資...