文档库 最新最全的文档下载
当前位置:文档库 › C语言1-7章课后作业答案

C语言1-7章课后作业答案

C语言1-7章课后作业答案
C语言1-7章课后作业答案

C语言1-7章课后作业答案

第一章C语言概述

【习题1-1】简述C语言的特点。

答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。

【习题1-2】请从以下的4个选项中选择一个正确答案。

(1)A (2)C (3)B (4)D(5)A (6)C

【习题1-3】填空。

(1)英文字母、下划线、数字

(2)函数

(3) 函数头、函数体

(4)独立

(5);、#、/*…*/、{、}、 main、main

【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。

101 int 3ip x_1 x+1 count 1234

Xy x%y if while a.bc x&y _ _

1_112 Abc name x break for x=y

合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for

合法的用户标识符有:x_1、count、Xy、Abc、name、x

【习题1-5】简述上机调试运行C程序的操作步骤。

答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。

【习题1-6】上机运行本章的3个例题。

【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:

**************

Nice to meet you!

**************

编写程序如下:

#include

void main()

{

printf("**************\n");

printf("Nice to meet you!\n");

printf("**************\n");

}

第二章基本数据类型和运算符

【习题2.1】上机编辑并调试本章所有例题。

答:略。

【习题2.2】下面哪些是合法的常量?

⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a

⑵'mn' "OK" "a" '\012' "a/b" '\\'

答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a

⑵合法的常量有: "OK" "a" '\012' "a/b" '\\'

【习题2.3】下面的变量名中哪些是合法的?

A&b abc123 abc% AbC int long 123abc

char a\b?c double 'a'bc a_bc a*bc float

答:合法的变量名有:abc123 AbC a_bc

【习题2.4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?

⑴Int i,j;

⑵float a,A;

⑶int a,b;float a,b;

⑷float a,int b;

⑸char 'a';

答:⑴错误,因为关键字Int 应该全为小写字母

⑵正确

⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型

⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号

⑸错,'a'表示字符常量,不能用作变量名

【习题2.5】填空题。 ⑴整型、实型、字符型

⑵ASCII 码

⑶1、2

⑷f

⑸j

【习题2.6】把下列数学式子写成C 语言表达式。

(1)3.26e x +1

3(a+b)4

(2)3sin()a b x +

(3)212

r m m g

(4)2πr+πr 2+cos(45°)

(5)(1)(1)1month

month rate rate loan rate ++-

对应的C 语言表达式分别为:

(1)3.26*exp(x)+1.0/3*pow(a+b,4)

(2)2*sqrt(x)+(a+b)/(3*sin(x))

(3)g*m1*m2/(r*r)

(4)2*3.14*r+3.14*r*r+cos(3.14/180*45)

(5)loan*rate*pow(1+ rate, month)/(pow(1+rate, month)-1)

【习题2.7】C语言中为什么要引入转义字符?

答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在C语言中引入了转义字符。

【习题2.8】“&&”和“‖”严格地执行运算符优先级的规则吗?它的规则是什么?

答:逻辑运算符不按照规定的优先级计算。在逻辑表达式的求值过程中,如果从“&&”或“‖”左边的运算对象部分已经能够确定整个逻辑表达式的值,则不再求右边运算对象的值,这样做提高了运算速度。具体地说:若“&&”的左运算对象值为0,则不再对右运算对象求值,因整个式子的结果必定为0。若“‖”的左运算对象值为非0,则不再对右运算对象求值,因整个式子的结果必定为1。以上所说的这种运算的规则是C对逻辑运算的特殊处理规则。它严格地执行从左到右运算的规则,不受运算符优先级所影响。

【习题2.9】字符常量和字符串常量有什么区别?

答:字符常量和字符串常量的区别主要有两点:

①从形式上看,字符常量使用单引号,而字符串常量使用双引号。

②从内部存储来看,编译程序在每个字符串的尾部自动加上了一个空字符NULL(即‘\0’)作为字符串的结束标志,而字符常量则不存在这种情况。

【习题2.10】将下面语句组进行简写。

⑴int i;

int j;

⑵x=2;

y=2;

⑶x=x+y;

⑷int x,y;

x=y-(y/10)*10;

⑸int x;

x=x+1;

⑹y=x;

--x;

对应的简写语句分别为:

(1)int i,j;

(2)x=y=2;

(3)x+=y;

(4)int x,y;

x=y%10;

(5)int x;

x++; 或x+=1; 或++x;

