高级语言程序设计的试题求大神解答
C语言
第二章
一.bai选择题du
1.B 2.C 3.D 4.B 5.B 6.A 7.B 8.A 9.D 10.C C
11.B C 12.B 13.A 14.D B A 15.C
二.填空题
1.3,1
2.2
3.4
4.-264
5.n=1
三.简答题
1.字符zhi常量dao和字符串常量有何区别?
答:字符串常量和字符常量是不同的量。它们之间主要有以下区别:
(1)字符常量由单引号括起来的一个字符,字符串常量由双引号括起来字符序列。
(2)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。
(3)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。
2.简述转义字符的作用并举例加以说明。
使用转义符“\”与一些特殊字符构成转义字符。用以表示非图形字符,如退格、换行等,也可以表示成字符型常量。转义字符主要用来表示那些用一般字符不便于表示的控制字符。例如’\n’就是一个转义字符,用来表示“回车换行”。
3.简述数据类型转换规则并举例加以说明。
数据类型转换遵循如下规则:
a)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
b)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
c)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
d)char型和short型参与运算时,必须先转换成int型。
e)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
第三章
思考与习题
一、单选题 1.C2.D3.B4.B5.C
6.C7.B8.A9.D10.B
11.D12.C13.A14.D
二、填空题
答案:
1.顺序结构、选择结构、循环结构
2.scanf( )、printf( )
3.1
4.2
5.1
6.1
2
3
7.s=254
8.8
三、简答题
答案:
1.结构化程序设计的基本思想是:任何程序都可以通过顺序结构、选择结构、循环结构表示。复杂程序是经过这三种基本结构反复嵌套使用而构成的。结构化程序的优点是程序模块结构清楚,层次分明,易于读写。
2.关系运算是通过C语言提供的6种关系运算符对两个值的大小等关系进行比较。
逻辑运算既通过三种逻辑运算符对逻辑量进行与、或、非的运算即逻辑运算。
条件运算是通过条件运算符“?:”构造的条件表达式:表达式1 ? 表达式2 :表达式3,根据表达式1的值判断条件表达式的最终计算结果是取表达式2的值还是取表达式3的值。
3.不是,虽然空语句是什么也不执行的语句,但是在程序中空语句可用来构成循环结构中的空循环体。
4.如果某个量的值不为0时,则在逻辑运算中被判别为真;否则,如果其值为0时,被判别为假。
5.条件表达式和条件语句都可以根据给定的条件进入不同的分支执行语句。条件表达式语句简练,如果选择结构比较简单,可以采用条件表达式来实现。而通过条件语句,以及语句的嵌套,可以实现更复杂的选择结构。
四、设计题目
答案:
1.
#include "stdio.h"
void main()
{
int x=0;
for(x=0; x<=10; x++)
printf("square(%d)=%d\n",x,x*x);
}
2.
# include "stdio.h"
void main()
{
int x, y, z, max, min;
printf("Please input three integer number:");
scanf("%d %d %d", &x, &y, &z);
min = max = x;
if(x==y && y==z)
printf("x = y = z, max=min=%d\n", max);
Els
{
if (y>max)
max = y;
if (z>max)
max = z;
if (y<min)
min = y;
if (z<min)
min = z;
printf("max=%d, min=%d\n", max, min);
}
}
3.
# include "stdio.h"
void main()
{
char c, s[50]="", i=0;
c=getchar();
while(c!='\n')
{
if(c<'0'|| c>'9')
{
s[i]=c;
i++;
}
c=getchar();
}
printf("%s\n", s);
}
4.
# include "stdio.h"
void main()
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i&&j<=9;j++)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
}
5.
# include "stdio.h"
void main()
{
int x, i=1;
int n=88;
printf("please input a number.\n");
scanf("%d",&x);
while(i<10)
{
if(x!=n)
{
if(x > n)
printf("%d>n! Try again!\n", x);
else
printf("%d<n! Try again!\n", x);
scanf("%d",&x);
i++;
}
else
{
printf("You are right, the number is %d\n",n);
break;
}
printf("You are right, the number is %d\n",n);
break;
}
}
if(i==10)
printf("You have tried 10 times. Game over!\n");
}
6.
#include "stdio.h"
void main()
{
int i=1;
float j ,sum;
sum=1.0;
do
{
j=1.0/(i*(i+1));
sum=sum+j;
i=i+1;
}
while(j>=0.001||i<=20);
printf("sum=%f\n",sum);
}
7.
#include "stdio.h"
void main()
{
int k;
float sum=0;
for(k=1;k<=100;k++)
sum=sum+k;
for(k=1;k<=50;k++)
sum=sum+k*k;
for(k=1;k<=10;k++)
sum=sum+1.0/k;
printf("sum=%f\n",sum);
}
8.
#include "stdio.h"
void main()
{
int k;
int m,n,t;
for(k=100;k<=999;k++)
{m=k/100;
n=k/10%10;
t=k%10;
if(m*m*m+n*n*n+t*t*t==k)
printf("k=%d\n",k);
}
}
9.
#include "stdio.h"
void main()
{
int k;
int m,n,t;
for(k=1;k<=3;k++)
{
m=k*2-1;
n=3-k;
for(t=1;t<=n;t++)
printf(" ");
for(t=1;t<=m;t++)
printf("*");
printf("\n");
}
}
第二章
一.选择题
1.B 2.C 3.D 4.B 5.B 6.A 7.B 8.A 9.D 10.C C
11.B C 12.B 13.A 14.D B A 15.C
二.填空题
1.3,1
2.2
3.4
4.-264
5.n=1
三.简答题
1.字符常量和字符串常量有何区别?
答:字符串常量和字符常量是不同的量。它们之间主要有以下区别:
(1)字符常量由单引号括起来的一个字符,字符串常量由双引号括起来字符序列。
(2)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。
(3)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。
2.简述转义字符的作用并举例加以说明。
使用转义符“\”与一些特殊字符构成转义字符。用以表示非图形字符,如退格、换行等,也可以表示成字符型常量。转义字符主要用来表示那些用一般字符不便于表示的控制字符。例如’\n’就是一个转义字符,用来表示“回车换行”。
3.简述数据类型转换规则并举例加以说明。
数据类型转换遵循如下规则:
a)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
b)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
c)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
d)char型和short型参与运算时,必须先转换成int型。
e)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
第三章
思考与习题
一、单选题 1.C2.D3.B4.B5.C
6.C7.B8.A9.D10.B
11.D12.C13.A14.D
二、填空题
答案:
1.顺序结构、选择结构、循环结构
2.scanf( )、printf( )
3.1
4.2
5.1
6.1
2
3
7.s=254
8.8
三、简答题
答案:
1.结构化程序设计的基本思想是:任何程序都可以通过顺序结构、选择结构、循环结构表示。复杂程序是经过这三种基本结构反复嵌套使用而构成的。结构化程序的优点是程序模块结构清楚,层次分明,易于读写。
2.关系运算是通过C语言提供的6种关系运算符对两个值的大小等关系进行比较。
逻辑运算既通过三种逻辑运算符对逻辑量进行与、或、非的运算即逻辑运算。
条件运算是通过条件运算符“?:”构造的条件表达式:表达式1 ? 表达式2 :表达式3,根据表达式1的值判断条件表达式的最终计算结果是取表达式2的值还是取表达式3的值。
3.不是,虽然空语句是什么也不执行的语句,但是在程序中空语句可用来构成循环结构中的空循环体。
4.如果某个量的值不为0时,则在逻辑运算中被判别为真;否则,如果其值为0时,被判别为假。
5.条件表达式和条件语句都可以根据给定的条件进入不同的分支执行语句。条件表达式语句简练,如果选择结构比较简单,可以采用条件表达式来实现。而通过条件语句,以及语句的嵌套,可以实现更复杂的选择结构。
四、设计题目
答案:
1.
#include "stdio.h"
void main()
{
int x=0;
for(x=0; x<=10; x++)
printf("square(%d)=%d\n",x,x*x);
}
2.
# include "stdio.h"
void main()
{
int x, y, z, max, min;
printf("Please input three integer number:");
scanf("%d %d %d", &x, &y, &z);
min = max = x;
if(x==y && y==z)
printf("x = y = z, max=min=%d\n", max);
Els
{
if (y>max)
max = y;
if (z>max)
max = z;
if (y<min)
min = y;
if (z<min)
min = z;
printf("max=%d, min=%d\n", max, min);
}
}
3.
# include "stdio.h"
void main()
{
char c, s[50]="", i=0;
c=getchar();
while(c!='\n')
{
if(c<'0'|| c>'9')
{
s[i]=c;
i++;
}
c=getchar();
}
printf("%s\n", s);
}
4.
# include "stdio.h"
void main()
void main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i&&j<=9;j++)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
}
5.
# include "stdio.h"
void main()
{
int x, i=1;
int n=88;
printf("please input a number.\n");
scanf("%d",&x);
while(i<10)
{
if(x!=n)
{
if(x > n)
printf("%d>n! Try again!\n", x);
else
printf("%d<n! Try again!\n", x);
scanf("%d",&x);
i++;
}
else
{
printf("You are right, the number is %d\n",n);
break;
}
printf("You are right, the number is %d\n",n);
break;
}
}
if(i==10)
printf("You have tried 10 times. Game over!\n");
}
6.
#include "stdio.h"
void main()
{
int i=1;
float j ,sum;
sum=1.0;
do
{
j=1.0/(i*(i+1));
sum=sum+j;
i=i+1;
}
while(j>=0.001||i<=20);
printf("sum=%f\n",sum);
}
7.
#include "stdio.h"
void main()
{
int k;
float sum=0;
for(k=1;k<=100;k++)
sum=sum+k;
for(k=1;k<=50;k++)
sum=sum+k*k;
for(k=1;k<=10;k++)
sum=sum+1.0/k;
printf("sum=%f\n",sum);
}
8.
#include "stdio.h"
void main()
{
int k;
int m,n,t;
for(k=100;k<=999;k++)
{m=k/100;
n=k/10%10;
t=k%10;
if(m*m*m+n*n*n+t*t*t==k)
printf("k=%d\n",k);
}
}
9.
#include "stdio.h"
void main()
{
int k;
int m,n,t;
for(k=1;k<=3;k++)
{
m=k*2-1;
n=3-k;
for(t=1;t<=n;t++)
printf(" ");
for(t=1;t<=m;t++)
printf("*");
printf("\n");
}
}