c语言习题 谭浩强 有答案版Word下载.docx

上传人:b****7 文档编号:22378463 上传时间:2023-02-03 格式:DOCX 页数:29 大小:25.27KB
下载 相关 举报
c语言习题 谭浩强 有答案版Word下载.docx_第1页
第1页 / 共29页
c语言习题 谭浩强 有答案版Word下载.docx_第2页
第2页 / 共29页
c语言习题 谭浩强 有答案版Word下载.docx_第3页
第3页 / 共29页
c语言习题 谭浩强 有答案版Word下载.docx_第4页
第4页 / 共29页
c语言习题 谭浩强 有答案版Word下载.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

c语言习题 谭浩强 有答案版Word下载.docx

《c语言习题 谭浩强 有答案版Word下载.docx》由会员分享,可在线阅读,更多相关《c语言习题 谭浩强 有答案版Word下载.docx(29页珍藏版)》请在冰豆网上搜索。

c语言习题 谭浩强 有答案版Word下载.docx

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;

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.设有语句:

a=a+7;

的输出结果是_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<

stdio.h>

math.h>

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"

stdio.h"

sort(char*a[],intn)

{inti,j;

char*p;

for(j=1;

j<

=__n-1________;

j++)

for(i=0;

_i<

n-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的新文件中,请填空。

FILE*fp;

{charch;

if((fp=fopen(“bi.dat”,"

w"

___________))==NULL)exit(0);

while((ch=getchar())!

='

___@____'

)fputc(ch,fp);

fclose(fp);

4.若已定义:

structnum

{inta;

intb;

}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

#defineM81

intfun(char*ss,charc)

{inti=0;

for(;

___*ss!

\0'

_____________;

ss++)

if(*ss==c)i++;

returni;

{chara[M],ch;

clrscr();

pleaseenterastring:

\n"

);

gets(a);

pleaseenterachar:

"

ch=getchar());

\nThenumberofthecharis:

%d\n"

fun(__a[M],ch______));

6.下面函数的功能是:

找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回,n是数据个数。

请填空。

voidfun(inta[],intn,int*max,int*d)

{inti;

*max=a[0];

*d=0;

___i<

n________;

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<

min_____________)min=*q;

9.以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。

{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);

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.以下程序是将一个磁盘文件中的信息复制到另一个磁盘文件中。

stdlib.h>

voidmain()

{FILE*in,*out;

charch,infile[10],outfile[10];

printf("

Entertheinfilename:

\n"

scanf("

infile);

Entertheoutfilename:

outfile);

if((in=fopen(__infile,"

r"

_______))==NULL)

{printf("

cannotopeninfile\n"

exit(0);

}

if((out=fopen(outfile,"

))==NULL)

cannotopenoutfile\n"

while(___!

feof_______(in))fputc(fgetc(in),out);

fclose(in);

fclose(out);

12.以下程序中,select函数的功能是:

在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。

#defineN3

#defineM3

intselect(inta[N][M],int*n)

{inti,j,row=1,colum=1;

N;

i++)

for(j=0;

M;

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);

max=%d,line=%d\n"

max,n);

13.下面程序是对输入的两个整数按大小顺序输出。

intmain()

{voidswap(int*p1,int*p2);

(226)

inta,b;

int*pointer_1,*pointer_2;

pleaseenteraandb:

%d,%d"

&

a,&

b);

pointer_1=&

a;

pointer_2=&

b;

if(a<

b)swap(___pointer_1,pointer_2______);

max=%d,min=%d\n"

a,b);

return0;

voidswap(int*p1,int*p2)

{int__temp______;

temp=*p1;

(p256)

*p1=*p2;

*p2=temp;

14.以下程序将数组a中的数据按逆序存放。

#defineM8

{inta[M],i,j,t;

for(i=0;

i++)scanf("

%d"

,a+i);

i=0;

j=M-1;

while(i<

j)

{t=*(a+i);

*(a+i)=*(a+j)_________;

*(__a+j_____)=t;

i++;

j--;

i++)printf("

%3d"

,*(a+i));

15.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。

intmystrlen(char*str)

__str[i]_______!

=‘\0'

i++);

return(___i____);

16.下面的程序中,函数fun的功能是:

根据形参m,计算下面公式的值。

T=1+1/(2*3)+1/(3*4)+……+1/(m*(m+1))请填空。

#include<

conio.h>

doublefun(intm)

{doublet=1.0;

inti=2;

for(i=2;

i<

=m;

i++)

t+=1.0/(i*(i+1));

____return(t)_________;

{intm;

\n请输入一个整数:

scanf("

m);

\n结果是:

%lf\n"

______fun(m)_______);

17.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>

t时返回正值,当s<

t时返回负值。

  my_cmp(char*s,char*t)

  {while(*s==*t)

  {if(*s==__‘\0’_________)return0;

  ++s;

++t;

  }

return__(*s-*t)_________;

  }

18.以下函数set用来建立一个带头结点的单向链表,新产生的结点总是插入在链表的末尾,每个结点数据域为从键盘输入的单个字符。

单向链表的头指针作为函数值返回,回车键结束输入。

(注:

在单链表的第一个结点之前附设一个结点,称之为头结点,头结点的数据域可以不存储任何信息。

structnode{chardata;

structnode*next;

structnode*set()

{structnode*t1,*t2,*t3;

charch;

t1=(structnode*)malloc(sizeof(structnode));

t3=t2=t1;

ch=getchar();

while(ch!

=’_\n_________’)

{t2=___(structnode*)_malloc(sizeof(structnode));

t2->

data=ch;

t3->

next=t2;

t3=t2;

next=NULL;

_return(t1)____;

19.下面程序是判断输入的字符串是否是“回文”,(正读和倒读都一样的字符串称“回文”,如level)。

string,h>

{chars[81],*p1,*p2;

intn;

gets(s);

n=strlen(s);

p1=s;

p2=___s+n-1___________;

while(p1<

p2)

{if(*p1!

=*p2)break;

else{p1++;

_p2--_________;

if(p1<

p2)printf("

NO\n"

elseprintf("

Yes\n"

20.以下函数用来对n个数按由大到小排序,请填空。

voidsort(int*x,intn)

{inti,j,k,t;

n-1;

{k=i;

for(j=i+1;

if(*(x+j)>

*(x+k))___k=j_________;

if(k!

=i)

{t=*(x+i);

_*(x+i)=*(x+k)___;

*(x+k)=t;

21.设函数findbig已定义为求3个数中的最大值。

以下程序将利用函数指针调用findbig函数。

{intfindbig(int,int,int);

int(*f)(),x,yz,z,big;

f=_findbig_________;

%d%d%d"

x,&

y,&

z);

big=____(*f)______(x,y,z);

bing=%d\n"

big);

22.以下程序是将若干字符串按字母顺序(由小到大)输出。

string.h>

voidmain()

{voidsort(char*name[],intn);

voidprint(char*name[],intn);

char*name[]={"

Followme"

BASIC"

GreatWall"

FORTRAN"

Computerdesign"

};

intn=5;

sort(name,n);

print(name,n);

voidsort(char*name[],intn)

{char*temp;

inti,j,k;

{k=i;

if(strcmp(name[k],name[j])>

0)__k=j___________;

{temp=name[i];

__name[i]=name[k]_______;

name[k]=temp;

voidprint(char*name[],intn)

{inti;

%s\n"

name[i]);

23.以下程序为从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止。

#include<

voidmain(void)

{FILE*fp;

charch,filename[10];

filename);

if((fp=fopen(__filename,"

____________))==NULL)

{

cannotopenfile\n"

ch=getchar();

while(ch!

#'

_fputc(ch,fp)__________;

putchar(ch);

ch=getchar();

}

fclose(fp);

24.以下程序的功能是:

通过指针操作,找出三个整数中的最小值并输出。

{int*a,*b,*c,num,x,y,z;

a=&

x;

b=&

y;

c=&

z;

输入3个整数:

,x,y,z);

%d,%d,%d\n"

,*a,*b,*c);

num=*a;

if(*a>

*b)__num=*b__________;

if(num>

*c)__num=*c_________;

printf("

输出最小整数:

%d\n"

num);

25.下面程序段中,for循环的执行次数是____6_____。

char*s="

\ta\018bc"

*s!

s++)

*"

26.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带头结点)。

structlink

{chardata;

structlink*next;

};

structlink*p,*first;

intc=0;

p=first;

while(p!

=NULL________)

{c++;

p=P->

next___;

27.下面的程序是求如下表达式的值。

s=sqrt(ln

(1)+ln

(2)+ln(3)+……+ln(n)),当n=50时,给出程序运行结果(保留6位小数)。

doublefun(in

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1