(6)y=x--;

【习题2.11】写出下面程序运行后的结果。

⑴程序运行结果:

1

⑵程序运行结果:

8,10

⑶程序运行结果:

y=5.000000

⑷程序运行结果:

b,3.140000,4

⑸程序运行结果:

0,48

⑹程序运行结果:

a=8

⑺程序运行结果:

1,6

0,15,15

⑻程序运行结果:

2,2,1

1,2,1

0,2,2

-1,2,2

⑼程序运行结果:

3

2

4

⑽程序运行结果:

3

2

3,3

4

3,4,4

1

第三章顺序和选择结构程序设计

【习题3.1】单选题。

1、C

2、D

3、C

4、C

5、B 【习题3.2】略

【习题3.3】下面哪些语句是合法的?

(1) if(a==b)printf(″Hello″);

(2) if(a==b){printf(″Hello″)}

(3) if(a==b)

printf(″Hello″)

else

printf(″Goodbye″);

(4) if a==b

printf(″Hello″);

答:(1)合法的,其余的不合法

【习题3.4】读程序写结果。

(1)运行结果:A=58B=58C=58

(2)运行结果:20,0

(3)运行结果:1

(4)运行结果:5 3 4

(5)运行结果:1 3 2

(6)运行结果:-4

(7)运行结果:2 1

(9)运行结果:passwarn

【习题3.5】有如下if条件语句:

