C程序设计复习题答案文档格式.docx
- 文档编号:21173647
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:17
- 大小:22.42KB
C程序设计复习题答案文档格式.docx
《C程序设计复习题答案文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计复习题答案文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
doubled;
则表达式a*b+d-c值的类型为double。
21.*(p++)和*(++p)作用不同,它们的意义分别是*(p++)先取*p的值,后使p加1,*(++p)先使p加1,再取*p
二、程序理解题
请给出运行以下程序的输出结果:
1.
#include<
>
voidmain()
{intu=24,v=16,w;
while(v)
{w=u%v;
u=v;
v=w;
}
printf("
%d\n"
u);
输出结果为:
8
2.
{chars[]"
Yes\n/No"
*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
输出结果:
/No
Yes
3.
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<
7&
p[i]%2==1)j+=p[i++];
printf("
j);
24。
4、下列程序的运行结果是total=144。
{intarr_sum(intarr[],intn);
inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int*p,total;
p=a[0];
total=arr_sum(p,12);
printf(“total=%d\n”,total);
intarr_sum(intarr[],intn)
{inti,sum=0;
for(i=0;
i<
n;
i++)
sum=sum+arr[i];
return(sum);
5.给出以下程序的运行结果:
{inta,b,c;
a=25;
b=025;
c=0x25;
printf("
%d,%d,%d\n"
a,b,c);
运行结果:
25,21,37
6.给出有下面一段程序的运行结果。
inti=0,,j=0;
while(i<
24
7.给出有下面一段程序的运行结果。
intfac(intn)
{
staticintf=1;
f=f*n;
return(f);
inti;
for(i=1;
=5;
%d!
=%d\n"
i,fac(i));
答案:
1!
=1
2!
=2
3!
=6
4!
=24
5!
=120
8.给出有下面一段程序的运行结果。
{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<
4)
{
if(i==2||i==4)continue;
j=0;
do{s+=a[j];
j++;
}while(j<
4);
s);
92
三、程序填空题
1.以下程序可判断输入的一个整数是否能被5或13整除,若能整除,输出“yes”并换行,否则输出“no”并换行。
请填空。
#include<
voidmain()
{intk;
printf(“Enteraintnumber:
”);
scanf(“%d”,&
k);
if____(k%5==0||k%13==0)__________
printf(“yes\n”);
else
printf(__“no\n”______);
2.下面程序是将键盘输入的英文字符全改为小写英文字符输出,用换行符结束循环。
charc;
while((c=getchar())!
='
\n'
)
if(c>
A'
||c<
Z'
c=c+32;
%c"
c);
\n"
);
3.有一个一维数组score,内放10个学生成绩,求平均成绩,请填空。
#include<
floataverage(floatarray[10]);
{floatscore[10],aver;
input10scores:
10;
scanf("
%f"
&
score[i]);
aver=average(score);
averagescoreis%"
aver);
floataverage(floatarray[10])
{inti;
floataver,sum=array[0];
for(i=1;
i++)
sum=sum+array[i];
aver=sum/10;
returnaver;
4.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
Voidmain()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;
20;
i++)scanf("
%d"
a[i]);
for(i=0;
{if(a>
0)
{count++;
sum+=a[i];
sum=%d,count=%d\n"
sum,count);
5.下面程序可以逐行输出由language数组元素所指向的5个字符串。
{char*language[]={“BASIC”,“FORTRAN”,“PROLOG”,“JAVA”,
“C++”};
char**q;
intk;
for(k=0;
k<
5;
k++)
{q=language+k;
printf(“%s\n”,*q);
6.以下程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。
{charstr[81],*sptr;
80;
{str[i]=getchar();
if(str[i]=='
)break;
str[i]='
\0'
;
sptr=str;
while(*sptr)putchar(*sptr++);
7、程序的功能是用递归方法计算第五位学生的年龄,请填空。
递归公式如下:
10(n=1)
age(n)=
age(n-1)+2(n>
1)
程序:
intage(intn)
{intc;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
{printf(“age:
%d\n”,age(5));
8)下面程序的功能是在三个字符串中找出最小的,请填空:
voidmain()
{chars[20],str[3][30];
3;
i++)gets(str[i]);
strcpy(s,(strcmp(str[0],str[1])<
0str[0]:
str[1]));
if(strcmp(str[2],s)<
0)strcpy(s,str[2]);
print(“%s\n”,s);
9)以下程序的功能是:
通过指针操作,找出三个整数中的最小值并输出。
#include<
voidmain()
{int*a,*b,*c,num,x,y,z;
a=&
x;
b=&
y;
c=&
z;
printf(“输入3个整数:
scanf(“%d%d%d”,a,b,c);
printf(“%d,%d,%d\n”,*a,*b,*c);
num=*a;
if(*a>
*b)num=*b;
if(num>
*c)num=*c;
printf(“输出最小整数:
%d\n”,num);
10.C语言源程序文件的后缀是,经编译后生成的文件的后缀是,连接后生成的文件的后缀是.exe。
11.从键盘输入一个大写字母,要求改用小写字母输出。
请填空:
#include<
{charc1,c2;
c1=getchar();
printf(“%c,%d\n”,c1,c1);
c2=c1+32;
printf(“%c,%d\n”,c2,c2);
12.以下程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。
while(*sptr)putchar(*sptr++;
13.输入三角形的三边长,求三角形面积。
{floata,b,c,s,area;
scanf(“%f,%f,%f”,&
a,&
b,&
c);
s=2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);
14.判断m是否素数。
intm,i,k;
m);
k=sqrt(m);
for(i=2;
=k;
if(m%i==0)break;
if(i>
k)printf("
%disaprimenumber\n"
m);
elseprintf("
%disnotaprimenumber\n"
15.以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。
如’a’变成‘f’,’w’变成’b’。
{charc;
c=getchar();
if(c>
=’a’&
c<
=’u’)c=c+5;
elseif(c>
=’v’&
=z)c=c-21;
putchar(c);
16.输入三个整数x,y,z,请把这三个数由小到大输出。
#include"
"
intx,y,z,t;
%d%d%d"
&
x,&
y,&
z);
if(x>
y)
{t=x;
x=y;
y=t;
}/*交换x,y的值*/
if(x>
z)
{t=z;
z=x;
x=t;
}/*交换x,z的值*/
if(y>
{t=y;
y=z;
z=t;
}/*交换z,y的值*/
smalltobig:
%d%d%d\n"
x,y,z);
17.求1!
+2!
+3!
+4!
+…+20!
的值。
{floats=0,t=1;
intn;
for(n=1;
n<
=20;
n++)
t=t*n;
s=s+t;
1!
+...+20!
=%c\n"
18.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
intletters=0,space=0,digit=0,others=0;
pleaseinputsomecharacters\n"
while((c=getchar())!
)
if(c>
a'
c<
z'
||c>
)
letters++;
elseif(c=='
'
space++;
elseif(c>
0'
9'
digit++;
others++;
allinall:
char=%dspace=%ddigit=%dothers=%d\n"
letters,
space,digit,others);
19.以下程序是通过指针操作,找出三个整数中的最小值并输出。
20.下面程序的功能是打印100以内个位数为6且能被3整除的所有数。
{inti,j;
i<
10;
{j=i*10+6;
if(j%3!
=0)continue;
printf(“%d”,j);
四、编程题
1.给学生成绩,要求输出成绩等级‘A’‘B’‘C’‘D’‘E’。
90分以上为‘A’,80-89分为‘B’,70-79分为‘C’,60-69分为‘D’,60分以下为‘E’。
floatscore;
chargrade;
请输入学生成绩:
score);
while(score>
100||score<
\n输入有误,请重输!
scanf("
switch((int)(score/10))
case10:
case9:
grade='
;
break;
case8:
B'
case7:
C'
case6:
D'
case5:
case4:
case3:
case2:
case1:
case0:
E'
成绩是%,相应的等级是%c.\n"
score,grade);
2.输入一数组各元素值,将这个数组中的值按逆序重新存放(如原来顺序为5,4,3,2,1要求改为1,2,3,4,5)。
#defineN5
inta[N],i,temp;
Enterarray:
N;
a[i]);
arraya:
%4d"
a[i]);
N/2;
{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
\nNow,arrawa:
3、将一个2×
3的二维数组中行与列的元素互换并存到另一个二维数组中。
设原数组的初值为{{1,2,3},{4,5,6}}。
参考程序:
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
\n"
for(i=0;
=1;
{for(j=0;
j<
=2;
j++)
{printf("
%5d"
,a[i][j]);
b[j][i]=a[i][j];
/*行列元素互换*/
arrayb:
{for(j=0;
,b[i][j]);
4.用选择法对10个数排序(由小到大)。
要求从键盘输入这10个数。
inti,j,min,temp,a[11];
printf(“enterdata:
\n”);
=10;
printf(“a[%d]=”,i);
scanf(“%d”,&
printf(‘\n”);
printf(“Theorginalnumbers:
\n”);
for(i=1;
printf(“%5d”,a[i]);
printf(“\n”);
=9;
min=i;
for(j=i+1;
if(a[min]>
a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
printf(“\nThesortednumbers:
printf(“%5d”,a[i]);
printf(“\n”);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习题 答案