版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 復(fù)合材質(zhì)文物修復(fù)師安全規(guī)程強化考核試卷含答案
- 2026年財務(wù)審計服務(wù)合同協(xié)議
- 化工機械動設(shè)備培訓(xùn)課件
- 《圖書館均等化服務(wù)中的公共圖書館與圖書館文化活動研究》教學(xué)研究課題報告
- 2025年電子商務(wù)平臺智能營銷創(chuàng)新報告
- 2026上半年青海事業(yè)單位聯(lián)考果洛州招聘80人備考題庫含答案詳解(輕巧奪冠)
- 2026年氣動設(shè)計中的流體動力學(xué)理論
- 2026年橋梁技術(shù)標準與耐久性提升的整合研究
- 2026一重集團國際有限責(zé)任公司面向集團內(nèi)部及社會招聘業(yè)務(wù)人員備考題庫附參考答案詳解(突破訓(xùn)練)
- 2026內(nèi)蒙古地質(zhì)礦產(chǎn)集團有限公司社會招聘65人備考題庫附答案詳解(研優(yōu)卷)
- 旋挖鉆機地基承載力驗算2017.7
- 的股權(quán)繼承公證書范本
- 專利免責(zé)合同范例
- 《我國中藥飲片產(chǎn)業(yè)國際競爭力探析》9200字(論文)
- 檢驗項目管理培訓(xùn)
- DB45T 2313-2021 奶水牛同期發(fā)情-人工授精操作技術(shù)規(guī)程
- 購買助動車合同模板
- 兩個合伙人股權(quán)協(xié)議書范文模板
- GB/T 44082-2024道路車輛汽車列車多車輛間連接裝置強度要求
- 控?zé)熤嗅t(yī)科普知識講座
- 脫碳塔CO2脫氣塔設(shè)計計算
評論
0/150
提交評論