if(a

else if(c

试按缩进对齐的格式将以上语句改写为结构更清晰的等效if语句,并在每个条件表达式之后用逻辑表达式注释所满足的条件。

改写结果如下:

if(a

{

if(c

x=1;

else if(a

if(b

x=2;

else

x=3;

}

else if(c

x=4;

else

x=5;

【习题3.6】有如下两个程序段:

(1) if(a

{ {

if(c==d)x=1; if(c==d) x=1;

} else x=2;

else x=2; }

它们所表示的逻辑关系是下列所示关系中的哪一个?

① 1 a

x= x=

2 a≥b且c≠d 2 a

③ 1 a

x= x=

2 a≥b 2 c≠d

答:(1)表示的逻辑关系是③. (2)表示的逻辑关系是②.

【习题3.7】编写程序,从键盘输入年份year(4位十进制数),判断其是否为闰年。闰年的条件是能被4整除但不能被100整除,或者能被400整除。

#include

void main()

{

int year;

scanf(“%d”,&year);

if(year%400==0||year%4==0&&year%100!=0)

printf(“%d年是闰年。\n”,year);

else

printf(“%d年不是闰年。\n”,year);

}

【习题3.8】设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。

void main()

{

int x,y,z,t;

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

if(x>y) {t=x; x=y; y=t;} /*交换x,y的值*/

if(x>z) {t=z; z=x; x=t;} /*交换x,z的值*/

if(y>z) {t=y; y=z; z=t;} /*交换z,y的值*/

printf("small to big: %d %d %d\n",x,y,z);

}

【习题3.9】编写程序,计算下面的函数。

e x(0

1

y= |x|+2 (3≤x<4)

sin(x2) (当x取其他值时)

程序如下:

#include

#include

void main()

{

int x , y;

printf("please enter a number x\n");

scanf("%d",&x);

if(x>0&&x<1)

y=exp(sqrt(x)-1);

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

y=fabs(x)+2;

else

y=sin(x*x);

printf("x=%.1f,y= %.2f\n",x,y);

}

【习题3.10】编程序计算下面的分段函数

程序如下:

#include

void main()

{

int x,y;

scanf("%d",&x);

if(x<1)

y=-1;

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

y=2*x+1;

else

y=3*x+2;

printf("%d",y);

}

【习题3.11】输入一个整数m,判断它能否被3、13、17整除,如果能被这3个数之一整除,则输入它能被整除的信息,否则输出m不能被3、13、17整除的信息。试编写该程序。

#include

{

int m;

scanf("%d",&m);

if(m%3==0||m%13==0||m%17==0)

printf("%d能被整除!",m);

else

printf("%d不能被整除!",m);

}

【习题 3.12】若一个学生是某校的学生,且是男生,则输出“male”;若是女生,则输出“female”;若不是某校的学生,则输出“No”。试编写该程序并画出流程图。

程序如下:

#include

void main()

{

int hust = 1;

int s;

char sex ;

printf("please enter the student's school and sex\n");

scanf("%d,%c",&s,&sex);

if( s == hust )

{

if(sex == 'M')

printf("Male\n");

else

printf("Female\n");

}

else

printf("No\n");

}

【习题3.13】某产品的国内销售价,80箱以下,每箱350元,超过80箱,超过部分每箱优惠20元;国外销售价,1000箱以下,每箱900元,超过1000箱,超过部分每箱优惠15元。试编写计算销售额的程序。

程序如下:

#include

void main( )

{

float money;

int national, count;

printf("Input national or

external:");

scanf("%d",&national);

printf("Input count of

product:");

scanf("%d",&count);

if (national)

if(count<=80)

money=count*350.0;

else

money=count*350.0- (count-80)*20.0;

else

if (count<=1000)

money=count*900.0;

else

money=count*900.0-(count-1000)*15.0;

}

【习题3.14】电文加密算法:将字母A变成字母G,a变成g,B变成H,b变成h,以此类推,并且U变成A,V变成B等。从键盘输入一个电文字符,输出其相应的密码。

程序如下:

#include

void main()

{

char c;

c=getchar();

if(c>='a'&&c<'u'|| c>='A'&&c<'U')

c+=6;

else if(c>='u'&&c<='z'|| c>='U'&&c<='Z')

c-=20;

else

p rintf(“Input error!”);

putchar(c);

}

【习题3.15】参见《实践教程》P28

第四章循环结构程序设计

【习题4.1】分析下面程序的结果。

(1)程序运行结果:

10

(2)程序运行结果:

k=12

(3)程序运行结果:

*

#i=6

(4)程序运行结果:

(5)程序运行结果:略

(6)程序运行结果:

11,12

(7)程序运行结果:

4

【习题4.2】分别用三种循环控制语句编写程序,求下面和式的值。

程序如下:

方法一:利用for循环实现

#include

void main()

{

int s=0,i;

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

printf("s=%d\n",s);

}

方法二:利用while循环实现

#include

void main()

{

int s=0,i=1;

while(i<=100)

{

s+=i;

i++;

}

printf("s=%d\n",s);

}

方法三:利用do-while循环实现

#include

void main()

{

int s=0,i=1;

do

{

s+=i;

i++;

}while(i<=100);

printf("s=%d\n",s);

}

【习题4.3】编程把100~200之间的能被20整除的数输出。

程序如下:

#include

void main( )

{

int n;

for(n=100;n<=200;n++)

{

if(n%20!=0) continue;

printf("%5d",n);

}

}

【习题4.4】假设全班有30个学生,编写一个程序,连续输入30个学生的计算机考试成绩,并计算出全班学生的计算机平均成绩。

程序如下:

#include

void main( )

{

float sum=0.0,ave=0.0,score;

int i;

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

{

scanf("%f\n",&score);

sum+=score;

}

ave=sum/i;

printf("Average is %f\n",sum);ave;

}

【习题4.5】编程求1!+3!+5!+7!+…+19!的值。

程序如下:

#include

void main( )

{

float sum=0.0;

int i,j=1;

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

{

j*=i;

if(i%2==0)

continue;

sum+=j;

}

printf("sum=%e\n",sum);

}

【习题4.6】将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环。

程序如下:

#include

void main()

{

int a,b,t;

scanf("%d,%d",&a,&b);

while(a!=b)

{

if(a>b)

{

t=a;a=b;b=t;

}

p rintf("%d,%d\n",a,b);

scanf("%d,%d",&a,&b);

}

}

程序如下:

#include

void main( )

{

i nt n,i,max,min,a;

f loat s;

s canf("%d,%d",&n,&a);

s=max=min=a;

f or(i=1;i

{

scanf("%d",&a);

s+=a;

if(max

if(min>a) min=a;

}

p rintf("Max=%d,Min=%d,avg=%f",max,min,s/n);

}

【习题4.8】已知鸡兔共有30只,脚共有90只,编程计算鸡兔各有多少只。

程序如下:

#include

void main()

{

int x,y;

f or(x=0;x<=30;x++)

{

y=30-x;

if((2*x+y*4)==90)

printf("%d,%d\n",x,y);

}

}

【习题4.9】求算式xyz+yzz=678中的x、y、z的值(其中xyz和yzz分别表示一个三位数)。

程序如下:

#include

void main( )

{

int x,y,z,i,result=678;

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

{

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

{

for(z=0;z<10;z++)

{

i=100*x+10*y+z+100*y+10*z+z;

if (i==result)

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

}

}

}

【习题4.10】使用嵌套循环输出下列图形:

******

* *

* *

******

程序如下:

#include

void main()

{

int i,j;

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

{

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

if(i==0||j==0||i==3||j==5)

printf("*");

else

printf(" ");

printf("\n");

}

}

【习题4.11】编程统计用数字0~9可以组成多少个没有重复数字的3位偶数。

程序如下:

#include

void main( )

{

int i,j,k,n=0,l=0;

for(i=1;i<=9;i++) /*百位数字*/

for(k=0;k<=9;k++) /*十位数字*/

if(k!=i)

for(j=0;j<=8;j+=2)//个位数字

{

if(j!=k&&j!=i)

{

n++;

printf("%4d",i*100+k*10+j);

l++;

if(l%10==0) /*10个数一行输出*/

printf("\n");

}

}

printf("\nn=%d\n",n);

}

【习题4.12】从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。

程序如下:

void main()

{

int m=0,n=0;

char c;

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

{

if(c>'A'&&c<='Z')m++;

if(c>='a'&&c<='z')n++;

}

printf("m=%d,n=%d,max=%d\n",m,n,m

}

【习题4.13】输出显示自然数1~100之间的全部素数。

程序如下:

#include

#include

void main()

{

int n,i,j,l=0;

for(n=2;n<=100;n++)

{

i=sqrt(n);

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

if(!(n%j))break;

if(j>=i+1)

if(l<5)

{

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

l++;

}

else

{

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

l=0;

}

}

}

【习题4.14】一个数如果恰好等于它的因子之和,就把它称为“完数”。例如,28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完数”。编程序找出10000以内的所有“完数”并输出其因子。

程序如下:

#include

void main()

{

int m,s,i;

for(m=2;m<10000;m++)

s=0;

for(i=1;i

if((m%i)==0)

s=s+i;

if(s==m)

{

printf("%d,its factors are",m);

f or(i=1;i

if(m%i==0)

printf("%d ",i);

printf("\n");

}

}

}

【习题4.15】使用循环嵌套输出下列图形:

*****

*****

*****

*****

程序如下:

#include

void main( )

{

int i,j,k;

for(i=0;i<=3;i++) /*i是外循环变量用于控制行数*/

{

for(k=1;k<=i;k++) /*k是内循环变量用于控制每行的空格数*/ printf(" ");

for(j=0;j<=4;j++) /*j是内循环变量用于控制每行中星号的个数*/ printf("*");

printf("\n");

}

}

【习题4.16】假设x,y是整数,编程求x y的最后3位数,要求x、y从键盘输入。

程序如下:

#include

void main()

{

int i,x,y;

long last=1;

printf("Input x and y:");

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

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

last=last*x%1000;

printf("The last 3 digits:%ld\n",last);

}

【习题4.17】编程实现将从键盘输入的偶数写成两个素数之和。

程序如下:

#include

#include

void main()

{

int a,b,c,d;

scanf("%d",&a);

for(b=3;b<=a/2;b+=2)

{

for(c=2;c<=sqrt(b);c++)

if(b%c==0)

break;

if(c>sqrt(b))

d=a-b;

else

continue;

for(c=2;c<=sqrt(d);c++)

if(d%c==0)

break;

if(c>sqrt(d))

printf("%d=%d+%d\n",a,b,d);

}

}

【习题4.18】100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。

程序如下:

#include

void main()

{

int x,y,z,j=0;

for(x=0; x<=33; x++)

for(y=0; y<=(100-3*x)/2;y++)

{

z=100-x-y;

if( z%2==0 && 3*x+2*y+z/2==100)

printf("(%d):x=%d,y=%d,z=%d\n",++j,x,y,z);

}

}

第五章数组

【习题5.1】现有一实型一维数组A[12],其各元素值在内存中排列的顺序为:

1.0,15.5,9.5,-23.0,8.4,66.5,7.1,2

2.0,54.5,-34.0,11.3,32.5

(1) 数组中元素值最小的数组元素。

(2) 数组中元素值最大的数组元素。

(3) 数组中某数组元素值等于另外两个数组元素值之和的等式。

(4) 数组中某数组元素值等于另外两个数组元素值之差的等式。

#include

void main()

{

double A[12]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5};

int i,j,k;

double max,min;

min=A[0];

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

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

printf("min=%lf\n",min);

max=A[0];

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

if (max

printf("max=%lf\n",max);

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

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

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

{

if (i==j || j==k || k==i) continue;

if (A[i]+A[j]==A[k])

printf("%lf+%lf=%lf \n",A[i],A[j],A[k]);

}

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

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

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

{

if (i==j || j==k || k==i) continue;

if (A[i]-A[j]==A[k])

printf("%lf-%lf=%lf \n",A[i],A[j],A[k]);

}

}

【习题5.2】现有一实型二维数组A[4][3],其各元素值在内存中排列的顺序为:4.0,28.0,15.5,-9.5,-23.0,8.0,56.0,2.0,28.0,7.0,6.2,5.0

请按下列要求写出各题的答案。

(1)数组中元素值最小的数组元素。

(2)数组中元素值最大的数组元素。

(3)数组中某数组元素值等于另外两个数组元素值之积的等式。

(4)数组中某数组元素值等于另外两个数组元素值之商的等式。

程序如下:

#include

void main()

{

double A[4][3]={4.0,28.0,15.5,-9.5,-23.0, 8.0, 56.0,

2.0, 28.0,7.0,6.2,5.0};

int i,j,k,g,n,m;

double max,min;

min=A[0][0];

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

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

if(min>A[i][j]) min=A[i][j];

printf("min=%lf\n",min);

max=A[0][0];

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

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

if(max

printf("max=%lf\n",max);

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

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

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

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

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

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

{

if((i==k||k==m||m==i)&&(j==g||g==n||n==j))

continue;

if(A[i][j]*A[k][g]==A[m][n])

printf("%lf*%lf=%lf\n",A[i][j],A[k][g],A[m][n]);

}

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

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

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

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

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

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

{

if((i==k||k==m||m==i)&&(j==g||g==n||n==j))

continue;

if(A[i][j]/A[k][g]==A[m][n])

printf("%lf/%lf=%lf\n",A[i][j],A[k][g],A[m][n]);

}

【习题5.3】完成下列各数组的数组说明语句。

(1) 定义一个有100个数组元素的整型一维数组r。

(2) 定义一个有100行100列的实型二维数组s。

(3) 定义一个整型三维数组t,第一维长度为3,第二维长度为4,第三维长度为5。

(4) 定义一个实型四维数组q,第一维长度为6,第二维长度为5,第三维长度为4,第四维长度为3。

int r[100];

float s[100][100];

int t[3][4][5];

float q[6][5][4][3];

【习题5.4】略

【习题5.5】按下列要求完成对各数组的初始化数组语句。

(1) 实型一维数组A[12],其各元素值在内存中排列的顺序为:

1.0,15.5,9.5,-23.0,8.4,66.5,7.1,2

2.0,54.5,-34.0,11.3,32.0

(2) 整型二维数组A[3][3],其各元素值在内存中排列的顺序为:

(3) 实型三维数组A[2][3][2],其各元素值在内存中排列的顺序为:

1.0,15.5,9.5,-23.0,8.4,66.5,7.1,2

2.0,54.5,-34.0,11.3,32.0

float A[12]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.0};

int A[3][3]={1,2,3,4,5,6,7,8,9};

float A[2][3][2]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.0};

【习题5.6】略

【习题5.7】有一整型二维数组a[10][10], 按下列要求写出下列各题的C语言程序段。

(1) 按行输出所有的数组元素。

(2) 按列输出所有的数组元素。

(3) 输出主对角线上的所有元素。

(4) 输出副对角线上的所有元素。

(5) 输出上三角阵(包含主对角线元素)的所有元素。

(6) 输出上三角阵(包含副对角线元素)的所有元素。

(7) 输出下三角阵(包含主对角线元素)的所有元素。

(8) 输出下三角阵(包含副对角线元素)的所有元素。

#include

void main()

{ int a[10][10];

int i,j,k;

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

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

a[i][j]=i*10+j;

printf("==1==\n");

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

{

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

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

printf("\n");

}

printf("\n");

printf("==2==\n");

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

{

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

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

printf("\n");

}

printf("\n");

printf("==3==\n");

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

{

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

if (i==j)

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

else

printf(" ");

printf("\n");

}

printf("\n");

printf("==4==\n");

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

{

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

if (i+j==10-1)

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

else

printf("\n");

}

printf("\n");

printf("==5==\n");

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

{

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

if (i<=j)

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

else

printf(" ");

printf("\n");

}

printf("\n");

printf("==6==\n");

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

{

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

if (j<10-i)

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

else

printf(" ");

printf("\n");

}

printf("\n");

printf("==7==\n");

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

{

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

if (i>=j)

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

else

printf(" ");

printf("\n");

}

printf("\n");

printf("==8==\n");

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

{

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

if (j>=9-i)

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

else

printf(" ");

printf("\n");

}

printf("\n");

}

【习题5.8】

(1)运行结果:

1

2

4

8

1632

64

128

256

(2)运行结果:199

(3)运行结果:20

(4)运行结果:25

(5)运行结果:45

(6)运行结果:25

【习题5.9】编写一个程序,完成5.1题的要求。

#include

void main()

{

double A[12]={1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5};

int i,j,k;

double max,min;

min=A[0];

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

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

printf("min=%lf\n",min);

max=A[0];

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

if (max

printf("max=%lf\n",max);

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

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

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

{

if (i==j || j==k || k==i) continue;

if (A[i]+A[j]==A[k])

printf("%lf+%lf=%lf \n",A[i],A[j],A[k]);

}

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

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

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

{

if (i==j || j==k || k==i) continue;

if (A[i]-A[j]==A[k])

printf("%lf-%lf=%lf \n",A[i],A[j],A[k]);

}

}

【习题5.10】略

【习题5.11】对给定的整型一维数组a[100]赋值,要求给奇数下标值的元素赋负值,偶数下标值的元素赋正值。

#include

void main()

{

int a[100];

int i,j,k;

C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案 一、选择题 1.下述标识符中,()是合法的用户标识符。 A.A#C B.getch C.void D.ab* 2.在C语言中,字符型数据在内存中是以()形式存放的。 A.原码 B.BCD码 C.反码 D.ASCII码 3.以下选项中不合法的用户标识符是()。 A.abc.c B.file C.Main D.PRONTF 4.以下选项中不合法的用户标识符是()。 A.123 B.printf C.Anbsp; D.Dim 5.可以在C语言程序中用做用户标识符的一组标识符是()。 A.void B.as-b3 C.for D.2c define -123 -abc Do WORD If cas SIG 6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。 (1)A.001 B.table_1 C.0_t D.k% Int t*.1 W10 point (2)A.Fast_ B.void C.pbl D. Fast+Big abs fabs beep (3)A.xy_ B.longdouble C.*p D.CHAR 变量1 signed history Float 7.()是构成C语言的基本单位。 A.函数 B.过程 C.子程序 D.子例程 8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。

(1).A.包含3个字符 B.包含2个字符 C.包含1个字符 D.无定值,说明不合法 (2).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 (3).A.包含1个字符 B.包含2个字符 C.包含3个字符 D.无定值,说明不合法 9.若x为int型变量,则执行以下语句后,x的值为 x=6; x+=x-=x*x A.36 B.-60 C.60 D.-24 10.在C语言中,char 型数据在内存中是以()形式存储的。 A.原码 B.补码 C.ASCII码 D.反码 11.以下运算符中优先级最低的算符为(),优先级最高的为()。 A.&& B.& C.|= D.|| E.?: F.!= 12.若有运算符>、*=、<<、%、sizeof,则它们按优先级(由低至高)的正确排列顺序为 A.*= << > % sizeof B.<< *= > % sizeof C.*= > << sizeof % D.*= > << % sizeof 13.若有以下类型说明语句 char w; int x; float y; double z; 则表达式w*x+z-y 的结果是()类型。 A.float B.char C.int D.double 14.若w,x,y,z 均为int 型变量,则执行下面的语句后, w=(1), x=(2), y=(3), z=(4)。 w=5; x=4; y=w++*w++*w++; z=--x*=--x*--x;

带答案C语言2-10章作业

C语言习题集专业班级 学姓号名 C语言习题集 第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=3.5,y= 2.5;则下面表达式的值为( C )。 (float)(a+b)/2+(int)x% (int)y A)3.5 B)35 C)3.500000 D)35.00000 2.若有定义:int x=3 ,y=2; float a=2.5 ,b= 3.5;则下面表达式的值 为( B )。(x+y)%2+(int)a/(int)b A)1.0 B)1 C)2.0 D)2 3.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有int x=11;则表达式(x++*1/3)的值是( A )。

A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <stdio.h> main( ) { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y);} A)3 B)3.2 C)0 D)3.07 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <stdio.h> main( ) { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( C )。 A)1 B)2 C)2.0 D)2.5 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。

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

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

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 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

带答案C语言2-10章作业

C语言习题集 专业班级 学号 姓名

第2章运算符与表达式 一、选择题 1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。 (float)(a+b)/2+(int)x% (int)y A) B)35 C) D) 2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。 (x+y)%2+(int)a/(int)b A) B)1 C) D)2 3.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。x%=(n%=2) A)0 B)1 C)2 D)3 4.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。 A)3 B)4 C)11 D)12 5.下列程序的输出结果是( C )。 #include <> main( ) { double d=; int x,y; x=; y=(x+/; printf("%d\n", d*y);} A)3 B)3.2 C)0 D) 6.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <> main( ) { double d; float f; long l; int i; i=f=l=d=20/3;

