文档库 最新最全的文档下载
当前位置:文档库 › 程序设计基础——基于-C语言(第2版~)课后习题参考-答案~

程序设计基础——基于-C语言(第2版~)课后习题参考-答案~

程序设计基础——基于-C语言(第2版~)课后习题参考-答案~
程序设计基础——基于-C语言(第2版~)课后习题参考-答案~

习题1参考答案

1.1解释以下术语

(1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。

(2)计算机程序:用计算机语言所编写的一系列指令的集合。

(3)数据:数据是程序加工和处理的对象。

(4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。

(5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。

(6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。

(7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。

1.2 简答题

(1)简述内存的组织结构形式?

计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。

(2)为什么计算机系统是一个通用的计算系统?

在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。

(3)简述结构化程序设计的基本思想?

在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。

(4)简述计算机语言的发展史?

程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。(5)简述利用计算机进行问题求解的过程?

1、理解问题特征

2、设想解决方案

3、优化解决方案

4、描述解决方案

5、执行并分析解决方案

(6)简述各个程序质量要素的含义?

1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的

运行环境下能正确完成预期功能的程度。

2、鲁棒性(Robustness):鲁棒性也称为健壮性,是指在硬件发生故障、输入数据无效或操作错误等意外情况下,程序能做出响应的程度。

3、效率(Efficiency):效率是指为了完成预定的功能,系统需要的计算资源(主要包括计算时间和存储空间)的多少。

4、易用性(Usability):易用性又称为可用性,是指在完成预定功能时人机交互的难易程度。易用性高的程序容易被程序用户理解和掌握,使用户操作简单方便。

5、可理解性(Understandability):可理解性是指理解程序的难易程度。可理解性高的程序才容易测试和维护。如果程序难以读懂,就会给测试和维护带来巨大的困难。

6、可测试性(Testability):可测试性是一个计算机程序能够被测试的容易程度。为了提高程序的可靠性,必须通过测试尽可能多得发现并改正程序中的错误。程序的可测试性直接影响测试的质量和效率。

7、可维护性(Maintainability):诊断和改正程序错误以及功能扩充和性能提高的容易程度。程序设计是一个迭代过程,要开发出高质量的程序需要对程序进行多次修改和完善。程序的可维护性决定了上述工作的质量和效率。

8、可重用性(Reusability):可重用性是指在其它应用中该程序可以被再次使用的容易程度。如果我们在开发新程序时,能够直接或稍加修改就能利用原有的程序,则会大大提高新程序开发的质量和效率。因此,提高程序的可重用性是提高程序设计质量和效率的根本途径。

1.3计算题

(1)计算-1的8位原码、反码、补码和Excess_127码。

分别为:10000001B、11111110B、11111111B、01111110B

(2)计算机内存中相邻四个字节的值为10111110000000000000000000000000,试问该值表示的实数、有符号数和无符号数各为多少?

分别是:实数0.125、有符号数-1107296256(负数在计算机中用补码表示)无符号数3187671040

(3)字符‘A'、‘a'、‘1'的ASCII值是多少,给出将大写字母的ASCII转换成对应小写字母ASCII值得计算公式。

‘A’:41H ‘a’:61H ‘1’:31H

大写转化为小写:大写字母的ASCII值+20H=小写字母的ASCII值

1.4为下列问题求解设计算法,并分别用程序流程图、N—S盒图和PAD图加以描述。

(1)有两个调料盒S1和S2,分别盛有糖和盐,要求将它们互换(即S1盒原来盛糖,现在改盛盐;S2同理)。

算法思想:这是一个两个变量交换值的问题,可以设置一个临时变量,首先把S1的值放入临时变量中,然后将S2的值放入S1中,最后将临时变量的值放入S1中即可。

程序流程图:

N-S盒图:

PAD图:

(2)依次输入6个整数,要求输出其中最小的数。

算法思想:定义一个临时变量用来存放最小的数,首先输入第一个数赋值于临时变量,然后循环输入其余的整数,比较输入的整数和临时变量的大小,如果大于临时变量则继续输入,反之,则给临时变量赋值为次此数。最后临时变量中存放的数输入的数中的最小数,输入临时变量即可。

程序流程图:

N-S盒图:PAD图:

(3)输入3个整数,按从大到小的顺序输出。

算法思想:输入三个数a、b、c,首先比较a和b,如果a>b,则比较c和a,如果c>a 则输出c、a、b;如果cb,输出a、c、b,否则输出a、b、c;对于a

程序流程图:

N-S盒图:

PAD图:

(4)求1*2*3* (10)

算法思想:定义一个变量用来存放最后的值,赋初值为1,做十次循环,每次循环在原来变量的基础上乘循环变量值(即1-10),最后输出这个变量即可。

程序流程图:

F

N-S

盒图:

PAD 图:

(5)输入两个整数,求其最大公约数。

算法思想:选取两个数中较小的数作为起始值,让这两个数分别除以这个值,如果可以整除,则这个数就是最后结果,如果不能整除则将起始值减一之后再用原来的两个数对其做除法运算,知道整除为止,得到的起始值的最后值就是结果。

程序流程图:

N-S盒图:PAD图:

1.5算法思考题

(1)钞票换硬币:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法?

分析:1元相当于100分,设5分、2分、1分的硬币数分别为X、Y、Z,求换法就是在寻找这样一种组合,使得5*X+2*Y+Z =100,所以每当找到1种组合时,将个数记录下来,就可知换法有多少种,算法描述如下:

Count = 0; //用于记录个数,初始为0

for(X=1;X<=20;X++)

for(Y=1;Y<=50;Y++)

for(Z=1;Z<=100;Z++)

{

if(5*X + 2*Y + Z == 100) //可实现交换

Count ++;

}

输出Count

(2)百钱买百鸡:一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有什么方案?

分析:由题意可知,假设公鸡、母鸡、小鸡分别有X、Y、Z只,那么X、Y、Z满足:X+Y+Z=100,而且要满足钱数限定:5*X+3*Y+1/3*Z = 100,由于3只小鸡1元钱,所以小鸡的个数必须是3的整数倍,即:Z是3的整数倍。可通过限制条件,筛选出满足条件的X,Y,Z。当然X、Y、Z还满足以下条件:5*X <= 100;3*Y <= 100;Z <= 100。以下是算法描述:

for(X=0;X<=100;X++)

for(Y=0;Y<=100;Y++)

for(Z=0;Z<=100;Z++)

{

if(5*X<=100 and 3*Y<=100 and z%3==0)

{

if(X+Y+Z==100 and 5*X+3*Y+Z/3 == 100)

{

输出X、Y、Z;

}

}

}

(3)斐波那契兔子的问题:某人有一对兔子饲养在围墙中,如果它们每个月生一对兔子,且新生的兔子在第二个月后也是每个月生一对兔子,问一年后围墙中共有多少对兔子。

分析:第一个月是最初的一对兔子生下一对兔子,围墙内共有两对兔子。第二个月仍是最初的一对兔子生下一对兔子,共有3对兔子。到第三个月除最初的兔子新生一对兔子外,第一个月生的兔子也开始生兔子,因此共有5对兔子。继续推下去,第12个月时最终共有对377对兔子。由分析知,每个月的兔子都是上个月的兔子与新增兔子之和,而上个月新生的兔子到下个月才会生兔子,所以新增的兔子都是上两月的兔子生的。设每个月的兔子数为F(n),则可列出下列式子:

F(0) = F(1) = 1

F(n) = F(n-1) + F(n-2)

显然可用递归的方法解出此题,算法流程图如下:

习题2参考答案

(1)请简要描述C语言的发展历史。

答:C语言是一种目前世界上普遍流行、使用广泛的高级程序设计语言,它是在B语言的基础上发展起来的,1972—1973年间,贝尔实验室设计出了C语言。1983年,美国国家标准化协会制定了C语言的标准,称为ANSI C。

(2)略。

(3)C语言的主要特点是什么?

答:C语言的主要特点如下。

①C程序是由函数组成的。

②函数由函数头和函数体组成。

③C程序总是从main函数开始执行。

④每个语句和数据声明的最后必须有一个“;”。

⑤C语言没有自己的输入/输出语句,它的输入/输出由库函数printf和scanf完成。

⑥可以添加注释。

⑦C语言程序中的变量必须先声明后使用。

(4)如何使用Visual C++ 6.0开发控制台程序?

使用VC6开发控制台程序的方法如下:

答:①在Miscrosoft Visual C++ 6.0环境下,首先建立一个空的工程。

②而后建立一个C源程序文件,并在该文件中输入源代码。

③使用Bulid命令或者快捷键F7,进行编译连接。

④如果没有错误,选择Execute命令或者快捷键Ctrl+F5,进行执行。

习题3参考答案:

3.1 选择题

1.B

2.D

3.D

4.A

5.A

6.A

7.C

8.C

9.C 10.B

3.2 写出下列程序的输出结果

1.200 310 c8

2.a=100,b=200

3.97,141,61,a

4.

5.aabb c abc

4,3

6.6,6,6,7

3.3 编程题

1.

#include

void main()

{

int a=500;

printf("%d,%o,%x\n",a,a,a);

}

输出结果:500,764,1f4

2.

#include

void main()

{

float x;

scanf("%f",&x);

printf("a=%.3f,a=%.3e\n",x,x);

}

输入:66

输出结果:a=66.000,a=6.60000e+001

3.

#include

void main()

{

char ch1='a',ch2=ch1;

printf("%c,%d,%o,%x\n",ch1,ch1,ch1,ch1);

printf("%c,%d,%o,%x\n",ch2,ch2,ch2,ch2);

}

输出结果:A,65,101,41

a,97,141,61

4.

#include

void main()

{

float x,y,z,s,v;

scanf("%f%f%f",&x,&y,&z);

s=2*(x*y+x*z+y*z);

v=x*y*z;

printf("Area=%.lf,Volume=%.lf\n",s,v);

}

输入:3 4 5

输出结果:Area=94 ,Volume=60

5.

#define PI 3.14

#include

#include

void main()

{

float r,s,l;

scanf("%f",&r);

s=(float)PI*r*r;

l=2*(float)PI*r;

printf("r=%4.1f,s=%4.1f,l=%4.1f\n",r,s,l);

}

输入:3

输出结果:r= 3.0,s=28.3 ,l=18.8

6.

#include

#include

void main()

{

float x1,y1,x2,y2,x3,y3,a,b,c,p,s;

scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);

a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));

c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("Area=%f\n",s);

}

输入:5 6 3 8 0 23

输出结果:Area=12.000013

习题4参考答案

4.1选择题。

(1)D (2)A (3)A (4)C (5)C (6)B (7)B (8)B (9)C (10)A 4.2填空题。

(1)261 (2)16 (3)0 (4)2,1

4.3编程题。

(1)

#include

void main()

{

float c,f;

printf("输入华氏温度:\n");

scanf("%f",&f);

c=(f-32)*5/9;

printf("摄氏温度为:%5.2f\n",c);

}

(2)

#include

#include

void main()

{

char s1[10],s2[10],s[20];

printf("please enter two string\n");

gets(s1);

gets(s2);

strcat(s1,s2);

printf("%s\n",s1);

printf("%d\n",strlen(s1));

}

(3)

#include

#include

void main()

{

double x,y;

printf("please enter two data:\n");

scanf("%lf%lf",&x,&y);

printf("%lf raised to %lf is %lf\n",x,y,pow(x,y)); }

习题5参考答案

1.填空题

(1) n=4 (2) 2*i-1 (3) 7 (4) ######

2.#include

void main()

{

long m,n,a,b,s;

printf("\nPlease input value of M :");

scanf("%ld",&m);

printf("\nPlease input value of N :");

scanf("%ld",&n);

a=(m>n)?m:n;

b=(m>n)?n:m;

while (a%b!=0)

{

s=a%b;

a=b;

b=s;

}

printf("\nGong yue shu:%ld\n",s);

printf("\nGong Bei shu:%ld\n",(m*n)/s);

}

3.#include

void main()

{

int a,b,c,d,e;

printf("Please input an integer:\n");

scanf("%d",&a);

if (a/1000==0)

{

printf("input error!\n");

return;

}

b=a/1000;

e=a%10;

c=a%1000/100;

d=a%100/10;

if (b==e && c==d)

printf("YES.\n");

else

printf("NO.\n");

}

4.#include

void main()

{

int c;

int Num1,Num2,Num3,Num4;

Num1=Num2=Num3=Num4=0;

do

{

c=getchar();

if ((c>='a' && c<='z') || (c>='A' && c<='Z'))

Num1++;

else if (c>='0' && c<='9')

Num2++;

else if (c==' ')

Num3++;

else

Num4++;

}while(c!='\n');

printf("英文字母有%d个,数字有%d个,空格有%d个,其它字符有%d个。\n",Num1,Num2,Num3,Num4);

}

5.#include

#include

void main()

{

float a,b,c,disc,x1,x2,realpart,imagepart;

printf("Input a,b and c:");

scanf("%f,%f,%f",&a,&b,&c);

printf("The equation");

disc=b*b-4*a*c;

if (fabs(disc)<=1e-7)

printf("has two equal roots:%4.2f.\n",-b/(2*a));

else

if (disc>1e-7)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("has distince real roots:%4.2f and %4.2f.\n",x1,x2);

}

else

{

realpart=-b/(2*a);

imagepart=sqrt(-disc)/(2*a);

printf("has complext roots:");

printf("%4.2f+%4.2fi",realpart,imagepart);

printf(" and %4.2f-%4.2fi\n",realpart,imagepart);

}

}

6. #include

void main()

{

int i,j;

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

{

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

printf("*");

printf("\n");

}

for (i=5;i>=1;i--)

{

for (j=i;j>=1;j--)

printf("*");

printf("\n");

}

}

7.#include

#define EPS 1e-7

void main()

{

int n;

double x,an,sum;

printf("input x:");

scanf("%lf",&x);

x=x*3.1415926/180;

sum=0;

an=x;

n=1;

do

{

sum+=an;

n=n*(n+1)*(n+2);

an*=(-x*x)/n;

printf("an=%f\n",an);

}while(fabs(an)>=EPS);

printf("sin(%.4lf)=%.4lf\n",x,sum); }

8.#include

void main()

{

unsigned int n;

char c;

n=0;

printf("input a binary integer:");

while((c=getchar())!='\n')

{

switch (c)

{

case '0':

n=n*2+0;

break;

case '1':

n=n*2+1;

break;

}

}

printf("the decimal is %d.\n",n); }

9.#include

void main()

{

int i,j;

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

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

printf("\n");

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

{

printf("%d",i);

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

printf("\t%d",i*j);

printf("\n");

}

}

10.#include

void main()

{

int n,m,z,x,y;

printf("input n:");

scanf("%d",&n);

m=n;

z=x=y=1;

while (n>1)

{

z=x+y;

x=y;

y=z;

n--;

}

printf("Fibonacci(%d)=%d.\n",m,z); }

11.#include

#include

void main()

{

int i,j;

int flag;

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

{

flag=1;

for (j=2;j<=sqrt(i);j++)

if (i%j==0)

{

flag=0;

break;

}

if (flag==1)

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

}

}

12.#include

void main()

{

int i,sum;

sum=0;

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

if (i%3==0 && i%5==0 && i%7==0)

sum+=i;

printf("sum is %d.\n",sum);

}

13.#include

void main()

{

int x;

long f;

printf("input x:");

scanf("%d",&x);

if (x>=1 && x<=3)

f=2*x+3;

else if (x>=4 && x<=10)

f=3*(x+4);

else

f=x*x+3*x-6;

printf("f(%d)=%d\n",x,f);

}

习题6参考答案

6.1 &b[i][j]=3001+i*16+j*4;

6.2求一维数组各元素的最大值、最小值及所有元素的乘积#include

#define N 10

void main( )

{

int a[N];

int max,min,i,product;

printf("输入%d个数组元素:\n",N);

for(i=0;i

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

max=a[0];

min=a[0];

product=a[0];

for(i=1;i

{

product*=a[i];

if(max

if(min>a[i])min=a[i];

}

printf("各元素最大值为:%d\n",max);

printf("各元素最小值为:%d\n",min);

printf("各元素的乘积为:%d\n",product);

}

6.3已知数列a0=0, a1=1,an= an-2+ an-2an-1,求数列的前10个元素#include

#define N 10

void main( )

{

int a[N]={0,1};

int i;

for(i=2;i

a[i]=a[i-2]+a[i-2]*a[i-1];

for(i=0;i

{

if(i%5==0)printf("\n");

printf("%5d",a[i]);

}

printf("\n");

}

6.4用改进的冒泡算法对N个数由小到大排序

#include

#define N 10

void main( )

{

int a[N];

int i,j,temp,flag;

printf("输入待排序数据:\n");

for(i=0;i

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

for(i=0;i

{

flag=0;

for(j=0;j

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

flag=1;

}

C语言习题级参考答案

测试题11 1.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。 A、char s[10];strcpy(s,"abcdefg"); B、char s[10];s="abcdefg"; C、char s[10]="abcdefg"; D、char t[]="abcdefg",*s=t 2.下列语句的输出结果是(B)。 printf("%d\n",(int)(2.5+3.0)/3); A、2 B、1 C、有语法错误不能通过编译 D、0 3.以下程序段的输出结果是 A main() { char ch1, ch2; ch1 = …A? + …5? - …3?; ch2 = …A? + …5? - …3?; printf(“%d,%c\n”, ch1,ch2); } A、67, C B、B,C C、不确定的值 D、C,D 4.以下程序段的输出结果为(B)。 char c[]="abc"; int i=0; do ;while(c[i++]!='\0');printf("%d",i-1); A、abc B、3 C、ab D、2 5.相同结构体类型的变量之间,可以(C)。 A、比较大小 B、地址相同 C、赋值 D、相加 6. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件 A、.obj B、.exe C、.c

D、.bas 7.以下程序的输出结果是 C main() { char s[] = “ABCD”, *p; for(p = s; p < s + 4; p++) printf(“%s\n”, p); } A、 B、 C、 D、 8.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每一个元素的地址 B、数组的首地址 C、数组每个元素中的值 D、数组的长度 9.如果int a=2,b=3,c=0,下列描述正确的是(D) A、a>b!=c和a>(b!=c)的执行顺序是一样的 B、a&&b>c的结果为假 C、a||(b=c)执行后b的值为0 D、!a!=(b!=c)表达式的值为1 10.当调用函数时,实参是一个数组名,则向函数传送的是(B)。 A、数组每个元素中的值 B、数组的首地址 C、数组的长度

C语言习题全集+答案

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. " " C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=; y=;

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

C语言习题及参考答案

C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗?

习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR ( 4 ) A) sj B) Int C)_xy D)w_y23 5、属于合法的C语言长整型常量的是(BD)。 A)5876273 B)0L C)2E10 D)(long)5876273 6、下面选项中,不是合法整型常量的是(B )。 A)160 B)-0xcdg C)-01 D)-0x48a 7、判断int x = 0xaffbc;x的结果是(D)。 A)赋值非法B)溢出C)为affb D)为affbc 8、下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9、在C语言中,要求参加运算的数必须时整数的运算符是(C)。 A)/ B)* C)% D) = 10、在C语言中,字符型数据在内存中以(D)形式存放。 A)原码B)BCD码C)反码D)ASCII码 11、下列语句中,符合语法的赋值语句是(C)。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=(7+b,b++,a+7);D)a=7+b,c=a+7; 12、是非法的C语言转义字符(B )。 A)…\b?B)…\0xf? C)…\037? D)… \?? 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 14、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15、在C语言中,数字029是一个(D)。

