程序设计基础(C语言)上机指导与习题集-习题参考答案_第1页
程序设计基础(C语言)上机指导与习题集-习题参考答案_第2页
程序设计基础(C语言)上机指导与习题集-习题参考答案_第3页
程序设计基础(C语言)上机指导与习题集-习题参考答案_第4页
程序设计基础(C语言)上机指导与习题集-习题参考答案_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础(C语言)习题参考答案

习题1

一、单项选择题

12345678910

BBCBCDCBBA

11121314151617181920

BCABCCDDAB

二、填空题

12345

C89

编译器编辑器发现并修正错误

Cll

678910

printf()scanf()stdio.h函数体函数

三、判断题

12345678910

错对错错对对对对错错

四、编程题

习题2

单项选择题

12345678910

BBCDCDCAAA

11121314151617181920

DCDBBADACC

二、填空题

12345

0399符号常量double

678910

6.50183013

三、判断题

12345678910

错错错错错错对错错错

四、编程题

1、

■C:\WINOOWSVyrtEJ2Umde»e

a=61,b=62

cl二a,c2二b

d=3.56,e=-6.87

f=3157.890121,g=0.123456789000

m二50000,n=-60000

【)二32768,d-40000

①请按任意键继续...

■CAWNDOWS\tyMwn3Acmd<w□

0=50000,b=-60000

cl=,c2=>

:d=3157.89,e=6.87

f=3157.890121,g=0.123456789000

m-50000,n=-60000

p=50000,q=4294907296

请按任意键继续...■

I*A«K\WWP0W9«yMmKTxmdnv

61,62,a,b,3,56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000

g61,b=62

cl=a,c2=b

d=3.56,e=-6.87

f=3157.890121,g=0.123456789000

m=50000,n-60000

p-37678,q=40000

③国按任意键继续...■

g|C\WIHDOMS\«yM»mVMmilnr□X

61.62,a,b,3,56,6.87,3157.890121,0.123456789,50000,60000,37678,40000:

si=61,b-62

cl=a,c2=b

d=3.560000,e=-6.869999885559

厂3157.890121,g=0.123457

m-50000,n=-60000

—37678,q=40000

公清按任意键继续.•.

④V

■<AVMDOWMv«temlAca>dne丁

61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000

a=61,b62

cl=a,c2=b

d:3.560000,e=-6.869999885559

「3157.890121,g0.123457

m=50000,n=-60000

I)=1H456,q=l16100

请按任意键继续...

■,-

61,62,a,b,3.56,-6.87,3157.890121,0.123156789,50000,-60000,37678,40000

H^>IJI-62

|cl=a,c2=b

d=3.560000,e=6.869999885559

门-92559605387113434000000000000000000000000000000000000000000000.000000,g-9255960399190

717500000000000000(XX)0000(X)000000(XX)(X)0(MX)0000000.000000

m50000.11-60000

p=i11456.g=li6100

⑥请按任意犍维续....

2、

include<stdio.h>

intmain()

(

intags,b,q;

scanf("%d"z&a);

g=a%10;

s=a%100/10;

b=a%1000/100;

q=a/1000;

printf("g=%d,s=%d/b=%d/q=%d"zg,s/b,q);

return0;

}

习题3

单项选择题

12345678910

cABABBCADD

11121314151617181920

BDCBBDCCCB

二、填空题

12345

第一空第二空

num/10%10num%10

&a,&b,&ca-b

或或20+30=5070,72,FHa=70,b=72

a+b+ca-b

num%100/10num-a*100-b*10

(num-a*100)/10

678910

BBBBFa-u=2,b-u=1459y=3,x=2

三、判断题

1*2345678910

对错对错错错对错错错

*扩展知识——%*d的使用:

在C语言中%*d表示忽略第一个整数,而%*d中的*是一个标志符号,用来表示跳过它相应数据,使

下一个输入的内容复制给紧接着的变量。

四、编程题

1、

#include<stdio.h>

intmain()

(

chara,b;

a=getchar();

printf("a=%c\n"/a);

return0;

)

include<stdio.h>

intmain()

