文档库 最新最全的文档下载
当前位置:文档库 › C语言1-2章课后题

C语言1-2章课后题

C语言1-2章课后题
C语言1-2章课后题

第一章C语言概述课后题

一、选择题

1、一个C语言程序总是从()。

A、主过程开始执行

B、主函数开始执行

C、子程序开始执行

D、主程序开始执行

2、C语言能直接执行的程序是()。

A、源程序

B、汇编程序

C、目标程序

D、可执行程序

3、以下叙述中正确的是()。

A、C语言程序中的注释部分可以出现在程序中任意合适的地方

B、花括号“{”和“”只能作为函数体的定界符

C、构成C语言程序的基本组成单位是函数,所有函数名都可以由用户命名

D、分号是C语言语句之间的分隔符,不是语句的一部分

4、以下选项中,不合法的C语言程序函数体是()。

A、{;}

B、{ }

C、{ printf(“computer”); }

D、{int a=1;}

5、要把高级语言编写的源程序转换为目标程序,需要使用()。

A、编辑程序

B、驱动程序

C、编译程序

D、诊断程序

二、填空题

1、C语言程序的基本单位是()。

2、C语言源程序文件名的后缀是(),经过编译后生成的目标文件名的后缀是(),经过链接之后生成的可执行文件名的后缀是()。

3、计算机语言包括()、()和()。其中计算机能够直接识别的语言是(),()很接近人们习惯使用的自然语言和数学语言。

4、按照结构化程序设计原则,常见的程序基本结构有()、()和()。

5、循环结构包含()循环和()循环。

三、简单题

1、什么是程序?什么是程序设计?

2、解释源程序、目标程序和可执行程序的含义。

3、写出C语言的特点。

四、编程题

1、参照本章例题,编写一个C语言程序,输出以下信息:happy new year!

2、参照本章例题,编写程序求两个数中的较小值。

第二章C语言程序设计基础课后题

一、选择题

1、以下选项中,正确的整型数据是()。

A、1.2

B、-123

C、723 456

D、567 890

2、下面字符常量的表达形式中正确的是()。

A、“Z”

B、“\’

C、‘1’

D、‘\378’

3、ch为字符型变量,执行语句“ch=?C?+‘5’-…4?;”,将ch按字符类型输出的结果是()。

A、D

B、68

C、56

D、不确定的值

4、C语言中要求运算对象必须是整型数据的运算符是()。

A、++

B、--

C、%

D、/

5、变量a为整型、b为实型、c为双精度型、d为字符型,则表达式a=a*b+d-c的类型是()。

A、整型

B、实型

C、双精度型

D、字符型

6、有以下定义语句,编译时会出现编译错误的是()。

A、char a=?a?;

B、char a=?\n?;

C、char a=?aa?;

D、char a=?\x2d?;

7、设有语句“int a=3;”,执行语句printf(“%d %d”,a+1,a++);后输出的值是()。

A、4 3

B、3 4

C、4 4

D、3 3

二、填空题

1、在C语言中(以16位计算机为例),一个char型数据在内存中所占的字节数为(),其数值范围是();一个int型数据在内存中所占的字节数为(),其数值范围是();一个long型数据在内存中所占的字节数为(),其数值范围是();一个float型数据在内存中所占字节数为(),其数值范围是()。

2、字符常量使用一对()界定单个字符,而字符串常量使用一对()来界定若干个字符的序列。

3、设“floatx=2.5;int a=7;float y=4.7;”,则表达式x+a%3*(int)(x+y)%2/4的值为()。

4、已知“char a=?a?,b=?b?,c=?c?,i;”,则表达式i=a+b+c的值为()。

5、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()。

6、若有定义“int m=5,n=3;”,则表达式m/=n+4的值是(),表达式m=(m=1,n=2,n-m)的值是(),表达式m+=m-=(m=1)*(n=2)的值是()。

三、简答题

1、简述?a?和”a”的区别。

2、已知,“int m=12,m=15;”,为什么整型变量m的值在运算后不是当初的12,而是15?

3、将下面各数用八进制和十六进制数表示。

十进制数:32 -1 -32768 2002 -128 0

八进制数:

十六进制数:

4、写出以下程序的运行结果

int main()

{

char c1=?a?,c2=?b?,c3=?c?,c4=?\101?,c5=?116?;

printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c %c”,c4,c5);

return 0;

}