c语言习题答案

实验一 (1)编程求37+29的值,实习VC环境。 #include void main() { int a,b,sum; a=37; b=29; sum=a+b; printf("sum=%d",sum); } (2)从键盘输入三个整数,求出最大数并输出。 #include void main() { int a,b,c,y; int max(int x,int y); printf("input a,b,and c:"); scanf("%d,%d,%d",&a,&b,&c); y=max(a,b); y=max(y,c); printf("\nmax=%d\n",y); } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return(z); } (3)通过上机实践,运行下列程序并分析输出结果。 A 程序代码 #include void main() { char ch='a'; printf("%c对应的ASCII码是:%d\n",ch,ch); } 程序输出结果:a对应的ASC||码是:97

B 程序代码 #include void main() { int a=168; float b=123.456; float x=35.567,y; printf("a=%5d\n",a); printf("a=%-5d\n",a); printf("b=%6.2f\n",b); printf("b=%e\n",b); y=(int)(x*100+0.5)/100.0; printf("x=f,y=%f\n",x,y); } 程序输出结果: a=168 a=168 b=123.46b=1.234560e+002 x=f,y=35.567001 C程序代码 #include void main() { int a=168; printf("十进制数%d对应的八进制数是%o\n",a,a); printf("十进制数%d对应的十六进制数是%x\n",a,a); } 程序输出结果: 十进制数168对应的八进制数是250 十进制数168对应的十六进制数是a8

