二级C语言上机题库-南开100题_第1页
二级C语言上机题库-南开100题_第2页
二级C语言上机题库-南开100题_第3页
二级C语言上机题库-南开100题_第4页
二级C语言上机题库-南开100题_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

说明:本题库是针对2008年4月份考试的上机考试题库,本题库共有100套题II(每套题11包含3道题:道程序填

空题、•道程序修改题、•道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取•套考试,每个

考生考试时只需考套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到

时计算机会给你抽取咖•套题,所以大家只有把全部题库都理解才能万无一失)

宏为世纪教育提供网址:

/*宏为世纪教仃*/

二级C语言上机试题汇编

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

第3套:

给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去

除,剩余的数按原来从高位到低位的顺序组成•个新的数,并通过形参指针n传回

所指变量。

例如,输入•个数:27638496,新的数:为739。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结

果。

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

不得增行或删行,也不得更改程序的结构!

给定源程序:

#includc<stdio.h>

voidfun(unsignedlong*n)

{unsignedlongx=0,i;intt;

i=l;

while(*n)

/**********l^und**********/

{t=*n%_1_;

/**********区)und****辛**今今*/

if(t%2!=_2_)

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

*n=*n/10;

I

/**********Sund**********/

*n=3_;

main()

{unsignedlongn=-l;

while(n>99999999lln<0)

{printfC'Pleaseinput(O<n<I(X)O(K)OOO):");scanf(M%ld",&n):)

fun(&n);

printf("\nTheresultis:%ld\n0,n);

1

解题思路:

第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。

第二处:判断是否是奇数,所以应填:0。

第三处:最后通形参n来返回新数x,所以应填:X。

给定程序MODH.C中函数fun的功能是:计算n!。

printf("InputN:");

scanf("%dn,&n);

printf("\n\n%d!=%lf\n\n",n,fun(n));

1

解题思路:

第一处:条件语句书写格式错误,应改为:if(n==O)。

第二处:语句后缺少分号。

请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得

调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串”-1234”,则

函数把它转换为整数值-I234o函数fun中给出的语句仅供参考。

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

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填

入你编写的若干语句。

给定源程序:

#include<stdio.h>

#include<string.h>

longfun(char*p)

(

/*以下代码仅供参考*/

inti,ien,t;/*len为串长,i为正负标识*/

longx=0;

len=strlen(p):

if(N0D

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

elset=1;

/*以卜完成数字字符串转换为•个数字*/

returnx*t;

}

main()/*主函数*/

{chars[6];

longn;

printf("Enterasiring:\n");

gels(s);

n=fun(s);

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

/*宏为世纪教育*/

NONO();

}

NONO()

{/*木函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

FILE*fp,*wf;

inti;

chars[20];

longn;

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

wf=fopcn("c:\Vest\\oui.dai","w");

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

fscanf(fp,"%s",s);

n=fun(s);

whiie(*p)x=x*10-48+(*p++):

returnx*t;

)

main()/*主函数*/

{chars[6J;

longn;

printfC'EnterastringAn");

gets(s);

n=fun(s);

printf("%ld\n".n);

NONO();

I

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

/*宏为世纪教育*/

FILE*fp,*wf;

inti;

chars[20];

longn;

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

翳■定翩酉舟:Wesi\\oul.dai","w");

融电府&《伺应心jH”

除对位脸陶‘⑸;

p=fun(s);

forintf(wf,M%ld\nM,n);

Aiain()

科的常丽s;

年糕改却PleaseenterN:");scanf("%d",&n);

1=fun(n);

printf("theresultis:%f\n",s);

讯瓦用于NONOS这个函数是改卷人用的,与考生没有什么关系,故卜.面从第2套试题开始均省略NONO()

)

解题思路:

本题是根据给定的公式计算结果。使用for循环语句依次求出每一项的值,分别进行累加并

酒餐奥霜炎箜寅将泡※番浦迸商逛※※※※※※※※※※

参考答案:

intsum=0.0;

intc=0,i=0;

while(x[i]!=0)

{if(x[i]>0){

sum+=x[i];C++:)

i++;

)

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

/*宏为世纪教育*/

sum\=c;

returnsum;

I

main()

{intx[IOOO];inti=0:

printf("\nPleaseentersomedata(endwith0):");

do

{scanf("%d",&x[i]);}

while(x[i++]!=0):

丽硬徵fun(x));

挤定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本

以牌甲物再用字符方式从此文本文件中逐个读入并显示在终端屏幕匕

璃花热序的下敏速献俯翻M蝌蜘淮娜妁罐可好所佛闸他痛脚6sum=0.0;或lloai

驷1=0.0:。

银铉"源陋福薇觥侬件夹下的BLANKI.C中。

不为睛衿或力解K*也不再莹鼓薛殍M拜椅5T*************

荆至独整附中函数的功能是:根据以下公式计算s,计算结果作为函数值返

嘛血蚂传入。

voidfui1(char*s,Inta,doublef)

+-----+--------+...+---------------

/*****4?**f0uX由2*瓢******/1+2+3+...+n

妈注通n的值为11时,函数的值为:1.833333

诺就:h即分源程序在文件PROG1.C中。

市”嬲廊碑明则副苏它函数中的任何内容,仅在函数面的花括号中填入

解解搬赫财场An",s,a,f);

fclosc(fp):

本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。

第•处:定义文本文件类型变量,所以应填:FILE*。

第二处:判断文件是否结束,所以应填:fp。

第三处:显示读出的字符,所以应填:ch。

给定程序M0DI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形

成新的字符串,并取代原字符串。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行\也不得更改程序的结构!

给定源程序:

#includc<stdio.h>

voidfun(char*s)

{inti,j;

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

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

s[j]=s[i];

/******求***R)und**********/

sU]=',\O";

)

main()

/闻妙秋位毓/nd**********/

加框6区即变强-iWs(item);

玳研程则Thestringis:\"%s\"\n".itcm);

|un(item);

严就联'球\«](3^1出后日名痴1血¥«@尸2is:\"%s\"\n",itcm);

\=_2一;

蝌踞弼+n]NO)n++;

嘛o琳n那*最兴兴醉津娥;中所有数字字符组成•个新的字符串,程序中是使用变量j

净制雕三觥讴能藏*8应改为:slj++]=sli]:o

期+[佐丁逊了:符串的结束符,所以应改为:sljKO:

春*.*%*********************************东东************

1=1+1;

区编写函数fun.函数的功能是:将M行N列的二维数组中的字符数据.按列的

利序依次放到一个字符串中。

涮*()二维数组中的数据为:

代能四姐]="baacda",c:

^rfii§(^\iiThcstring:%s\n",s);

printf("\nlnputacharacter:0);scanf("%c'\&c);

解题思路:

本题是找出最高成绩,再把N名学生的成绩等于最高成绩的记录存入b所指的数组中。具体

操作请看答案程序中的说明。

/*宏为世纪教育*/

参考答案:

intfun(STREC*a.STREC*b)

(

inti,max=a[O].s,n=0;

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

if(max<a[il.s)max=a[i].s;/*找出最高成绩*/

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

if(max==a[i].s)b[n++]=a[i];/*找相等的最高成绩并存入数组b中*/

returnn;/*返回符合条件的人数*/

}

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

第00套:

给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字

价H同津其后插入一个与之相同的字符•,若找不到相同的字符则函数不做任何处

删字符串中的内容应是:WSHWSHWSH.

他黑㈱解御腋伸糕视1史口敝字符为:a,

拙钮反动行揭胸I棚/蜘典世格费隼的任何内容,仅在函数fun的花括号中填入

旅翁号桶照手掷播处填入正确的内容并把下划线删除,使程序得出正确的结

用定源程序:

沛滴诃限嶷感奇顿在考生文件夹下的BLANK1.C中。

而绿相即当删行,也不得更改程序的结构!

船福海府用

内吗做朋想接柠*/

voidfun(chars(][N],char*b)

彳*宏为世纪教育*/

inti,j,n=O;

阳粗恻史玲辞+,取错填写相应语句完成其功能*/

|inti,j,n;

}

参考答案:

voidfun(chars[][N],char*b)

(

/*宏为世纪教育*/

inti,j.n=O;

for(i=0:ivN:i++)/*请填写相应语句完成其功能*/

(

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

b[nl=s[jiri];

n=i*M+j+1;

)

I

blnJ^O,;

}

※※冰※※※※※※※※※※※※※※※※※※※※※※

第03套:

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所

有学生数据均以:进制方式输出到文件中。函数fun的功能是重写形参filename所

指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学

夕率/款抑物儆换。第2个条件是应该第1和第3个小,则交换就符合题意了,所以应改为:

乖锣屎的下划线处填入正确的内容并把下划线删除'使程序得出正确的结

段*************************************************

学幽曲I!娴郴号糊蚓酰脚N名学生的数据已在主函数中放入结构体数组

s中,请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注

豫要分锻螭翩奉雕槌央种邮济盘最高的学生的人数。

催懦流醐健和酬柳侬府构!

锵旗跟物星函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

物蝙u骅冏中中布J。

绅盅源杈杀

期展翅i*岫拗婀,{

蜩褥N16

M砂

y©抬锁char*filename,STUn)

intfun(STREC*a,STREC*b)

第二处:使用f。!■循环语句来交换数组元素的值,所以应填:i。

第三处:使用中间变量t来交换的,所以应填:I。

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

给定程序M0DI1.C中函数ftin的功能是:把主函数中输入的3个数,最大的放在

a中,最小的放在c中,中间的放在b中o

例如,输入的数为:551234,

输出结果应当是:a=55.O.b=34.0,c=12.0,.

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

给定源程序:

#includc<stdio.h>

voidfun(float*a.float*b.float*c)

{

/**********他un(j*******京**/

float*k;

if(*a<*b)

{k=*a;*a=*b;*b=k;}

/******求***R)und**********/

if(*a>*c)

{k=*c;*c=*a;*a=k;}

if(*b<*c)

(柯甘唧*c;*c=k;)

/**********知un(j**********/

l^^pcn(_l_,"rb+");

aJxa乐於und**********/

便®忠?妈a忸法的醐银皆幽C曲l*P-&c);

/**********他und**********/

fwrite(&n,sizeof(STU),I,_3_);

的廉相长纪教育*/

1

RliWiH'a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);

轴当C/IOOQ]“MaChao”,91.92.77).{10002.,,CaoKai",75.60.88).

H硼方,Ei的4然啪狗1人曲阳松卿地碰,82,87},

|10005,"ZhangSan';95,80,88)};

螭牌枳)06JZhaoSi”,55,70.68).ss[N];

镰i,j纲僚哪㈢皿体中,k是一个浮点型变量,所以应改为:floatk;.

吊=避妁)(渔解储备MWb啜1个条件是第1个比第2个小,则交换。第3个条件是第2个比第

fwritc(t,sizeof(STU),N,fp);

/*宏为世纪教育*/

)

解题思路:

本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。

第一处:从指定的文件中读出数据,所以应填:filename。

第.处:读取文件fp的最后一条记录,所以应填:fpo

第三处:再把读出的记录,写入文件用指定的位置上,所以应填:fPo

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

给定程序MODH.C中的函数Crcadink的功能是创建带头结点的单向链表,并

为各结点数据域赋。到的值0

请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

/include<stdio.h>

#include<stdlib.h>

typedefstructaa

{intdata;

structaa*next;

娘/g、8、9、5、1、2,3、4。

冶P和苗栖叩则鲤她/映业税的内容并把下划线删除,使程序得出正确的结

冢ODE*h=NULL,*p,*s;

te:源程序存放在考生文件夹下的BLANKI.C中。

的箱帽嗫咖叩?*范第皙矍谶隹序的结构!

有慰抑aUoc(sizeof(NODE));

iffiKSude<stdio.h>

脸愉?WLL:

躺〒淋临啕埔n)

(*)malloc(sizeof(NODE));

沁(4@孤斗ndBiwsx,砰叶nexl;

眸置题的—1—;

)

/**********帖und***********/

解啜月世纪教育*/

for(i=0:i<n/2;i++)

请编写•个函数fun,它的功能是:将ss所指字符串中所有卜标为奇数位置上

的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入“abc4EFg",则应输出"aBc4EFg"°

注意:部分源程序存在文件PR0G1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

给定源程序:

#include<stdio.h>

#includc<string.h>

voidfun(char*ss)

(

I

main()

{chartt|81J;

printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);

printf("\n\nAfterchanging,thestring\ntt);

fun(tt);

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

NONO();

)

购黜旅)DE*h)