printf("%d %ld %f %f\n", i,l,f,d); } A)6 6 B)6 6 C)6 6 D)6 6 7.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。 A)1 B)2 C) D) 8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。 A)i=int(a) B)++i; C)a=a++=5; D)a=int(i); 9.若执行以下程序段后,c3的值为( A )。 int c1=1,c2=2,c3; c3=c2*c1; A)0 B)0.5 C)1 D)2 10.如下程序的运行结果是( D )。 #include <> main( ) { int y=3,x=3,z=1; printf("%d %d\n",(++x,y++),z+2); } A)3 4 B)4 2 C)4 3 D)3 3 11.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。 A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 && a<=0 D)a>=10||a<=0 12.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )。 A)不定值B)4 C)3 D)1 13.以下程序的输出结果是( D )。 #include <> main( ) { int a=3;

C语言第六章习题带答案

练习6-1答案 一、选择题 1.已知函数abc的定义为: void abc() {……} 则函数定义中void的含义是( A )。 A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型 D.以上三个答案全是错误的 2.已知:int p();,p是( C )。 A.int型变量 B.函数p的调用 C.一个函数声明,该函数的返回值是int型的值 D.强制类型转换表达式中的变量 3.以下正确的函数形式是( D )。 A.double fun(int x, int y) B.fun(int x, y) { z=x+y; return z; } { int z; return z; } C.fun(x, y) D.double fun(int x, int y) { int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; } 4.以下说法正确的是( C )。 A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式 C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致,以实参类型为准 5.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。 A.float 型B.int型C.long型D.double型6.下面函数调用语句含有实参的个数为( B )。 func((exp1, exp2), (exp3, exp4, exp5)); A.1 B.2 C.4 D.5 7.以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include #include float f(float, float); main() {float x, y, z, sum; scanf("%f%f%f", &x, &y, &z); sum=f( ①B )+f( ②C ); (注:或者选择sum=f( ①C )+f( ②B )) printf("sum=%f\n", sum); } float f(float a, float b) {float value; value=a/b;

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

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. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