C语言课后答案

习题一 一、简答题 1.顺序结构、选择(分支)结构和循环结构。 2. (1)

(2)

3.编辑、编译、连接和运行 二、填空题 1. Ctrl+F9;Alt+F5;F2。 2. main(主) 3. main(主) 4. 任意 5. /* */ 不 6. ; 7.。 程序: include studio.h main{} /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year"); 正确的为: #include main() /* this program prints the number of weeks in a year. */ { int s; s=52; printf("There are s weeks in a year"); }

习题二 一、选择题 1、C 2、B,D,F,G 3、C 4、A 5、C 6、B 二、填空题 1、声明;使用。 2、整型、浮点型(实型)、字符型。 3、hat_1,cat1,all, Dollar, piece_f, SIN, _ , FALSE. 4、'A'(字符),005(整型),3e0(整型),'\\'(字符),'\05'(字符), 1.2e+5(整型),0xf12(整型)。 5、(1)6+(4+5)*(4+5)/(2+3) (2)sin(a+b)*ain(a+b)/ (4*2)/(3*2)+2 三、读程题 1.若x为float型,其原值为5,a=2,b=4.7。写出下列表达式运算后x的值。 (1)x=(int)(b-a)%3*a/4-a (2)x=(x=b+1)+(int)(b)%10/2.0 (3)x+=x (4)x-=x (5)x*=x+x (6)x/=x+x (7)x+=x-=x*=x (8)x%=x (9)x=3*4,5*6 答案:(1)-1,(2)7.7,(3)10,(4)0,(5)50,(6)0.5,(7)0,(8)非法,(9)12。 2.写出下面程序的运行结果。 #include void main() { int a=2; printf("abcdefghijk\n"); printf("lmnop/n"); printf("I am a /n beginner of C !"); printf("I am a \n beginner of C !"); printf("%d + %d = %d",a,a,a); } 答案: abcdefghijk