行矍龌卷考生对字母按要求进行转换。其中大小字母的ASCH值相差32。

御悌绘

附W枫n〈肿物?步虹、:\n\nHEAD");

khile(p)

帏",p->data);

陶U北vstrlen(*ss);i+=2)(

^f(ss[i]>='a'&&sslij<='z')ss[i]-=32;

%rinlf("\n");

I

main()

渣逾稀流1举※※※※※※※※※※※※※※※※※※

德噩窗包Uink(8,22);

因投珈鹿额鞅%施隘土鹿恃数组中的前半部分元素中的值和后半部分元

素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

例隔ik(相田的指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后

printf("EnterastringAn"):gets(line);

num=fun(line);

printf("Thenumberofwordis:%d\n\n",num);

NONOO;

)

解题思路:

本题是统计字符串中的单词数。

1.利用while循环语句和指针变量,当字符为空格时,则单词数k加L

2.循环结束返回匕

参考答案:

intfun(char*s)

|

intk=1;

while(*s){

if(*s=")k++;

s++;

1

returnk:

)

给定程序MODI1.C中函数fun的功能是:删除p所指字符串中的所有空白字符(包

楷翰裳制海曲举卷度籁卷存餐※※※※※※※※※※※※

霸姆落芋串时用物结束输入。

楮便蚓律*酶镇网睡展闹靳确辨孵:号、姓名和3门课的成绩。所

舞步糊蛔m盥魁承蝌嘛微删泄地对幽蝴物脑林-me所指

的施糠黑摩入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的

篇泪翻瑜端翱耿name所指的文件中,覆盖原来的文件内容。

端而胡底煦应却笠处填入正确的内容并把下划线删除.使程序得出正确的结

rfrfclude<clype.h>

麟加♦舞护存放在考生文件夹卜的BLANK1.C中。

代律趣彳扇融梅川:也不得更改程序的结构!

漏学飙**found*字**********/

域伸用:i++)

瓶做愠星声(p+i)))c[t++]=p[i]:

