第一篇:二級(jí)C語言上機(jī)題做法小結(jié)
二級(jí)C語言上機(jī)題做法小結(jié)
陳忠權(quán) 記
一.天空題。
1.如果是填函數(shù)的返回值,去看return返回值的類型,就是函數(shù)的返回類型。如果return找不到,就看函數(shù)的調(diào)用。
2.在for語句中,如 for(i=0;i<=_____;i++),一般填N,如果沒有N,有小n,就填小n.3.平均值的兩種求法,一種是中數(shù)除個(gè)數(shù),如s/N;一種是每個(gè)數(shù)除個(gè)數(shù)后再把值相加。如av=av+s[i]/N.4.在while語句中,下面一定會(huì)有個(gè)什么加加,否則不能進(jìn)行循環(huán)。
5.在循環(huán)結(jié)構(gòu)中注意兩級(jí)循環(huán)for語句中i與j的關(guān)系,從而定位該填什么。
6.如果是賦初值,就看你所賦的值的變量是拿去干什么,如果是用去加就賦0如果是用去乘就賦1.如果是指針的,就去題目中找一個(gè)類型相同的具有實(shí)值的變量賦給她.7.結(jié)構(gòu)體的調(diào)用如b.name和a.sno等。
8如果在題目中看到(*ss)那么后面一定是填一個(gè)數(shù)組,如(*ss)[][M]或(*ss)[M].9.注意拷貝命令的寫法。
10如果在填空題中程序與數(shù)的組合有關(guān),哪就會(huì)與10有關(guān)。是除10,還是與10求余。11.一個(gè)字符要變成相應(yīng)的整形的數(shù),就讓這個(gè)字符減去字符’0’或是48就可。
12.帶頭結(jié)點(diǎn)的寫法如p->next.13.定義文件FILE,文件名filename,打開文件fopen()閱讀文件名fread()關(guān)閉文件fclose()
14.奇數(shù)與2求余成立,偶數(shù)與2求余為0 15.插入的寫法和刪除的寫法,刪除一個(gè)東西就讓他等于0就行
二.改錯(cuò)題(在/*********found*********/下一行就是錯(cuò)誤點(diǎn))
1.只要看到(*ss)++就一定是去括號(hào)。
2.注意函數(shù)內(nèi)的變量,如果在題中使用時(shí)帶有*號(hào),那么變量定義中一定要加上*號(hào)。注意函數(shù)類型是否正確,看return。
3.看關(guān)鍵字是否寫正確,一定要是藍(lán)體的才是正確的。有可能是字母位置錯(cuò),或是大小寫不對(duì)。
4.for語句中一定是兩個(gè)分號(hào),不是逗號(hào)。
5.字符串的長(zhǎng)度比下標(biāo)大一,如果要讓她等于下標(biāo)的話要減去1.6.在if語句中大于、小于號(hào)一般互換,如果在公式中如果包含n或m就要小于等于n或m。7.等號(hào)一般在if語句中出現(xiàn)為==,不是賦值的=.8.在if或while與句中< > 號(hào)一般可互換。9.注意錯(cuò)處得0和O是否混用了。10.注意帶頭結(jié)點(diǎn)的寫法。11.%號(hào)和/號(hào)互換。
12.注意題中大小寫的錯(cuò)誤。13.注意交換的寫法.14.如n=strlen[aa] 這種寫法是錯(cuò)的,這是調(diào)用,不是定義,應(yīng)寫為n=strlen(aa)
15.注意符號(hào)使用的錯(cuò)誤。
16.看是否少分號(hào)。
17看函數(shù)的返回值是否正確,看return。18.sum一般賦初值為0.19.Scanf語句中一定要有&號(hào)。
20.函數(shù)的定義不能是fun(int x,y,z)這種寫法,應(yīng)是fun(int x,int y,int
z)21.數(shù)組的定義一般為s[M]或s[][M]在二維數(shù)組的定義中第二個(gè)方括號(hào)中一定要有一個(gè)數(shù)M或其他。
22.如果程序是把小寫變成大寫就減去32就行。
三.程序編寫題。
如果遇到的是void無返回值類型的函數(shù),就在里面填int czq=1;就行。填好之后就編譯,運(yùn)行。程序完整運(yùn)行之后,去打開考生文件夾(用記事本打開,如果記事本不能用,就用vc++6.0軟件打開),參照in文件(如果沒有in文件,哪么數(shù)據(jù)就可能在程序中,或運(yùn)行中顯示出來)修改out文件或?qū)憃ut文件。保存就可。
如果是有返回值類型的函數(shù),就在里面填return 1;就行,同樣運(yùn)行,修改或?qū)憃ut文件就行。
下面舉兩個(gè)例子;
1,。如第10題:
#include
}
main(){ char s[81];int n;
printf(“Enter a string:n”);gets(s);
printf(“Enter n : ”);scanf(“%d”,&n);
fun(s,n);
printf(“The string after deleted:n”);puts(s);
NONO();} NONO(){/* 本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/
FILE *in, *out;
int i, n;char s[81];
in = fopen(“D:k0124010001in.dat”,“r”);
out = fopen(“D:k0124010001out.dat”,“w”);
for(i = 0;i < 10;i++){
fscanf(in, “%s”, s);
fscanf(in, “%d”, &n);
fun(s,n);
fprintf(out, “%sn”, s);
}
fclose(in);
fclose(out);考試就在fun函數(shù)中填int czq=1;然后運(yùn)行結(jié)束后打開考生文件夾,in為 *******A*BC*DEF*G**** 4 *******A*BC*DEF*G**** 8 **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** 4 ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** 5 ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** 3 *****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** 2 ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** 3 ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** 4 ********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** 3 *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 2 打開out文件為;
*******A*BC*DEF*G**** *******A*BC*DEF*G**** **********LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** ******OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ********HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ**********
*****HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ******JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ************UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK***
********JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** *****JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK*****
然后參照題目要求,是使字符串的前導(dǎo)*號(hào)不能多于n個(gè),多于的就刪掉,少的就不用管。哪么in文件中不是有數(shù)字如4、8、4、5、3等這就是n的值。如第一行就是前導(dǎo)*號(hào)不能多于4個(gè),多的就刪掉。第一行該為: ****A*BC*DEF*G**** 同樣的我們把所有的改完為; ****A*BC*DEF*G****
*******A*BC*DEF*G**** ****LKJFHG****KHJ***SDFGH****KJKJ*J*K*K*J***** *****OGH*GKLJ*LKJ*LKJ*KLKJHG*DQ*LJ*KJ***** ***HJJKD***JHHKJH*DGH*TDFHG*TYRYTRIU*JGJ********** **HKHJLKH***GUHHJ*GFHJ**GJHK***GJKGK****KHKLHKJHKJ*** ***JHGDFXGGJH****JFHGFK**HKH**KJHKL***KLH*** ****UYKJDFARTQYW*****HFGUJ**KJHKJ**KJHK*** ***JKHILUHIUGCLKLKJGH*******HJGHG**KJH**JY*JH*M*HJH**** **JKH***GHJK*JHGG*GGJK*GJKG*GKJ*GH*GK*JK***** 這樣改完以后,保存就行了,40分就拿到手了。
2.如第2題;
#include
N typedef struct { char
num[10];
int
s;} STREC;int fun(STREC *a,STREC *b,int l, int h){ return 1;
}
main(){ STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85},{“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}};
STREC h[N],tt;FILE *out;
int
i,j,n,low,heigh,t;
printf(“Enter 2 integer number low & heigh : ”);
scanf(“%d%d”, &low,&heigh);
if(heigh< low){ t=heigh;heigh=low;low=t;}
n=fun(s,h,low,heigh);
printf(“The student's data between %d--%d :n”,low,heigh);
for(i=0;i printf(“%s %4dn”,h[i].num,h[i].s); printf(“n”); out = fopen(“D:k0124010001out.dat”,“w”); n=fun(s,h,80,98); fprintf(out,“%dn”,n); for(i=0;i for(j=i+1;j if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;} for(i=0;i fprintf(out,“%4dn”,h[i].s); fprintf(out,“n”); fclose(out);} 由于是有返回值的就在程序中填return 1;就同樣運(yùn)行,打開考生文件夾為; 發(fā)現(xiàn)沒有in文件,只有out文件為; 1-858993460 很顯然數(shù)據(jù)在程序中為: STREC s[N]={{“GA005”,85},{“GA003”,76},{“GA002”,69},{“GA004”,85}, {“GA001”,96},{“GA007”,72},{“GA008”,64},{“GA006”,87},{“GA015”,85},{“GA013”,94},{“GA012”,64},{“GA014”,91},{“GA011”,90},{“GA017”,64},{“GA018”,64},{“GA016”,72}};在看看題目是要我們找一個(gè)分?jǐn)?shù)段的人數(shù)返回,和輸出在這個(gè)分?jǐn)?shù)段的分?jǐn)?shù),按從小到大的輸出。那么我們可以在程序中看出為: n=fun(s,h,80,98);看出是找80到98這個(gè)分?jǐn)?shù)段的人數(shù)及分?jǐn)?shù)。 哪么從小到大的輸出在這個(gè)分?jǐn)?shù)段的分?jǐn)?shù)從什么看出了?看一下語句: if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}看到了,如果大于就交換,哪么是不是把小的放在前面了? 在看看發(fā)printf語句為: fprintf(out,“%dn”,n)一般我們要看輸出格式,如(”%4d”)格式就得注意空格換行等,那么我們可以在out文件中刪除所有東西后寫入如下: 8 85 85 85 87 90 91 94 96 我們可以看出8是這分?jǐn)?shù)段的人數(shù),其他為在這分?jǐn)?shù)段的分?jǐn)?shù)排序?qū)懛āW龅竭@里點(diǎn)擊記事本,文件、保存就行。 工作感受心得 我是體育部的部委李盟,在加入我們學(xué)校學(xué)生會(huì)體育部不久后加入前湖禮儀工作組,擔(dān)任出禮儀的工作.在我出禮儀工作的工程中,收獲很多,體會(huì)也很多 ,豐富了我在學(xué)生會(huì)的工作經(jīng)驗(yàn),同時(shí)也更加豐富了我在學(xué)生時(shí)代的人生經(jīng)驗(yàn),收獲的不只是在學(xué)生會(huì)工作的工作經(jīng)驗(yàn),也有在以后到社會(huì)上工作的經(jīng)驗(yàn).有的人認(rèn)為出禮儀的工作只是穿著西裝站在那里,筆直的站著,但其實(shí)不是那樣的.但是那樣確是我們禮儀工作人員的基本要求.我們既然是出禮儀就要有當(dāng)禮儀的樣子.表現(xiàn)出你文明禮貌的一面.首先,你的形象,便反映出你對(duì)他人的尊敬.因而你的衣著要整潔,干凈,領(lǐng)帶要打正,穿西裝的時(shí)候要穿深色的襪子,工作證要正戴在你的胸前........等等一些關(guān)于個(gè)人衣著的基本要求.接著就是要戰(zhàn)好,歡迎前來的領(lǐng)導(dǎo),老師,同學(xué),這是我們體會(huì)最深的一個(gè)過程,就好象軍訓(xùn)的時(shí)候站軍姿一樣,要筆直的站好體現(xiàn)出你的精神面貌,不可以東歪西晃,不可以有小動(dòng)作,面部表情自然.這一站少的二十,三十分鐘,多了就一兩個(gè)小時(shí),甚至有人站了六個(gè)小時(shí)一動(dòng)不動(dòng),那種痛楚是可以想象到的.這是就考驗(yàn)我們個(gè)人的定力與毅力的時(shí)候了.我們被選出來參加禮儀工作,這既是一種榮譽(yù),同時(shí)也是一份責(zé)任,甚至可以說這個(gè)時(shí)候,你不單是代表你個(gè)人,從某種程度上來說更加代表了我們學(xué)生會(huì)的工作人員的精神面貌.因此我們的堅(jiān)持是必須的更加是值得的.我們的工作不單單是只有在入場(chǎng)和撤場(chǎng)的時(shí)候站在那里歡迎大家的到來和離開,再忙完了站崗后,我們有時(shí)還要擔(dān)任維護(hù)現(xiàn)場(chǎng)秩序的職責(zé).有時(shí)后來了好多人,在會(huì)上如果你講一句,他講一句即使是在講的好的時(shí)候的喝彩也會(huì)使會(huì)場(chǎng)很亂,演講的人可能會(huì)因?yàn)樗说牟欢Y貌之處而受到影響.這時(shí)候就要我們出來維護(hù)現(xiàn)場(chǎng)的秩序,我們一定秉著公正的原則,用禮貌的方式去來維護(hù)現(xiàn)場(chǎng)的秩序,不能因?yàn)槲液驼l認(rèn)識(shí)就庇護(hù)他,也不能因?yàn)樗霞?jí)就畏懼他.有的時(shí)候有些人的反映方式會(huì)很難讓人接受,我們?nèi)匀粫?huì)禮貌的去告訴他因?yàn)槲覀兪嵌Y儀工作人員我們是學(xué)生會(huì)的工作人員,我們的目的就是為同學(xué)服務(wù).在我工作的這幾次的經(jīng)歷中,帶給我的除了汗水,充實(shí)的感覺外,更多的是工作的寶貴的經(jīng)驗(yàn)和我做事的原則.我很榮幸能夠加入這一個(gè)工作隊(duì)伍,帶給我太多太多.那些寶貴的經(jīng)驗(yàn)都將是我以后工作時(shí)寶貴財(cái)富,做事的指導(dǎo).感謝這一平臺(tái)所帶給我的一切. 班級(jí):姓名:學(xué)號(hào): 第一題 一、題目要求(11題) #include STRECfun(STREC*a, char *b){ int i; STREC str={“
第二篇:二級(jí)C語言上機(jī)題庫_南開100題
第三篇:c語言上機(jī)實(shí)習(xí)編程題