c语言编程例题及答案

实验报告三 (四学时) 2.1 实验目的 (1)掌握函数的定义和调用; (2)了解函数间的参数传送; 2.2 基础实验 【题目3-1】编写函数实现将输入的字母转换成大写字母(若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母”)。 算法分析: 1、输入:通过键盘接收一个字符; 2、条件判断:调用判别函数 3、函数功能为:蒋所输入字符进行判别处理,若输入小写则转换,大写字母直接输出,其他字符请输出提示“请输入字母” 4、程序结束。 【实验3-1】代码及运行结果:

【题目3-2】从键盘输入若干个同学计算机课程期末考试成绩(学生人数可由用户输入),求该课程的期末成绩的平均分并输出。 函数功能要求:实现若干(例如5名)同学的的期末成绩输入,并统计出平均分。 算法分析: 1、输入:通过键盘接收同学个数; 2、调用求平均分函数 3、输出平均成绩 4、程序结束。 【实验3-2】代码及运行结果: 【题目3-3】请用函数编写程序实现:计算3 到100 之间所有素数的平方根之和,并输出。s=148.874270。

算法分析: 1、编写函素数判别函数,确定返回标记,如果是素数返回1,否则返回0 2、编写主函数,用一重循环遍历100以内所有数据 2.1、通过素数判别函数对循环的数据进行是否为素数的判别 2.2、返回判别为真的整数,并输出 3、程序结束。 【实验3-3】代码及运行结果: #include #include int Prime(int x) { int i ; if(x<=1) return 0; for(i=2;i<=x-1;i++) { if(x%i==0) { return 0; } } return 1; } int main() { double i,sum; i=3; sum=0; while(i<=100) { if(Prime(i)) { sum=sum+sqrt(i); } else { sum=sum+0; } i++; } printf("sum=%f\n",sum); return 0; }。