屋p«M:施«(***********/

也皓恻弋

strcpy(px);

k=fun(_3_);

if(k=0)prinlf("\nNotfoundin'');

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

}

SLIST*creatlist(char*a)

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

h=p=(SLIST*)malkx:(sizeof(SLIST));

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

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

q-xiata=a[i];p->ncxt=q:p=q:

)

p->ncx(=O;

/*宏为世纪教育*/

returnh;

1

voidoutlist(SLIST*h)

{SLIST*p;

p=h->nexi;

凰时翩砒bjp“mfCMThelistisNULL!\nM);

score(3):

jgi^f("\nHcad");

48idfun(char*filename)

|即唬益不锦'ipj-daia):p=p->ncx【:}

骊演曲NSL);

pfinifO用**********/

^p=fopen(filename,_1_);

Jread(s,sizeof(STU),N,fp);

购牌啼

僦i蛇诈余卿擀声中要求找出指定的值。

港曲%。泄则悬尹结束,所以应填:NULL。

■碣纵扭必叫n来计算结点的位置,当找到ch值,则返|可结点的位置n,所以

假蛤).媚吧空s|j].sno)

网』勘;用偿哪卜神口浙数中已经给出了head和ch,所以应埔head,cho

****,****弯*.浮********字笔毕***************字*************