5、写出以下程序的运行结果。

int main()

{

int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

return 0;

}

四、编程题

已知“int x=10,用2;”,写出将x和y的值相互交换的语句。

测试一

一、单项选择题

1、以下描述中正确的是()

A、C语言程序的执行是从main函数开始的,到程序的最后一个函数结束

B、C语言程序的执行是从第一个函数开始的,到程序的最后一个函数结束

C、C语言程序的执行是从main函数开始的,到程序的main函数结束

D、C语言程序的执行是从第一个函数开始的,到程序的main函数结束

2、若有语句“char a;”,并要将字符a赋给变量a,则下列赋值表达式正确的是()。

A、a=?a?;

B、a=?a?;

C、a=”97”;

D、a=?97?;

3、若有语句“int a=5;”,则执行语句“a++a*=10;”后,a的值是()。

A、55

B、100

C、60

D、105

4、设有“int x=11;”,则表达式(x++*1/3)的值是()。

A、3

B、4

C、11

D、12

5、能正确表达逻辑关系“a>=10”或“a<=0”的C语言表达式是()。

A、a>=10 or a<=0

B、a>=0 | a<=10

C、a>=10 && a<=0

D、a>=10 || a<=0

6、已有定义“int x=3,y=4;”,则表达式x>y&&y的值是()

A、true

B、0

C、false

D、1

7、有如下语句,则当x=5是,c的值是()

int c=5,x;

scanf(“%d”,&x);

switch(x+1)

{

case 6:c++;

case 8:c++;break;

default:c+=3;

}

printf(“%d”,c);

A、6

B、7

C、8

D、语法错误

8、若有以下程序,则语句a=a+1执行的次数是()

int main()

{

int x=1,a=1;

do

{

a=a+1;

}

while(x);

return 0;

}

A、0

B、1

C、无限次

D、有限次

9、以下程序的输出结果是()

int main()

{

int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

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

s+=a[i][j];

printf(“%d\n”,s);

return 0;

}

A、18

B、19

C、20

D、21

10、C语言中,二维数组在内存中的存放顺序是()

A、行优先

B、列优先

C、由编译系统决定

D、由用户决定

11、以下程序的输出结果是()

int main()

{

char ch[]={…1?,?2?,?\0?,?3?,?4?,?\0?};

printf(“%s”,ch);

return 0;

}

A、1234

B、12034

C、12

D、有语法错误

12、以下程序执行后输出的结果是()

void f(int x,int y)

