2012年3月全國計算機等級考試二級C語言上機題庫(20~30套)
考試頻道小編收集整理計算機等級考試資料,免費提供給大家交流參考。
第二十一套
1. 程序填空
給定程序中,函數fun的功能是:在形參ss所指字符串數組中,將所有串長超過k的字符串右邊的字符刪去,只保留左邊的k個字符。ss所指字符串數組中共有N個字符串,且串小於M。
第一處 void fun(char (*ss)[M], int k)
第二處 while (i 第三處 ss[i][k]=0;i++;} 2. 程序修改 給定程序MODI1.C中函數fun的功能是:根據以下公式求π值,並作為函數值返回。例如,給指定精度的變量eps輸入0.0005時,應當輸出Pi=30140578.。 /**found**/ t=1; /**found**/ return(2*s); 3. 程序設計 假定輸入字符串中只包含字母和*號。請編寫函數fun,它的功能是:將字符串的前導*號不得多於n個;若多於n個,則刪除多餘的*號;若少於或等於n個,則什麼也不做,字符串中間和尾部的*號不刪除。函數fun中給出的語句僅供參考。 void fun(char*a,int n) { int i=0,k=0; while(a[k]= =’*’)k++; if(k>n) { i=n;j=k; for(;a[j]!=0;j++) a[i++]=a[j]; a[i]=0; }} 第二十二套 1. 程序填空 給定程序中,函數fun的功能是:a所指4×3矩陣中第k行的元素與第0行元素交換。例如:有下列矩陣 1 2 3 4 5 6 7 8 9 10 11 12 若k為2,程序執行結果為 7 8 9 4 5 6 1 2 3 10 11 12 第一處 void fun(int (*a)[N],int k) 第二處 for(i=0;i 第三處 a[0][i]=a[k][i]; 2. 程序修改 給定程序MODI1.C中函數fun的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符串按ASCII碼升序排序後輸出。例如,若輸入edcba,則應輸出:abcde。 /**found**/ for(i=strlen(t)-1;i;i--) /**found**/ if(t[j]>t[j+1]) 3. 程序設計 請編寫函數fun,函數的功能是:將ss所指字符串中所有下標為奇數位置上的字母轉換為大寫(若該位置上不是字母,則不轉換)。 void fun(char *ss) { char *p=ss; inr i=0; while(*p){ if((i%2)&&(*p>=’a’ &&*p<=’z’)) *p-=32; p++; i++; } } 第二十三套 1. 程序填空 給定程序的功能是:調用函數fun將指定源文件中的內容複製到指定的目標文件中,複製成功時函數的返回值是1,失敗是返回值是0.在複製的過程中,把複製的內容輸出到終端屏幕。主函數源文件名放在變量sfname中,目標文件放在變量tfname中。 第一處 if((fs=fopen(source,”r”))==NULL) 第二處 while(!feof(fs)) 第三處 fputc(ch,ft); 2. 程序修改 給定程序MODI1.C中函數fun的功能是:將長整型中每一位上為偶數的數依次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。 /**found**/ if(d%2==0) /**found**/ s/=10; 3. 程序設計 函數fun的功能是:將兩位正整數a、b合併形成一個新的整數放在c中。合併的方式是:將a中的十位和個位依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的百位和個位上。 void fun(int a,int b,long*c) { *c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10); 第二十四套 1. 程序填空 程序通過定義學生結構體變量,存儲了學生的學號、姓名和三門課的成績。函數fun的功能是將形參a所指結構體變量中的數據賦給函數中的結構體變量b,並修改b中的`學號和姓名,最後輸出修改後的數據。 第一處 b=a; 第二處 strcpy(,”LiSi”) 第三處 for (i=0;i<3;i++) printf(“%6.2f”,e[i]); 2. 程序修改 給定程序MODI1.C中函數fun的功能是:從s所指字符串中刪除所有小寫字母c。請改正程序中的錯誤,使它能計算出正確的結果。 /**found**/ s[j++]=s[i]; /**found**/ s[j]=’