rp=ropen(filename,wb);

/**********tbund**********/

fread(ss,sizeof(STU),5,fp):

fclose(fp);

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

{printf("\nNo:%IdName:%-8sScores:",ss[j].sno,ss[j].name);

for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);

printf("\n");

)

I

解题思路:

本题是考察把结构中的数据写入文件。

/*宏为世纪教育*/

第一处:建立文件的类型,考虑到是把结构中的数据(结构中的数据包含不打印的字符)

从文件中读出,所以应填:

第二处:判断当前学号是否大于刚读出的学号进行相比,如果大于,则进行交换,所以应

填:>o

第三处:把已排序的结构数据,重新写入文件,所以应填:fwriteo

字**************************************************

给定程序MOD".C中函数fun的功能是:在字符串的最前端加入n个*号,形成

赭嗫炖展朝鄙&*/

注意:字符串的长度最长允许为79。

柚可Q神整快惭聊姆做陶缎,使它能得出正确的结果。

脑程仲聃喇缪ie献龄啸脚戈幽僦坐畅娜鲍楸愉的结

飨央源程序:

物短W源物拉椅!(在考生文件夹下的BLANK1.C中。

卿林璃微丽,种也不得更改程序的结构!

络烛寐槿附尹川,intn)

iinclude<sldio.h>

