二級C語言上機(jī)題庫2_第1頁
二級C語言上機(jī)題庫2_第2頁
二級C語言上機(jī)題庫2_第3頁
二級C語言上機(jī)題庫2_第4頁
二級C語言上機(jī)題庫2_第5頁
已閱讀5頁,還剩123頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

科益題庫***************************************************

說明:本題庫是根據(jù)教育部考試中心制定修改計劃進(jìn)行修改后的計算機(jī)等級請編寫一個函數(shù)fun,它的功能是:將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)

考試二級C語言機(jī)試題庫。對于題庫的解答來自考試中心的答題系(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入

統(tǒng)。字符串"-1234",則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。函數(shù)fun中給出的語

※※※※※※※※※※※※※※※※※※※※※※※※※句僅供參考。

第01套:注意:部分源程序存在文件PROG1.C文件中。

給定程序中,函數(shù)fun的功能是:將形參n所指變量中,個位請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括

上為偶數(shù)的數(shù)去除,剩余的數(shù)按原來從高位到低位的順序組成號中填入你編寫的若干語句。

一個新的數(shù),并通過形參指針n傳回所指變量。給定源程序:

例如,輸入一個數(shù):27638496,新的數(shù):為739。#include<stdio.h>

請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,便程序#include<string.h>

longfun(char*p)

得出正確的結(jié)果。

{

注意:源程序存放在考生文件夾下的BLANKLC中。不得增行

/*以下代碼僅供參考*/

或刪行,也不得更改程序的結(jié)構(gòu)!

inti,len,t;/*len為串長,t為正負(fù)標(biāo)識?/

給定源程序:

longx=0;

#include<stdio.h>

len=strlen(p);

voidfun(unsignedlong*n)

if(p[O]=='-*)

{unsignedlongx=0,i;intt;

{t=-l;len-;p++;}

i=I;

elset=1;

while(*n)

/*以下完成數(shù)字字符串轉(zhuǎn)換為一個數(shù)字*/

/**********found**********/

returnx*t;

{t=*n%_1_;

)

/**********found**********/

main()/*主函數(shù)*/

if(t%2!=_2_)

{chars[6];

{x=x+t*i;i=i*10;}

longn;

*n=*n710;

printf("Enterastring:\n");

)

gets(s);

/**********found**********/

n=fiin(s);

*n=_3_;

)printf("%Id\n",n);

NONO();

main()

)

{unsignedlongn=-l;

NONO()

while(n>99999999lln<0)

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。

{printfCTIeaseinput(0<n<100000000):");

scanf(”%kr,&n);}*/

fun(&n);FILE*wf;

printf(M\nTheresultis:%ld\n**,n);inti;

)chars[20]:

解題思路:longn:

fp=fopen("c:\\test\\in.dat",,'r");

第一處:t是通過取模的方式來得到*n的個位數(shù)字,所以應(yīng)填:

wf=fopenC'ciWtestWout.dat"/'w");

10。

for(i=0;i<10;i++){

第二處:判斷是否是奇數(shù),所以應(yīng)填:0o

fscanf(ip."%s",s);

第三處:最后通形參n來返回新數(shù)X,所以應(yīng)填:X。n=fun(s);

***************************************************

fprintf(wf,"%ld\n'\n);

給定程序MODILC中函數(shù)fun的功能是:計算n!0}

例如,給n輸入5,則輸出120.000000。fclose(fp);

請改正程序中的錯誤,使程序能輸出正確的結(jié)果。fclose(wf);

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程}

解題思路:

序的結(jié)構(gòu)!

本題是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)。

給定源程序:

#include<stdio.h>

doublefun(intn)

※※※※※※※※※※※※※※※※※※※※※※※※※

{doubleresult=1.0;

/************found**率*********/第02套:

ifn==0給定程序中,函數(shù)fun的功能是將形參給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫

return1.0;到文本

while(n>1&&n<170)文件中,再用字符方式從此文本文件中逐個讀入并顯示在終端屏幕上。

/********4:***found************/請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正

result*=n-

確的結(jié)

returnresult;

果。

)

注意:源程序存放在考生文件夾下的BLANKLC中。

main()

