2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案_第1頁
2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案_第2頁
2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案_第3頁
2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案_第4頁
2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2025年計算機等級考試二級(C語言程序設(shè)計)試卷及答案一、選擇題(每小題2分,共40分)1.以下關(guān)于C語言數(shù)據(jù)類型的描述,正確的是()A.用sizeof計算char類型長度時,結(jié)果一定為1B.浮點數(shù)類型float和double的存儲精度相同C.枚舉類型變量只能存儲枚舉列表中的整數(shù)值D.結(jié)構(gòu)體類型的成員不能是另一個結(jié)構(gòu)體類型2.若有定義inta=0x12,b=023;,則表達(dá)式(a^b)>>2的值是()A.0x05B.0x0AC.0x15D.0x2A3.設(shè)有函數(shù)調(diào)用語句fun(x,y,(a,b),d+e);,該調(diào)用語句中參數(shù)的個數(shù)是()A.3B.4C.5D.64.若有定義chars[]="abc\0def",p=s;,則執(zhí)行printf("%d",strlen(p));的輸出結(jié)果是()A.3B.4C.7D.85.以下能正確表示"x和y中至少有一個小于z"的邏輯表達(dá)式是()A.(x<z)||(y<z)B.(x<z)&&(y<z)C.!(x>=z&&y>=z)D.(x<z)?!(y>=z):(y<z)6.執(zhí)行以下程序段后,變量k的值是()intk=1;while(k++<5);A.5B.6C.4D.77.若有定義inta[3][4]={{1,2},{3,4,5},{6}};,則a[1][2]的取值是()A.0B.4C.5D.68.設(shè)有函數(shù)定義voidfun(intp){p=p+1;},執(zhí)行以下代碼后,輸出結(jié)果是()inta=5;fun(&a);printf("%d",a);A.5B.6C.7D.編譯錯誤9.以下關(guān)于指針運算的描述,錯誤的是()A.指針變量可以與整數(shù)進(jìn)行加減運算B.兩個同類型指針可以比較大小C.指針變量可以直接參與乘法運算D.指針變量可以賦值為NULL10.若要定義一個指向函數(shù)的指針變量pf,該函數(shù)接收兩個int參數(shù)并返回int類型,則正確的定義是()A.int(pf)(int,int);B.intpf(int,int);C.int(pf)(int,int);D.intpf(int,int);11.設(shè)有結(jié)構(gòu)體定義:structNode{intdata;structNodenext;};要動態(tài)分配一個該結(jié)構(gòu)體變量并讓指針p指向它,正確的語句是()A.structNodep=(structNode)malloc(sizeof(structNode));B.structNodep=malloc(sizeof(structNode));C.structNodep=(structNode)malloc(sizeof(structNode));D.structNodep=(structNode)malloc(sizeof(structNode));12.以下關(guān)于文件操作的描述,正確的是()A.fopen函數(shù)的第二個參數(shù)"w+"表示以讀/寫方式打開已存在的文件B.fgets函數(shù)讀取字符串時會自動添加結(jié)束符'\0'C.fwrite函數(shù)的第三個參數(shù)表示要寫入的每個數(shù)據(jù)項的大小D.文件使用結(jié)束后可以不調(diào)用fclose,程序結(jié)束時會自動關(guān)閉13.執(zhí)行以下程序,輸出結(jié)果是()include<stdio.h>intmain(){intx=1,y=2;switch(x){case1:switch(y){case2:printf("A");case3:printf("B");}case2:printf("C");}return0;}A.ABB.ACC.ABCD.ABC14.設(shè)有數(shù)組定義charstr[]="HelloWorld";,要將數(shù)組內(nèi)容全部置為0,以下操作正確的是()A.memset(str,0,sizeof(str));B.memset(str,0,strlen(str));C.for(inti=0;str[i];i++)str[i]=0;D.strcpy(str,"");15.以下關(guān)于預(yù)處理命令的描述,錯誤的是()A.define定義的宏可以帶參數(shù)B.include可以包含自定義的頭文件C.條件編譯命令ifdef只能判斷宏是否被定義D.預(yù)處理命令必須以分號結(jié)尾16.執(zhí)行以下程序,輸出結(jié)果是()include<stdio.h>intfun(intn){staticinta=2;a+=n;returna;}intmain(){printf("%d,",fun(1));printf("%d",fun(2));return0;}A.3,5B.3,4C.2,4D.3,317.若有定義intp[4];,則以下描述正確的是()A.p是一個指向包含4個int元素的數(shù)組的指針B.p是一個包含4個指向int類型指針的數(shù)組C.p是一個指向int類型的指針,該指針有4個元素D.定義語法錯誤18.要將十進(jìn)制數(shù)2025轉(zhuǎn)換為十六進(jìn)制表示,正確的輸出格式控制符是()A.%oB.%xC.%dD.%c19.以下能正確計算1+2+...+n的遞歸函數(shù)是()A.intsum(intn){returnn==0?0:n+sum(n-1);}B.intsum(intn){returnn+sum(n-1);}C.intsum(intn){if(n==1)return1;elsereturnsum(n+1);}D.intsum(intn){returnsum(n-1)+n;}20.執(zhí)行以下程序,當(dāng)輸入35時,輸出結(jié)果是()include<stdio.h>intmain(){inta,b;scanf("%d%d",&a,&b);while(a!=b){if(a>b)a-=b;elseb-=a;}printf("%d",a);return0;}A.1B.2C.3D.5二、程序填空題(共18分)請補充以下程序,使其實現(xiàn)計算矩陣主對角線元素之和(假設(shè)矩陣為n×n,n≥1)。include<stdio.h>defineMAX_SIZE10intmain(){intn,i,j,sum=0;intmatrix[MAX_SIZE][MAX_SIZE];printf("請輸入矩陣階數(shù)n(n≤10):");scanf("%d",&n);printf("請輸入%d×%d矩陣元素(按行輸入):\n",n,n);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",①);}}for(i=0;i<n;i++){sum+=②;}printf("主對角線元素之和為:%d\n",sum);return0;}三、程序修改題(共18分)以下程序的功能是計算斐波那契數(shù)列前m項的和(斐波那契數(shù)列定義:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2))。程序中有兩處錯誤,請找出并改正。include<stdio.h>intmain(){intm,i;floatsum=0;intf1=1,f2=1,f3;printf("請輸入項數(shù)m(m≥2):");scanf("%d",&m);if(m<2){printf("輸入錯誤!\n");return1;}sum=f1+f2;for(i=3;i<m;i++){f3=f1+f2;sum+=f3;f1=f2;f2=f3;}printf("前%d項和為:%d\n",m,sum);return0;}四、程序設(shè)計題(共24分)編寫一個C語言程序,實現(xiàn)以下功能:1.從鍵盤輸入5個學(xué)生的信息(每個學(xué)生信息包括:學(xué)號(長整型)、姓名(不超過20個字符)、數(shù)學(xué)成績(整型)、英語成績(整型));2.計算每個學(xué)生的總分(數(shù)學(xué)+英語);3.按總分從高到低對學(xué)生信息進(jìn)行排序;4.將排序后的學(xué)生信息(包括學(xué)號、姓名、數(shù)學(xué)、英語、總分)寫入當(dāng)前目錄下的"students.txt"文件中。要求:使用結(jié)構(gòu)體存儲學(xué)生信息,排序時若總分相同則按學(xué)號升序排列。答案一、選擇題1.C2.A3.B4.A5.C6.B7.C8.B9.C10.A11.C12.B13.B14.A15.D16.A17.B18.B19.A20.A二、程序填空題①&matrix[i][j]②matrix[i][i]三、程序修改題錯誤1:循環(huán)條件錯誤,應(yīng)改為i<=m(原i<m導(dǎo)致當(dāng)m=3時只計算到第2項)錯誤2:sum的輸出格式錯誤,sum是float類型,應(yīng)使用%f(原用%d)修改后代碼:include<stdio.h>intmain(){intm,i;floatsum=0;intf1=1,f2=1,f3;printf("請輸入項數(shù)m(m≥2):");scanf("%d",&m);if(m<2){printf("輸入錯誤!\n");return1;}sum=f1+f2;for(i=3;i<=m;i++){//修改1:i<=mf3=f1+f2;sum+=f3;f1=f2;f2=f3;}printf("前%d項和為:%f\n",m,sum);//修改2:%freturn0;}四、程序設(shè)計題include<stdio.h>include<string.h>defineN5defineNAME_LEN21typedefstruct{longid;charname[NAME_LEN];intmath;intenglish;inttotal;}Student;//交換兩個學(xué)生信息voidswap(Studenta,Studentb){Studenttemp=a;a=b;b=temp;}//排序函數(shù):總分降序,總分相同則學(xué)號升序voidsortStudents(Studentstu[],intn){for(inti=0;i<n-1;i++){for(intj=0;j<n-i-1;j++){if(stu[j].total<stu[j+1].total){swap(&stu[j],&stu[j+1]);}elseif(stu[j].total==stu[j+1].total){if(stu[j].id>stu[j+1].id){swap(&stu[j],&stu[j+1]);}}}}}intmain(){Studentstudents[N];//輸入學(xué)生信息printf("請輸入%d個學(xué)生信息:\n",N);for(inti=0;i<N;i++){printf("第%d個學(xué)生:\n",i+1);printf("學(xué)號:");scanf("%ld",&students[i].id);printf("姓名:");scanf("%s",students[i].name);printf("數(shù)學(xué)成績:");scanf("%d",&students[i].math);printf("英語成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論