第一篇:C语言程序设计课后习题1-8参考答案[最终版]
C语言程序设计课后习题1-8参考答案
习题1参考答案
一、简答题
1、冯 诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?
答:冯 诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?
答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。这类软件一般与具体应用无关,是在系统一级上提供的服务。系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。在不太严格的情况下,认为程序就是软件。硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。从这个意义上说,软件是用户与机器的接口。
二、填空题
1、算术
逻辑
2、键盘
鼠标
3、控制器
运算器 4、10 2 5、0 0x
6、原码
反码
补码 7、00010111 11101001 8、127-128
三、选择题
1、C
2、A
3、B
4、A
5、B
6、B
7、D
8、A
9、A
10、B
11、A
12、B
习题2参考答案
一、简答题
1、C语言有哪些特点?
答:(1)简洁紧凑、灵活方便;(2)运算符丰富;(3)数据结构丰富;(4)C语言是结构式语言;(5)C语言的语法限制不太严格、程序设计自由度大;(6)C语言允许直接访问物理地址,可以直接对硬件进行操作;(7)C语言程序生成代码质量高,程序执行效率高;(8)C语言使用范围大,可移至性好;(9)具有预处理功能;(10)具有递归功能。
2、C语言的主要应用有哪些?
答:(1)许多系统软件和大型应用软件都是用C语言编写的,如UNIX、Linux等操作系统。(2)在软件需要对硬件进行操作的场合,用C语言明显优于其他高级语言。例如,各种硬件设备的驱动程序(像显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。(4)随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。
3、列举几种程序设计语言。
答:C语言、Java语言、Pascal语言、BASIC语言、LOGO语言等。
二、填空题
1、机器语言
汇编语言
高级语言
2、机器语言
3、ALGOL 60
4、多个函数
5、main
6、#include
7、定义
使用
8、声明部分
执行部分
声明部分
执行部分
三、选择题
1、D
2、B
3、B
4、C
5、C
6、C
7、D
8、C
9、D
10、A
11、B
12、A
13、B
14、C
15、A
习题3参考答案
一、填空题
1、整型
字符型
实型
2、字母
数字
下划线
字母
下划线
3、直接
符号
符号 4、0 0x 5、1 2 6、4 8
7、-32768~32767
8、-16
9、x+=1;10、26
11、(m/10)%10*100+m/100(100*10)+m%10
二、选择题
1、D
2、C
3、A
4、B
5、B
6、D
7、B
8、C
9、A
10、A
11、C
12、B B
14、D
15、B
16、D
17、B
18、D
19、C 20、A
21、B
22、D
23、D D
25、D
26、D
27、C
28、A
29、C 30、B
习题4参考答案
一、填空题 13、24、1、scanf printf
2、按指定的输出格式将信息输出到屏幕上
常规字符
格式控制符
3、X、E、G
4、getche输入的字符回显,而getch输入的字符不回显
5、fflush
6、解决某个问题的具体的方法和步骤
7、自然语言描述
伪代码
流程图
N-S图
8、顺序
分支
循环
二、选择题
1、B
2、C
3、D
4、C
5、B
6、C
7、D
8、C
9、B
10、B
11、D
12、C
13、D
14、D
15、A
三、编程题
1、编写一程序要求任意输入四位十六进制整数,以反序的方式输出该十六进制数。例如:输入9AF0,则输出0FA9。
#include
void main()
{
unsigned short a, b;
scanf(“%4x”, &a)
//输入4位十六进制数给变a
b=(a & 0X000F)<<12;//取a的最低一位十六进制数并左移12位后赋值给b
b+=(a & 0X00F0)<<4;//取a的次第一位十六进制数并左移4位后与b相加再赋值给b
b+=(a & 0X0F00)<<4;//取a 的次高一位十六进制数并右移4位后与b相加再赋值给b
b+=(a & 0XF000)<<12;//取a的最高一位十六进制数并右移12位后与b相加再赋值给b
printf(“%4xn”, b);
//输出变化后的十六进制数
}
2、编程从键盘输入两个整数分别给变量a和b,要求在不借助于其他变量的条件下,将变量a和b的值实现交换。
#include
void main()
{
int a, b;
scanf(“%d%d”, &a, &b);
printf(“before swap: a=%d b=%dn”, a,b);
a=a+b;
b=a-b;
a=a-b;
printf(“after swap: a=%d b=%dn”, a, b);
}
3、编程从键盘输入圆的半径r,计算出圆的周长和面积。
#include
#define PI 3.14159
void main()
{
float r, c, s;
scanf(“%f”, &r);
c=2*r*PI;
s=PI*r*r;
printf(“c=%f s=%fn”, c, s);
}
4、编程从键盘输入任意一个十六进制负整数,以输入的形式输出。例如:输入-FA98,输出-FA98。
#include
void main()
{
short int a;
scanf(“%x”, &a);
printf(“-%hxn”,-a);
}
5、已知一元二次方程ax2+bx+c=0,编一程序当从键盘输入a、b、c的值后,计算x的值。
#include
#include
void main()
{
float a, b, c;
float d;
float x1, x2;
printf(“input a, b, c: ”);
scanf(“%f%f%f”, &a, &b, &c);
d=sqrt(b*b-4*a*c);
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
printf(“x1=%.2f x2=%.2fn”, x1, x2);
}
6、假设从键盘输入某日午夜零点到现在已经历的时间(单位:s),遍一程序计算到现在为止已近过了多少天,现在的时间是多少?
#include
void main()
{
unsigned long t, r;
int d, h, m, s;
printf(“second=”);
scanf(“%d”, &t);
d=t/(24*3600);
r=t%(24*3600);
h=r/3600;
m=(r%3600)/60;
s=(r%3600)%60;
printf(“have passed days is %d, current time is %02d:%02d:%02dn”, d, h, m, s):
}
习题5参考答案
编程题
1、编一程序判断输入整数的正负性和奇偶性。
#include
void main()
{
int a;
scanf(“%d”, &a);
if(a>=0)
printf(“the number %d is positive numbern”, a);
else
printf(“the number %d is negative numbern”, a);
if(a%2==0)
printf(“the number %d is even numbern”, a);
else
printf(“the number %d is odd numbern”, a);
}
2、编程判断输入数据的符号属性。#include
sign=1;else if(x==0)
sign=0;
else
sign=-1;printf(“sign= %dn”, sign);}
3、输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。#include
if(num2<=num3)
printf(“%d %d %dn”, num1, num2, num3);
else
if(num1>=num3)
printf(“%d %d %dn”, num3, num1, num2);
else
printf(“%d %d %dn”, num1, num3, num2);else
if(num2>=num3)
printf(“%d %d %dn”, num3, num2, num1);
else
if(num1>=num3)
printf(“%d %d %dn”, num2, num3, num1);
else
printf(“%d %d %dn”, num2, num1, num3);}
4、在屏幕上显示一张如下所示的时间表。
#include
void main()
{
char c;
printf(“*****Time*****n”);printf(“1 morningn”);printf(“2 afternoonn”);printf(“3 nightn”);
printf(“Please enter your choice: ”);c=getcahr();switch(c){ case „1‟: printf(“Good morningn”);brenk;case „2‟: printf(“Good afternoonn”);break;case „3‟: printf(“Good nightn”);break;default: printf(“Selection error!n”);} }
5、输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。
#include
void main()
{
int year, month;
printf(“Input year, month: ”);
scanf(“%d %d”, &year, &month);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf(“31 daysn”);
break;
case 4:
case 6:
case 9:
case 11: printf(“30 daysn”);
break;
case 2: if((year%4==0 && year%100!=0)||(year%400==0))
printf(“29 daysn”);
else
printf(“28 daysn”);
break;
default: printf(“Input error!n”);} }
习题6参考答案
编程题
1、编程计算2+4+6+…+98+100的值。
(1)利用for循环语句实现,在循环体外为sum赋初值0。#include
2、编程计算1*2*3+4*5*6+…+99*100*101的值。#include
3、编程计算1!+2!+3!+…+10!的值。
(1)用累加和算法,累加项为term=term*i;i=1,2,…,10。Term的初始值为1,使用单重循环完成。#include
term*=j;sum+=term;} printf(“1!+2!+3!+…+10!= %ldn”, sum);}
4、编程计算a+aa+aaa+…+aa..a(n个a)的值,n和a的值由键盘输入。#include
5、参考答案: #include
6、参考答案: #include
7、参考答案: #include
//分出百位 j=(n-i*100)/10
//分出十位 k=n%10;
//分出个位 if(n==i*i*i+j*j*j+k*k*k)
printf(“%d ”, n);} printf(“n”);}
8、参考答案:
#include
//分离出千位 i2=(k-i1*1000)/100
//分离出百位 i3=(k-i1*1000-i2*100)/10 //分离出十位 i4=k%10;
//分离出个位
printf(“The sum of the total bit is %dn”, i1+i2+i3+i4);}
9、参考答案: #include
//从低位到高位逐一分离 m=10*m+r;
//重新组合一正数 s=s/10;
//求其商 } if(m==n)printf(“yesn”);else printf(“non”);}
10、参考答案: #include
//x,y,z分别表示5分、2分和1分硬币的数量 for(x=1;x<=28;x++)//5分硬币最多不超过28枚
for(y=1;y<=73;y++)//2分硬币最多不超过73枚
{
z=100-x-y;//共有100枚硬币,减去5分和2分硬币后为1分硬币数量
if(5*x+2*y+z==150)
{
count++
//增加一种方案
printf(“%02d, %02d, %02d ”, x, y, z);//输出每一种方案
if(count%6==0)
printf(“n”);//没输出6种方案后,换行
}
} printf(“count=%dn”, count);}
11、设计思想:将A、B、C、D4个人的回答用一条件表达式来表示,对于A的回答:thisman!=‟A‟;对于B的回答:thisman==‟C‟;对于C的回答:thisman==‟D‟;对于D的回答:thisman!=‟D‟;然后,采用枚举的方法,一个人一个人的去试,如果这4个条件表达式中有3个为真,即4个条件表达式的值相加为3,则可判定是其中某人做的好事。参考答案: #include
for(k=0;k<=3;k++)//循环控制变量为k,循环共进行4次 { thisman=‟A‟+k;//初始认为A做好事,依次为B、C、D sum=(thisman!=‟A‟)+(thisman==‟C‟)+(thisman==‟D‟)+(thisman!=‟D‟);if(sum==3){ printf(“This man is %cn”, thisman);g=1;} } if(g!=1)
printf(“Can‟t foundn”);}
12、参考答案(1): #include
for(j=1;j<=i-1;j++)//输出每行前的空格
printf(“ ”);
for(j=1;j<=5-2*(i-1);j++)//输出每行的*号
printf(“*”);
printf(“n”);} for(i=1;i<=2;i++)//接着显示后两行 {
for(j=1;j<=2-i;j++)
printf(“ ”);
for(j=1;j<=2*i+1;j++)
printf(“*”);
printf(“n”);} } 参考答案(2): #include
for(j=1;j<=5-i;j++)//随行数的增加,输出递减数目的空格
printf(“ ”);
for(k=1;k<=5;k++)//每行输出5个*字符
printf(“*”);
printf(“n”);//将光标移到下一行起始位置处 } } 参考答案(3): #include
for(j=1;j<=2*(i-1)+1;j++)
printf(“*”);
printf(“n”);} }
习题7参考答案
编程题
1、参考答案: #include
Scanf(“%d”, &a[i]);
//输入20个整数 for(i=0;i<20;i++)
//对非负数进行统计 {
if(a[i]<0)continue;
//为负数,进入下一轮循环 sum+=a[i];
//非负数累计 } printf(“sum= %dn”, sum);}
2、参考答案 #include
//将键盘输入的数据存入数组中 { scanf(“%d”, &n);
if(n%2!=0)
a[odd++]=n;
//将奇数放置在数组的左边
else
a[even--]=n;//将偶数放置在数组的哟边 }
for(i=0;i //通过选择排序对奇数进行升序排列 { n=j;for(j=i+1;j if(a[j] n=j;if(n!=i){ t=a[i];a[i]=a[n];a[n]=t;} } for(i=odd;i<9;i++) //通过选择排序对偶数进行升序排列 { n=i;for(j=i+1;j<10;j++) if(a[j] n=j;If(n!=i){ t=a[i];a[i]=a[n];a[n]=t;} } for(i=0;i<10;i++) printf(“%d”, a[i]);输出排序结果 printf(“n”);} 3、参考答案: #include scanf(“%d”, &a[i]);max=0;min=0;for(i=1;i<10;i++){ if(a[i]>a[max]) max=i;if(a[i] printf(“%d ”, a[i]);printf(“n”);} 4、参考答案: #include scanf(“%d”, &a[i]);printf(“n”); for(i=0;i<6;i++){ for(j=0;j<6;j++) printf(“%d ”, a[j]); printf(“n”);t=a[5];for(j=5;j>0;j--)a[j]=a[j-1];a[0]=t;} } 5、参考答案: #include for(j=0;j<5;j++) scanf(“%d”, &a[i][j]);printf(“n”);for(i=0;i<5;i++){ sum+=a[i][j];if(i!=2) sum+=a[i][4-i];if(i%2!=0) continue;mul*=a[i][i];if(i!=2) mul*=a[i][4-i];} printf(“sum = %d mul = %dn”, sum, mul);} 6、参考答案: #include a[i][j]=a[i-1][j-1]+a[i-1][j];} for(i=0;i printf(“ ”);for(j=0;j<=i;j++) printf(“%2d ”, a[i][j]);printf(“n”);} } 7、参考答案: #include printf(“%c”, str[i]);printf(“n”);} 8、参考答案: #include if(str[i]!=‟c‟) strtemp[j++]=str[i];strtemp[j]=‟ ‟;strcpy(str, strtemp);printf(“After delete character ‟c‟: ”);printf(“%sn”, str);} 9、参考答案: #include break;i++;} printf(“After string copy: %sn”, s1);} 10、参考答案: #include ;for(j=0;srcStr[j]!=‟ ‟;j++) dstStr[i+j]=srcStr[j];dstStr[i+j]=‟ ‟; printf(“After strcat: dstStr=%sn”, dstStr);} 11、参考答案: #include printf(“%d ”, a[i]);printf(“n”); printf(“Input a number: ”)scanf(“%d”, &n);for(i=num-1;i>=0;i--) if(a[i]>n) a[i+1]=a[i]; else break;a[i+1]=n;printf(“After insert: ”);for(i=0;i printf(“%d”, a[i]);printf(“n”);s } 习题8参考答案 编程题 1、设计一个函数,用来判断一个整数是否为素数。参考答案: #include printf(“%d is prime number.n”, a);else printf(“%d isn‟t prime number.n”, a);} int IsPrimeNumber(int number){ int I;if(number<=-1) return(0);for(i=2;i if(number%i==0) return(0);return(i);} 2、设计函数MaxCommonFactor(),计算两个正整数的最大公约数。参考答案: #include printf(“The biggest common factor of %d and else printf(“The biggest common factor of %d and } int MaxCommonFactor(int a, int b){ if(a<=0||b<=0) return(-1);while(a!=b){ if(a>b) a=a-b;else if(b>a) b=b-a;} %d is %dn”, a,b,c);%d isn‟t existn”, a,b); ruturn(a);} 3、定义函数GetData()用于接收键盘输入的一组整型数据,并放入一数组中;另外再定义一个函数Sort()用于对输入的这一组数据按照降序排列。主函数向后调用GetData和Sort函数,输出最后的排序结果。参考答案: #include printf(“%d”,a[i]);printf(“n”);} void GetData(int a[],int n){ int i;printf(“Input number: ”);for(i=0;i scanf(“%d”,&a[i]);} void Sort(int a[],int n){ int i,j,k,t;for(i=0;i if(a[j]>a[k]) k=j;if(k!=i){ t=a[i];a[i]=a[k];a[k]=t;} } } 4、参考答案: #include if(str[j]>str[k]) k=j;if(k!=j){ ch=str[i];str[i]=str[k];str[k]=ch;} } } 5.参考答案: #include printf(“n”);} } void Josegh(int p[],int n,int s,int m){ int i,j,s1,w;s1=s;for(i=1;i<=n;i++) p[i-1]=i;for(i=n;i>=2;i--){ s1=(s1+m-1)%i;if(s1==0) s1=i;w=p[s1-1];for(j=s1;j p[j-1]=p[j];p[i-1]=w;} } 6、参考答案: #include char str2[]={“how do you do?”};loc=StrLoc(str1,str2);if(loc==-1) printf(“The string ”%s” not in the string ”%s”.n”,str1,str2);else printf(“Location of the string ”%s” in the string ”%s” is %d.n”,str1,str2,loc);} int StrLoc(char str1[],char str2[]){ unsigned int i,len1,len2;len1=strlen(str1);len2=strlen(str2);if(len1>len2) return(-1);for(i=0;i<=strlen(str2)-strlen(str1);i++) if(strncmp(str1,str2+i,len1)==0) return(i);return(-1)} 7、参考答案: #include item*=i;sum+=item;} return(sum);} 8、参考答案: #include printf(“n”);} } long F(int n){ if(n<=2) return(1);return(F(n-1)+F(n-2));} 9、参考答案: #include return(1L);else return(m*fun(m-1),n)/(m-n));} 10、参考答案: #include return;for(i=strlen(str)-1;i>=0;i--) str[i+1]=str[i];str[0]=n%10+0x30;IntToStr(n/10)} C语言程序设计教程课后习题答案 第一章 C语言程序设计概述 -习题答案 算法的描述有哪些基本方法? 答 1、自然语言 2、专用工具C语言程序的基本结构是怎样的?举一个例子说明。 答 1、C语言程序由函数构成; 2、“/*”与“*/”之间的内容构成C语言程序的注释部分; 3、用预处理命令#include、#define可以包含有关文件或预定义信息; 4、大小写字母在C语言中是有区别的; 5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。C语言有什么特点? 答 1、具有结构语言的特点,程序之间很容易实现段的共享; 2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化; 3、运算符丰富,包含的范围很广; 4、数据类型丰富; 5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能; 6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚; 7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。★指出合法与不合法的标识符命名。 答 AB12--√ leed_3--a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×说明下列Turbo C热键的功能。 答 F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。 ①main() {printf(“********************n”);printf(“ welcome you n”);printf(“ very good n);printf(”********************n“);} ②main() { int a,b,c,t;printf(”please input three numbers;“);scanf(”%d,%d,%d“,&a,&b,&c);/*教材S是错误的*/ t=max(max(a,b),c);printf(”max number is:%dn“,t);} int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);} 答 运行结果: ******************** welcome you very good ******************** 运行结果: please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/ max number is:4 7 一个C程序是由若干个函数构成的,其中有且只能有一个___函数。 答 main()8 在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的___命令或按___键转到用户屏幕查看程序运行结果。 答 1、User screen 2、Alt+F5 9 ★C语言对标识符与关键字有些什么规定? 答 1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。 2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。C源程序输入后是如何进行保存的? 答 是以C为扩展名保存的纯文本文件。 第二章 C语言程序的基本数据类型与表达式 -习题答案 ★指出下列常数中哪些是符合C语法规定的。 答 ''--× '101'--× ”“--× e3--× 019--√ 0x1e--√ ”abn“--√ 1.e5--×(2+3)e(4-2)--× 5.2e2.5--×请找出下列程序中的错误,改正后写出程序运行结果。 ①void main(){int x,y=z=5,aver;x=7 AVER=(x+y+z)/3 printf(”AVER=%dn“,aver);} ②void main() { char c1='a';c2='b';c3='c';int a=3.5,b='A' printf(”a=%db='“endn”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 答 main(){int x,y=5,z=5,aver;x=7;aver=(x+y+z)/3;printf(“AVER=%dn”,aver);} 运行结果:AVER=5 ②main() { char c1='a', c2='b', c3='c';int a=3,b='A';printf(“a=%d,b='%c'”end“n”,a,b);printf(“a%cb%cbc%ctabcn”,c1,c2,c3);} 运行结果:a=3,b='A'“end” aabcc abc 3 写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。int 99 -1 char 'h' unsigned int float 55.78 long int 答 int 99 104 66 55 68-1 char 'c' 'h' 'B' '7' 'D' unsigned int 99 104 66 55 68 65535 float 99.00 104.00 66.00 55.78 68.00-1.00 long int 99 104 66 55 68-1 ★写出程序运行结果。 ①void main(){int i,j;i=8,j=10;printf(“%d,%d,%d,%dn”,i,j,++i,j++);} ②main() { int a=1,b=2,c=30;;printf(“%d,%d,%d,%dn”,a=b=c,a=b==c,a==(b=c),a==(b==c));} 注意:a=b=c,a=b==c之间应为逗号,教材有误 答 运行结果: 9,11,9,10 运行结果: 30,1,0,0 ③void main() {int a=10,b=20,c=30,d;d=++a<=10||b-->=20||c++;printf(“%d,%d,%d,%dn”,a,b,c,d);} 答 运行结果: 11,19,30,1 ★写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。⑴a%=(b%=3) ⑵n++,a+=a-=a*=a ⑶(float)(a+c)/2+(int)x%(int)y ⑷a*=b+c ⑸++a-c+b++ ⑹++a-c+++b ⑺a ⑼a+b,18+(b=4)*3,(a/b,a%b) ⑽x+a%3*(int)(x+y)%2/4+sizeof(int)⑾a 答 ⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0 下列每组表达式中,被执行后结果完全等价的是哪些(设a、b、m是已被赋值的整型变量)? ①m=(a=4,4*5)与m=a=4,4*5 ②(float)(a/b)与(float)a/b ③(int)a+b与(int)(a+b)④m%=2+a*3与m=m%2+a*3 ⑤m=1+(a=2)+(b=3)与a=2,b=3,m=1+a+b 答 ①前面是赋值表达式,而后面的是一个逗号表达式,所以一定不同; ②前面的表达式中a/b结果为一整数,结果已经取整,精度可能受到影响,之后强制float后才为浮点型,后面的是先将a转换为float后再与b相除,其值保证了精度,所以不同。 ③因为a、b均为整数,其前后两个表达式的计算结果是一致的。 ④前一表达式是一算术表达式,而后者为一赋值表达式,此为一点不同;另外,前一表达式的m只被赋过一次值,后一表达式中的m曾两次被赋值,第一次赋值时与第一表达式中的值一致,第二次赋值后即不再相同。⑤前后表达式的计算结果应该是一致的:a=2, b=3, m=6 7 条件表达式x>0?x:-x的功能是什么? 答 如果x的值是一正数,则表达式的值为x值;如果x的值是一非正数,则表达式的值为-x。其实该表达式的值即为x的绝对值,C语言中提供了一个函数fabs(x)即可完成此功能,该函数包含在math.h头文件中。用一个条件表达式描述从a、b、c中找出最大都赋给max.答 max=a>(b>c?b:c)?a:(b>c?b:c);9 ★若x为int型变量,则执行以下语句后x的值为()。x=6;x+=x-=x*x;A.36 B.-60 C.60 D.-24 答 B.10 ★若有以下类型说明语句: char w;int x;float y;double z;则表达式w*x+z-y的结果为()类型。A.float B.char C.int D.double 答 D.第三章 顺序结构程序设计 -习题答案 变量k为float类型,调用函数scanf(“%d”,&k),不能使变量k得到正确数值的原因是___。 答 格式修饰符与变量类型不一致。因为%d输入的数据类型应该为十进制整数,而&k为占用4个字节的float类型变量的地址。★a=1234,b=12,c=34,则执行“printf(“|%3d%3d%-3d|n”,a,b,c);”后的输出是___。 答 |1234 1234 | 分析如下: ①%3d为右对齐输出变量,且指定输出变量的值宽度为3个字符位,如果变量实际位数小于3,则左端补空格,如果变量实际位数大于3,则按实际长度输出,不受限制。 ②%-3d为左对齐输出变量,在输出变量时,如是变量实际位数小于3,则在右端补空格,否则按实际输出。★设有“int a=255,b=8;”,则“printf(“%x,%on”,a,b);”输出是___。答 ff,10 ①如果“printf(“%X,%on”,a,b);”则输出为FF,10。说明在输出十六进制字母时,其大小写受格式修饰符的限制,如果是“%x”则输出小写,如果是“%X”则输出大写。 ②如果希望在输出十六进制时输出前导符0x或0X,则以上输出语句应改“printf(“%#x,%on”,a,b);”为或“printf(“%#X,%on”,a,b);”。本条解释不必须掌握。★以下程序输出的结果是___。main(){ int a1=1,a2=0,a3=2;printf(“%d,%d,%dn”,a1,a1+a2+a3,a3-a1);} 答 1,3,1 5 printf函数中用到格式符%5s,其中5表示输出字符占用5列。如果字符串长度大于5,则按___输出;如果字符串长度小于5,则按___输出。 答 ①实际 ②左端补空格 6 ★已定义变量如下: int a1,a2;char c1,c2;若要求输入a1、a2、c1和c2的值,正确的输入函数调用语句是___。 答 scanf(“%d,%d,%c,%c”,&a1,&a2,&c1,&c2);7 输入两个整型变量a、b的值,输出下列算式以及运算结果___。a+b、a-b、a*b、a/b、(float)a/b、a%b 每个算式占一行。如a=10,b=5,a+b输出为:10+5=15 答 设int a=10,b=5;以下为输出语句及结果: ①printf(“%d+%d=%dn”,a,b,a+b);10+5=15 ②printf(“%d-%d=%dn”,a,b,a-b);10-5=5 ③printf(“%d*%d=%dn”,a,b,a*b);10*5=50 ④printf(“%d/%d=%dn”,a,b,a/b);10/5=2 ⑤printf(“%(float)d/%d=%fn”,a,b,(float)a/b);(float)10/5=2.000000 ⑥printf(“%d%%%d=%dn”,a,b,a%b);10%5=0 8 ★输入一个非负数,计算以这个数为半径的圆周长和面积。答 #define PI 3.1415926 main(){ float r,l,area;printf(“Input a positive:”);scanf(“%f”,&r);l=2*PI*r;area=PI*r*r;printf(“l=%ftarea=%fn”,l,area);} 9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 答 main(){ int x,y;printf(“Input a number(100-999):”);scanf(“%d”,&x);y=100*(x%10)+10*(x/10%10)+x/100;/*注意分析此处算法*/ 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........自考Java语言程序设计 (一)课后习题及答案 自考Java语言程序设计 (一)第一章Java语言概述课后习题 一、Java语言概述 1.Java语言有哪些特点? 2.什么叫做类?什么叫做对象? 3.简述Java的运行机制。 4.简述Java应用程序的开发流程。 5.当初Sun公司发展Java的原因是:来源:www.xiexiebang.comumber_1 = new ComplexNumber(3,-5); ComplexNumber cNumber_2 = 本文来源:考试大网 new ComplexNumber(2,2); double d = 10.0; System.out.println(cNumber_1.toString()+ “ 加 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexAdd(cNumber_2).toString()); System.out.println(cNumber_1.toString()+ “ 加 ” + d + “ 等于 ” + cNumber_1.complexAdd(d).toString()); System.out.println(cNumber_1.toString()+ “ 减 ” + cNumber_2.toString()+ “ 等于 ” 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........+ cNumber_1.complexMinus(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 减 ” + d + “ 等于 ” + cNumber_1.complexMinus(d).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + cNumber_2.toString()+ “ 等于 ” + cNumber_1.complexMulti(cNumber_2).toString());System.out.println(cNumber_1.toString()+ “ 乘 ” + d + “ 等于 ” + cNumber_1.complexMulti(d).toString());} } class ComplexNumber { //域 private double m_dRealPart;private double m_dImaginPart;//构造方法 ComplexNumber(){ m_dRealPart = 0.0;m_dImaginPart = 0.0;} ComplexNumber(double r,double i){ m_dRealPart = r;m_dImaginPart = i;} ComplexNumber(ComplexNumber c){ m_dRealPart = c.getRealPart();m_dImaginPart = c.getImaginaryPart();} //get,set方法 double getRealPart(){ return m_dRealPart;} double getImaginaryPart(){ return m_dImaginPart;} void setRealPart(double d){ 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........m_dRealPart = d;} void setImaginaryPart(double d){ m_dImaginPart = d;} //复数运算方法 ComplexNumber complexAdd(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart + c.getRealPart(), this.m_dImaginPart + c.getImaginaryPart());} ComplexNumber complexAdd(double c){ return new ComplexNumber(this.m_dRealPart + c, this.m_dImaginPart);} ComplexNumber complexMinus(ComplexNumber c){ return new ComplexNumber(this.m_dRealPartc.getImaginaryPart());} ComplexNumber complexMinus(double c){来源:www.xiexiebang.com return new ComplexNumber(this.m_dRealPart-c, this.m_dImaginPart);} ComplexNumber complexMulti(ComplexNumber c){ return new ComplexNumber(this.m_dRealPart * c.getRealPart() -this.m_dImaginPart * c.getImaginaryPart(), this.m_dRealPart * c.getImaginaryPart()+ this.m_dImaginPart * c.getRealPart());} ComplexNumber complexMulti(double c){ return new ComplexNumber(this.m_dRealPart * c, this.m_dImaginPart * c);} //toString()public String toString() 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{ return “(” + m_dRealPart + “ + ” + m_dImaginPart + “ i” + “)”; } } 8.答:接口是用来实现类间多重继承功能的结构。接口与类相似,但是接口中只能包括常量和抽象方法。定义接口相当于定义了一组抽象的功能、属性集合,可以使了ava程序的类层次结构更加合理,并实现多重继承。 9.答:使用关键字implements可以定义类实现某接口。实现某接口的类如果不是抽象类,则需要通过重载来实现该接口中的所有抽象方法;如果这个类是抽象类,则它可以不必实现该接口中的所有抽象方法。 10.答:接口可以被继承。 SubInterface中的抽象方法有:public abstract int supMethod();和public abstract string subMethod();两个。 自考Java语言程序设计 (一)第七章Java常用类库介绍课后习题 七、Java 常用类库介绍 1.指出下列陈述是对还是错,并做出解释。 (1)当String对象用= = 比较时,如果String包括相同的值则结果为true。 (2)一个String类的对象在其创建后可被修改。 2.对于下列描述,各写出一条语句完成要求的任务 (1)比较s1中的串和s2中的串的内容的相等性; (2)用+=向串s1附加串; (3)判断s1中串的长度;来源:考试大 3.说明capacity()与length()用法上的差异? 4.如果ch为StringBuffer对象,ch=“Java Apple”,下列结果为何? (1)ch.insert(3,’p’)(2)ch.append(“Basic”) (3)ch.setlength(5)(4)ch.reverse() 5.Math类中提供用来常数π和e的静态属性分别是什么? 6.下面关于Vector类的说法正确的是() (1)类Vector在java.util包中。 (2)一个向量(Vector)对象存放的是一组有序的对象。 (3)一个向量(Vector)对象大小可以根据存放的元素个数的增加而自动增加。 (4)一个向量(Vector)对象中每个元素可以是不同类型的对象。 7.有三个字符串,编写程序找出其中最大者。 8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。 9.设定5个字符串,要求只打印那些以字母“b”开头的串,编写程序完成。 10.设定一个有大小写字母的字符串和一个查找字符,使用类 String方法IndexOf()来判断在该字符串中该字符出现的次数。 参考答案 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........1.答: (1)错。用= =操作符比较String对象实际上是判断它们在内存中是否为同一对象,并不是判断它们的值是否相同。 (2)错。String类的对象是常量。它们被创建后不可被修改。 2.答: (1)s1.equals(s1,s2); (2)s1+=s2; (3)s1.length(); 3.答:capacity()返回字符串对象的当前缓冲区的长度,length()返回字符串对象字符的长度。考试大收集整理 4.答: (1)结果:Javpa Applet (2)结果:Javpa AppletBasic (3)结果:ch长度变为5 (4)结果:apvaJ 5.答:PI、E 6.答:(3) 7.public class max1 { public static void main(String args[]) { String s1= “Hello Java”; String s2= “Java Applet”; String s3= “Java”; String s; if(s1.compareTo(s2)<0) s=s2; else s=s1; if(s.compareTo(s3)<0) s=s3; Systrm.out.println(“big=”+s); } } 8.public class out { public static void main(String args[]) { String s1= “Hello Java”; StringBuffer bufup=new StringBuffer(); StringBuffer buflow=new StringBuffer(); for(int I=0;I {if(s1.charAt(i)<97) 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{bufup.append(s1.charAt(i));bufup.append(' ');} else { buflow.append(s1.charAt(i));buflow.append('');} } System.out.println(“s1= ”+s1);System.out.println(“ uppercase= ”+bufup);System.out.println(“ lowercase= ”+buflow);} } 9. public class prin_b { public static void main(String args[]){ String s1=“hello”;String s2=“bee”;String s3=“java”;String s4=“brove”;String s5=“bag”;if(s1.indexOf('b')= =0)System.out.println(s1);if(s2.indexOf('b')= =0)System.out.println(s2);if(s3.indexOf('b')= =0)System.out.println(s3);if(s4.indexOf('b')= =0)System.out.println(s4);if(s5.indexOf('b')= =0)System.out.println(s5);} } 10. public class ppp { public static void main(String args[]){ String s1=“abcdefghi”;int num=0;for(int i=0;i {i=s1.indexof('e',i);num++; 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........} System.out.print(“ s1=”+s1+“e=”); if(num= =0) System.out.println(“ no found”); else System.out.println(num); } } 自考Java语言程序设计 (一)第八章Java异常处理及输入输出流简介课后习题 八、Java异常处理及输入输出流简介 1.列出5个常见的异常。 2.写出Java语言的异常处理机制的优点。 3.为什么异常处理技术不应该用于常规的程序控制? 4.引起异常产生的条件是什么? 5.异常没有被捕获将会发生什么? 6.编写一个程序,以说明catch(Exception e)如何捕获各种异常。 7.下面的代码段中finally语句块会被执行吗? public class ExceptionExam3 { public static void main(String [] args) { try { int [] a=new int[3]; System.exit(0); } catch(ArrayIndexOutOfBoundsException e) {System.out.println(“发生了异常”);} finally {System.out.println(“Finally”);} } } 8.throws的作用是什么? 9.应在程序的什么地方使用异常处理? 10.下面的代码有什么错误吗? class ExceptionExam{„} throw new ExceptionExam(); 11.异常类型匹配的处理方式。程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个 ArithmeticException 类型被0 除而产生的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage 给出异常的具体类型并显示出来。 12.根据所给创建自定义异常类的使用格式,编写一个自定义异常的小程序。 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........13.什么叫流?流式输入输出有什么特点? 14.Java流被分为字节流、字符流两大流类,两者有什么区别? 15.File类有哪些构造函数和常用方法? 16.利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。 17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。 18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制? 19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。 20.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。采集者退散 21.编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。 参考答案 1.答:内存耗尽、数组下标超出边界、被0除、非法的方法参数、算法溢出处。来源:考试大的美女编辑们 2.答:(1)Java通过面向对象的方法进行异常处理,把各种异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态特 性的复杂提供了强有力的控制方式。(2)Java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性。(3)Java的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码的编写。(4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。 3.答:a.异常处理用于不经常发生但通常导致程序终止的情况,因此要求编程人员为编译器的优化执行实现异常处理。b.常规控制结构的控制流程通常比异常的更为清晰、交流更高。c.在发生异常,并且没有释放异常发生之前分配的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的”异常会妨碍真正错误类型的异常。这种使程序员更难 以跟踪大量的异常。 4.答:异常产生的方式有3种。第一种是在某些内部错误时,Java虚拟机可以产生异常,该异常不在你的程序控制范围内,通常不作处理。第二种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用throw语句手动生成的异常。 5.答:未捕获的异常最终会导致程序非正常终止。 6.public class ExceptionExam { public static void main(String [] args) { try { int i=0; i=3/i;//将产生算术异常。 } catch(ArithmeticException e)//找到了匹配的异常,执行该catch块。 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........{ System.out.println(“发生了ArithmeticException异常”); } catch(AarryIndexOutOfBoundsException e)//不是匹配的异常,且不会再捕获 //异常,如果发生数组索引超出范围所产生的异常,将执行该catch块。 { System.out.println(“发生了AarryIndexOutOfBoundsException异常”); } catch(Exception e) //前两个catch块均无法捕获try块中发生的异常时,才会执行该catch块。 { System.out.println(“发生了异常”); } finally { System.out.println(“执行d Finally”);} } } 7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常结束,都会执行 finally定义的最后的代码。如果try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但本题中在try代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。 8.答:在某些情况下,如果一个方法产生自己不处理或无法处理的异常,它就必须在throws子句中声明该异常。 9.答:通常,可以采用两种方式来报告错误:返回值和异常。在Java中异常处理很常用,虽然返回错误代码在某些情况下是一种有效的方式,但是异常处理可以提供强大的结构化方法来处理异常。所以需要处理代码中的错误时就可以采用异常的方法进行处理。 10.答:ExceptionExam不是继承(扩展)Throwable的子类,只有Throwable的子类可以由throw抛出。所以,这一段代码会出错。 11.public class ExceptionExam1 { public static void main(String [] args) { try {int i=0; i=3/i; } catch(ArithmeticException e) { System.out.println(“异常是:”+e.getMessage()); } finally { 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........System.out.println(“finally 语句被执行”); } } } 注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception 是ArithmeticException 的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。 12.class Excp1 extends Exception {} class Excp2 extends Excp1 {} public class ExceptionExam7 { public static void main(String [] args)throws Exception { try { throw new Excp2(); } catch(Excp2 e) { System.out.println(“catch1”); throw new Excp1(); } catch(Excp1 e) { System.out.println(“catch2”); throw new Exception(); } catch(Exception e) { System.out.println(“catch3”); } finally { System.out.println(“finally”); } } } 说明:自定义异常类,关键是选择继承的超类——必须是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。 13.答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。 流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。 14.答:两者都作为Object类的直接子类,基本输入流(无效Stream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。 15.答:构造函数有: (1)public File(String pathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。 (2)public File(String parent , String child):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。 (3)public File(File parent, String child):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创建的File类文件对象(指向目录)。 常用方法有: (1)public boolean canWrite():返回文件是否可写。 (2)public boolean canRead():返回文件是否可读。 (3)public boolean createNewFile():当文件不存在时创建文件。 16.import java.io.*; class CopyFile{ public static void main(String[] args){ String file1,file2; int ch = 0; try { file1=args[0]; file2=args[1]; File无效Stream fis = new File无效Stream(file1); FileOutputStream fos=new FileOutputStream(file2); while((ch=fis.read())!=-1) fos.write(ch); fis.close(); fos.close(); } catch(FileNotFoundException e){ System.out.println(“源文件:未找到!”); }catch(ArrayIndexOutOfBoundsException e){ System.out.println(“缺少运行参数!”); System.exit(-1); } catch(IOException e){ System.out.println(e.toString()); } 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........} } 17.答: import java.io.*; public class NewFile{ public static void main(String args[]){ File f=new File(“test”); if(f.exists()&&f.isDirectory()) System.err.println(“目录:”+f.toString()+“已经存在!”); else{ if(f.mkdir()){ System.out.println(“目录”+f.getAbsolutePath()+“创建结束!”); File f2=new File(f,“my.txt”); try{ f2.createNewFile(); f2.setReadOnly(); }catch(IOException e){ System.out.println(e.toString()); } System.out.println(“文件:”+f2.getAbsoluteFile()+“创建结束!”); } else System.out.println(“目录”+f.getAbsoluteFile()+“创建失败!”); } } } 18.答:要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,需要一个指针来指定读写的位置。在创建 RandomAccessFile类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节 处。指针初始值是0,每读/写一个字节,指针自动增加1。RandomAccessFile类提供了一些控制指针移动的方法。 public long getFilePointer();获取当前指针指向文件的位置。考试大论坛 pulbic void seek(long pos);将指针移动到参数pos指定的位置。 public int skipBytes(int n);指针从当前位置向后移动n个字节位置,并返回指针实际移动的字节数。 19.答: import java.io.*; public class Count{ public static void main(String[] args) { int x=0,y=0,z=0; int ch; try{ while((ch=System.in.read())!='r'){ 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')x++;else if(ch>='0'&&ch<='9')y++;else z++;} }catch(IOException e){ System.out.println(e.toString());} System.out.println(“英文字母:”+x);System.out.println(“数字字符:”+y);System.out.println(“其它字符:”+z);} } 20.答: import java.io.*;public class InFile{ public static void main(String[] args){ int ch;try{ FileOutputStream out=new FileOutputStream(“a.txt”);while((ch=System.in.read())!='r'){ System.out.write(ch);out.write(ch);} out.close();System.out.write('n');}catch(IOException e){ System.out.println(e.toString());} System.out.println(“输出至文件完毕!”);} } 21.答: import java.io.*;public class Sort{ public static void main(String args[]){ int a[]=new int[10];byte b[]=new byte[10];int t;String str; 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........System.out.println(“请输入10个整数:”); try{ for(int i=0;i<10;i++) {System.out.print(“No.”+(i+1)+“: ”); System.in.read(b); str=new String(b); str=str.trim(); a[i]=Integer.parseInt(str); } }catch(IOException e){ System.out.println(e.toString()); } catch(NumberFormatException e){ System.out.println(e.toString()); } for(int i=0;i<9;i++) for(int j=i+1;j<10;j++) { if(a[i]>a[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } for(int i=0;i<10;i++) System.out.println(a[i]+“t”); } } 自考Java语言程序设计 (一)第九章JavaApplet概述课后习题 九、Java Applet概述 1.下列方法中,哪一个不是Applet的基本方法() A、init()B、run()C、stop()D、start() 2.在Java中判定Applet的来源的方法有() A、getcodebase()B、get文档base() C、getCodeBase()D、get文档Bade() 3.下面关于Applet的说法正确的是 A、Applet也需要main方法 B、Applet必须继承自javawt.Applet C、Applet能访问本地文件 D、Applet程序不需要编译 4.Applet类的直接父类是() 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........() A.Component类 B.Container类 C.Frame类 D.Panel类 5.判断:一个Applet编译后的类名是Test.class,运行此小程序的命令是Java Test。 6.编写同时具有Applet与Application的特征的程序。具体方法是:作为Application要定义main()方法,并且把 main()方法所在的类定义一个类。为使该程序成为一个Applet,main()方法所在的这个类必须继承Applet类或JApplet类。www.xiexiebang.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........A.FlowLayoutB.BorderLayout C.GridLayoutD.CardLayout 10.编写程序,创建下面的GUI(不必为各组件提供功能)。考试大收集整理 参考答案 1: false 2:true 3:true 4.true 5:版面管理器 6.图形用户界面 7.mouseReleased 8.C 9.B 10.import javawt.*; public class Chp9_3_A extends Frame{ TextField t=new TextField(); String[] op={“7”,“8”,“9”,“/”,“4”,“5”,“6”,“*”,“1”,“2”,“3”,“-”,“0”,“.”,“=”,“+”}; Button[] btn=new Button[16]; Panel p=new Panel(); public Chp9_3_A(){ setLayout(new BorderLayout()); p.setLayout(new GridLayout(4,4)); for(int i=0;i btn[i]=new Button(op[i]); p.add(btn[i]); } add(t,BorderLayout.NORTH); add(p,BorderLayout.CENTER); setSize(400,300); } public static void main(String[] args){ new Chp9_3_A().setVisible(true); } } 自考Java语言程序设计 (一)第十二章课后习题 十二、常用组件之一________命令按钮与标签框 1.判断:标签是是一个容器。() 2.判断:在Swing用户界面的程序设计中,容器可以被添加到其它容器中去。() 3.用户不能修改的文本称为_______。 4.关于awt和swing说法正确的是:来源:考试大 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........A、awt在不同操作系统中显示相同的风格。B、swing在不同的操作系统中显示相同的风格 C、javawt的子类 D、awt和swing都支持事件模型 5.下列_________用户图形界面组件在软件安装程序中是常见的。a.滑块 b.进度条来源:考试大 c.对话框 d.标签 6.包含可单击按钮的类的Java类库是__________。a.AWT b.Swing c.二者都有来源:www.xiexiebang.com d.二者都没有 7.下面的__________用户界面组件不是容器。a.JScrollPane b.JFrame考试大-全国最大教育类网站(www.xiexiebang.com)c.JWindows d.JScrollBar 8.创建下面的GUI,颜色列表框为红色、绿色和蓝色(不必为各组件提供功能)。参考答案 1.false 2.true 3.标签 4.B D 5.B 6.C 7.D 8.参考程序如下: import javawt.*;public class Chp9_3_B extends Frame{ Choice ch;Checkbox bg,fg;Button btnOK,btnCancel;Panel p,p1,p2;public Chp9_3_B(){ p=new Panel();p.setLayout(new GridLayout(2,1));p1=new Panel();p2=new Panel();p1.setLayout(new FlowLayout());p2.setLayout(new FlowLayout());ch=new Choice();ch.add(“红色”); 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........ch.add(“绿色”);ch.add(“蓝色”);bg=new Checkbox(“背景”);fg=new Checkbox(“前景”);p1.add(bg);p1.add(fg);btnOK=new Button(“确定”);btnCancel=new Button(“取消”);p2.add(btnOK);p2.add(btnCancel);p.add(p1);p.add(p2);add(ch,BorderLayout.NORTH);add(p,BorderLayout.CENTER);setSize(400,300);} public static void main(String[] args){ new Chp9_3_B().setVisible(true);} } 自考Java语言程序设计 (一)第十三章课后习题 十三、常用组件之二 _______单行文本框与多行文本框,单选框和复选框 1.判断:列表对象总包含滚动条。() 2.判断:面板的默认管理器是BorderLayout。 3.____________类用于创建一组单选按钮。来源:考试大 4.欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个 AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件: A、TextArea B、Panel C、Applet D、Canvas 5.Java应用程序中的默认外观是_________。 A.Motif B.Windows C.METAl 6.创建下面的GUI,要求在文本框中输入分数,单击“求和”按钮后在结果文本框中显示总分。 7.编写一个将华氏温度转换为摄氏温度的程序。应从键盘输入华氏温度,然后通 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........过文本显示转换后的摄氏温度。使用下面的公式进行温度转换: 摄氏温度=5/9Χ(华氏温度-32) 8.编写一个程序,使用户能够使用鼠标在applet中绘制一个矩形。按住鼠标左键,确定矩形的左上角,然后拖动鼠标,在需要的位置(即矩形右下角)释放鼠标。另外,在状态栏中显示矩形面积。 参考答案 1.false 2.true 3.CheckboxGroup 4.D 5. C 6.参考程序如下: import javawt.*;来源:考试大 import javawt.event.*; public class Chp9_3_C extends Frame implements ActionListener{ TextField textField1,textField2,textField3; Button button1=new Button(“求和”); Panel panel1,panel2; public Chp9_3_C(){ textField1=new TextField(); textField2=new TextField(); textField3=new TextField(); panel1=new Panel(); panel2=new Panel(); panel1.setLayout(new GridLayout(3,2)); panel2.setLayout(new FlowLayout()); panel1.add(new Label(“数学: ”)); panel1.add(textField1); panel1.add(new Label(“英语: ”)); panel1.add(textField2); panel1.add(new Label(“总分: ”)); panel1.add(textField3); panel2.add(button1); add(panel1,BorderLayout.CENTER); add(panel2,BorderLayout.SOUTH); button1.addActionListener(this); setSize(300,200); setVisible(true); } public static void main(String[] args){ new Chp9_3_C(); } public void actionPerformed(ActionEvent e){ int n1,n2,sum; 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........n1=Integer.parseInt(textField1.getText());n2=Integer.parseInt(textField2.getText());sum=n1+n2;textField3.setText(“"+sum);} } 6.参考程序如下: import javawt.*;import javawt.event.*;public class Chp9_3_D extends Frame{ TextField textField1,textField2;Button button1;public Chp9_3_D(){ textField1=new TextField(30);textField2=new TextField(30);button1=new Button(”转换“);setLayout(new FlowLayout());add(new Label(”华氏温度:“));add(textField1);add(new Label(”摄氏温度:“));add(textField2);textField2.setEditable(false);add(button1);setSize(400,300);pack();button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ button1_actionPerformed(e);} });addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });} public static void main(String[] args){ new Chp9_3_D().setVisible(true);} private void button1_actionPerformed(ActionEvent e){ double d=Double.parseDouble(textField1.getText());double h=5.0/9.0*(d-32);textField2.setText(”“+h);} 更多优质自考资料尽在百度贴吧自考乐园俱乐部 (http://tieba.baidu.com/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........} 7.参考程序如下: import javapplet.Applet; import javawt.*; import javawt.event.*; public class Chp9_3_E MouseListener,MouseMotionListener{ int x1,y1,x2,y2; public void init(){ addMouseListener(this); addMouseMotionListener(this); } public void paint(Graphics g){ g.drawRect(x1,y1,x2,y2); int area=Math.abs(x2-x1)*Math.abs(y2-y1); showStatus(”矩形面积: "+area); } //implementation of MouseListener public void mousePressed(MouseEvent e){ x1=e.getX(); y1=e.getY(); } public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} //implementation of MouseMotionEvent public void mouseDragged(MouseEvent e){ x2=e.getX(); y2=e.getY(); repaint(); } public void mouseMoved(MouseEvent e){} } extends Applet implements /*练习7-1*/ #include scanf(“%d”,&a[i]); sum=sum+a[i]; } ave=1.0*sum/n;printf(“ave=%.2fn”,ave);} /*练习7-2*/ #include int a[10],n,i;printf(“enter n:n”);scanf(“%d”,&n);printf(“enter %d ge zheng shu:n”,n);for(i=0;i printf(“第%d个:n”,i+1); scanf(“%d”,&a[i]); printf(“倒序:n”); while(a[i]!=0) { printf(“%d”,a[i]%10); a[i]=a[i]/10; } printf(“n”);} } /*练习7-3*/ #include int a[5],x,i,k=0;printf(“enter 5 ge zheng shu:n”);for(i=0;i<5;i++) scanf(“%d”,&a[i]);printf(“enter x:n”);scanf(“%d”,&x); for(i=0;i<5;i++) if(a[i]==x) { printf(“xia biao wei : %dn”,i); k=1; } if(k==0) printf(“Not Foundn”);} /*练习7-4*/ #include int a[10],n,i,k=0,x,max;printf(“enter n:n”);scanf(“%d”,&n);printf(“enter %d ge zheng shu:n”,n);for(i=0;i scanf(“%d”,&a[i]);max=a[0];for(i=1;i<=n-1;i++) if(max { max=a[i]; k=i; } printf(“max=%d xia biao=%d”,max,k); x=a[n-1]; a[n-1]=a[k]; a[k]=x; printf(“n”); for(i=0;i printf(“ %d ”,a[i]); printf(“n”);} /*练习7-11*/ #include i++;str[i]=' ';printf(“再输入一个字符:n”);str[80]=getchar();for(j=0;j<=i-1;j++) if(str[80]==str[j]) count++;printf(“%c字符在字符串中出现的次数为:%dn”,str[80],count);for(j=0;j<=i-1;j++) putchar(str[j]);printf(“n”); } /*习题七 1*/ #include scanf(“%d”,&a[i]);min=0;for(i=1;i min=i;max=0;for(i=1;i max=i;x=a[min];a[min]=a[0];a[0]=x; y=a[max];a[max]=a[n-1];a[n-1]=y;for(i=0;i printf(“%4d”,a[i]); printf(“n”); } /*习题七 2*/ #include scanf(“%d”,&a[i]); for(i=1;i max=i-1; for(j=i;j max=j;x=a[max];a[max]=a[i-1];a[i-1]=x;} for(i=0;i printf(“%4d”,a[i]); printf(“n”); } /*习题七 4*/ #include printf(“输入m:n”);scanf(“%d”,&m);printf(“输入n:n”);scanf(“%d”,&n); printf(“输入%d和%d的矩阵:n”,m,n);for(i=0;i for(j=0;j {scanf(“%d”,&a[i][j]); b[i]=b[i]+a[i][j];} } printf(“shu chu:n”); for(i=0;i for(j=0;j printf(“ %d”,a[i][j]); printf(“n”);} printf(“shu chu hang he :n”);for(i=0;i printf(“%4d”,b[i]); printf(“n”); } /*习题7.6*/ #include i++;printf(“倒序输出:n”); for(j=i-1;j>=0;j--) putchar(str[j]); printf(“n”); } /*新7.6*/ #include scanf(“%d”,&a[i]);} printf(“倒序输出:n”);for(i=0;i /*习题7.7*/ #include i++;printf(“输出其中的大写辅音字母:n”); for(j=0;j<=i-1;j++) if(str[j]>='B'&&str[j]<='Z'&&str[j]!='E'&&str[j]!='I'&&str[j]!='O'&&str[j]!='U') { putchar(str[j]); count++; } printf(“n”); printf(“大写辅音字母数量为:%dn”,count);} /*习题7.8*/ #include i++;printf(“输出相应交换后的字符串:n”); for(j=0;j<=i-1;j++) if(str[j]>='A'&&str[j]<='Z') str[j]=155-str[j]; for(j=0;j<=i-1;j++) putchar(str[j]);printf(“n”);} 高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1.A 2.D 二、填空题 1.BASIC、FORTRAN、AL_GOL60和COBOL 2.8 3.关键字 4.编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。(6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。(2)工业控制。由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。 (3)图形图像处理。C语言在内存管理和进程控制方面有丰富的指令,而且它能提供快速运行的代码,因而C语言适合进行图形程序设计。 (4)教学领域。C语言是理想的结构化程序设计语言,其描述能力强,应用十分广泛,因此广泛应用于教学领域。许多计算机相关课程,如数据结构及算法大多是用C语言进行描述的。 习题2参考答案 一、选择题 1.A 2.A 3.C 二、填空题 1.基本数据类型、构造数据类型、指针类型、空类型 2.反斜线“\” 3.枚举数据类型(Enumerated Data Type) 三、简答题 1.答: 在C语言中,数据类型可分为:基本数据类型、构造数据类型、指针类型、空类型四大类。 基本类型是数据类型的基础,由它可以构造出其他复杂的数据类型。基本类型的值不可以再分解为其他类型。C语言的基本类型包括整型、实型(浮点型)、字符型和枚举型。 C语言的构造类型包括数组类型、结构类型和联合类型。构造类型是根据已定义的一种或多种数据类型用构造的方法定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”或“元素”都是一个基本数据类型,或又是一个构造类型。 指针是一种特殊而又具重要作用的数据类型,其值表示某个量在内存中的地址。虽然指针变量的取值类似于整型量,但这是两种完全不同类型的量,一个是变量的数值,一个是变量在内存中存放的地址。 在调用函数时,被调用函数通常应向调用函数返回一个函数值。返回的函数值具有一定的数据类型,应在函数定义的函数说明中给以说明。例如,在例1-1中给出的max函数定义中,函数头为“int max(int a,int b,int c)”,其中写在函数名max之前的类型说明符“int”表示该函数的返回值为整型量。但是,也有一类函数,被调用后并不向调用函数返回函数值,这种函数可以定义为“空类型”(也称“无值型”),其类型说明符为void。 习题3参考答案 一、选择题 1.C 2.B 3.B 4.D 二、填空题 1.4字节,1字节,4字节,8字节 2.20 3.6 4.26 5.256 三、简答题 1.C语言的基本类型包括整型、实型(浮点型)、字符型和枚举型。 2.定义符号常量和定义变量都要指定数据类型,系统将为其分配一定的存储空间。其不同之处在于:定义符号常量必须给出常量值,且以后不能修改本常量的值;而变量可以在定义变量的同时赋初值,以后可以修改该变量。 3.常量就是在程序的运行过程中该量是不可修改的量;变量在程序的运行过程中允许对该变量的值进行修改。 四、程序题 1.程序运行结果为: 10 10 11-10-11 2.程序运行结果为: 3,12,4,4 习题4参考答案 一、选择题 1.C 2.D 3.C 4.C 5.B 6.D 7.B 8.C 9.B 二、填空题 1.!&& || 2.0 1 3.1 4.4 5.-1 三、编程题 1.给出等级成绩′A′、′B′、′C′、′D′、′E′,假设,90分以上为′A′,80~89分为′B′,70~79分为′C′,60~69分为′D′,60分以下为′E′,输入一个等级成绩,问属于哪一个分数段。参考代码如下: main(){ int score,m,n; char grade; n=1; while(n) { printf(“Please enter the score:”); scanf(“%d”,&score); if((score>100)||(score<0))printf(“n Wrong!n”); else n=0; } if(score==100)m=9; else m=(score-score%10)/10; switch(m) { case 0:case 1:case 2:case 3:case 4:case 5:grade='E';break; case 6:grade='D';break; case 7:grade='C';break; case 8:grade='B';break; case 9:grade='A'; } printf(“score=%d,grade=%cn”,score,grade);} 2.编程序打印出以下图形: 1 121 12321 „ ***21 参考代码如下: #include int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf(“%d”,j); for(j=i-1;j>0;j--) printf(“%d”,j); printf(“n”); } } 3.用1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚? [提示:设5分、2分和1分的硬币各换x,y,z枚,依题意有x+y+z=100,5x+2y+z=150,由于每一种硬币都要有,故5分硬币最多可换28枚,2分硬币最多可换73枚,1分硬币可换100-x-y枚,x,y,z只需满足第2个方程即可打印,对每一组满足条件的x,y,z值,用计数器计数即可得到兑换方案的数目。] 参考代码如下: main(){ int x,y,z,s=0; for(x=1;x<=28;x++) for(y=1;y<=73;y++) for(z=1;z<=148;z++) { if(150==5*x+2*y+z) if(100==x+y+z){ printf(“x=%d y=%d z=%dn”,x,y,z); s++;} } printf(“s=%dn”,s);} 4.编程:从键盘输入正整数n,输出1+(1+2)+(1+2+3)+„„+(1+2+3+„+n)。参考代码如下: #include { t=t+i; s=s+t; } printf(“s=%dn”,s);} 习题5参考答案 一、选择题 1.B 2.A 3.A 4.D 5.C 6.B 7.A 8.A 二、填空题 1.按行的顺序依次存放的 2.0 3.4 4.6 三、编程题 1.有一个多项式:Pn(x)=a0xn+a1xn-1+„+an 它们的系数a0,a1,„,an存放在一个一维数组中。编制程序,输入系数和x的值,计算并输出Pn(x)。参考代码如下: #define N 4 main(){ int a[N+1],p,x,i; printf(“Please enter a[%d],...,a[0]:n”,N); for(i=N;i>=0;i--) scanf(“%d”,&a[i]); printf(“Please enter x=n”); scanf(“%d”,&x); p=a[N]; for(i=N;i>0;i--) { p=p*x+a[i-1]; } printf(“Pn(x)=%dn”,p);} 2.打印以下的杨辉三角形(要求打印6行)。1 11 121 1331 14641 15101051 参考代码如下: #include int i,j,max[N][N]; for(i=0;i { for(j=0;j { max[i][0]=1; max[i][i]=1; } } for(i=2;i { for(j=1;j { max[i][j]=max[i-1][j-1]+max[i-1][j];} } for(i=0;i { for(j=0;j<=i;j++) { printf(“%d”,max[i][j]);} printf(“n”); } } 3.编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。参考代码如下:/*假设原有5个数*/ #include main() { int a[6]={1,2,6,10,15}; int n,i,j; printf(“Please enter the insert number:”); scanf(“%d”,&n); for(i=0;i<5;i++) if(n>a[i]) continue; else break; for(j=4;j>=i;j--) a[j+1]=a[j]; a[i]=n; for(i=0;i<6;i++) printf(“%d,”,a[i]); printf(“n”); } 4.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。参考代码如下: #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int n,i,j,k=0; printf(“Please enter the number:”); scanf(“%d”,&n); for(i=0;i<10;i++) { while(n==a[i]){k=1;j=i;break;} } if(k==1) printf(“a[%d]n”,j); else printf(“no found.n”);} 5.编程将下列矩阵中的元素向右移动一列,最右一列移至第一列。 10 12 [提示:用二维数组v存放矩阵中元素,数组v可在定义时初始化;有两种方法实现这种移动:一种方法是将移动后的元素放在另一个二维数组中;另一种方法是利用一个中间变量仍将移动后的元素放在数组v中。] #include int a[2][3]={1,4,6,8,10,12}; int b[2][3]; b[0][0]=a[0][2]; b[0][1]=a[0][0]; b[0][2]=a[0][1]; b[1][0]=a[1][2]; b[1][1]=a[1][0]; b[1][2]=a[1][1]; printf(“a[2][3]:”); for(i=0;i<2;i++) { printf(“n”); for(j=0;j<3;j++) printf(“%5d”,a[i][j]); } printf(“nresult:n”); for(i=0;i<2;i++) { printf(“n”); for(j=0;j<3;j++) printf(“%5d”,b[i][j]); } printf(“n”); getch();} 6.利用公式c(i,j)a(i,j)b(i,j)计算m×n的矩阵A和m×n的矩阵B之和,已知a(i,j)为矩阵A的元素,b(i,j)为矩阵B的元素,c(i,j)为矩阵C的元素,i1,2,...,m,j1,2,...,n。[提示:用二维数组元素做函数参数编程实现矩阵相加。] #include int i,j,t; clrscr(); printf(“Please input a[%d][%d]n”,M,N);第二篇:C语言程序设计教程课后习题答案
第三篇:自考Java语言程序设计(一)课后习题及答案
第四篇:c语言程序设计课后习题答案 第7章
第五篇:《C语言程序设计》课后习题参考答案