C语言习题Word格式.docx

上传人:b****8 文档编号:22672166 上传时间:2023-02-05 格式:DOCX 页数:8 大小:16.80KB
下载 相关 举报
C语言习题Word格式.docx_第1页
第1页 / 共8页
C语言习题Word格式.docx_第2页
第2页 / 共8页
C语言习题Word格式.docx_第3页
第3页 / 共8页
C语言习题Word格式.docx_第4页
第4页 / 共8页
C语言习题Word格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C语言习题Word格式.docx

《C语言习题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言习题Word格式.docx(8页珍藏版)》请在冰豆网上搜索。

C语言习题Word格式.docx

5.设有说明ints[2]={0,1},*p=s;

则下列错误的C语句是()

A.s+=1;

B.p+=1;

C.*p++;

D.(*p)++;

二、填空题(每小题2分,共12分)

1.char(*pa)[10];

说明pa是______________。

2.inta=1,b=2,c=3;

表达式!

(x=a)&

&

(y=b)&

1+a==b的值为____________。

3.表达式98&

8&

31&

1的值为______________。

4.printf("

%5.3f\n"

123456.12345);

输出为_____________。

5.表达式~3&

(2&

(3^4))的值为_______________。

6.floatx=3.5,y=4.3;

inta=8,表达式y+a%3*(int)((x+y)/4+0.05)/3的值为_____________。

三、改错题(每小题6分,共12分)

1.下列程序是用二分法在递增的数组中查找某个数,若存在,输出该数的下标位置;

否则输出-1。

main()

{intlow,hig,mid,flag=0,key;

staticinta[7]={10,13,15,17,19,21,25,28};

scanf(“%d”,&

key);

for(low=0,hig=7;

low<

=hig&

flag==0;

{mid=(low+hig)/2;

if(a[mid]==key)flag=1;

elseif(a[mid]<

hig=mid-1

elselow=mid+1;

}

if(flag)printf(“%d\n”,mid);

elseprintf(“-1”);

2.下列程序是输入n(0<

n<

=100)个整数,计算n个整数之和并输出。

#defineN100

intsum(int*b,m)

{ints=0;

for(;

m--;

s+=*b++;

returns;

{inti,n,a[N];

do{printf(“Entern(0<

=100)\n”);

scanf(“%4d”,&

n);

}while(n>

0&

=100);

printf(“Entera[0]---a[%d]\n”,n-1);

for(i=0;

i<

n;

i++)

scanf(“%d”,a++);

printf(“sum=%d\n”,sum(a,n));

}

四、程序分析,给出下列各程序的执行结果(输出)

1.main()(2分)

{inta=6;

a+=a%=a*=a+a;

printf(“%d\n”,a);

}

程序的运行结果为:

2.main()(6分)

{int*p,*q,n;

p=(int*)malloc(n*sizeof(int));

for(q=p+n-1;

q>

=p;

q--)

scanf(“%d”,q);

p<

=q;

p++)

printf(“%3d”,*p);

当输入数据序列为842651387↙时

程序的输出结果为:

3. 

main()(5分)

{inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;

for(i=0;

4;

i++)p[i]=&

a[i*3];

printf(“%d\n”,p[3][2]);

4. 

main()(5分)

{inta[][4]={1,3,5,7,9,11,13,17,19,21,23};

int(*p)[4],i=1,j=2;

p=a;

printf(“%d\n”,*(*(p+i)+j));

}

5.#include<

stdio.h>

(6分)

intf(intn)

{staticints=1;

while(n)s*=n--;

returns;

main()

{inti,j;

i=f(3);

j=f(5);

printf("

\nTheoutputis:

\n\n"

);

i=%dj=%d\n"

i,j);

程序的运行结果为:

6.#include<

(8分)

inta[10]={1,2,3,4,5,6,7,8,9,10};

voidrev(int*m,intn)

{intt;

if(n>

1)

{t=*m;

*m=*(m+n-1);

*(m+n-1)=t;

rev(m+1,n-2);

{inti;

rev(a+2,6);

10;

i++)

%d"

a[i]);

\n"

rev(a,5);

7.typedefstructnode(3分)

{intx;

char*s;

}node;

func(nodet)

{t.x=10;

t.s=”computer”;

return(0);

main()

{nodet;

t.x=1;

t.s=”minicomputer”;

func(t);

printf(“%d,%s”,t.x,t.s);

8.#definen 

6(6分)

{intx[n]={6,2,7,3,9,1},i,j,flag,temp;

n-1;

{flag=0;

for(j=n-1;

j>

i;

j--)

if(x[j]<

x[j-1]){temp=x[j];

x[j]=x[j-1];

x[j-1]=temp;

flag=1;

if(!

flag)break;

for(j=0;

j<

j++)printf(“%3d”,x[j]);

五、在下面程序中横线处填上适当语句或表达式(每个空格3分,共30分)。

本函数是判断整数m是不是素数。

#include<

math.h>

voidprime(intm)

{intj,k;

k=sqrt(m);

for(j=2;

(1);

j++)

if(

(2))break;

if((3))printf(“%disaprimenumber\n”);

elseprintf(“%disnotaprimenumber\n”);

2.本程序是将十进制数n转化为d进制数(2≤d≤16)。

intchange(intn,intd,char*a)

{intr,i=0;

while(

(1))

{r=n%d;

if(r<

10)r=r+

(2);

elser=r+(3);

*ai++=r;

i++;

n=n/d;

returni-1;

{intn,d,i,j;

charx[100];

printf(“inputn,d:

”);

scanf(“%d%d”,&

n,&

d);

j=change((4));

printf(“\noutput:

for(i=j;

i>

=0;

i--)printf(“%c”,x[i]);

3.本程序是将10个学生的信息放在一个链表中。

structstudent

{intno;

charname[12];

floatscore;

structstudent*next;

};

{structstudent*head,*p,*q;

intj;

for(j=1;

=10;

j++)

{if(

(1)){head=(structstudent*)malloc(sizeof(structstudent));

p=head;

else{q=(structstudent*)malloc(sizeof(structstudent));

(2);

p=q;

scanf(“%d,%s,%f”,&

p->

no,&

name,&

score);

(3)=NULL;

while((4))

{printf(“\n%d,%s,%4.1f”,p->

no,p->

name,p->

p=p->

next;

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

当前位置:首页 > 工程科技 > 电子电路

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

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