c语言习题谭浩强有参考答案版.docx
- 文档编号:2370020
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:24
- 大小:25.34KB
c语言习题谭浩强有参考答案版.docx
《c语言习题谭浩强有参考答案版.docx》由会员分享,可在线阅读,更多相关《c语言习题谭浩强有参考答案版.docx(24页珍藏版)》请在冰豆网上搜索。
c语言习题谭浩强有参考答案版
1.若有以下定义和语句:
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_____。
24.若有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;'2
charch;
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)),请填空。
#include
#include
doublefun(intn)
{doubles,t;
inti;
___s=1_______;
t=1.0;
for(i=1;i<=n;i++)
{t=t*i/(2*i+1);
______s+=t_________;
}
returns;
}
main()
{printf("\n%12.10lf",fun(25));
}
2.下面程序的功能是:
对字符串从小到大进行排序并输出,请填空。
#include"string.h"
#include"stdio.h"
sort(char*a[],intn)
{inti,j;
char*p;
for(j=1;j<=__n-1________;j++)
for(i=0;_i if(___strcmp(a[i],a[i+1])___>0) {p=a[i]; a[i]=a[i+1]; a[i+1]=p; } } 3.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。 #include"stdio.h" FILE*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; 则表达式pn->b/n.a*++pn->b的值是_12________,表达式(*pn).a+pn->f的值是____6.0__。 5.下列程序的功能是: 求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include #include #defineM81 intfun(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;___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(x>w[p])p++; for(i=*n;i>p;i--)w[i]=__w[i-1]____________; w[p]=____x________; ++*n; } 8.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。 fun(int*p,intn) {int*q; intmax,min; max=min=*p; for(q=p;q<__p+n______;q++) if(*q>max)max=*q; elseif(___*q } 9.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。 #include main() {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 } else k++; } 11.以下程序是将一个磁盘文件中的信息复制到另一个磁盘文件中。 请填空。 #include #include voidmain() {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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 谭浩强有 参考答案