二級C上機試題_第1頁
二級C上機試題_第2頁
二級C上機試題_第3頁
二級C上機試題_第4頁
二級C上機試題_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一套上機考試試題

一、程序填空題。

給定程序的功能是調(diào)用fun函數(shù)建立班級通訊錄。程

序中記錄每位學(xué)生的編號、姓名和電話號碼。班級的

人數(shù)和學(xué)生的信息從鍵盤讀入,每個人的信息作為一

個數(shù)據(jù)塊寫到名為myfile5.dat的二進制文件中。

#include<stdio.h>

#include<stdlib.h>

#defineN5

typedefstruct

(

intnum;

charname[10];

chartel[10];

)

STYPE;

voidcheck();

intfun(STYPE*std)

FILE*fp;

inti;

if((fp=fopen(,,myfile5.dat,,,uwebu))==NULL)

return(O);

printf(n\nOutputdatatofile!\nu);

for(i=0;i<N;i++)

fwrite(&std[i],sizeof(STYPE),l,fp);

fclose(fp);

return(l);

}

main()

(

STYPE

s[10]={{l,,'aaaaa',,,,lllllln),{l,"bbbbb,,,n222222,,},{l,,'cccccH,

”333333”},{lJddddd”J444444”},{l,"eeeee”J555555”}};

intk;

k=fun(s);

if(k==l)

{

printf(HSucceed!H);check();}

else

printf(nFail!n);

}

voidcheck()

FILE*fp;

inti;

STYPEs[10];

if((fp=fopen(',myfile5.dat,,,,,rbH))==NULL)

{printf(HFail!!\n,,);exit(O);)

printf(H\nReadfileandoutputtoscreenin'*);

printf(n\nnumnametel\nu);

for(i=0;i<N;i++)

{

fread(&s[i],sizeof(STYPE),l,fp);

printf(n%6d%s%s\n",s[i].num,s[i].name,s[i].tel);

}

fclose(fp);}

二、程序修改題。

給定程序MODI1.C中函數(shù)的功能是:先將字符串s中的字符按

正序存放在t串中,然后把s中的字符按逆序連接到t串的后面。

#include<stdio.h>

#include<string.h>

voidfun(char*s,char*t)

inti,sl;

sl=strlen(s);

for(i=0;i<=sl;i++)

t[i]=s[i];

for(i=0;i<sl;i++)

t[sl+i]=s[sl-i-l];

t[2*sl]=,\0';

}

main()

(

chars[100],t[100];

printf(H\nPleaseenterstrings:n);

scanf(H%sH,s);

fun(s,t);

printf(nTheresultis:%s\nH,t);}

三、程序設(shè)計題。

函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a、b合

并形成一個整數(shù)放在c中,合并的方式是:將a數(shù)的

十位和個位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的

十位和個位數(shù)依次放在c數(shù)的百位上和個位上。

#include<stdio.h>

voidfun(inta,intb,long*c)

*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);

}

main()

(

inta,b;longc;

voidNONO();

printf(HInputa,b:H);

scanf(H%d,%dH,&a,&b);

fun(a,b,&c);

printf(nTheresultis:%d\n'\c);

NONO();

}

voidNONO()

(

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen(,,in.dat,,,nrn);

wf=fopen(,,out.datn,nwn);

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

fscanf(rfJ%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf,na=%d,b=%d,c=%ld\nH,a,b,c);

fclose(rf);

fclose(wf);

}

第二套上機考試試題

一、程序填空題

給定程序的功能是:從鍵盤輸入若干行文本(每行不超過80個

字符),寫到文件myfile4.txt中,用-1作為字符串輸入結(jié)束的標志。

然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫分別由自義函

數(shù)ReadText和WriteText實現(xiàn)。

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

voidWriteText(FILE*);

voidReadText(FILE*);

main()

(

FILE*fp;

if<(fp=fopen(Hmyfile4.txt,,,,,wn))==NULL)

printf("openfail!!\nH);

exit(0);}

WriteText(fp);

fclose(fp);

if<(fp=fopen(Hmyfile4.txt,,,,,r',))=NULL)

{

printf(Hopenfail!!\nn);

exit(O);}

ReadText(fp);

fclose(fp);

}

voidWriteText(FILE*fw)

(

charstr[81];

printf(,'\nEnterstringwith-1toend:\nH);

gets(str);

while(strcmp(str,H-1H)!=0){

fputs(str,fw);

fputs("\nH,fw);

gets(str);

}

}

voidReadText(FILE*fr)

charstr[81];

printf(n\nReadfileandoutputtoscreen:\nu);

fgets(str,81,fr);

while(!feof(fr)){

printf(,,%s,,,str);

fgets(str,81,fr);

)

}

二、程序修改題

給定程序MODILC中函數(shù)fun的功能是:從低位開始取出長整型

變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中.高位仍在高

位,低仍在低位.

#include<stdio.h>

voidfun(longs,long*t)

(

longsl=10;

*t=s%10;

while(s>0)

(

s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main()

(

longs,t;

printf(*'\npleaseenters:n);

scanf(H%ldH,&s);

fun(s,&t);

printf(*'Theresultis:%ld\n'*,t);

}

三、程序設(shè)計題

函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成

一個整數(shù)放在c中。

合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的個位和

百位上,b數(shù)的十和個位數(shù)依次放在c數(shù)的千位和十位上。

#include<stdio.h>

voidfun(inta,intb,long*c)

|

*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);

)

main()

inta,b;longc;

voidNONO();

printf(nInputa,bn);

scanf(n%d,%dM,&a,&b);

fun(a,b,&c);

printf(nTheresultis:%ld\nu,c);

NONO();

}

voidNONO();

|

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen(uin.datn,,,rn);

wf=fopen(nout.datn,nwH);

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

fscanf(rf,u%d,%du,&a,&b);

fun(a,b,&c);

fprintf(wf,na=%d,b=%d,c=%ld\nn,a,b,c);

)

fclose(rf);

fclose(wf);

}

第三套上機考試試題

一、程序設(shè)計題

給定程序中,函數(shù)fun的功能是:將自然數(shù)碼相機1——10以及

它們的平方根寫到名為myfile3.txt的文本中,然后再順序讀出顯

示在屏幕上。

#include<math.h>

#include<stdio.h>

intfun(char*fname)

{FILE*fp;inti,n;floatx;

if((fp=fopen(fname,Hwn))=NULL)

return0;

for(i=l;i<=10;i++)

fprintf(fp,n%d%f\nH,i,sqrt((double)i));

printf('^\nSucceed!!\n'^);

fclose(fp);

printf("\nThedatainfile:\nn);

if((fp=fopen(fname,"ru))=NULL)

return0;

fscanf(fp,n%d%fH,&n,&x);

while(!feof(fp))

{printf(u%d%f\n",n,x);

fscanf(fp,u%d%fH,&n,&x);

}

fclose(fp);

return1;

}

main()

(

charfname[]=nmyfile3.txtn;

fun(fname);

}

二、程序修改題

給定程序MODIloC中fun的函數(shù)的功能是:將n個無序整數(shù)

從小到大排序。

#include<stdio.h>

#include<stdlib.h>

fun(intn,int*a)

(

int

for(j=0;j<n-l;j++)

{P=i;

for(j=j+l;i<n;i++)

if(p!=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

}

putarr(intn,int*z)

(

inti;

for(i=l;i<=n;i++,z++)

{printf(H%4d",*z);

if(!(i%10))printf(H\nH);

}printf(n\nH);

}

main()

(

intaa[20]={9,3,0,4,l,2,5,6,8,10,7),n=ll;

printf(,'\n\nBeforesorting%dnumber:\n",n);

putarr(n,aa);

printf(H\nAftersorting%dnumbers:\n",n);

putarr(n,aa);

}

三、程序設(shè)計題

函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個

整數(shù)放在c中。

合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的個位和百位

上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。

#include<stdio.h>

voidfun(inta,intb,long*c)

(

*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;

}

main()

inta,intb;longc;

voidNONO();

printf("Inputa,b:H);

scanf(n%d,%dH,&a,&b);

fun(a,b,&c);

printf(nTheresultis:%ld\nH,c);

NONO();

}

voidNONOQ

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen(,,in.dat',,"rn);

wf=fopen(nout.datn,nwn);

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

fscanf(rf,u%d,%d",&a,&b);

fun(a,b,&c);

fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);

}

fclose(rf);

fclose(wf);

}

第四套上機考試試題

一、程序填空題

給定程序的功能是:調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到

指定的目標文件中,復(fù)制成功時函數(shù)返回值為1,失敗時返回值

為0。在復(fù)制的過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)

中源文件名放在變量sfname中,目標文件名放在變量tfname

中。

#include<stdio.h>

#include<stdlib.h>

intfun(char*source,char*target)

{FILE*fs,*ft;charch;

if((fs=fopen(source,nr"))==NULL)

return0;

if((fs=fopen(target,**w**))==NULL)

return0;

printf(*'\nThedatainfile:\nH);

ch=fgetc(fs);

while(!feof(fs))

{putchar(ch);

fputc(ch,ft);

ch=fgetc(fs);

}

fclose(fs);fclose(ft);

printf(*'\n\n");

return1;

}

main()

{charsfname[20]=nmyfileln,

tfname[20]=Hmyfileu;

FILE*myf;inti;charc;

myf=fopen(sfname,,,wH);

printf(*'\nTheoriginaldata:\n");

for(i=l;i<30;i++)

{c=,A,+rand()%25;

fprintf(myf,n%cn,c);

printf(,,%cH,c);}

fclose(myf);

printf(*'\n\n");

if(fun(sfname,tfname))

printf(HSucceed!);

elseprintf(,,Fail!H);

}

二、程序修改題

給定程序MODIloC中函數(shù)fun的功能是:將長整型數(shù)s中每

一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在

高位,低位仍在低位。

例如:當(dāng)s中的數(shù)為:87653142時,t中的數(shù)為:8642。

#include<stdio.h>

voidfun(longs,long*t)

(

intd;

longsl=l;

*t=0;

while(s>0)

{d=s%10;

if(d%2==0)

{*t=d*sl+*t;

sl*=10;

}

s/10=10;

}

)

main()

(

longs,t;

printf(H\nPleaseenters:n);

scanf(u%ldH,&s);

fun(s,&t);

printf(nTheresultis:%ld\nH,t);

)

三、程序設(shè)計題

函數(shù)fun的功能是:將兩個兩位數(shù)的正整數(shù)a,b合并形成一個

整數(shù)放在c中。

合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)十位和千位上,

b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。

#include<stdio.h>

voidfun(inta,intb,long*c)

*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);

}

main()

(

inta,b;longc;

voidNONO();

printf(nInputa,b:n);

scanf(n%d,%dH,&a,&b);

fun(a,b,&c);

printf(nTheresultis:%ld\n'*,c);

NONO();

)

voidNONO()

(

FILE

inti,a,b;longc;

rf=fopen(nint.dat,,,,,ru);

wf=fopen(nout.dat",nwH);

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

fscanf(rf,u%d,%d",&a,&b);

fun(a,b,&c);

fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);

}

fclose(rf);

fclose(wf);

}

第五套上機考試試

一、程序設(shè)計題

給定程序中已建立一個帶有頭結(jié)點的單向鏈表,鏈表中的各結(jié)點

按結(jié)點數(shù)據(jù)遞增有序鏈接。函數(shù)fun的功能是:把形參x的值放

入一個新結(jié)點并插入到鏈表中,插入后數(shù)據(jù)域的值仍保持遞增有

序。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

JSLIST;

voidfun(SLIST*h,intx)

{SLIST*p,*q,*s;

s=(SLIST*)malloc(sizeof(SLIST));

s->data=x;

q=h;

p=h->next;

while(p!=NULL&&x>p->data){

q=p;

p=p->next;

)

s->next=p;

q->next=s;

}

SLIST*creatlist(int*a)

(

SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

{

q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];p->next=q;p=q;

}

p->next=O;

returnh;

}

voidoutlist(SLIST*h)

SLIST*p;

p=h->next;

if(p==NULL)printf(H\nThelistisNULL!\nH);

else

{

printf("\nHead");

do{printf(H->%dn,p->data);

p=p->next;}while(p!=NULL);

printf(,,->End\n");

}

}

main()

(

SLIST*head;intx;

inta[N]={ll,12,15,18,19,22,25,29);

head=creatlist(a);

printf(H\nThelistbeforeinserting:\n");

outlist(head);

printf(,'\nEnteranumber:**);

scanf('*%dH,&x);

fun(head,x);

printf(n\nThelistafterinserting:\nH);

outlist(head);

}

二、程序修改題

給定程序MODIloC中函數(shù)fun的功能是:計算正整數(shù)fun的

各位上的數(shù)字之和。

#include<stdio.h>

longfun(longnum)

(

longk=l;

do

(

k*=num%10;

num/=10;

}while(num);

return(k);

}

main()

(

longn;

printf(n\nPleaseenteranumber:11);

scanf(H%ldH,&n);

printf(n\n%ld\nn,fun(n));

}

三、程序設(shè)計題

請編寫一個函數(shù)fun,它的功能是:計算n門課程的平均分,計

算結(jié)果作為函數(shù)值返回。例如:90o5,72,80,61o5,55

值為:71。80

#include<stdio.h>

floatfun(float*a,intn)

(

floatave=0.0;

inti;

for(i=0;i<n;i++)

ave=ave+a[i];

ave=ave/n;

returnave;

}

main()

floatscore[30]={90.5,72,80,61.5,55),ave;

voidNONO();

ave=fun(score,5);

prmtf(H\nAveragescoreis:%5.2f\nn,ave);

NONO();

}

voidNONO();

(

FLIE*fpm,*wf;

intij;

floatave,score[5];

fp=fopen(,'in.dat,,,,,ru);

wf=fopen(nout.datn,Hwn);

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

{

for(j=0;j<5;j++)

fscanf(fp,u%f,n,&score[j]);

ave=fun(score,5);

fprintf(wf,n%5.2f\n",ave);

}

fclose(fp);

fclose(wf);

}

第六套上機考試試題

一、程序填空題

給定程序中已建立一個帶有頭結(jié)點的單向鏈表,在main函

數(shù)中將多次調(diào)用fun函數(shù),每調(diào)用一次fun函數(shù),輸出鏈表

尾部結(jié)點中的數(shù)據(jù),并釋放該結(jié)點,使鏈表縮短。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

}SLIST;

voidfun(SLIST*p)

{SLIST*t,*s;

t=p->next;s=p;

while(t->next!=NULL)

(

s=t;

t=t->next;

)

printf(H%dn,t->data);;

s->next=NULL;

free(t);

SLIST*creatlist(int*a)

SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

{

q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];q->next=q;p=q;

)

p->next=O;

returnh;

)

voidoutlist(SLIST*h)

|

SLIST*p;

p=h->next;

if(p==NULL)printf(n\nThelistisNULL!\n');

else

|

printf("\nHead");

do{printf(H->%d",p->data);p=p->next;}

while(p!=NULL);

prmtf(H->End\nn);

)

)

main()

SLIST*head;

inta[N]={11,12,15,18,19,22,25,29);

head=creatlist(a);

printf(n\nOutputfromtail:\nn);

while(head->next!=NULL){

fun(head);

printf(n\n\nn);

printf(H\nOutputfromheadagain:\nH);outlist(head);

二、程序修改題

給定程序MODIloC中函數(shù)fun的功能是:將字符串中的

字符按逆序輸出,但不改變字符串中的內(nèi)容。例如:若字符

串為:abed,則輸出:debao

#include<stdio.h>

fun(char*a)

if(*a)

{

fun(a+l);

prmtf(H%cM,*a);

)

)

main()

(

chars[10]=nabcdH;

printf("處理前字符串二%s\n處理后字符串二”,sH);

fun(s);prmtf(H\nn);

)

三、請編寫一個函數(shù)fun,它的功能是:比較兩個字符串的長度,

(不得調(diào)用C語言的求字符串長度的函數(shù)),函數(shù)返回較長的

字符串。若兩個字符串長度相同,則返回第一個字符串。

#include<stdio.h>

charfun(char*s,char*t)

inti;

char*p=s,*q=t;

intn=O,m=O;

while(*p)

(

n++;

P++;

}

while(*q)

{

m++;

q++;

)

if(n>=m)

P=s;

else

P=t;

returnp;

}

main()

chara[20],b[20];

voidNONO();

printf("Input1thstring:n);

gets(a);

printf(nInput2thstring:n);

gets(b);

printf("%s\nH,fun(a,b));

NONO();

voidNONOQ

FILE*fp,*wf;

inti;

chara[20],b[20];

fp=fopen(',m.datn,,,ru);

wf=fopen(,,out.dat,,,,,wH);

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

fscanf(fp,**%s%sn,a,b);

fprintf(wf,n%s\nH,fun(a,b));

)

fclose(fp);

fclose(wf);

}

第七套上機考試試題

一、程序填空題

給定程序中已建立一個帶有頭結(jié)點的單向鏈表,鏈表中的各結(jié)點

按數(shù)據(jù)域遞增的序鏈接。函數(shù)fun的功能是:刪除鏈表中數(shù)據(jù)域

值相同的結(jié)點,使之只保留一個。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

JSLIST;

voidfun(SLIST*h)

(

SLIST*p,*q;

p=h->next;

if(p!=NULL)

{

q=p->next;

while(q!=NULL)

(

if(p->data==q->data)

{p->next=q->next;

free(q);

q=p->next;

}

else

{p=q;

q=q->next;

}

}

}

}

SLIST*creatlist(int*a)

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

(

q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];p->next=q;p=q;

}

p->next=O;

returnh;

}

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printf(H\nThelistisNULL!\nH);

printf("\nHeadH);

do{printf(n->%dH,p->data);

p=p->next;}while(p!=NULL);

printf(n->End\nH);

main()

SLIST*head;inta[N]={l,2,2,3,4,4,4,5};

head=creatlist(a);

printf("\nThelistbeforedeleting:\nH);outlist(head);

fun(head);

printf("\nThelistafterdeleting:\n'*);outlist(head);

}

二、程序修改題

給定程序中MOD"。C中函數(shù)fun的功能是:用選擇法對數(shù)組

中的n個元素按從小到大的順序進行排列。

#include<stdio.h>

#defineN20

voidfun(inta[],intn)

{int

for(j=0;j<n-l;j++){

P=j;

for(i=j;i<n;i++)

if(a[i]<a[p])

P=i;

t=a[p];a[p]=a[j];a[j]=t;

}

}

main()

(

inta[N]={9,6,8,3,-l},i,m=5;

printf("排序前的數(shù)據(jù):");

for(i=0;i<m;i++)printf(n%d",a[i]);printf(n\nn);

fun(a,m);

printf("排序后的數(shù)據(jù):");

for(i=0;i<m;i++)printf(,,%d",a[i]);printf(,,\nH);

}

三、程序設(shè)計題

請編寫一個函數(shù)fun,它的功能是:求出1至m之間(含m)

能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)

的個數(shù)。

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

(

intiJ=0;*n=0;

for(i=l;i<=m;i++)

if(i%7==0lli%ll==0)

(

j++;

)

*n=j;

)

main()

(

intaa[M],n,k;

voidNONO();

fun(50,aa,&n);

for(k=0;k<n;k++)

if((k+l)%20==0)printf(n\nH);

elseprintf(H%4dH,aa[k]);

printf(n\nH);

NONO();

}

voidNONO()

(

FILE*fp,*wf;

inti,n,j,k,aa[M],sum;

fp=fopen(,'in.dat,,,,,ru);

wf=fopen(nout.datn,Hwn);

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

fscanf(fp,H%dH,&j);

fun(j,aa,&n);

sum=0;

for(k=0;k<n;k++)

sum+=aa[k];

fprintf(wf,H%d\n",sum);

}

fclose(fp);

fclose(wf);

)

第八套上機考試試題

一、程序填空題

給定程序中,fun的功能是:在帶有頭結(jié)點的單向鏈表中,查找

數(shù)據(jù)域中值為ch的結(jié)點。找到后通過函數(shù)值返回該結(jié)點中所處

的順序號:若不存在值為ch的點,函數(shù)返回0值。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

JSLIST;

SLIST*creatlist(char*);

voidoutlist(SLIST*);

intfun(SLIST*h,charch)

{SLIST*p;intn=0;

p=p->next;

while(p!=NULL)

{n++;

if(p->data==ch)returnn;

elsep=p->next;

}

return0;

}

main()

(

SLIST*head;intk;charch;

char

head=creatlist(a);

outlist(head);

printf(nEnteraletter:1*);

scanf(H%cH,&ch);

k=fun(ch);

if(k==0)printf("\nNotfound!\nH);

elseprintf(uThesequencenumberis:%d\n",k);

)

SLIST*h,*p,*q;inti;

{h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

(

q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];p->next=q;p=q;

}

p->next=O;

returnh;

}

voidoutlist(SLIST*p)

(

SLIST*p;

p=h->next;

if(p==NULL)printf(n\nThelistisNULL!\nH);

else

(

printf(H\nHead");

do

{printf(n->%cu,p->data);

p=p->next;}

while(p!=NULL);

printf(,,->End\n");

}

}

二、程序修改題

給定程序MOD"。C中函數(shù)fun的功能是:刪除p所指字符串

中的所有空白字符(包括制表符、回車符及換行符),輸入字符

串中時用'#'結(jié)束輸入。

#include<string.h>

#include<stdio.h>

#include<ctype.h>

fun(char*p)

(

inti,t;charc[80];

for(i=0,t=0;p[i];i++)

if(!isspace(*(p+i)))c[t++]=p[i];

c[t]=,\O,;

strcpy(p,c);

}

main()

(

charc,s[80];

inti=0;

printf(*'Inputastring:**);

c=getchar();

while(c!=,#*)

(

s[i]=c;i++;c=getchar();

}

s[i]=,\O,;

fun(s);

puts(s);

}

三、程序設(shè)計題

請編寫一個函數(shù)fun,它的功能是:將ss所指字符串中所有下標

為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)

換),例如:若輸入“abc4EFg“,則應(yīng)輸出“aBc4EFg

#include<stdio.h>

#include<string.h>

voidfun(char*ss)

(

inti;

for(i=l;i<strlen(ss);i+=2){

if(ss[i]>=,a,&&ss[i]<=,z,)ss[i]-=32;}

)

main()

(

chartt[81];

voidNONO();

printf(*'\nPleaseenteranstringwithin80

characters:\nu);gets(tt);

printf(''\n\nAfterchanging,thestring\n\n%s\n,,,tt);

fun(tt);

printf(n\nbecomes\n\n%s\n\n,tt);

NONO();

}

voidNONO()

(

FILE*fp,*wf;

chartt[81];

inti;

fp=fopen(nin.dat,,,,,rH);

wf=fopen("out.dat"Jw");

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

(

fscanf(fp,H%sn,tt);

fun(tt);

fprintf(wf,n%s\nH,tt);

}

fclose(fp);

fclose(wf);

}

第九套上機考試試題

一、程序填空題

給定程度中,函數(shù)fun的功能是:統(tǒng)計出帶有頭結(jié)點的單向鏈表

中結(jié)點的個數(shù),存放在形參n所指的存儲單元中。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

JSLIST;

SLIST*creatlist(int*a);

voidoutlist(SLIST*);

voidfun(SLIST*h,int*n)

(

SLIST*p;

*n=0;

p=h->next;

while(p)

(

(*n)++;

p=p->next;

}

)

main()

SLIST*head;

inta[N]={12,87,45,32,91,16,20,48),num;

head=creatlist(a);

fun(head,&num);

printf(**\nnumber=%d\n1*,num);

}

SLIST*creatlist(inta[])

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

(

q=(SLIST*)malloc(sizeof(SLIST));

q->data=a[i];p->next=q;

p=q;

}

p->next=O;

returnh;

)

voidoutlist(SLIST*h)

SLIST*p;

p=h->next;

if(p==NULL)printf(HThelistisNULL!\nH);

else

{

printf(n\nHead,*);

do

{printf(H->%dH,p->data);

p=p->next;}

while(p!=NULL);

printf(,,->End\nu);

}

}

二、程序修改題

給定程序MODIloC中函數(shù)fun的功能是:求出s所指字符串

中最后一次出現(xiàn)的t所指子字符串的地址,通過函數(shù)值返回,在

主函數(shù)中輸出從此地址開始的字符串。

例如:當(dāng)字符串中的內(nèi)容為:“abcdefabcdx”,t中的內(nèi)容為:“ab”

時,輸出結(jié)果是:abcdxo

#include<stdio.h>

#include<string.h>

char*fun(char*s,char*t)

char*p,*r,*a;

a=NULL;

while(*s)

{p=s;r=t;

while(*r)

if(*r==*p)

{r++;p++;}

elsebreak;

if(*r==*\O')a=s;

s++;

}

returna;

)

main()

{chars[100],t[100],*p;

printf(*'\nPleaseenterstrings:H);

scanf(u%sn,s);

printf(*'\nPleaseentersubstringt:H);

scanf(n%sn,t);

p=fun(s,t);

if(p)printf(H\nTheresultis:%s\n',,p);

elseprintf(**\nNotfound!\nK);

}

三、程序設(shè)計題

函數(shù)fun的功能是:將s所指字符串中除了下標為偶數(shù)、同時

ASCII值為偶數(shù)的字符外,其余的全部刪除;其中剩余字符所形

成一個新串放在t所指的數(shù)組中。

#include<stdio.h>

#include<string.h>

charfun(char*s,chart[])

(

intiJ=0;

for(i=0;i<strlen(s);i+=2)

if(s[i]%2==0)t[j++]=s[i];

tU]=,\ot;

}

main()

(

chars[100],t[100];

voidNONO();

printf(H\nPleaseenterstringS:H);scanf(H%sH,s);

fun(s,t);

prmtf(H\nTheresultis:%s\n'*,t);

NONO();

}

voidNONO()

(

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen(nin.datn,nrH);

wf=fopen(nout.datn,Hwn);

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

{

fscanf(rf,n%sn,s);

fun(s,t);

fprintf(wf,n%s\nH,t);

)

fclose(rf);

fclose(wf);

}

第十套上機考試試題

一、程序填空題

給定程序中,函數(shù)fun的功能是:計算出帶有頭結(jié)點的單向鏈表

中各結(jié)點數(shù)據(jù)域中的值之和作為函數(shù)值返回。

#include<stdio.h>

#include<stdlib.h>

#defineN8

typedefstructlist

(

intdata;

structlist*next;

JSLIST;

SLIST*creatlist(int*);

voidoutlist(SLIST*);

intfun(SLIST*h)

(

SLIST*p;ints=0;

p=h->next;

while(p)

(

s+=p->data;

p=p->next;

}

returns;

)

main()

SLIST*head;

inta[N]={12,87,45,32,91,16,20,48);

head=creatlist(a);outlist(head);

printf(,'\nsum=%d\n',,fun(head));

}

SLIST*creatlist(inta[])

{SLIST*h,*p,*q;inti;

h=p=(SLIST*)malloc(sizeof(SLIST));

for(i=0;i<N;i++)

{q=(SLIST*)malloc(sizeof(SLIST));

p->data=a[i];p->next=q;p=q;

)

p->next=O;

returnh;

}

voidoutlist(SLIST*h)

{SLIST*p;

p=h->next;

if(p==NULL)printfC'ThelistisNULL!\nH);

else

{printf(,,\nHeadH);

do

{printf(,,->%d,,,p->data);

p=p->next;}

while(p!=NULL);

printf(n->End\nH);

}

}

二、程序修改題

給定程序MODIloC中函數(shù)fun的功能是:將s所指字符串中

出現(xiàn)的與tl所指字符串相同的子串全部替換成t2所指字符串

中。在此處,要求tl和t2所指字符串的長度相同。

#include<stdio.h>

#include<string.h>

voidfun(char*s,char*tl,char*t2,char*w)

(

char*p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=tl;

while(*r)

if(*r==*p)

{r++;p++;)

elsebreak;

if(*r=='\O!)

{a=w;r=t2;

while(*r){

*a=*r;a++;r++;

)

w+=strlen(t2);

}

elsew++;

)

}

main()

(

chars[100],tl[100],t2[100],w[100];

printf(H\nPleaseenterstringS:',);scanf(,,%s,,,s);

printf(H\nPleaseentersubstringtl:n);scanf(H%sn,tl);

printf(H\nPleaseentersubstringt2:H);scanf(n%sn,t2);

if(strlen(tl)==strlen(t2)){

fun(s,tl,t2,w);

printf(n\nTheresultis:%s\nu,w);

}

elseprintf(**Error:strlen(tl)!=strlen(t2)\n'*);

)

三、函數(shù)設(shè)計題

函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)的字符刪除,

串中剩余字符形成的的新串放在t所指數(shù)組中。例如:當(dāng)s所指

字符串中的內(nèi)容為:“ABCDEFGHJK”,在t所指數(shù)組中的內(nèi)容

是:“BDFHJ

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

inti,j=0;

for(i=l;i<strlen(s);i+=2)

tU++]=s[i];

tO]=,\n,;

}

main()

(

chars[100],t[100];

voidNONOQ;

printf("\nPleaseenterstringS:n);

fun(s,t);

printf(H\nTherestltis:%s\nn,t);

NONO();

}

voidNONO()

(

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen(Hin.dat,,,HrH);

wf=fopen(,,out.dat,,,nwn);

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

fscanf(rf,u%sH,s);

fun(s,t);

fprintf(wf,H%s\nn,t);

}

fclose(rf);

fclose(wf);

}

第十一套上機考試試題

一、程序設(shè)計題

人員的記錄由編號和出生年、月、日組成,N名人員的數(shù)據(jù)已在

主函數(shù)中存入結(jié)構(gòu)數(shù)組std中,且編號惟一。函數(shù)fun的功能是:

找出指定編號人員的數(shù)據(jù),作為函數(shù)值返回,由主函數(shù)輸出,若

指定編號不存在,返回數(shù)據(jù)中的編號為空串。

#include<stdio.h>

#include<string.h>

#defineN8

typedefstruct

(

charnum[10];

intyear,month,day;

}STU;

STUfun(STU*std,char*num)

{inti;STUa={””,9999,99,99};

for(i=0;i<N;i++)

if(strcmp(std[i].num)==O)

returna;

}

main()

(

STU

std[N]={{nllllll,,,1984,2,15},{n222222,,,1983,9,21},{H333333n,l

984,9,l},{,,444444H,1983,7,15},{n555555n,1984,9,28},{n666666H,

1983,ll,15},{n777777H,1983,6,22},{n888888",1984,8,19});

STUp;

charn[10]="666666”;

p=fun(std,n);

if(p.num[O]==O)

printf(n\nNotfound!\nH);

else

{

printf("WSucceed!\n");

printf(u%s%d-%d-%d\nn,p.num,p.year,p.month,p.day);

}

}

二、程序修改題

給定程序MOD"。C中函數(shù)fun的功能是:從s所指字符串中,

找出與t所指字符串相同的子串的個數(shù)作為函數(shù)值返回。

#include<stdio.h>

#include<string.h>

intfun(char*s,char*t)

(

intn;char*p,*r;

n=0;

while(*s)

p=s;r=t;

while(*r)

if(*r==*p){

r++;p++;

)

elsebreak;

if(*r==,\O,)

n++;

s++;

}

returnn;

}

main()

(

chars[100],t[100];intm;

printf(H\nPleaseenterstringS:H);

scanf(H%sH,s);

printf("\nPleaseentersubstringt:n);

scanf(n%su,t);

m=fun(s,t);

printf("\nTheresultis:m=%d\nH,m);

}

三、程序設(shè)計題

函數(shù)fun的功能是:將s所指字符串中ASCII值為偶數(shù)的字符

刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

intij=0;

for(i=0;i<strlen(s);i++)

if(s[i]%2)tU++]=s[i];t[j]=O;

main()

(

chars[100],t[100];

printf("\nPleaseenterstringS:H);scanf(H%sn,s);

fun(s,t);

printf(H\nTheresultis:%s\nH,t);

NONO();

)

NONOQ

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen(,,in.dat,,,nrn);

wf=fopen(,,in.dat,,,uwn);

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

fscanf(rf,M%su,s);

fun(s,t);

fprintfCwf/^skn",1);

}

fclose(rf);

fclose(wf);

)

}

第十二套上機考試試題

一、程序填空題

人員的記錄由編號和出生年、月、日組成,N名人員的數(shù)據(jù)已在

主函數(shù)中存入結(jié)構(gòu)數(shù)組std中。函數(shù)fun的功能是:找出指定出

生年份人員,將其數(shù)據(jù)放在形參k所指的數(shù)組中,由主函數(shù)輸出,

若指定編號不存在,同時由函數(shù)返回滿足指定條件的人數(shù)。

#include<stdio.h>

#defineN8

typedefstruct

(

intnum;

intyear,month,day;

}STU;

intfun(STU*std,STU*k,intyear)

(

inti,n=0;

for(i=0;i<N;i++)

if(std[i].year==year)

k[n++]=std[i];

returnn;

}

main()

(

STU

std[N]={{l,1984,2,15},{2,1983,21},{3,1984,9,1},{4,1983,7},{5,1985,

9,28},{6,1982,11,15},{7,1982,6,22},{8,1984,8,19}};

STUk[N];inti,n,year;printf(nEntera

year:n);scanf(n%dn,&year);

n=fun(std,k,year);

if(n==O)

printf(n\nNopersonwasbornin&d\nn,year);

else

{

printf(H\n")

}

)

二、程序修改題:

給定程序MODILC的功能是:讀入一個整數(shù)k(24k410000),打印它的所有質(zhì)

因子(即所有為素數(shù)的因子)。

例如,若輸入整數(shù):2310,則應(yīng)輸出:2,3,5,7、11。

請改正程序中的語法錯誤,使程序能得出正確的結(jié)果。

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

#include<stdio.h>

IsPrime(intn)

{inti,m;

m=1;

for(i=2;i<n;i++)

if(!(n%i))

{m=0;break;}

return(m);

main()

{intj,k;

printf(n\nPleaseenteranintegernumberbetween2and

10000:");scanf(H%d",&k);

printf("\n\nTheprimefactor(s)of%dis(are):n,k);

for(j=2;j<=k;j++)

if((!(k%j))&&(IsPrime(j)))printf(H\n%4d",j);

printf("\nH);

}

三、程序設(shè)計題:

已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)己存入結(jié)構(gòu)體數(shù)組a

申。請編寫函數(shù)血,函數(shù)的功能是:找出成績最高的學(xué)生記錄,通過形參指針傳

回主函數(shù)(規(guī)定只有一個最高分)。已給出函數(shù)的首部,請完成該函數(shù)。

注意:部分源程序存在文件PR0G1C中。

請勿改動主函數(shù)暝匕函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入

你編寫的若干語句。

#include<stdio.h>

#include<string.h>

#defineN10

typedefstructss

{charnum[10];ints;}STU;

fun(STUa[],STU*s)

inti,max=a[0].s,j=0;

for(i=l;i<N;i++)

if(max<a[i].s){

??

J=>;

max=a[i].s;

}

main()

{STUa[N]={{nA01n,81},{,,A02,,,89},{nA03n,

66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{

,,A09,,,80},{nA10',,71}},m;

inti;

printf("*****Theoriginaldata*****\n,‘);

for(i=0;i<N;i++)printf(HNo=%sMark=%d\nn,

a[i].num,a[i].s);

fun(a,&m);

printf(''*****THERESULT*****\n'');

printf("Thetop:%s,%d\n",m.num,m.s);

NONO();

}

NONO()

(

FILE*rf,*wf;

STUa[N],m;

int

rf=fopen(Hin.datH,,,rn);

wf=fopen(,,out.dat,,,,,wn);

for(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論