最新C语言程序设计作业答案汇总

C语言程序设计作业 答案

C语言程序设计作业答案 作业一 C语言概述参考答案 一、选择题 1-5 ACDCB 二、编程题 main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法参考答案 一、填空题 1、确定性、有效性、有零个或多个输入、有一个或多个输出 2、顺序结构、选择结构、循环结构 3、函数 作业三数据类型、运算符与表达式参考答案 一、选择题 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构参考答案 一、选择题 1-5 BCDDD 6-10 BDADD 二、填空题

1、【31.415920,3.14159e+01】 2、【c=k】 3、【a=1,b=空格,c=2】 4、 【a=12,b=345】 5、【c=A】 作业五选择结构参考答案 一、选择题 1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题 1.【-1】 2.【3】 3.【4】 4.【11】 5. 【97或'a'】 作业六循环结构参考答案 一、选择题 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB 作业七数组参考答案 一、选择题 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题 1、LBLMNP 2、SW* 3、mo 4、a=2,b=1 作业八函数参考答案 一、选择题 1-5 AAACA 二、填空题 1【编程中的main( )函数】2【函数说明部分】和【函数体】 3【–125= –5*5*5】 4【void add (float a, float b)】【float add (float a, float b)】

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语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

C语言练习作业及答案

习题一 1、C语言源程序最多可能由____ABCD____________部分组成? A)预处理部分B)变量说明部分 C)函数原型声明部分D)函数定义部分 2、一个完整的C语言源程序最少必须有___C____。 A)若干个主函数B)若干个函数 C)且只能有一个主函数D)一个函数 3、C语言以函数为源程序的基本单位最主要有利于__B_____。 A)程序设计结构化B)程序设计模块化 C)程序设计简单化D提高程序设计有效性 4、要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过______________B_______________________。 A)编辑和链接B)编译和链接 C)修改和运行D运行并输入数据 5、一个C程序的执行是从______A______。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 6、以下叙述正确的是__A______。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 7、以下叙述不正确的是___D_____。 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 8、C语言规定:在一个源程序中,main函数的位置是___A_____。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后

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语言选择题(附答案)