{

int t;

if(x

}

int main()

{

int a=4,b=3,c=5;

f(a,b);

f(a,c);

f(b,c);

printf(“%d,%d,%d\n”,a,b,c);

return 0;

}

A、3,4,5

B、5,3,4

C、5,4,3

D、4,3,5

13、执行如下程序段后,a的值为()

int *p,a=10,b=1;

p=&a;a=*p+b;

A、12

B、11

C、10

D、编译出错

14、以下程序执行后的输出结果是()

int main()

{

int x[8]={8,7,6,5,0,0},*s;

s=x+3;

printf(“%d\n”,s[2]);

return 0;

}

A、随机值

B、0

C、5

D、6

15、若要将text.txt文件打开用于追加信息,则以下格式正确的是()

A、fp=fopen(“text.txt”,”r”);

B、fp=fopen(“text.txt”,”r+”);

C、fp=fopen(“text.txt”,”a+”);

D、fp=fopen(“text.txt”,”w”);

16、有定义语句“double x,*p;”,则以下表达式中正确的是()

A、*p=&x;

B、p=x;

C、p=&x;

D、*p=x;

17、下面程序的正确输出结果是()。(规定用U表示空格)

int main()

{

float x=5.783,y=-10.2345;

printf(“x=%-8.2f,y=%-8.2f\n”,x,y);

return 0;

}

A、x=5.78UUUU,y=-10.23UU

B、x=5.78,y=-10.23

C、5.78,-10.23

D、x=UUUU5.78,y=UU-10.23

18、sizeof(float)是()

A、一个浮点表达式

B、一个不合法的表达式

C、函数调用结果,是一个整型表达式

D、一种函数调用

19、下列数据中属于字符串常量的是()

A、?A?

B、”ABC”

C、ABC

D、?ABC?

20、用下面的scanf函数输入数据,使得i=10,k=15,正确的键盘输入方法是()(用[CR]表示回车,U表示空格)

int main()

{

int i,k;

scanf(“i=%d,k=%d”,&i,&k);

return 0;

}

A、i=10[CR]k=15[CR]

B、i=10,k=15[CR]

C、10U15[CR]

D、10,15[CR]

二、判断题

1、在一个C语言程序中,main函数必须出现在所有函数之前。()

2、引用数组元素时,下标可以是整型常量或整型表达式。()

3、预处理命令都必须以“#”开头。()

4、函数的形参都属于全局变量。( )

5、静态(static)类型变量在函数调用结束后仍然存在。()

6、函数定义可以嵌套,函数调用不可以嵌套。()

7、字符类型变量只能存储一个字符。()

8、从功能上讲,“putchar(c);”等价与“printf(“%c”,c);”。()

9、表达式(7-1)*2!=10的值为1。()

10、实参向形参传递值可以是单向传递,也可以是双向传递。()

三、填空题

1、若从键盘输入58,则以下程序的输出结果是。

int main()

{

int a;

scanf(“%d”,&a);

if(a>50) printf(“%d”,a);

if(a>40) printf(“%d”,a);

if(a>30) printf(“%d”,a);

return 0;

}

2、以下程序的输出结果是。

int main()

{

int x=23;

do

{

printf(“%d”,x--);

}while(!x);

return 0;

}

3、将程序补充完整(要求,输入任意两个整数a和b,若b不等于0,则输出a/b的值,结果保留两位小数)。

#include

int main()

{

int a,b;float c;

printf(“input a,b:”);

scanf(“%d,%d”,&a,&b);

if( )

c=1.0*a/b;

printf(“%.2f\n”,c);

return 0;

}

4、将程序补充完整(用for循环求1-100的和)。

#include

int main()

{

int i,sum;

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

sum+=i;

printf(“%d\n”,sum);

return 0;

}

5、将程序补充完整(输入两个整数并求最大值)。

#include

int main()

{

int a,b,c;

printf(“input two numbers:\n”);

scanf(“%d,%d”,&a,&b);

c= ;

printf(“max=%d\n”,c);

return 0;

}

int max(int x,int y)

{

int z;

z=x>y?x:y;

return z;

}

四、编程题

1、用数组计算fibonacci数列的前20个数,并按每行打印5个数的格式输出。

2、“百钱百鸡”问题是一个很经典的穷举问题。公元前5世纪,我国古代数学家张丘建在《算经》中提出,鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?编程求解该问题。

测试二

一、单项选择题

1、以下描述中正确的是()

A、C语言程序由过程和函数组成的

B、C语言函数可以嵌套调用,例如:fun(fun(x))

C、C语言函数不可以单独编译

D、C语言中除了main函数,其他函数不可以作为单独文件形式存在

2、以下C语言用户标识符中,不合法的是()。

A、_1

B、AaBc

C、a_b

D、a——b

3、若有定义“double a=22;int i=0,k=18;”,则不符合C语言规定的赋值语句是()。

A、a=a++,i++;

B、i=(a+k)<=(i+k);

C、i=a%11;

D、i=!a;

4、以下选项中,与“if(a==1)a=b;else a++;”语句功能不同的switch语句是()。

A、switch(a)

{

case :a=b;break;

default:a++;

}

B、switch(a==1)

{

case 0 :a=b;break;

case1:a++;

}

C、switch(a)

{

default:a++;break;

case 1:a=b;

}

D、switch(a==1)

{

case 1:a=b;break;

case 0:a++;

}

5、有以下程序段,为避免此程序段陷入死循环,从键盘输入的数据应该是( )。int n,t=1,s=0;

scanf(“%d”,&n);

do

{

s=s+t;

t=t-2;

}while(t!=n);

A、任意正奇数

B、任意负偶数

C、任意负奇数

D、任意正偶数

6、以下程序运行后的输出结果是()

#include

int main()

{

int i,j,m=1;

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

{

for(j=3;j>0;j--)

{

if((i*j)>3)break;

m*=i*j;

}

}

printf(“m=%d\n”,m);

return 0;

}

A、m=6

B、m=2

C、m=4

D、m=5

7、以下程序运行后的输出结果是()

#include

int main()

{

int a=1,b=2;

for(;a<=8;a++)

{

b+=a;a+=2;

}

printf(“%d,%d\n”,a,b);

return 0;

}

A、9,18

B、8,11

C、7,11

D、10,14

8、以下关于return语句的叙述中正确的是( )

A、一个自定义函数中必须有一条return语句

B、一个自定义函数中可以根据不同情况设置多条return语句

C、定义成void类型的函数中可以有带返回值的return语句

D、没有return语句的自定义函数在执行结束时不能返回到调用处

9、下列选项中,能正确定义数组的语句是()

A、int num[0..2008];

B、int num[];

C、int N=2008;

int num[N];

D、#define N 2008

int num[N];

10、若有定义“int(*pt)[3];”,则下列说法正确的是()

A、定义了基类型为int的3个指针变量

B、定义了基类型为int的具有3个元素的指针数组pt

C、定义了一个名为*pt、具有3个元素的整型数组

D、定义了一个名为pt的指针变量,它可以指向每行有3个整型元素的二维数组

11、以下程序运行后的输出结果是()

#include

int main()

{

int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

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

s=s+a[b[i]];

printf(“%d\n”,s);

return 0;

}

A、6

B、10

C、11

D、15

12、以下程序执行后输出的结果是()

#include

#define SUB(a) (a)-(a)

int main()

{

int a=2,b=3,c=5,d;

d=SUB(a+b)*c;

printf(“%d\n”,d);

return 0;

}

A、0

B、-12

C、-20

D、10

13、14、以下程序执行后的输出结果是()

#include

int main()

{

int a=2,b=2,c=2;

printf(“%d\n”,a/b&c);

return 0;

}

A、0

B、1

C、2

D、3

14、设有定义“int a=1,b=2,c=3;”,以下语句中,执行效果与其他3个不同的是()

A、if(a>b)c=a,a=b,b=c;

B、if(a>b){c=a,a=b;b=c;}

C、if(a>b)c=a;a=b;b=c;

D、if(a>b){c=a;a=b;b=c;}

15、以下程序运行后的输出结果是()

#include

int main()

{

int c=0,k;

for(k=1;k<3;k++)

switch(k)

{ default:c+=k;

case 2:c++;break;

case 4:c+=2;break;

}

printf(“%d\n”,c);

return 0;

}

A、3

B、5

C、7

D、9

16、以下程序的输出结果是()

int main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf(“%d,%d\n”,*(p+2),*p+9);

return 0;

}

