C语言程序设计 第 版 丁亚涛

  • 格式:pdf
  • 大小:878.36 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int s=1,i=1; while(i<=5) {
s*=i; i++; } 两条语句需要加上花括号。 4.continue 改成 break 5.while(j<10);分号不能少
四、程序设计题 1.参考程序
#include <stdio.h> void main() {
int i,j,s; for(i=1,j=1,s=0;i<=100;i++,j=j*(-1))
printf("%3d %3d %3d %3d %3d",a,b,c,d,e); }
习题 7
【参考答案】
一、单选题 1.B 2.C 3.A 4.A 5.D 6.C 7.B 8.B 9.C 10.D 二、填空题 1. 值传递、地址传递、引用传递 2. 局部变量 3. int 4. x[i]
for(j=0;j<5;j++) s1[i]+=s[i][j];
for(i=0;i<5;i++) for(j=0;j<3;j++) s2[i]+=s[j][i];
printf("The Sum of Row:\n"); for(i=0;i<3;i++)
printf("%5d",s1[i]); printf("\n The Sum of Col:\n"); for(i=0;i<5;i++)
} } 5.参考程序 #include <stdio.h> void main() {
int i,j,k; i=k=1; while(i<=10) {
for(j=1;j<=k;j++,i++) printf("%d",i%10); printf("\n"); k++; } } 6.参考程序 #include <stdio.h> void main() { int i,j,k; for(i=-3;i<=3;i++) { for(j=1;j<=abs(i);j++) printf("%c",32); /* 打印空格 */ for(j=1;j<=7-2*abs(i);j++) printf("*"); printf("\n"); } }
printf("%5d",s2[i]); } 5.参考程序 #include<stdio.h> #include<string.h> void main() { char s[3][80]; int a=0,b=0,c=0,d=0,e=0,i,j; for(i=0;i<3;i++)
gets(s[i]); for(i=0;i<3;i++)
《C 语言程序设计(第 3 版)》丁亚涛
教材习题与解答
习题 1
【参考答案】 1. C 语言基本特点:简洁、紧促、灵活、运算符丰富、数据结构丰富、移植性好等。 2. 程序如下: #include <stdio.h> void main() {
printf("This is my first c program. \n"); } 3. C 语言源程序文件扩展名为.c,目标文件扩展名为. obj,可执行文件扩展名为.exe
习题 2
【参考答案】 一、单选题 1. C 2. B 3. A 7. D 8. B 9. D 二、阅读程序题 1.10,10,9,10 2. j=1,i=2
k=3,i=3 j=3,i=2 k=1,i=1 i+j=11,++j=6
4. C 10.D
5. A 11.C
6. D 12.C
习题 3
【参考答案】 一、单选题: 1.D 2.C 3.D 4.B 5.A 6.B 7.C 8.A 9.C 10.B 二、阅读程序,写出程序运行结果 1. □□6□□6□6.00□6.00 2. x=127,x=□□□127,x=177,x=7f
{ int a,b,c,t; scanf("%d,%d,%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); t=c;c=b;b=a;a=t; printf("a=%d,b=%d,c=%d\n",a,b,c);
} 4.参考程序: #include <stdio.h> void main() {
for(j=0;s[i][j]!='\0';j++) if(s[i][j]>='A'&&s[i][j]<='Z') a++; else if(s[i][j]>='a'&&s[i][j]<='z') b++; else if(s[i][j]>='0'&&s[i][j]<='9') c++; else if(s[i][j]==32) d++; else e++;
1.a=2,b=1 2.c=1 三、程序设计题 1.参考程序
#include <stdio.h>
void main()
{
int a,b;
char c;
printf("INPUT A+(-*/)B\n");
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case '+':printf("%d+%d=%d\n",a,b,a+b);break;
y=(x+1)/(x-2); else
y=(x-1)/(x-2); printf("y=%f",y); } 3.参考程序 #include <stdio.h> void main() { int score; printf("Enter a score:"); scanf("%d",&score); printf("score=%d:",score); switch(score/10) {
printf("Data Error!\n"); else {
if(x<10) n=1; else if(x<100) n=2;
else if(x<1000) n=3; else n=4;
} printf("n=%d\n",n); }
习题 5
【参考答案】 一、选择题 1.B 2. D 3. C 4. C 5. B 6. C 7. D 8. C 9.A 10.D 11.B 12.B 13.B 14.D 15.C 16.C 二、填空题 1.for 语句、do while 语句、while 语句 2.i=14,j=16 3.k=14,n=-1 4.39 5.s=19 6.11111 7.10 8.7 9.8 10.5,5 三、改错题 1.for(i=0;i<5;i++) j++; for 控制部分用分号分隔 2.int j=0;while(j<10){j++;i=j;} 分号是多余的,否则会造成死循环 3.
if(i%10==6 || i/10==6) s=s+i;
} printf("%d\n",s); } 4.参考程序 #include <stdio.h> void main() { int i; int w1,w2,w3; for(i=100;i<=999;i++)
{ w1=i%10; w2=i/10%10; w3=i/100; if(i==w1*w1*w1+w2*w2*w2+w3*w3*w3) printf("%d ",i);
char s1,s2; s1=getchar(); s2=s1-32; printf("%c\n",s2); }
习题 4
【参考答案】
一、单选题
1.C
2.D
3.D
4.B
5.A
6.D
7.D
8.B
9.C
10.A 11.B 12.D 13.D 14.C 15.C 16.B 17.B 18.C 二、阅读程序题
习题 6
【参考答案】
一、单选题 1.D 2.B 3.C 二、阅读程序题
1. 6 5 4 321
2. aaa bbb
4.C
5.C
6.D
7.A
8.B
ccc ddd 3. 2,2,1 三、编程题 1.参考程序
#include<stdio.h> void main() {
int a[4][4]; int i,j,s=0; for(i=0;i<4;i++)
case '-':printf("%d-%d=%d\n",a,b,a-b);break;
case '*':printf("%d*%d=%d\n",a,b,a*b);break;
case '/':pBiblioteka Baiduintf("%d/%d=%d\n",a,b,a/b);break; default:printf("INPUT ERROR!"); } } 2.参考程序 #include <stdio.h> void main() { float x,y; scanf("%f",&x); if(x==0||x==2) y=0; else if(x>0)
case 10:printf("A\n");break; case 9:printf("B\n");break; case 8:printf("C\n");break; case 7:printf("D\n");break; case 6:printf("E\n");break; default:printf("F\n"); } } 4.参考程序 #include <stdio.h> void main() { int x,n; scanf("%d",&x); n=0; if(x<=0||x>=10000)
for(j=0;j<4;j++) scanf("%d",&a[i][j]);
s=0; for(i=0;i<4;i++)
for(j=0;j<4;j++) if(i==j||i+j==3) s+=a[i][j];
printf("%d",s); } 2.参考程序
#include<stdio.h> void main() {
char a[80]= ""; int i,j=5; /* 假设删除位置为 5 */ gets(a); for(i=j;a[i]!='\0';i++)
a[i]=a[i+1]; a[i]='\0'; printf("%s",a); } 3.参考程序 #include<stdio.h> #include<string.h> void main() { char a[80]="";
int i,j=5; /* 假设插入位置为 5 */ char s='s'; /* 假设插入字符为's' */ gets(a); for(i=strlen(a);i>j;i--)
a[i]=a[i-1]; a[j]=s; printf("%s",a); } 4.参考程序 #include<string.h> void main() { int s[3][5]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7}; int i,j; int s1[3]={0,0,0},s2[5]={0,0,0,0,0}; for(i=0;i<3;i++)
y=123.4567,y=□□123.46,y=123.45670 3. 2,1 4. 1234 5. 4,3 6. -6,-6 三、程序设计 1.参考程序: #include <stdio.h> #include <math.h> void main() {
float a,b,c,d,x1,x2; a=2;b=-3;c= -5; d=b*b-4*a*c; x1=(-b+sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); printf("x1=%.2f,x2=%.2f\n",x1,x2); } 2.参考程序: #include <stdio.h> #include <math.h> void main() { float a,v,s; scanf("%f",&a); v=pow(a,3);s=6*a*a; printf("v=%.2f,s=%.2f\n",v,s); } 3.参考程序: #include <stdio.h> void main()
s=s+i*j; printf("%d",s); } 2.参考程序 #include <stdio.h> void main() { int i,j,s1,s2; for(i=0,s1=s2=0;i<10;i++) { scanf("%d",&j); if(j>0)
s1=s1+j; else
s2=s2+j; } printf("%d,%d\n",s1,s2); } 3.参考程序 #include <stdio.h> void main() { int i,s; for(i=6,s=0;i<=96;i++) {