第一单元C语言概述 一、选择题 1、C语言中主函数的个数为(A)个。 A)1 B)2 C)无穷个D)任意个 2、以下关于C语言描述错误的是(D)。 A)一个C程序总是从main函数开始执行T B)每个语句和数据声明的最后必须有一个分号T C)C语言的注释符是以“/*”开始并以“*/”结束的T D)一个C程序可以包含多个main函数F 3、C 语言源程序文件后缀为(C )。 A).EXE B).OBJ C).C D).ASM 4、C语言是由(C )组成的。 A)子程序B)主程序与子程序C)函数D)过程 5、C语言属于(B )语言 A)机器语言B)汇编语言C)高级语言D)面向对象语言 第二单元C语言基础 一、选择题 1、C语言中普通整型变量int在内存中占(B )字节。 A)1 B)2 C)3 D)4 2、下列不是C语言基本数据类型的是(A )。 A)字符型B) 整型 C) 浮点型D) 结构体 3、有关自增、自减运算,以下只有(D )是正确的。 A) ---f B) ++78 C) a—b++ D) d++ 4、已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (AB)的值是(A )。 A)0 B)10 C)1 D)5

5、若有x=1,y=2,z=3,则表达式(x=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 7、判断整型变量digit是否为数字的正确表达式是(C )。 A) ‘0’<=ch<=‘9’B) (ch>=‘0’)&(ch<=‘9’) C) (ch>=‘0’)&&(ch<=‘9’) D) (‘0’<= ch)AND(‘9’>= ch) 8、一个C程序的执行是从(A )。 A)本程序的main函数开始,到main函数结柬 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 9、在以下标识符中,合法的是(C ) A)if B)0xy C)_xy D)case 10、C语言中各种类型的数据其实决定了占用内存的字节数。float占(C )。 A)一字节B)二字节C)四字节D)八字节 11、下列各选项中,(A )是有效的标识符。 A)ab B)3day C)day-3 D)#abc 12、以下叙述正确的是(C ) A) 在C程序中,每行只能写一条语句 B) 若a是实型变量,C程序中不允许a=10这种赋值。 C) 在C程序中,%是只能用于整数运算的运算符 D) 在C程序中,无论是整数还是实数,没有什么区别 13、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( B )。 A)132↙B)1,3,2↙ C)a=1 b=3 c=2↙D)a=1,b=3,c=2↙ 14、设整型变量a为5,使b不为2的表达式是( C )。 A)b = a/2 B)b = 6-(--a) C)b=a%2 D)b=a>3?2:1

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语言选择题(含答案)

