- 相關(guān)推薦
二級c語言真題
親愛的考生們,二級 C 語言真題來襲!這不僅是一場考試的挑戰(zhàn),更是提升編程能力的機遇。真題涵蓋多種題型,全面檢驗?zāi)愕闹R掌握程度。認真作答,分析每一個問題,讓這次真題演練成為你邁向 C 語言高手之路的重要一步,加油,相信自己能出色發(fā)揮!
一、單選題 ( 本大題 10 道小題 ,每小題 1.5 分,共15 分),從下面題目給出的A、B、C、D四個可供選擇的答案中選擇一個正確答案。
1.在C語言中,下列描述正確的是:(_____)。
A.標識符只能由字母和下劃線組成。
B.標識符由任意字符組成。
C.標識符只能由字母、數(shù)字和下劃線組成。
D.標識符只能由字母組成。
2.設(shè)有變量定義:char ch; 若將小寫字母a賦給變量ch,正確的表達式是:(_____)。說明:小寫字母a的ASCII碼值是97。
A.ch=a
B.ch=97
C.ch=a
D.ch="a"
3.設(shè)有變量定義:int a=345,b=123; 則執(zhí)行語句printf("%2d-%2d",a,b);后,輸出的結(jié)果是:(_____)。
A.45-23
B.34-12
C.345-123
D.222
4.在C語言中關(guān)于函數(shù)的描述,正確的是:(_____)。
A.main函數(shù)的返回類型只能是void
B.函數(shù)可以用return返回多個值
C.任何一個函數(shù)都可以有多個函數(shù)體
D.自定義函數(shù)的形式有無參函數(shù)和有參函數(shù)
5.設(shè)有變量定義:int a=5,b=8; 則以下各個選項中,會出現(xiàn)語法錯誤的if語句是:(_____)。
A.if (a>=b) ;
B.if (a==b) a+=b;
C.if (a<=b) { a--; b++; }
D.if (a!=b) a++ else b++;
6.執(zhí)行以下代碼段后,x的結(jié)果是:(_____)。
int x=1;
while (x<=10)
x++ ;
A.9
B.10
C.11
D.有錯誤,沒有輸出結(jié)果
7.設(shè)有變量定義:int a[5]={5,4,3,2,1},*p=a;則執(zhí)行語句 p+=4;后, *p的結(jié)果是(_____)。
A.4
B.3
C.2
D.1
8.已知一結(jié)構(gòu)體類型及變量定義如下:
struct node{
int data;
struct node *next;
} *p,*s,*h;
現(xiàn)已有頭指針h指向的單鏈表如下圖所示,能實現(xiàn)s指向的結(jié)點插入到p所指結(jié)點后面的語句是:(_____)。說明:圖中虛線箭頭表示插入后改變的指針。
A.p->next=s; s->next=p;
B.s->next=p; p->next=s;
C.s->next=p->next; p->next=s;
D.p->next=s; s->next=p->next;
9.設(shè)有變量聲明:char c; 若判斷變量c是否為數(shù)字字符,下列表達式中,正確的是:(_____)。
A.(c>=0) && (c<=9)
B.(c>=0)||(c<= 9)
C.(c>=0)and (c<=9)
D.(c>=0)&&(c<= 9)
10.以下是Python語言的程序語句,下列選項中與該程序段代碼功能相同的C語言語句是:(____)。
if a>b:
x=a
else:
x=b
A.x=b,a;
B.x=a,b;
C.x=(a>b)?b:a;
D.x=(a>b)?a:b;
二、程序填空題 ( 本大題 2 道小題 ,每空 2.5 分,共20 分)。
1.程序功能:從鍵盤輸入一個整數(shù)n(設(shè)0≤n≤99999),統(tǒng)計各個位數(shù)中0的個數(shù),并求出各個位數(shù)中的最大者。
運行示例(60089包含2個0,最大的位數(shù)為9):
#include
int main(void)
{ int n, count, max=0, t;
count = ____(1)____; //填空(1)
scanf("%d",&n);
do
{ t = n%10;
if (____(2)____) //填空(2)
count = count+1;
else
if (max n = ____(3)____; //填空(3) } while (____(4)____); //填空(4) printf(" count=%d,max=%d
",count,max); return 0; } 2.程序功能:判定二維平面中的三個點能否構(gòu)成三角形。 運行示例: #include #include <____(1)____> //填空(1) struct point { float x; //橫坐標 floaty; //縱坐標 }; float length(struct point a,struct point b ) { //求兩點間距離 float len; len=sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); return____(2)____; //填空(2) } int main(void) { ____(3)____p[4]; //填空(3) int i; floatlen1,len2,len3; for(i=1;i<4;i++) { printf("輸入第%d點坐標: ",i); scanf("%f,%f",____(4)____); //填空(4) } len1=length(p[1],p[2]); len2=length(p[2],p[3]); len3=length(p[3],p[1]); if(len1+len2<=len3||len2+len3<=len1||len1+len3<=len2) printf("三點不能構(gòu)成三角形
"); else printf("三點可以構(gòu)成三角形
"); return 0; } 三、操作題 (一)程序調(diào)試題(3小題,第1、2小題各3處錯,第3小題4處錯,每改正1處得3分,共30分) 1. 程序調(diào)試題1 調(diào)試要求:下列程序包含3個錯誤,請按題中的功能要求,打開C:KSB_2_1.c,調(diào)試并修改該程序(在所修改語句后加“/*_*/”或“//_”字樣的注釋),使其運行能得到正確的結(jié)果。修改后的程序仍保存為C:KSB_2_1.c。 功能說明:BMI指數(shù)(身體質(zhì)量指數(shù))是世界公認的一種評定肥胖程度的分級方法,定義如下:BMI指數(shù)=體重÷身高2,其中體重單位為kg,身高單位為m。 參考判別標準如下: 、 偏輕:BMI<18 、 正常:18≤BMI<25 ③ 超重:25≤BMI<28 、 肥胖:BMI≥28 本程序的功能是:輸入身高和體重,計算BMI指數(shù),并根據(jù)計算結(jié)果判定體重情況 運行示例: 帶錯誤的源程序: #include intmain(void) { float weight,height; printf("請輸入身高和體重:"); scanf("%f%f",&height,&weight); BMI = weight/height*height; if (BMI<18) printf("您的體重偏輕"); else if (BMI<25) printf("您的體重正常"); else if (BMI<28) printf("您的體重超重"); else printf("您已經(jīng)屬于肥胖!!!!); printf("
"); return 0; } 2. 程序調(diào)試題2 調(diào)試要求:下列程序包含3個錯誤,請按題中的功能要求,打開C:KSB_2_2.c,調(diào)試并修改該程序(在所修改語句后加“/*_*/”或“//_”字樣的注釋),使其運行能得到正確的結(jié)果。修改后的程序仍保存為C:KSB_2_2.c。 功能說明:將字符串循環(huán)左移k位,字符串及k的值從鍵盤輸入。 例如:字符串"abcdefg",假設(shè)k=3,則循環(huán)左移3位后的字符串變?yōu)?defgabc"。 運行示例: 帶錯誤的源程序: #include intmain(void) { char a[80],b[80];//a用于存放移位前的字符串,b用于存放移位后的字符串 int i,j,k; printf("請輸入待移位的字符串:"); geta); printf("請輸入k的值:"); scanf("%d",&k); for (i=k;a[i]!=/0;i++) b[i-k] = a[i]; j = i-k; for (i=0;i b[j] = a[i]; b[j-1] =