C语言基本选择题及参考答案

C语言基本选择题及参 考答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

计算机程序设计基础(C语言) 单项选择练习题 一、基本概念 语言程序是由C构成的。 A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数 2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从C开始执行。 A)程序中第一条可执行语句?B)程序中第一个函数 C)程序中的main函数?D)包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A)程序文件的开始B)程序文件的最后 C)它所调用的函数的前面D)程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 6.下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。

B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7.下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 程序一定由函数构成的。 8.下列关于C语言的说法错误的是(B)。 A)C程序的工作过程是编辑、编译、连接、运行 B)C语言不区分大小写。 C)C程序的三种基本结构是顺序、选择、循环 D)C程序从main函数开始执行 9.系统默认的C语言源程序扩展名为.C,需经过C之后,生 成.exe文件,才能运行 A)编辑?编译B)编辑?连接C)编译?连接D)编辑?改错 10.下列说法中正确的是(B)。 A.由于C源程序是高级语言程序,因此一定要在TC软件中输入。 B.由于C源程序是由字符流组成的,因此可以作为文本文件 在任何文本编辑的软件中输入。 C.由于C程序是高级语言程序,因此输入后即可执行。 D.由于C程序是高级语言程序,因此它是由命令组成的。

C语言习题级答案

选折题 1. int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A)。 A、1 B、不一定 C、3 D、2 2. 以下选项中不合法的用户标识符是 B A、Dim B、printf C、_123 D、A$ 3. int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数 1,2,3,4,5,6存入a数组的是(C)。 A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1; B、for(i=0;i<6;i++)a[i/3][i%3]=i+1; C、for(i=1;i<=6;i++)a[i][i]=i; D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; 4.以下所列的C语言常量中,错误的是___A___。 A、、0xFF C、2L D、'\72' 5.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。 A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0 C、此说明语句不正确 D、数组a中各元素都可得到初值,但其值不一定为0 6.以下正确的字符串常量是 D A、'abc' B、'A' C、OlympicGames D、"\\\" 7. C语言中,char类型数据占(C)。 A、8个字节 B、4个字节 C、1个字节 D、2个字节 8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表