A、3,10

B、4,1

C、1,10

D、2,9

17、下面程序的正确输出结果是()。

int main()

{

char str[5]=”ABCD”,*p=str;

printf(“%d\n”,*(p+4));

return 0;

}

A、68

B、?D?

C、0

D、?0?

18、下面各语句中,能正确进行字符串初始化操作的语句是()

A、char s1[5][]={“ABCDE”};

B、char s2[6]={…A?,?B?,?C?,?D?,?E?};

C、char st[][]={“ABCDE”};

D、char s[5]={…A?,?B?,?C?,?D?,?E?};

19、若有说明“int a[3][4]={0};”,则下面正确的叙述是()

A、数组a中每个元素均可得到初值0

B、只有元素a[0][0]可得到初值0

C、数组a中各个元素都可以得到初值,但其值不一定是0

D、此说明语句不正确

20、若有说明“int a[3][4];”,则对数组a中元素的非法引用是()

A、a[1][3]

B、a[0][4]

C、a[0][2*1]

D、a[4-2][0]

二、判断题

1、break是结束本次循环,而continue是结束所有的循环()

2、在C语言中,变量不区分大小写。()

3、不同的函数中可以使用相同的变量名。()

4、形式参数是局部变量。( )

5、若用数组名作为函数的实参,传递给形参的是数组第一个元素的值。()