楠电解S解hh>

树品neN8

俗差求之湍部榭d***********/

?lRtdata;

猫&si/如)a[i]=*;

鸭LIST;

SEIST用reailist(char*);

voidoutlist(SLIST*);

{if(i%4==0)printfC'Xn");

printf("%s%3d",s[i].num,s[i].s);

)

printf("\n\nEnlerthenumber:"):gets(m);

h=fun(s,m);

printf("Thedata:");

printf("\n%s%4d\n'\h.num.h.s);

printf("\n");

out=fopcn("c:\Mcst\\oui.dal","w");

h=fun(s,"GAOI3,'):

fprintf(ou(,"%s%4d\n".h.num.h.s);

fclosc(out);

I

解题思路:

本题是从学生记录体中找出给定的学号。具体操作请看答案程序中的说明。

参考答案:

STRECfun(STREC*a,char*b)

(

STRECc;

inti;

c.num[0]='\0*;/*置初始空串*/

应-1;/*置成绩为-1*/

|or(i=0;i<N;i++)

网•明的由后侬&磷*判断学号是否相等*/

即脚(朴理钟、a[i].num);/*相等,则对学号进行赋值

/*相等,则对成绩进行赋值*/

屈顿&)拒出循环体*/

I

用熟阳c;/*返回结构体变量*/

|intn;chars[80];

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

价沧竹侪济奥海餐粽僦8※※※※※※※※※※※※

褥瞅^SiEnlern(numberof*):");scanf("%d",&n);

徐诵用姨中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中

微沏程曲n盛利垢幅敢吻期和嚼狗点在链表中所处的顺序号;若不存在

}

解题思路:

第一处:指针p应指向s,所以应改为:p=s;o

doublemd()

{statict=29,c=2l7,m=IO24,r=O;

r=(r+t+c)%m;retum((double)r/m);

1

main()

{intage[N],i,d[M];

for(i=0;i<N;i++)age[i]=(int)(lI5*md());

printf("Theoriginaldata:\n");

for(i=0;i<N;i++)printf((i+l)%10==0?"%4d\n,,:,,%4d",age[i]);

printf("\n\n");

fun(age,d);

for(i=0;i<I0;i++)printf("%4d—%4d:%4d\n,,,i*10,i*10+9,d[i]);

printf("Over100:%4d\n,,.d|10]);

NONO(d);

}

解题思路:

本题是统计各年龄段的人数。

1.初始化各年龄段人数为0。

2.使用for循环以及求出各年龄的十位数字作为存放人数的地址,如果大于值大于10,则

存入d[10]中(大于110岁的人)。

奔涌芾能女isconvcredtointegernumber:%d\n\n",s,n);

yoidfun(int*a,int*b)

蟀题思路:

inti,j;

for(i=0;i<M;i++)b[i]=0:

ft夔机在空教育幽班界粕£R期

•(/隰i陇::甲相写成*P,U错写成

1。求*****************************************

可々E4例脚r*号用蜘娜旅十;N名学生的数据已在主函数中放入结构体数组

】中,请编q函数fun,它的功能是:函数返问指定学号的学生数据,指定的学号在主

机数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作

方曲盛帕切叽(用于字符串比较的函数是strcmp)„

麒匕蹄就的,fl哎惮依&].c中。

倩鲂收斯牺斜激悯硒峨可聃嗷中的任何内容,仅在函数fun的花括号中填入

板编写的若干语句。

给定源程序:

printf("%4d",b[i]);

printf("\n");

)

解题思路:

第一处:利用foi■循环语句,对数组中的各元素进行逆置,所以终止值为n/2。

第二处:进行交换数组中元素的值,由于是依次是首和尾交换,所以应填:〃

第三处:使用中间变量t来交换的,所以应填:

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

给定程序MODILC中函数fun的功能是:将一个由八进制数字字符组成的字符

串转换为与其面值相等的卜进制整数。规定输入的字符串最多只能包含5位八进制

数字字符。

例如,若输入:77777,则输出将是:32767o

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

给定源程序:

#include<stdio.h>

intfun(chartp)

{intn;

/**********R)und**********/

n=*P-'o';

p++;

while(*p!=0){

蜜髅蜜糠典袈繁戮装聚鬃※※※※※※※※※※※※

施明密1*8+*P-'。';

鳍迪桎殍中.函数fun的功能是将参数给定的字符串、整数、浮点数写到文本

此件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将

用陶畔?换成相应的整数、浮点数,然后将其显示在屏幕匕

忸在程序的卜.划线处填入正确的内容并把卜.划线删除,使程序得出正确的结

鹦jn()

髭疑)■赚根冰松唳柜考生文件夹卜.的BLANK1.C中.

加科懈刚境删阴11能年孵电铿阉楙(第除);

塔建麒*/工){printf("Error:Stringtoolonger!\n\n");exit(0);}

翻(j威幽就用)

腕i礴蜩成R>

(舐帼7瓦胪*的油於加时网)digitsM'n"MiD;exit(O);}

printf("Theoriginalsiring:");puts(s);

加金闻&)i***f6und**********/

_1—fp;

}

解题思路:

本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮

点数显示在屏幕上。

第一处:定义文本文件类型变量,所以应填:FILE*。

第二处:关闭刚写入的文件,所以应填:fclose(fp)B

第三处:从文件中读出数据,所以应填:fp.

给定程序MODILC中函数fun的功能是:对N名学生的学习成绩,按从高到低的

顺序找出前m(mW10)名学生来,并将这些学生数据存放在一个动态分配的连续存

储区中,此存储区的肉地址作为函数值返回。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行.也不得更改程序的结构!

给定源程序:

/include<stdio.h>

/include<alloc.h>

/include<string.h>

#defineNIO

typedefstructss

{charnum[10];

ints;

)STU;

某积舞吸赛球陵咏燃求喙※※※※※※※※※※※※※派

姆和热Nl,*t:

解^器n的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次

勤*七*智、**喊*赞软审%、%则逆置后依次为:9、8,7、6,5,4,3、2、

匕(宛廖力翱谶细帽魏卿不数。

翻响咻〃曲:附跋始乱MIF.确的内容并把卜.划线删除,使程序得出正确的结

^rJk=O;k<m;k++)

用菰=标麻宁耕:放性考生文件夹卜.的BLANK1.C中.

琳聊格行喇忡JR也不得更改程序的结构!

婿滔^^^:founJ**********/

#include<stdio.h>

voidfun(inta[],intn)

(籍漆世纪教育*/

/**********佑und**********/

临)池域—।—;i++)

/*宏为世纪教育*/

s作为函数值返回。

在C语言中可调用log(n)函数求ln(n)olog函数的引用说明是:

doublelog(doublex)。

例如,若m的值为:20,fun函数值为:6.506583c

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

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

给定源程序:

#includc<math.h>

#include<stdio.h>

doublefun(intm)

(

}

main()

{

printf("%f\n';fun(20));

NONO();

)

辘谡肿

正题是根据给定的公式计算结果。使用for循环语句依次求出每一一项的值,分别进行累加并

福^扰:存入变量s中,循环结束后再对s求平方根,结果仍存入s中,最后返回s。

辞考答案:

曲帼"蝴即,)FILE*pD

Iinti;

的丫讪淤泛处U+)

脐福tf(p£"No=%sMark=%d\n",a[i].num,a[i].s);

胱MM,幅5%i++)s+=log(

!j=sqrt(s);

main()

{STUa[N]={{"A0r;81},{,'A02",89},{"A03",66}4"A04",87},{',A05",77),

个照匏蜥单嫡7,刃吸牌肥81¥{209=80},{710”,71}};

STU*pOrdcr;

珀科用Q

^rintf("*****TheOriginaldata*****\n");

outrcsult(a,stdout);

例如,・维数组中的数据是:2223445666677899101010。

删除后,数组中的内容应该是:2345678910o

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

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

给定源程序:

#include<sldio.h>

#defineN80

intfun(inta[].intn)

/*宏为世纪教育*/

(

I

main()

{inta[N|={22,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,1090},i,n=20;

printf("Theoriginaldata:\n°);

for(i=0:i<n;i++)prinlf("%3d",a[i]);

n=fun(a,n);

printf("\n\nThedataafterdeleted:\n");

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

NONO();

桁值。例如,当n为5时,函数值应为:10.407143。f(x)函数定义如下:

r(x+1)/(x-2)x>0且x#2

侬哪x=0或x=2

本祖科网隧月甥斗过数组中的相同数。

加陷睡津他楸,个磨俐懒翻倍翻辘果严利用「。『循环来依次判断所有的数。

徒舸牌谶曲吸辨翩帆腓翩陶瓢解礴面放的位置由j来控制,

第蓑檄撞全数重新存入匕如果相同,则取下•数。

翁疝籥矣sklio.h>

#include<math.h>

掷:&倔*冲&md*东东东东******/

t(doublex)

inti.j=I,k=a[0];

fp快三上场)

除标则)(

a厩册四6.o)

Ifemftt'Jx-1)/(x-2);

else

ford=0;j<N:j++)

t[O][N-j-i]=tg][—i—];

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

l[j][O]=t[N-l][j];

/**********Cund**********/

for(j=N-l;j>=0;—2—)

t[N-l][N-l-j]=t[j][N-l];

for(j=N-l;j>=0;j-)

/**********砧und**********/

t(j][N-l]=r[_3_1;

I

main()

{intt[]lN]={21,12J3,24,25J6.47,38,29,H,32,54,42,21,33,10},i,j:

pnntf("\nrriieoriginalarray:\n");

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

{for(j=0:j<N;j++)printf("%2d

printf("\nH);

1

fun(l);

printf("\nTlieresultis:\n");

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

a(j]=O:

returnj:

早宏为世纪教育*/

妙然较袋房臾皴限袋缓荻袋改敷吸就块※※派※※※※※

附然图');

蛤定程序中,函数fun的功能是根据形参i的值返回某个函数的值.当调用正

确时,程序输出:

解鹭椒籁)00,x2=3.000000.x1*x1+x1*x2=40.000(XX)

籍在I检序除则跳鹿篥爽牖幽容算犯千斯好同廉他程序得出正确的结

集.处:for循环的增量值,由于循环是从大到小递减,所以应填:j-,

籁翻斓髀微刎电财财麻LA利K庚版填:相

菜簿常符鼓蒯音:*植聚鬻黄陵座岸药彗将***************

靠第藻凰里PDI1.C中函数fun的功能是:计算

》iEcf侬上stalU+…+*°)+f(D+f(2)+…+f(n)

doublefl(doublex)

解题思路:

本题是根据给定的公式来计算函数的值。

第•处:程序中使用双精度double类型进行计算,所以函数的返回值类型也为double,所

以应填:doubleo

第二处:当i等于1时,则返min函数的值,所以应填:门。

第三处:如果i不等于1,则返|口1整函数的值,所以应填:12。

给定程序MOD".C中函数fun的功能是:比较两个字符串,将长的那个字符串

的首地址作为函数值返回。

请改1E函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

#include<stdio.h>

/**********他un(j*******京**/

charfun(char*s,char*t)

{intsl=O,tl=O;char*ss,*tt;

ss=s:tt=t;

while(*ss)

{sl++;

/**********砧und**********/

(*ss)++;

卷考答案:

*a.char*h,char*p)

[tl-H-;

竺6,*****tbund**********/

矫卬他

ihile(*q&&q<h)a|j++]=*q++;

UM格沙&&h<p){

两岸岬河U++]=*h;

A++;

snain()

Lute国他螂L吊抑刎i;

pf-jpLf^\nEnierastring:");gets(a);

|»rintf("\nEnterastringagain:");gets(b);

printf("\nThelongeris:\n\n\"%s\"\n",fun(a,b));

展※※※※※※※※※※※※※※※※※※※※※※※※

给定程序中,函数fun的功能是而NXN矩阵,将矩阵的外围元素顺时针旋轨

•个字母,形参p已指向字符串中最后•个字母。在编写函数时,不得使用C语言

提供的字符中函数。

例如,字符串中的内容为:****A*BC*DEF*G********,删除后,字符串中的内

容应当是:****ABCDEFG********o在编写函数时,不得使用C语言提供的字符串

函数。

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

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。

给定源程序:

#include<stdio.h>

voidfun(char*a,char*h,char*p)

(

I

main()

{charsJ8l],*t,*f;

printf("Enterastring:\n");gets(s);

t=f=s;

while(*t)t++;

l一;

while(*t=='*,)t—;

while(*f='*')f++;

卿*(谯!■,快题要求返回字符串的肉地址,所以应改为:char*fun(char*s,char*t)

第in吸网8日.印索那刑忸部所以应改为:SS++;.

第"I/Q:取字符串指针”的下一个位置,所以应改为:”++:。

***********木木***********************************木**

请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第

解嬲、救个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

榭棚屋稀新简费膂幅为束为:ABCDEFGHIJK,m的值为3,则移动后,字符串

1.把I■指针左边的字符仍存放字符串a首地址开始的位置匕

/*宏为世纪教仃*/

/*宏为世纪教育*/

中的内容应该是:DEFGHIJKABC。

粗黑「痛勿神邨南粘曼那班说讯号断,其字符是否是'*',如果不是'*',则把这些字符

造豳劲翻短港智聃触触中的任何内容,仅在函数fun的花括号中填入

诙鼎埼常初储觎字符放到第2步操作字符串a的后面。

绐热脑耗符串a加上结束符。

#include<stdio.h>

printf("\ii\n");

NONO();

1

解题思路:

本题是考察字符串的操作。

1.由于函数funl是将字符串中字符循环左移一个位置,并通过实参w返【可循环左移一个位

置的字符串。

2.利用循环for语句来操作多少个字符(m)需要循环左移。

参考答案:

/*宏为世纪教育*/

voidfun1(char*w)/*本函数的功能是将字符串中字符循环左移,个位置*/

(

inti;chart:

t=w[0];

for(i=();i<strlen(w)-l;i++)

w[i]=w[i+l];

w[strlen(w)-l]=t;

)

voidfun(char*m)/*可调用ftml函数左移字符*7

椀如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000.

幅改正程序中的错误,使它能得出正确结果。

I.摊7怀夔谀动ii怙M播峻Y):不得增行或删行,也不得更改程序的结构。

蛤定源程序:

#include<stdio.h>

梯盍除级举※※派※※※※※※※※※※※※※※

痴ffil秀inx(doublex)

隔腮谖*邓撇娜婚:)利用结构体变量存储了一名学生的信息。函

数f瞅的网能徐笛机阂*谎4泗信息。

i青在程序的卜划线处填入正确的内容并把卜.划线删除,使程序得出正确的结

^iic***»******f0Un(j************/

福堂:源程序存放在考生文件夹卜的BLANKLC中。

否御辎饭吸删行,也不得更改程序的结构!

潟底**^und************/

脚俯服瞬赭礴恸》2仁5*/

{if(funx(r)*funx(n)<0)m=r;

\TABelsen=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论