(

chara,b;

scanf("%cH,&b);

putchar(b);

return0;

)

2、

include<stdio.h>

intmain()

(

chars,sl,s2;

scanf(“%c”,&s);

sl=s-l;

s2=s+l;

printf("sl=%c,s=%c/s2=%c\n"/sl,s,s2);

printf("sl=%d,s=%d,s2=%d\n",sl,s,s2);

return0;

习题4

选择题

12345678910

cCDDDDCADD

11121314151617181920

AAADACAABC

二、填空题

12345

result==0break

02330

result==2default

678910

58585813a=2,b=10

三、判断题

12345678910

对对错错对错错错错错

四、编程题

1、

include<stdio.h>

intmain()

(

intx,y;

if(x>=0)

y=3*x+6;

else

y=-(x*x)+2*x+8;

printf("x=%d\n"zx);

return0;

}

2、

/include<stdio.h>

intmain()

(

intx,y;

floatm;

printf("输入字数:");

scanf("%d",&x);

printf("输入加急否(1加急/0普通)");

scanf(”%d”,&y);

if(x>=0&&y==0)

{m=x*0.75;

printf("m=%.2f",m);}

elseif(x>=0&&y==l)

{m=x*0.75*2;

,,

printf('m=%.2f'/m);}

else

printf("输入错误”);

return0;

)

3、

include<stdio.h>

intmain()

intx;

printf("输入班级(21-26):");

scanf("%dH,&x);

switch(x)

case21:printf("人数=45");break;

case22:printf("人数=51");break;

case23:printf("人数=48");break;

case24:printf("人数=46");break;

case25:printf("人数=48");break;

case26:printf("A^=52");break;

)

return0;

)

习题五

一、选择题

12345678910

BBACADCDCB

11121314151617181920

ACCABDACDC

二、填空题

12345

第一空第二空

第一空第二空a!=bbreak

1.0/i/isqrt(6*s)

i<=200&&sum<=100continue

&&或1.0/(i*i)scanf("%d%d",&a,&b)i>20

或sum<=100

678910

8

5B6120

0

三、判断题

1*2345678910

对错对错对错对错错错

四、编程题

(1)

#include<stdio.h>

intmain()

(

intn,i,j,k;

printf("请输入n(n<13):");

scanf(“%d,&n);

for(i=l;i<=n;i++)〃上三角形共n行

(

for(j=l;j<=(n-i);j++)〃每行先输出n-i个空格

printf(n");

for(k=l;k<=(2*i-l);k++)〃每行输出2*i-l个星号

printf("*");

printf("\n");

)

for(i=l;i<=n-l;i++)〃下三角形有n-1行

(

for(j=l;j<=i;j++)

printf(n");

for(k=l;k<=(2*n-2*i-l);k++)

printf("*");

printfCXn'1);

)

return0;

)

(2)

include<stdio.h>

intmain()

{

inti;

for(i=2;i<=9;i++)〃循环判断2〜9有没有同构数

if(i==i*i%10)

printf("同构数%d是%€1右边的数\n",i,i*i);

}

for(i=10;i<=99;i++)〃循环判断10〜99有没有同构数

(

if(i==i*i%100)

printf("同构数%d是%(1右边的数\n,i,i*i);

)

return0;

}

(3)

include<stdio.h>

include<math.h>

intmain()

(

intn=0zs=l;

doublexzitem,sum=0;

scanf(“%lf“,&x);

item=x;〃item为泰勒级公式当前项,初始设为第一项

while(fabs(item)>=le-5)

(

sum=sum+item;〃将当前项加入总和

n++;〃项数+1

s=(2*n+l)*2*n;〃分母中比前项多出的两项的乘积

item=(-l)*item*x*x/s;〃在前项基础上计算当前项

}

sum=sum+item;〃加入最后一项

n++;

printf("sin(%lf)=%lf,累计d%d项\n”,x,sum,n);

return0;

)

习题6

一、单项选择题

12345678

DCDBCDAB

9101112131415

CBDCCCC

二、填空题

1234567

0初始化&a[i]a[i]aa[i][i]a/100%10

i%4==0i++aa[i][3-i]aa[i]=aa[i]%10

printf("\n”)bU]sum/ni<2

j++x[i]<ave

三、判断题

123456

错对对对错错

789101112

错错错错对错

四、编程题

1、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM10

intmain()

{

int

for(i=0;i<M;i++)

scanf(n%dn,&a[i]);

for(i=0;i<M-1;i++)

for(j=0;j<M-l-i;j++)

if(a[j]<aLj+l])

(

t=a[j];

a[j]=a[j+l];

a[j+l]=t;

)

for(i=0;i<M;i++)

printf(n%dn,a[i]);

system,pause");

return0;

)

2、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM10

intmain()

(

inta[M],i,t;

for(i=0;i<M;i++)

scanf("%d”,&a[i]);

for(i=0;i<M/2;i++)

(

t=a[i];

aLiJ=a[M-l-i];

a[M-l-i]=t;

)

for(i=0;i<M;i++)

printf(u%dn,a[i]);

system("pauseu);

return0;

)

3、参考程序

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

intmain()

{

charstr[5][80],t[80];

inti,j;

for(i=0;i<5;i++)

gets(str[i]);

for(i=0;i<4;i++)

for(j=i;j<5;j++)

if(strcmp(str[i],str|j])>0)

(

strcpy(t,str[i]);

strcpy(str[i],strfj]);

strcpy(str[j],t);

)

for(i=0;i<5;i++)

puts(str[i]);

system(^'pause'^);

return0;

)

4、参考程序

#include<stdio.h>

#include<stdlib.h>

intmain()

(

inta[5],n,i,j,t;

do

scanf("%d”,&n);

}while(n<10000||n>99999);

i=0;

while(n)

{

a[i]=n%10;

n=n/10;

i++;

)

for(i=0;i<4;i++)

for(j=i;j<5;j++)

if(a[i]<a[j])

(

t=a[i];

a[i]=a[j];

a[j]=t;

)

n=0;

for(i=0;i<5;i++)

n=n*10+a[i];

printf("%d\nH,n);

system(,,pauseH);

return0;

)

5、参考程序

#include<stdio.h>

#include<stdlib.h>

intmain()

(

inta[3][4],i,j,t,Max,pos;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf(M%dM,&a[i][j]);

for(i=0;i<3;i++)

(

Max=a[i][0];

pos=0;

for(j=1;j<4;j++)

if(a[i]fj]>Max)

{

Max=a[i]fj];

pos=j;

)

if(pos!=0)

t=a[i][O];

a[i][0]=a[i][pos];

a[i][posj=t;

)

)

for(i=0;i<3;i++)

(

for(j=0;j<4;j++)

printf(M%d\a[i][j]);

printf(u\nn);

)

system(npauseu);

return0;

)

6、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM3

#defineN4

intmain()

(

inta[M][N],b[N][M],i,j;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

scanf(n%dn,&a[i][j]);

for(i=0;i<N;i++)

for(j=0;j<M;j++)

b[i][j]=a[j][i];

for(i=0;i<N;i++)

(

for(j=0;j<M;j++)

printf("%dn,b[i][j]);

printf(u\nn);

)

system(,,pausen);

return0;

)

7、参考程序

#inckide<stdio.h>

#include<stdlib.h>

intmain()

(

charstrI[80],str2[80];

inti=0,j=0;

gets(strl);

while(strl[i]!=,\0,)

if(strl[i]%2==l)

(

str2[j]=strl[i];

j++;

)

i++;

)

str2[j尸\0,;

puts(str2);

systemCpause'*);

return0;

)

8、参考程序

#include<stdio.h>

#include<stdlib.h>

intmain()

(

charstr[80],str114]={'a'/e'/oVu,};

intnum[4]={0},i=0;

gets(str);

while(str[i]!='\0')

(

switch(str[i])

(

case'a':

num[0J++;

i++;

break;

caseV:

num[l]++;

i++;

break;

case'o':

num[2]++;

i++;

break;

caseU:

num[3]++;

i++;

break;

default:

i++;

)

)

for(i=0;i<4;i++)

printf("%c-----%d\nH,strl[i],num[i]);

system("pauseu);

return0;

习题7

一、单项选择题

12345678

ABADDDAA

9101112131415

CBBDBDB

二、填空题

12345

动态存储0不起作用(失效)预处理阶段运行

编译

6789

-fp=jsum=0voidchange(charstr[])

fsum(20)X&nstrlen(str)-1

三、判断题

12345678

对错错错错对错对

9101112131415

错对错错错错错

四、编程题

1、参考程序

#include<stdio.h>

#include<stdlib.h>

intisprime(intn)

(

intm;

for(m=2;m<n;m++)

if(n%m==O)

return0;

return1;

)

intmain()

(

intk,i=0;

for(k=5;k<=200;k+=2)

(

if(isprime(k))

(

printf("%4d",k);

i++;

if(i%5==0)

printf(,,\nn);

system(npauseu);

return0;

)

2、参考程序

#include<stdio.h>

#include<stdlib.h>

intisprime(intn)

(

intm;

for(m=2;m<n;m++)

if(n%m==0)

return0;

return1;

)

intmain()

{

intk,l;

for(k=6;k<=200;k+=2)

(

for(l=3;l<=k/2;l++)

if(isprime(l)&&isprime(k-l))

printf(n%d=%d+%d\nn,k,l,k-l);

)

system(^'pause'^);

return0;

)

3、参考程序

#include<stdio.h>

#include<stdlib.h>

floatave(floata[],intn)

{

inti;

floatsum=0;

for(i=0;i<n;i++)

sum+=a[i];

returnsum/n;

)

intmain()

(

inti;

floata[IOJ,ave1;

for(i=0;i<10;i++)

scanf("%f\&a[ij);

avel=ave(a,10);

for(i=0;i<10;i++)

if(a[i]<avel)

primf("%f\a[i]);

system("pausen);

return0;

)

4、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM4

voidinput(inta[M][MJ)

(

inti,j;

for(i=0;i<M;i++)

for(j=0;j<M;j++)

scanf("%dn,&a[i][j]);

)

intisduichen(inta[M][M])

(

inti,j;

for(i=0;i<M;i++)

for(j=0;j<M;j++)

if(a[i]U]!=aU][i])

retum0;

return1;

)

5、参考程序

#include<stdio.h>

#include<stdlib.h>

intisshuixianhua(intn)

(

inta,b,c;

a=n%10;

b=n/10%10;

c=n/100;

if(n二二a*a*a+b*b*b+c*c*c)

return1;

else

return0;

)

intmain()

(

inti;

for(i=100;i<1000;i++)

if(isshuixianhua(i))

printf(n%d\n",i);

system,pause");

return0;

6^参考程序

#include<stdio.h>

#include<stdlib.h>

intnum(intn)

(

intm=O,gewei,k;

gewei=n%10;

while(n)

(

k=n%10;

if(k==gewei)

m++;

n=n/10;

)

returnm;

)

intmain()

(

intk;

scanf(n%du,&k);

printf(,,%d\n',,num(k));

system(npauseu);

return0;

习题8

一、单项选择题

123456789

BAACABADA

1011121314151617

BCDBCAAD

二、填空题

12345

2a[2][3]a[3]返回指针的函数*(t+j)=*(t+i)

指向函数的指针*(t+j尸\(y

6789

*p>*sp=aPfi]=a[i]

x,5q-*(p[i]+3-i)

三、判断题

12345678

错错对错对对错错

9101112131415

错错对对对错错

四、编程题

1、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM10

voidsort(int*p,intn)

(

int

for(i=0;i<n-l;i++)

for(j=0;j<n-l-i;j++)

if(*(p+j)<*(p+j+l))

(

t=*(p+j);

*(p+j)=*(p+j+l);

*(p+j+l)=t;

intmain()

(

inta[M],i;

for(i=0;i<M;i++)

scanf(n%d';&a[i]);

sort(a,M);

for(i=0;i<M;i++)

printf("%dM,a[i]);

system("pausen);

return0;

)

2、参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM10

voidchange(int*p,intn)

(

inti,t;

for(i=0;i〈iV2;i++)

(

t=*(p+i);

*(p+i)=*(p+M-1-i);

*(p+M-l-i)=t;

)

)

intmain()

(

int

for(i=0;i<M;i++)

scanf(',%d,,,&a[ij);

change(a,M);

for(i=0;i<M;i++)

printf("%dn,a[i]);

system(npauseu);

return0;

}

3、参考程序

#include<stdio.h>

#include<stdlib.h>

intmain()

(

inta[3J[4J,i,j,t,Max,pos;

int*p[3];

for(i=0;i<3;i++)

p[i]=a[i];

for(i=0;i<3;i++)

for(j=0;j<4;j++)

scanf(M%dn,p[i]+j);

for(i=0;i<3;i++)

(

Max=*(p[il+0);

pos=0;

for(j=l;j<4;j++)

if(*(p[i]+j)>Max)

Max=*(p[i]+j);

pos=j;

)

if(pos!=0)

(

t=*(p[i]+O);

*(p[i]+0)=*(p[i]+pos);

*(p[i]+pos)=t;

)

)

for(i=0;i<3;i++)

(

for(j=0;j<4;j++)

printf(n%dn*(p[i]+j));

printf(u\nn);

)

system("pauseu);

return0;

)

4^参考程序

#include<stdio.h>

#include<stdlib.h>

#defineM3

#defineN4

intmain()

(

inta[M][N],b[N][M],i,j,*p,*q;

p=&a[0][0];

q=&bl0J[0J;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

scanf(,,%dM,p+i*N+j);

for(i=0;i<N;i++)

for(j=0;j<M;j++)

*(q+i*M+j)=*(p+j*N+i);

for(i=0;i<N;i++)

(

for(j=0;j<M;j++)

printf(M%d”,*(q+i*M+j));

printf("\nu);

)

system("pausen);

return0;

)

5、参考程序

#include<stdio.h>

#include<stdlib.h>

voidnewstr(char*p)

(

inti=0,j=0;

while(*(p+i)!='\0')

{

if(*(p+i)%2==l)

(

*(p+j)=*(p+i);

j++;

)

i++;

)

*(p+j)='\O';

)

intmain()

(

charstrl[8O];

gets(strl);

newstr(strl);

puts(str1);

system("pausen);

return0;

习题9

五、单项选择题

12345678910

ADABADACBA

1112131415

CABCD

六、填空题

12345

第一空第二空第一空第二空

->20结构体

sizeoftypedefenumunion

七、判断题

12345678910

对错错错对错对对对错

八、编程题

#include<stdio.h>

#include<string.h>

unionclass_score

(

intPEscore;〃体育课成绩

charDancescore;〃舞蹈课成绩

};

structStudentinfo

{

charname[10];〃姓名

charSD;〃性别;W,表示女性,,M俵示男性

intage;

unionclass__scorescore;

);

intmain()

(

structStudentInfostu_info[8]={

{“stu2”「ivr,19,94},

{"stuS'VM'^O^g},

{”stu4”「M',17,88},

{"stuS'VWMS/A'L

{"stue'VWMy/A'},

,

{"stu7";W',19;B}/

{"stuS'VWMS/B'}};

charname[10];

inti,flag=O;

printf("inputethenameofstudent:");

gets(name);

for(i=0;i<8;i++)

(

if(!strcmp(name,stu_info[i].name))

(

flag=1;

if(stu_info[i].SD=='M')

{

printf("thePEscoreof%s:%d\n"zstu_info[i].namezstuJnfo[i].score.PEscore);

}

else

{

printf("theDancescoreof%s:%c\n"zstu_info[i].name,stu_info[i].score.Dancescore);

)

break;

)

)

if(flag==0)

printf("Thestudent:%sisnotexisted.\n",name);

return0;

}

2、

#include<stdio.h>

#include<string.h>

typedefstructPhoneBook

(

charname[10];

charSD;〃性别,W女性男性

chartel_number[15];

JPHONEBOOK;

intmain()

{

PHONEBOOKmyphonebook[50];

intizN,flag=0;

charfriendname[10];

printf("inputthenumberoffriend:N=");

scanf(“%d”,&N);

getchar();

for(i=0;i<N;i++)

(

printf("inputthenameof%dthfriend:",i+1);

gets(myphonebook[i].name);

printf("inputtheSDof%dthfriend:(W/M)",i+1);

myphonebook[i].SD=getchar();

getchar();

printf("inputthetelephonenumberof%dthfriend:",i+1);

gets(myphonebook[i].tel_number);

)

printf("Nowinputthenameofyourfriendinquiried:");

gets(friendname);

for(i=0;i<N;i++)

if(!strcmp(friendname,myphonebook[i].name))

flag=1;

if(myphonebook[i].SD=='W')

printf("TheSDof%sisFemale.\n",friendname);

else

printf("TheSDof%sisMale.\n",friendname);

printf("Thetelephonenumberof%s:%s\n"/friendname,myphonebook[i].tel_number);

break;

)

)

if(flag==0)

(

N++;

strcpy(myphonebook[N-l].name,friendname);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论