6、C语言是低级语言。()

7、在C语言中,每个函数都必须要有一个且只有一个main函数。()

8、在C语言中,整型常数表示的方法有3种。()

9、定义一个静态变量时没有必要对它进行初始化。()

10、假如x和y为double型,则表达式“x=2;y=x+3/2”;的值是3。()

三、填空题

1、以下程序的运行结果是。

#include

int main()

{

int i,j,X=0;

for(i=0;i<2;i++)

{

X++;

for(j=0;j<3;j++)

{

if(j%2) continue;

X++;

}

X++;

}

printf(“X=%d\n”,X);

return 0;

}

2、以下程序的输出结果是。

#include

void fun1(int x)

{

x=20;

}

void fun2(int b[4])

int j;

for(j=0;j<4;j++)

{

b[j]=j;

}

}

int main()

{

int x=23==10;

int a[4]={1,2,3,4},k;

fun1(x);

printf(“x=%d\n”,x);

fun2(a);

for(k=0;k<4;k++)

{

pirntf(“%d\n”,a[k]);

}

return 0;

}

3、以下程序运行时输入:123456789 ,则程序运行结果是。

#include

int main()

{

int x,y;

scanf(“%2d%*4s%2d”,&x,&y);

printf(“%d”,y-x);

return 0;

}

4、以下程序的功能是输入任意整数n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:

ABCDE

FGHI

JKL

MN

O

填空完成该程序。

#include

int main()

{

int i,j,n;

char ch=?A?;

scanf(“%d”,&n);

if( )

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

{

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

{

printf(“%2c”,ch);

}

}

}

else

printf(“n is too larger!\n”);

printf(“\n”);

return 0;

}

四、编程题

1、规定一个工人每个月的工作时间为160小时,每小时工资为5元,如果加班,每小时工资增加4元。编程计算并打印此工人一个月的工资,要求由键盘输入工作时间。

2、输入20个学生的成绩,求出其中成绩大于平均成绩的学生的人数,并对20名学生的成绩按从高到低进行排序。

c语言第二版第七章答案

7.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 参考程序如下: #include int aa(int m,int n) //求最大公约数 { int k; if(m int aa(int n) { int i; int flag; // flag标志 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i>sqrt(n)) flag=1; else flag=0;