示的字符常量'\101'是____D__。 A、非法的常量 B、字符a C、字符e D、字符A 9. 以下函数的类型是(D) fff(float x) { return 5; } A、与参数x的类型相同 B、void 类型 C、无法确定 D、int类型 10. 以下叙述中正确的是(A)。 A、静态(static)类别变量的生存期贯穿于整个程序的运行期间 B、全局变量的作用域一定比局部变量的作用域范围大 C、函数的形参都属于全局变量 D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 11.下列运算符中是C语言关系运算符的是(C)。 A、& B、~ C、!= D、! 12.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用 八进制表示的字符常量'\101'是(D)。 A、字符e B、字符a C、非法的常量 D、字符A 13. 若有float x=;,则执行下列程序段的输出结果为(B)。printf("%3d",(int)x); A、 B、213 C、 D、 14.全局变量的定义不可能在(A)。

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

中国石油大学(华东)C语言习题答案

C语言复习题 【设计型】5.1 输出一行星号 编写程序在一行中输出 N 个星号。 输入: N值 输出:一行中N个星号 #include int main() { int a,i; scanf("%d",&a); for(i=1;i<=a;i++) printf("*"); printf("\n"); return 0; } 【设计型】5.2 打印平行四边形输入图形的高 n ,输出如下例( n=5 )所示的图形 . ***** ***** ***** ***** ***** 输入:

整数n例如 5 输出: 由*组成的高为5的平行四边形 #include int main() { int i,j,num; scanf("%d",&num); for(i=0;i int main() { double n,i,sum,k=1.0; scanf("%lf",&n);

i=1,sum=0; while(i<=n) { sum=sum+k/i; i++; k=-k;(用这个式子实现正负交替) } printf("sum=%.4lf\n",sum); return 0; } 【设计型】5.4 分数序列 有一个分数序列:...............,输入整数n,求出其前n项的和。 输出语句格式为:printf("sum=%16.10f\n",s); #include int main() { int n,a,b,i,temp; double sum; scanf("%d",&n); i=1,sum=0,a=2,b=1; while(i<=n)

c语言参考答案