C语言选择题(含答案) 选择题 1.以下叙述正确的是_____。 A) 在C程序中,main函数必须位于程序的最前面。 B) C语言本身没有输入输出语句。 C) C程序的每行只能写一条语句。 D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 2.下面四个选项中,均是不合法的用户标识符的选项是。 A) A B) float C) b-a D) _123 P_0 1a0 goto temp do _A int INT 3、下列四个选项中都是合法的转义字符的 A) ‘\’’‘\\’‘\n’B) ‘\’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’D) ‘\\0’‘\101’‘x1f’ 4、设所有变量均为整型,则表达式z=(a=2,b=5,b++,a+b)的值是: A)7 B)8 C)6 D)2 5、若有代数式,则不正确的C语言表达式是: A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 6、若希望当A的值为奇数时,表达式的值为”真”, A的值为偶数时,表达式的值为”假”。则以 下不能满足要求的表达式是_________。 A) A%2==1 B) !(A%2==0) C) !(A%2) D) A%2 7、以下程序的运行结果是 : main() { int m=6;

if(m++> 6) printf(" %d\n",m); e1se printf("%d\n",--m ); } A)4 B)5 C) 7 D) 6 8、当a=1,b=3,c=5,d=4,执行完下面一段程序后x 的值是 : if(a正确的输出结果为 main() { int x,y,z scanf("%d%d%d",&x,&y,&z ); printf(“x+y+z=%d\n” ,x+y+z);。 } A)x+y+z=48 B)x+y+z=35 C)x+y+z=35 D)不确定值 10、已知各变量的类型说明如下 int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是 : A) x%(-3) B) w+=-2

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