return(flag); } main() { int n,flag; // flag标志 printf("\nInput n:"); scanf("%d",&n); flag=aa(n); if(flag==1) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 7.4 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。 参考程序如下: #include main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3],i,j; printf("array a:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } printf("After switch:\n"); aa(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } void aa(int a[3][3],int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j][i]=a[i][j]; } 说明:当数组名作函数参数时,形参也必须是同类型的数组名,形参数组名的实质是一个指针变量,存放的第0行第0列的元素的地址;这样,子函数中a[i][j]就是主函数中的a[i][j]; 7.11写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列 参考程序如下: main()

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言PTA平台习题与答案

第二章作业 1 ①.本题要求编写程序,输出一个短句“Welcome to You!” #include int main() { printf("Welcome to You!\n"); return 0; } ②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F?32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 fahr = 100, celsius = 计算所得摄氏温度的整数值 #include int main() { int fahr = 100; int celsius = 5*(fahr-32)/9; printf("fahr = 100,celsius = %d\n",celsius); return 0; } 第二章作业2 ①求整数均值本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位 #include int main() { int a,b,c,d,Sum; double Average; scanf("%d %d %d %d",&a,&b,&c,&d); Sum = a + b + c + d; Average = (a + b + c + d)/4.0; printf("Sum = %d,Average = %.1f\n",Sum,Average); return 0; } ②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内 输入在一行中给出2个正整数A和B。 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 #include int main() { int a; int b; scanf("%d %d",&a,&b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d = %d\n",a,b,a*b);

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 hcf(u,v) int u,v; { int a,b,t,r; if(u>v) { t=u;u=v;v=t; } a=u;b=v; while((r=b%a)!=0) { b=a;a=r; } return(a); } lcd(u,v,h) int u,v,h; { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.d=%dn",l); return(u*v/h); } #include

void main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.D=%dn",l); } 7.2 求方程根 float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b; { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(a,b) float a,b; { x1=x2=(-b)/(2*a);} smaller_than_zero(a,b) float a,b; { p=-b/(2*a);

q=sqrt(disc)/(2*a); } main() { float a,b,c; printf("n输入方程的系数a,b,c:n"); scanf("%f,%f,%f",&a,&b,&c); printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("方程的解是:n"); if(disc>0) { great_than_zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else if(disc==0) { zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else { small_than_zero(a,b,c); printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

c语言第二章习题

第二章练习题 一、填空题 1、在C语言中的实型变量分为两种类型,它们是float型和()型。 2、若有定义:char c='\010';则变量c中包含的字符个数为() 3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为() 4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为()个;一个int型数据在内存中所占的字节数为()个。 5、在C语言中,表示逻辑“假”值用数字()表示。 6、C语言中的标识符只能由字母、数字和()三种字符组成。 7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为() 8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以()开头、十六进制整数以()开关(注:请用小写字母) 9、请将75写成C语言八进制和十六进制表示(),()。 10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是() 11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为()。 12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为(),b值为(),c值为()。 13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为() 14、若a是int型变量,则计算表达式a=25/3%3 后a的值为() 15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为(),n的值为() 16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为() a+(int)(b/3*(int)(a+c)/2)%4 17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为()(float)(a+b)/2+(int)x%(int)y 18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为() (x+y)%2+(int)a/(int)b 19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为() 20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是() 21、若x为int型变量,则执行以下语句后x的值是()

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

c语言与程序设计-第2章课后习题参考答案

2.1 下列哪些是词法记号? 关键字(是) 注释 空白符 八进制常量(是) 三字符序列 字符串常量(是) 括号(是) 2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法) (1)x+++y x, ++, +, y (2)-0xabL -, 0xabL (3) 2.89E+12L 2.89E+12L (4)"String+\"FOO\"" " String+ \"FOO\"" (5)x**2 x, *, *, 2 (6)"X??/" "X??/" (7)a?b a, ?, b (8)x--+=y x, --, +=, y (9)intx=+10 intx, =, +, 10 (10)"String""FOO" "String", "FOO" (这道题当时改的时候有几个小题改得有错误,注意!) 2.3 下列哪些不是标识符,为什么? 标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。 4th 不是,以数字开头; sizeof 不是(标准C的关键字) _limit 是 _is2 是 xYshould 是 x*y 不是,* 非法 o_no_o_no 是 temp-2 不是,- 非法 isn't 不是,' 非法 enum 不是(标准C的关键字。注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。关键字不能作为普通标识符,但可以作为宏名。所有预处理均发生在识别这些关键字之前。) 2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。 2L 合法,long长整型 ''' 不合法,单引号组中的单引号前需要转义字符

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言第七章复习题(不含答案)

1.下列对C语言字符数组的描述中错误的是( )。 (A)字符数组可以存放字符串 (B)字符数组中的字符串可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符串:Hello!赋给数组b的语句是( )。 (A)char b[10]={'H','e','l','l','o','!'}; (B)char b[10];b="Hello!"; (C)char b[10];strcpy(b,"Hello!"); (D)char b[10]="Hello!"; 3.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( )。 (A)a[g-c] (B)a[4] (C)a['d'-'c'] (D)a['d'-c] 4.以下程序的输出结果是( ) (A) 20 (B) 21 (C) 22 (D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); 5.以下程序的输出结果是( )。 (A) 1,5,9 (B) 1,4,7 (C) 3,5,7 (D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); 6.下面程序运行的结果是( )。 (A) 2ba56 (B) 6521 (C) 6 (D) 62 main() { char ch[7]={“65ab21“}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 7.合法的数组定义是( )。 (A)int a[]="string"; (B)int a[5]={0,1,2,3,4,5}; (C)char s[6]="string"; (D)char a[]={0,1,2,3,4,5}; 8.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 (A)将串str1复制到串str2中后再连接到串str3之后 (B)将串str1连接到串str2之后再复制到串str3之后 (C)将串str2复制到串str1中后再将串str3连接到串str1之后

C语言第二章习题

1.以下叙述中错误的是( )。 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 2.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为() A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 3.以下叙述中错误的是 A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 4.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y ++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 5.有以下程序

—#include main() { int a; a = (int)1.99*3; printf("%d\n", a); } 程序的运行结果是() A) 3 B) 5 C) 6 D) 结果不确定 6.请选出合法的C语言赋值语句:() A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b) 7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表 示代数式 1/abc 的表达式是:() A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c 8.请选出以下语句的输出结果:() printf("%d\n",strlen("\t\"\065\xff\n"));//srelen()为求字符串长度的函数,返回字节数。

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

C语言预习及课后习题(参考答案1-5)

第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。

第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言第二章习题

1. 以下叙述中错误的是 ( )。 2.以下可以将任意一个两位整数 n 的个位数与十位数对换的表达式为( 3. 以下叙述中错误的是 4.若有定义int x , y ;并已正确给变量赋值,则以下选项中与表达式 (X — y)(x ++ ) : (y + +)中的条件表达式 (x —y) 等价的是 ( 5. 有以下程序 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C 语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 A) (x - y<0||x - y>0) B) (x -y<0) C) (x -y>0) D) (x —y = = 0) )。

8. 请选出以下语句的输出结果: ( ) 6. 请选出合法的 C 语言赋值语句:( A) a=b=58 示代数式 1/abc 的表达式是: ( A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) a/b/c #include <> main() { int a; a = (int)*3; printf("%d\n", a); 程序的运行结果是( A) B) C) D) 结果不确定 B) i++; C) a=58,b=58 D) k=int(a+b) 7. 假设在程序中 a,b,c 均被定义成整型 ,并且已赋大于 1的值,则下列能正确表

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计(何钦铭)课后习题作业

第一章习题 1、对C语言来说,下列标示符中哪些是合法的,哪些是不合法的 Total, _debug, Large&Tall, Counter1, begin_ 答:合法的:_debug、Counter1、begin_。 不合法的:Total、Large&Tall。 2、改写节中的流程图,求1—100中能被6整除的所有整数的和。 3、改写节中的程序,求1—100中能被6整除的所有整数的和,并在编程环境中验证该程序

的运行结果。 答:程序为: #include<> int main(void) { int i,sum=0; for(i=1;i<=100;i++) if(i%6==0)sum=sum+i; printf("sum=%d\n",sum); return 0; } 4、对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。

第二章作业 1.编写程序,输入两个整数num和num2,计算并输出她们的和、差、积、商。 答:程序: #include<> void main() { int num1,num2,y1,y2,y3,y5; double y4; printf("请输入两个数:num1,num2\n"); scanf("%d%d",&num1,&num2); y1=num1+num2; y2=num1-num2; y3=num1*num2; y4=num1*num2; y5=num1%num2; printf("num1,num2和y1=%d\nnum1,num2差y2=%d\nnum1,num2积y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n",y1,y2,y3,y4,y5); } 2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时以内的,电价为元/千瓦时;超出50千瓦时的用电量,电价上调元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。 答:程序: #include<> void main()

相关文档
相关文档 最新文档