从10个整数中把最小得数找出来,并与最前面得数对调, 指出最小得数原来得位置。 #include〈stdio。h> void main( ) { ?inti,j,a[10],k; for(i=0;i〈=9;i++) scanf("%d",&a[i]); j=0;/*假设最小值就是第0个元素*/ for(i=1;i<=9;i++) ?if(a[i]<a[j])j=i; if(j!=0) {??k=a[0]; a[0]=a[j];?a[j]=k;}?printf("min number is:%d\n",a[0]); printf("theposition is:%d\n",j); } #include 〈stdio.h> int f(int a[]) { int i,j,k; ?j=0;/*假设最小值就是第0个元素*/ for(i=1;i<=9;i++) if(a[i]<a[j]) j=i; if(j!=0) {??k=a[0];?a[0]=a[j];?a[j]=k;} returnj; } voidmain() { ?int i,j,a[10]; for(i=0;i〈=9;i++) scanf(”%d",&a[i]); j=f(a); printf(”minnumberis:%d\n”,a[0]); printf(”the position is:%d\n", j); } 已知5个数已经按由大到小排好序,请编程使得它们按由小到大排序。(逆序) #include

c语言习题册及答案

C )可以任意 D )必须在最后 第 3 章 课后练习及作业习题指导(参考答案) 作业 01 C 语言基础知识 一、选择题 1. C 语言程序的基本单位是( )。 A )函数 B )过程 C )子程序 D )子例程 2. 下列个选项中,合法的 C 语言关键字是( )。 A ) integer B ) sin C ) string D ) void 3. 下列选项中,不是 C 语言提供的合法关键字的是( )。 A ) switch B ) cher C ) default D ) case 4. 以下选项中合法的用户标识符是( )。 A ) int B ) a# C ) 5mem D ) _243 5. C 语言程序一行写不下时,应该( )。 A )用回车换行 B )在任意空格处换行 C )用分号换行 D )用逗号换行 6. 在C 程序中,可以作为用户标识符的一组标识符是( )。 A ) void define WORD B ) as_b3 _224 Else C ) switch — wer case D ) 4b DO SIG 7. 在C 语言中,下列合法的字符常量是( )。 A )' \039 B )' x76' C )' ab ' D )' o ' 8. 以下说法正确的是( )。 A ) C 语言程序是从第一个定义的函数开始执行 B )在 C 语言程序中,要调用的函数必须在 ma in ()函数中定义 C )C 语言程序是从 main ()函数开始执行的 D ) C 语言程序中的 main ()函数必须放在程序的开始部分 9. ( )是构成C 语言程序的基本单位 A )函数 B )变量 C )子程序 10. 一个C 语言程序总是从( )开始执行的 A )主过程 B )主函数 C )子程序 11. 以下叙述不正确的是( ) A ) 一个C 源程序可由一个或多个函数组成 B ) 一个 C 源程序必须包含一个 main ()函数 C ) C 程序的基本组成单位是函数 D )在C 程序中,注释说明只能位于一条语句的后面 12. C 语言规定:在一个源程 序中, main ()函数的位置( ) )语句 )主程序

C语言练习题及参考答案

练习题1及参考答案 1. 单项选择题 (1)以下并非C语言的特点的是。 A. C语言简洁和紧凑 B. 能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D. C语言移植性好 【答】B (2)一个C程序的执行是从。 A. main()函数开始,直到main()函数结束 B. 第一个函数开始,直到最后一个函数结束 C. 第一个语句开始,直到最后一个语句结束 D. main()函数开始,直到最后一个函数结束 【答】A (3)在C程序中,main()的位置。 A. 必须作为第一个函数 B. 必须作为最后一个函数 C. 可以任意 D. 必须放在它所调用的函数之后 【答】C (4)一个C程序是由。 A. 一个主程序和若干子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 【答】B (5)下列说法正确的是。 A. 在执行C程序时不是从main()函数开始的 B. C程序书写格式限制严格,一行内必须写一个语句 C. C程序书写格式比较自由,一个语句可以分行写在多行上 D. C程序书写格式严格要求一行内必须写一个语句,并要求行号 【答】C 2. 填空题 (1)一个C源程序至少有①个main()函数和②个其他函数。【答】①一②若干 (2)任何C语句必须以结束。 【答】分号 (3)C语言源程序的基本单位是。 【答】函数 (4)C编译程序的功能是。

【答】将C源程序编译成目标代码

