c语言习题谭浩强有答案版

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

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

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

资源描述

11.若有以下定义和语句:inta[4]={0,1,2,3},*p;p=&a[2];则++(*p)的值是___3__。2.与表达式a|=b等价的另一书写形式是_a=a|b________。3.链表中的每个结点都是_结构体________类型数据。4.设有语句:char*a=I_love_china!;a=a+2;则执行printf(“%s\n”,a);的输出结果是___love_china!__________。5.若有宏义:#definef(x)x*x则当a=3时,执行f(a-1)的值是____-1___。6.有以下函数调用语句,请问函数fun1到底有___4____个参数。fun1(x,(y,z),10,fun2((x-1,y-1)))7.设有以下定义和语句,则*(*(p+2)+1)的值为__60________。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;8.若有inta=1;intb=2;则a|b的值为___3______。9.设有char*p=abcde\0fghjik\0;则语句printf(%d\n,strlen(p));的输出结果是_____5_______。10.表达式0x13^0x17的值是__ox4________。11.在C语言中,&运算符作为单目运算符时表示的是__取地址_____运算;作为双目运算符时表示的是_按位与____运算。12.若p是指向某一结构体变量的指针变量,则通过指变量对结构体成员的引用方法有:_____p-_______和_______(*p)._______。13.设inta[3][4]={{1,2,3,4},{5,6,7,8}};则*(*a+2)的值为__3____。14.判断文本文件是否结束时使用的符号常量EOF的值是___-1___。15.FILE*p的作用是定义一个文件指针变量,其中的FILE是在stdio.h_____头文件中定义的。16.若有以下说明和定义语句,则变量w在内存中所占的字节数是_34_______。unionaa{floatx;floaty;charc[6];};structst{unionaav;floats[5];doubleave;}w;17.设有语句inty;y=sizeof(2.25*4);则y的值是____8_____。18.已知inta=1,b=3则a^b的值为___2_______。19.下面程序段的运行结果是___ef_____。charstr[]=abc\0def\0ghi,*p=str;printf(%s,p+5);20.表达式0x13|0x17的值是__ox17________。21.rewind函数的作用是_使文件位置标记指向文件开始位置________。22.与表达式a&=b等价的另一书写形式是___a=a&b______。23.若有以下定义和语句:inta[4]={0,1,2,3,4},*p;p=&a[1];则++(*p)的值是___2_____。224.若有int(*p)[4];则p是_指向包含4个整型元素的一维数组的指针变量。25.表达式071∧052的值是___o23______26.表达式0x14&0x18的值是__ox10_______。27.设有定义:int(*p)(int,int),则p是___指向函数入口地址的指针变量。28.fclose函数当成功地执行了关闭操作,则返回值为___0___________。29.设有定义inta[3][4],*p;若二维数组的首行首地址为2000,一个整型数据占4个字节,则a+1的首地址是__2016___________。30.表达式3&5的值是_____1_______。31.设有定义uniondata{inti;'2charch;floatf;}a;则变量a所占内存长度为_____4_______个字节。32.若p是指向某一结构体变量的指针变量,则通过指变量对结构体成员的引用方法有:_____p-__________和_____(*p)._________。33.设a是二维数组名,则a[0]表示___0行0列元素地址__________________。34.设有语句:char*a=I_love_china!;a=a+7;则执行printf(“%s\n”,a);的输出结果是_china!____________。35.设intb[]={1,2,3,4},y,*p=b;则执行语句y=*p++;之后,变量y的值为__1_____。36.设inta[3][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为_3_____。程序阅读题1.下面的程序是求表达式的值:s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1)),请填空。#includestdio.h#includemath.hdoublefun(intn){doubles,t;inti;___s=1_______;t=1.0;for(i=1;i=n;i++){t=t*i/(2*i+1);3______s+=t_________;}returns;}main(){printf(\n%12.10lf,fun(25));}2.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。#includestring.h#includestdio.hsort(char*a[],intn){inti,j;char*p;for(j=1;j=__n-1________;j++)for(i=0;_in-j_______;i++)if(___strcmp(a[i],a[i+1])___0){p=a[i];a[i]=a[i+1];a[i+1]=p;}}3.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。#includestdio.hFILE*fp;{charch;if((fp=fopen(“bi.dat”,w___________))==NULL)exit(0);while((ch=getchar())!='___@____')fputc(ch,fp);fclose(fp);}4.若已定义:structnum{inta;intb;floatf;}n={1,3,5.0};structnum*pn=&n;4则表达式pn-b/n.a*++pn-b的值是_12________,表达式(*pn).a+pn-f的值是____6.0__。5.下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include#include#defineM81intfun(char*ss,charc){inti=0;for(;___*ss!='\0'_____________;ss++)if(*ss==c)i++;returni;}main(){chara[M],ch;clrscr();printf(pleaseenterastring:\n);gets(a);printf(pleaseenterachar:;ch=getchar());printf(\nThenumberofthecharis:%d\n,fun(__a[M],ch______));}6.下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回,n是数据个数。请填空。voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;___in________;i++)if(*max___a[i]_________){*max=a[i];*d=i;}}7.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。voidfun(char*w,charx,int*n){inti,p;p=0;while(xw[p])p++;for(i=*n;ip;i--)w[i]=__w[i-1]____________;w[p]=____x________;5++*n;}8.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int*p,intn){int*q;intmax,min;max=min=*p;for(q=p;q__p+n______;q++)if(*qmax)max=*q;elseif(___*qmin_____________)min=*q;}9.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。#includemain(){FILE*fp;chara[4]=1234,b[6]=abcedf;if((fp=fopen(_lett.dat___,wb))=NULL)exit(0);fwrite(a,sizeof(char),4,fp);fwrite(b,_6_,1,fp);fclose(fp);}10.函数primedec(m)是求整数m的所有素数因子,并输出。如:m为120时。输出的素数因子为:2,2,2,3,5程序如下:primedec(intm){intk=2;while(k=m)if(___m%k==0________){printf(“%d,”,k);m=m/k}elsek++;}11.以下程序是将一个磁盘文件中的信息复制到另一个磁盘文件中。请填空。#includestdlib.h#includestdio.h6voidmain(){FILE*in,*out;charch,infile[10],outfile[10];printf(Entertheinfilename:\n);scanf(%s,infile);printf(Entertheoutfilename:\n);scanf(%s,outfile);if((in=fopen(__infile,r_______))==NULL){printf(cannotopeninfile\n);exit(0);}if((out=fopen(outfile,w))==NULL){printf(cannotopenoutfile\n);exit(0);}while(___!feof_______(in))fputc(fgetc(in),out);fclose(in);fclose(out);}12.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#defineN3#defineM3intselect(inta[N][M],int*n){inti,j,row=1,colum=1;for(i=0;iN;i++)for(j=0;jM;j++)if(a[i][j]a[row][colum]){row=i;colum=j;}*n=_row_________;return_a[row][colum]________;}main(){inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;max=select(a,&n);printf(max=%d,line=%d\n,max,n);13.下面程序是对输入的两个整数按大小顺序输出。请填空。#includestdio.hintmain(){voidswap(int*p1,int*p2);(226)inta,b;7int*pointer_1,*pointer_2;printf(pleaseenteraandb:);scanf(%d,%d,&a,&b);pointer_1=&a;pointer_

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

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

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

×
保存成功