福建省C语言精选习题集

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1/17第一部分:选择题1.以下程序段的运行结果是(A)。inta=1;printf(%d,%d,%d\n,a,++a,a++);从右往左运算A.3,3,1B.1,2,2C.1,2,3D.3,2,12.以下程序段执行后p的值是(A)。inta[3][3]={3,2,1,3,2,1,3,2,1};intj,k,p=1;for(j=0;j2;j++)for(k=j;k4;k++)p*=a[j][k];A.108B.18C.12D.23.用数组名作为函数的实参时,错误的说法是(B)。A.定义形参数组时,元素的个数必须与实参相同B.可以使用数组名作为形参C.实参传递给形参的值是数组的首地址D.可以使用指针变量作为形参4.以下程序段的运行结果是(D)。union{intn;charstr[2];}t;t.n=80;t.str[0]='a';t.str[1]=0;printf(%d\n,t.n);A.80B.aC.0D.975.定义结构体类型变量teach1,不正确的是(D)。A.structteacher{intnum;intage;};structteacherteach1;B.structteacher{intnum;intage;2/17}teach1;C.struct{intnum;intage;}teach1;D.struct{intnum;intage;}teacher;structteacherteach1;6.若有定义:structstuent{intnum;charsex;intage;}stu1;下列叙述不正确的是(A)。A.student是结构体类型名B.structstudent是结构体类型名C.stu1是用户定义的结构体类型变量名D.num,sex,age都是结构体变量stu1的成员7.设有如下语句:structstu{intnum;intage;};structstus[3]={{101,18},{102,21},{103,19}};structstu*p=s;则下面表达式的值为102的是(B)。A.(p++)-numB.(*++p).numC.(*p++).numD.*(++p)-num8.若有下面定义,对结构体变量成员不正确引用的语句是(B)。structpup{charname[20];intage;intsex;3/17}p[3],*q;q=p;A.scanf(%s,p[0].name);B.scanf(%d,q-age);C.scanf(%d,&(q-sex));D.scanf(%d,&p[0].age);9.错误的枚举类型定义语句是(A)。A.enumcar{A,B,C};B.enumcar{1,2,3};C.enumcar{X=0,Y=5,Z=9};D.enumcar{D=3,E,F};10.以下程序的功能是(C)。#includestdio.hmain(){FILE*fp;longintn;fp=fopen(wj.txt,rb);fseek(fp,0,SEEK_END);n=ftell(fp);fclose(fp);printf(%ld,n);}A.计算文件wj.txt的起始地址B.计算文件wj.txt的终止地址C.计算文件wj.txt的长度D.将文件指针定位到文件末尾11.当顺利执行了文件关闭操作时,fclose函数的返回值是(B)。A.1B.0C.-1D.一个非0值第二部分:改错题1.程序Cmody051.C,其功能是统计输入字符串中大写英文字母的个数。如输入:abcDEFGH123输出:5#includestdio.h#includestring.hmain()4/17{/**/charstr1/**/;charstr1[50]数组长度足够就行inti,len,sum=0;printf(Pleaseinputastring:\n);scanf(%s,str1);len=strlen(str1);for(i=0;ilen;i++){if(str1[i]='A'&&str1[i]='Z')/**/sum--;/**/sum++;}printf(%d\n,sum);getch();}2.程序Cmody062.C,其功能是将程序中的两个字符串“ABC”、“xyz”连接在一起,并输出“ABCxyz”。#includestdio.h#includestring.hvoidmain(){chars1[12]=ABC,s2[]=xyz;char*ps1=s1,*ps2;/**/ps2=NULL;/**/ps2=s2;/**/while(*ps1==NULL)/**/while(*ps1!=NULL)ps1++;while(*ps2)*(ps1++)=*(ps2++);printf(%s\n,s1);getch();}3.程序Cmody122.C中函数voidchg(char*s),实现将字符串中所有偶数位置上的小写英文字母转换为大写英文字母(不是英文字母不转换)。#includestdio.hvoidchg(char*s){inti,n=0;char*p=s;while(*p){n++;p++;5/17}for(i=0;in;i++)/**/if((s[i]='a'&&s[i]='z')||i%2==0)/**/if((s[i]='a'&&s[i]='z')&&i%2==0)s[i]=s[i]-32;/**/s[i]='0';/**/s[i]='\0';}voidmain(){charss[100];printf(Enterstring:\n);gets(ss);chg(ss);printf(\nNowstringis:\n);puts(ss);getch();}第三部分:填空题1.补充程序Ccon013.C,程序实现从10个整数中找出最大值和最小值。#includestdio.h#includestdlib.hintmax,min;voidfind_max_min(int*p,intn){int*q;max=min=*p;for(q=p;q/**/p+n/**/;q++)if(/**/max*q/**/)max=*q;elseif(min*q)min=*q;}voidmain(){inti,num[10];printf(Input10numbers:);for(i=0;i10;i++)scanf(%d,&num[i]);find_max_min(/**/num/**/,10);printf(max=%d,num=%d\n,max,min);}2.补充程序Ccon023.C,该程序中可测试歌德巴赫猜想:从键盘上输入一个大于6的偶数,6/17总能找到两个素数,使得这两个素数之和正好等于该偶数。#includestdio.h#includeconio.hintprime(intn){intk,flag=1;for(k=2;k=n/2+1;k++)if(n%k==0){flag=/**/0/**/;break;}returnflag;}voidmain(){intnum,a;clrscr();do{printf(Pleaseinputanevennumber:);scanf(%d,&num);}while(num=6||num%2==1);for(a=2;a=num/2+1;a++)if(prime(a)&&prime(/**/num-a/**/))printf(\n%d=%d+%d,num,a,num-a);}3.补充程序Ccon033.C,其中main函数通过调用average函数计算数组元素的平均值。#includestdio.hfloataverage(int*pa,intn){intk;/**/floatavg=0.0;/**/for(k=0;kn;k++)avg=avg+/**/pa[k]/**/;avg=avg/n;returnavg;}voidmain(){inta[5]={20,30,45,64,23};floatm;m=average(/**/a/**/,5);printf(Average=%f\n,m);}4.补充程序Ccon052.C,使程序中的sort()函数用选择法对数组a中的m个元素从小到大7/17排序。#includestdio.h#includemath.hvoidsort(inta[],intm){inti,j,k,t;for(i=0;im-1;i++){k=i;for(j=i+1;j/**/m/**/;j++)if(a[j]a[k])/**/k=j/**/;if(k!=i){t=a[k];a[k]=a[i];a[i]=/**/t/**/;}}}voidmain(){inta[]={72,25,58,32,2,15,7,64};inti,m=sizeof(a)/sizeof(int);sort(a,m);for(i=0;im;i++)printf(%d,a[i]);printf(\n);getch();}5.补充程序Ccon083.C,实现将结构体数组mystudent中存储的各学生信息按其学号的升序排列。#includestdio.h#includestring.htypedefstruct{intnum;charname[20],sex[2];intage,score;}STU;STUmystudent[]={{1111,Zhangqiang,m,20,80},{2104,Liminghong,w,18,82},8/17{3121,Wangxingda,m,21,78},{4118,Liushaotao,m,20,90},{1456,Wuminghong,w,35,86}};voidsort(STU*ps,intsize){inti,flag,pass;/**/STUtemp;/**/for(pass=1;passsize;pass++){flag=0;for(i=0;isize-pass;i++)if(/**/ps[i].numps[i+1].num/**/){flag+=1;temp=ps[i];ps[i]=ps[i+1];ps[i+1]=temp;}if(/**/flag==0/**/)break;}}voidmain(){inti,size=sizeof(mystudent)/sizeof(STU);clrscr();printf(Students\'informationbeforesort:\n\n);printf(NumberNameageSexscore\n\n);for(i=0;isize;i++)printf(%-7d%s%10d\t%s%8d\n,(mystudent+i)-num,(mystudent+i)-name,(mystudent+i)-age,(mystudent+i)-sex,(mystudent+i)-score);sort(mystudent,size);printf(\nStudents\'informationaftersort:\n\n);printf(NumberNameageSexscore\n\n);for(i=0;isize;i++)printf(%-7d%s%5d\t%s%7d\n,(mystudent+i)-num,(mystudent+i)-name,(mystudent+i)-age,(mystudent+i)-sex,(mystudent+i)-score);getch();9/17}6.补充程序Ccon0310.c,使其实现用递归算法求平方根。求平方根的迭代公式如下:1001()2axxx#includemath.hmain(){doublex,y;/**/doublemysqrt(double,double);/**/printf(Ple

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功