练习题2及参考答案 1. 单项选择题 (1)以下字符串为标识符的是。 A. _MY B. 2_2222 C. short D. LINE 5 【答】A (2)下列符号可以作为变量名的是。 A. +a B. *p C. _DAY D. next day 【答】C (3)设c是字符变量,则以下表达式正确的是。 A. c=666 B. c='c' C. c="c" D. c="abcd" 【答】B (4)23+'m'+3.6-123.45/'b'的结果是型数据。 A. char B. double C. int D. long int 【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。 (5)若变量已正确赋值,以下符合C语言语法的表达式是。 A. a=a+7; B. a=7+b+c,a++ C. int(12.3%4) D. a=a+7=c+b 【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。 (6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。 A. x=(x=1+2,x*2) B. x=y>2?6:5 C. x=9-(--y)-(--y) D. x=y*(int)(4.8/2) 【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。 (7)若定义 int m=7,n=12; 则能得到值为3的表达式是。 A. n%=(m%=5) B. n%=(m-m%5) C. n%=m-m%5 D. (n%=m)-(m%=5) 【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。 (8)以下程序的运行结果是。

C语言参考答案.doc

装; … 订 线 襄樊职业技术学院课程考试试卷 课程名称:《C 语言》 (A )卷 I. 在C 语言程序中,程序的入口函数是() 2?c 语言程序的正确运行顺序是() A. 编译、编码、连接、运行 B. 编码、编译、连接、运行 C. 连接、编译、编码、运行 D. 连接、编码、编译、运行 3.在c 语言中,要求参加运算的数必须时整数的运算符是()。 A. / B. * C. % D.= 4?以下叙述不正确的是:() A. —个C 源程序可由一个或多个函数组成 B. —个C 源程序必须包含一个main 函数 C. C 程序的基木组成单位是函数 D. 在C 程序中,注释说明只能位于一条语句的后面 5. 是c 语言提供的合法的数据类型关键字()o A. Float B. signed C. integer D. Char 6. 在c 语言中,下列变量名不符合规范的有() A. PI B. float C. score D. M8 7. 不是c 语言提供的合法关键字是() A. switch B. cher C. case D ? default 8?下列表达式的值为o 的是() A. 3%5 B. 3/5.0 C. 3/5 D. 3<5 点 9.在c 语言中,字符型数据在内存中以()形式存放 A. 原码 B. BCD 码 C.反码 D. ASCII 码 70?在C 语言中,若a 、b 两个整型变量,a 的值为10, b 的值为7,下列表达式的值为1的是() A. a/b B. a%b C. b/a D. b%a II. 假定 x 和 y 为 double 型,x=2;y=x+3/2;则 printf (H %f\y );的值是()。 A. 3.500000 B. 3 C. 2.000000 D. 3.00000 72下选项中不属于c 语言的类型是 年级: 班级: 姓名: 学号: 考试(考查) 闭卷 选择题(每题分,共计分)

c语言试题及答案 ()

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以/* 符号作为开始标记,以 */ 符号作为结束标记。

c语言参考答案

从10个整数中把最小的数找出来,并与最前面的数对调, 指出最小的数原来的位置。 #include void main( ) { int i,j,a[10],k; for(i=0;i<=9;i++) scanf("%d",&a[i]); j=0;/*假设最小值是第0个元素*/ for(i=1;i<=9;i++) if(a[i] int f(int a[]) { int i,j,k; j=0;/*假设最小值是第0个元素*/ for(i=1;i<=9;i++) if(a[i]

已知5个数已经按由大到小排好序,请编程使得它们按由小到大排序。(逆序) #include void main( ) { int a[5]={5,4,3,2,1},i,t; for (i=0;i<5/2;i++) { t=a[i]; a[i]=a[4-i]; a[4-i]=t; } for (i=0;i<5;i++) printf("%d",a[i]); } #include void f(int a[]) { int i,t; for (i=0;i<5/2;i++) { t=a[i]; a[i]=a[4-i]; a[4-i]=t; } } void main() { int a[5]={5,4,3,2,1},i; f(a); for (i=0;i<5;i++) printf("%d",a[i]); }

C语言试题(答案仅供参考)

1.分析下面的C语言代码:char ch; while((ch=getchar())!=’e’) printf(“*”);若 输入字符串:abcde<回车>,则以上while循环体将执行(D)次。(选择一项) A)0 B)1 C)5 D)4 2.下列C程序段的输出结果是(C)。(选择一项) void main() { int a[4] = {5,2,3,4}; int *p; p = a; p += 2; printf(“%d”,*p); } A)1 B)2 C)3 D)4 3.在C语言中,假设:char w; int x; float y; double z; 则表达式:w*x+z-y 值得数据类型为(D)。(选择一项) A) float B) char C) int D) double 4.已知十六进制数1A的十进制数为26,请问十六进制数2B的十进制数表示是(D)。(选择一项) a)27 b)37 c)42 d)43 5.在C语言中,下列代码输出的结果是(D)。 #include void main() { int i; int bookNum=4; int totalPrice=0; int bookPrice[4]={10,20,30,40}; for(i=0;i<4;i+=2) { totalPrice+=bookPrice[i]; i--;

} printf(“%d”,totalPrice); }(选择一项) A)30 B)40 C)60 D)100 6.在C语言中有如下定义:int a[10];则对a数组元素的正确引用是(AD)。(选 择二项) a)a[10] b)a[3+1] c)a(5) d)a[0] 7.在C语言中,下列代码的运行结果是(C)。(选择一项) #include #include void main() { double squ,power,value; squ=sqrt(4.0); power = pow(3.0,2); value = pow(power,squ); printf("%1.0f",value);} a)1 b)16 c)81 d)256 8.下列C语言代码的运行结果是(A)。(选择一项) #include #include(string.h> void main() { char str[10] = “12345”; strcat(str,”6789”); printf(“%s\n”,str); } a)123456789 b)6789 c)678912345 d)12345 9.void main() {

相关文档