{intn;不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

printfC'InputN:");給定源程序:

scanf(H%dn,&n);/include<std沁.h>

printf(',\n\n%d!=%lf\n\n**,n,fun(n));voidfun(char*s,inta,doublef)

i

/i

解題思路:/**********foun(j**********/

第一處:條件語句招寫格式錯誤,應(yīng)改為:if(n==O)。_l_fp;

第二處:語句后缺少分號。charch:

fp=fopen(''filel.txt,',"w1');

fprintf(fp,"%s%d%f\n",s,a,f);voidfun(chars[][N],char*b)

fclose(fp);(

fp=fopen(,,filel.txt","r");inti,j.n=O;

printfCAnTheresult:\n\ii");for(i=0;i<N;i++)Z*請?zhí)顚懴鄳?yīng)語句完成其功能*/

ch=fgetc(fp);

/**********found**********/)

while(!feof(_2_)){b[n]=V)';

/**********found**********/}

putchar(_3—);ch=fgetc(ip);}main()

putcharCXn*);,',

{chara[100]tw[M][N]={{'W','W;W,W'),CSVS','S'/S'M'H;'H;'HVH'});

fclose(fp):inti,j;

)printf("Thematrix:\n");

main()for(i=0;i<M;i++)

{chara[10]="Hello!";intb=12345;{for(j=0;j<N;j++)printf("%3c",w[i][j]);

doublec=98.76;printf("\n");

fun(a,b,c);}

}fun(w,a);

***************************************************printf('TheAstring:\n"):puts(a);

解題思路:printfCn'iT);

本題是考察先把給定的數(shù)據(jù)寫入到文本文件中,再從該文件讀NONO():

出并顯示在屏幕上。)

NONO()

第一處:定義文本文件類型變量,所以應(yīng)填:FILE*o

{/*請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)

第二處:判斷文件是否結(jié)束,所以應(yīng)填:fpe

據(jù),關(guān)閉文件。*/

第三處:顯示讀出的字符,所以應(yīng)填:ch。

***************************************************FILE*rf,*wf;intij,k:

chara(1001,w(M][N],b;

給定程序MODI1.C中函數(shù)fun的功能是:依次取出字符串中所

rf=fopen("c:\\test\\in.dat","r'');

有數(shù)字字符,形

wf=fopen("c:\\tes(\\out.dat","w");

成新的字符串,并取代原字符串。for(k=0;k<10:k-H-){

請改正函數(shù)ftin中指定部位的錯誤,使它能得出正確的結(jié)果。for(i=0;i<M;i++){

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序for(j=0;j<N:j++)fscanf(rf."%c",&w[i][j]);

的結(jié)構(gòu)!fscanf(rf,"%c".&b);

給定源程序:)

fun(w,a);

#include<stdio.h>

fprintf(wf,,,%s\n",a);

voidfun(char*s)

)

{皿i,j;

fclose(rf);fclose(wf);

for(i=0,j=0;s[i]!=\0';i++)

}

if(s[i]>='0,&&s[i]<=9)

/**********found**********/解題思路:

s[j]=s[i];本題是把二維數(shù)組中的字符數(shù)據(jù)按列存放到一個字符串中。

/**********found**********/1.計算存放到?維數(shù)組中的位置。

s[j]=W;2,取出二維數(shù)組中的字符存放到一維數(shù)組(已計算出的位置)中。

}參考答案:

main()

#include<s(dio.h>

{charitem[80];

#defineM3

printf("\nEnterastring:");gets(item);

#defineN4

printf("\n\nThestringis:V'%s\"\n",item);

voidfun(charchar*b)

fun(item);

(

printf("\n\nThestringofchangingis:\"%s\"\n",item);

解題思路:inti,j,n=O;

第一處:要求是取出原字符串中所有數(shù)字字符組成一個新的字for(i=0;ivN:i++)/*請?zhí)顚懴鄳?yīng)語句完成其功能*/

符串,程序中是使用變量j{

來控制新字符串的位置,所以應(yīng)改為:s|j++]=s[iLfor(j=0;j<M;j++){

第二處:置新字符串的結(jié)束符,所以應(yīng)改為:s[j]='O;b[n]=sO][i];

***************************************************n=i*M+j+1;

}

請編寫函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的

字符數(shù)據(jù),按列的)

b[nl=\0';

順序依次放到一個字符串中。

}

例如,二維數(shù)組中的數(shù)據(jù)為:

main()

WWWW,,,'',,,,,,,

{chara[100]tw[M][N]={{W,W;'W,'W'}4'SVS,S,S'h{H',H'.'H;H});

SSSS

inti,j;

HHHH

printf("Thematrix:\n");

則字符串中的內(nèi)容應(yīng)是:WSHWSHWSHofor(i=0;ivM;i++)

注意:部分源程序在文件PROG1.C中。{for(j=0;j<N;j++)printf(',%3c",w[i][j]);

請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)funprintf("\n");

的花括號中填入)

你編寫的若干語句。fun(w,a);

printf('TheAstring:\n");puts(a);

給定源程序:

printfCVVn。;

#include<stdio.h>

NONO();

#defineM3

}

#defineN4

NONOOfp=fopen("studen(.dat","rb"):

{/*請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),fread(ss,sizeof(STU),N,ip);

輸出數(shù)據(jù),關(guān)閉文件。*/fclose(fp);

FILE*rf,*wf;intij,k;for(j=0;j<N;j++)

chara[100],w[M][NJ,b;{printf("\nNo:%ldName:%-8sScores:",ss[j].sno,ss[j].name);

rf=fopen("c:\\test\\in.dat,r,"r");for(i=0;i<3;i++)printf("%6.2f",ss[j].score[ij);

wf=fopen("c:\\test\\out.dat","w");printf("\n");

for(k=0;k<10:k++){

for(i=0;i<M;i++){

for(j=0;j<N;j++)fscanf(rf,"%c",&w[i][j]);

fscanf(rf,,r%c",&b);解題思路:

}本題是考察如何從文件中讀出數(shù)據(jù),再把結(jié)構(gòu)中的數(shù)據(jù)寫入文件中。

fun(w,a);第一處:從指定的文件中讀出數(shù)據(jù),所以應(yīng)填:filename。

fprintf(wf,"%s\n",a);第二處:讀取文件fp的最后一條記錄,所以應(yīng)填:fp。

)

第三處:再把讀出的記錄,寫入文件fp指定的位置上,所以應(yīng)填:fp。

fclose(rf):fclose(wf);***************************************************

)

給定程序MOD".C中的函數(shù)Creailink的功能是創(chuàng)建帶頭結(jié)點(diǎn)的單向鏈

※※※※※※※※※※※※※※※※※※※※※※※※※

表,并

第03套:

為各結(jié)點(diǎn)數(shù)據(jù)域賦0到m-1的值。

程序通過定義學(xué)生結(jié)構(gòu)體變量,存儲了學(xué)生的學(xué)號、姓名和3

請改正函數(shù)Creatlink中指定部位的錯誤,使它能得出正確的結(jié)果。

門課的成績。所

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是

給定源程序:

重寫形參filename所

#include<stdio.h>

指文件中最后一個學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)覆蓋該學(xué)生

#include<stdlib.h>

原來的數(shù)據(jù),其它學(xué)typedefstructaa

生的數(shù)據(jù)不變。{intdata;

請?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序structaa*next;

得出正確的結(jié)}NODE;

果。NODE*Creatlink(m)

{NODE*h=NULL,*p,*s;

inti;

/**********found***********/

注意:源程序存放在考生文件夾下的BLANK1.C中。

p=(NODE)malloc(sizeof(NODE));

不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

h=p;

給定源程序:

p->next=NULL;

#include<stdio.h>fdr(i=l;i<=n;i++)

#defineN5{s=(NODE*)malloc(sizeof(NODE));

(ypedcfstructstudent{s->data=rand()%m:s->nex(=p->next;

longsno;p->next=s;p=p->next;

charname[10];}

floatscore[3];/**********found***********/

}STU;returnp;

voidfun(char"filename,STUn)}

{FILE*fp;outlink(NODE*h)

/**********found**********/{NODE*p;

fp=fopen(_1—,"rb+");p=h->next;

/**********found**********/printf("\n\nTHELIST:\n\nHEAD");

fseek(_2-lL*sizeof(STU),SEEK_END);while(p)

/**********found**********/{printf("->%d",p->data);

fwrite(&n,sizeof(STU),1,_3_);p=p->next;

fclose(fp);)

}printfCAn");

main())

,

{STUt[N]={{10001,"MaChao",91,92,77},{10002;'CaoKai\main()

75,60,88),{NODE*head;

{10003,"LiSi",85,70,78},{10004,"FangFang",90,82.87),hcad=Creatlink(8,22);

{10005JZhangSan”,95,80,88});

STUn={10006,"ZhaoSi",55,70.68),ss[N];

intij;FILE*fp;outlink(head);

fp=fopenC'siudent.dat","wb");)

fwri(e(t,sizeof(STU),N,fp);解題思路:

fclose(fp);

溫馨提示

  • 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

提交評論