文档库 最新最全的文档下载
当前位置:文档库 › 高教c语言程序设计(2011版)课后编程题答案

高教c语言程序设计(2011版)课后编程题答案

高教c语言程序设计(2011版)课后编程题答案
高教c语言程序设计(2011版)课后编程题答案

第三章顺序结构

3.30 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

※程序如下※

main( )

{

int hour,minute;

hour=560/60;

minute=560%60;

printf("hour=%d,minute=%d",hour,minute);

}

3.31 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。

※程序如下※

#include

main( )

{

int num1,num2,i,j; /* 定义变量 i-商,j-余数 */

printf("input num1 and num2:\n");

scanf("%d%d",&num1,&num2);

i=n

}

3.32 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。

※程序如下※

main( )

{

double a,b,c,average=0;

printf("input a,b,c(double):\n");

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

average=(a+b+c)/3;

average=average*10;

average=average+0.5;

average=(int)average;

average=average/10;

printf("average=%lf",average);

}

3.33 编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中的值给a。

※程序如下※

main( )

int a,b,c,t=0;

printf("input a b c:\n");

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

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

printf("a=%d b=%d c=%d",a,b,c);

}

第四章选择结构

4.21 当a>0时,请将以下语句改写成switch语句。

if( a<30 ) m=1;

else if( a<40 ) m=2;

else if( a<50 ) m=3;

else if( a<60 ) m=4;

else m=5;

※程序如下※

main()

{

int a;

printf("Enter a:\n");

scanf("%d",&a);

switch(a/10)

{

case 0:

case 1:

case 2: printf("m=1"); break ;

case 3: printf("m=2"); break ;

case 4: printf("m=3"); break ;

case 5: printf("m=4"); break ;

default: printf("m=5");

}

}

4.22 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0);并输入当前的日期(年:y1、月:m1、日:d1);输出该生的实足年龄。

※程序如下※这道题仅做参考!!!系统不一样无法运行!

main( )

{

int y0,y1,m0,m1,d0,d1,age=0;

printf("Your Birthday(yyyy-mm-dd):\n");

scanf("%d-%d-%d",&y0,&m0,&d0);

printf("Current Date(yyyy-mm-dd):\n");

scanf("%d-%d-%d",&y1,&m1,&d1);

if(d1

age=y1-y0;

printf("\nAge=%d",age);

}

4.23 编写程序,输入一个整数,打印出它是奇数还是偶数。

※程序如下※

main( )

{

int i;

printf("input a integer:\n");

scanf("%d",&i);

if(i%2==0) /*条件判断*/

printf("%d is a even",i);

else

printf("%d is a odd",i);

} ——————————————————————————————————4.24 编写程序,输入a、b、c三个数,打印出最大者。

※程序如下※

main( )

{

int a,b,c,max = 0;

printf("input (int)a b and c:\n");

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

max = a;

if(max

if(max

printf("max=%d",max);

} ——————————————————————————————————4.25 有一函数:

编写一程序,要求输入x的值,输出y的值。分别

(1)不嵌套的if语句(2)嵌套的if语句

(3)if_else语句(4)switch语句

※程序如下※

源程序一:(1)不嵌套的if语句

main( )

{

float x;

printf("input x:\n");

scanf("%f",&x);

if(x>-5&&x<0)

printf("y=%f",x);

printf("y=%f",x-1);

if(x>0&&x<10)

printf("y=%f",x+1);

if(x<=-5||x>=10)

printf("input error");

}

源程序二:(2)嵌套的if语句

main( )

{

float x;

printf("input x:\n");

scanf("%f",&x);

if(x>-5&&x<10)

{

if(x==0) printf("y=%f",x-1); if(x<0) printf("y=%f",x);

if(x>0) printf("y=%f",x+1); }

if(x<=-5||x>=10)

printf("input error");

}

源程序三:(3)if_else语句

main( )

{

float x;

printf("input x:\n");

scanf("%f",&x);

if(x>-5&&x<10)

if(x<0)

printf("y=%f",x-1);

else if(x==0)

printf("y=%f",x);

else

printf("y=%f",x+1);

else

printf("input error");

}

源程序四:(4)switch语句

*/

main()

{

int flag;

float x;

printf("Enter x:\n");

if(x>-5 &&x<0) flag=-1;

if(x==0) flag=0;

if(x>0 &&x<10) flag=1;

switch(flag)

{

case -1: printf("y=%f",x); break;

case 0: printf("y=%f",x-1); break;

case 1: printf("y=%f",x+1); break;

}

}/*

第五章循环结构

三、编程题

5.17 编写程序,求1-3+5-7+...-99+101的值。

※程序如下※

main()

{

int i,sum=0,s=1;

for(i=1; i<=101;i+=2)

{

sum=sum+i*s;

s=-s; /*控制符号交替变换*/

}

printf("sum=%d",sum);

}

5.18 编写程序,求e的值,e=1+1/1!+1/2!+1/3!+1/4!+...+1/n!

(1)用for循环,计算前50项

(2)用while循环,要求直至最后一项的值小于1e-4。

※程序如下※

源程序一:(1)用for循环实现

main( )

{

int i,n;

double sum=1,t=1;

printf("input n:\n");

scanf("%d",&n);

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

{

t=t*i; /* 实现阶乘*/

sum=sum+1/t;

}

printf("e=%lf",sum);

}

源程序二:(2)用while循环实现

#include

{

int i;

doubel sum=1,t=1;

while(fabs(1.0/t)>1e-4) /* fabs求浮点型数据的绝对值 */

{

t=t*i;

sum=sum+1/t;

i++;

}

printf("e=%lf",sum);

}

5.19 编写程序,输出从公元1000年至2000年所有闰年的年号每输出3个年号换一行。判断公元年是否闰年的条件是:

(1)公元年数如能被4整除,而不能被100整除,则是闰年。

(2)公元年数能被400整除也是闰年。

※程序如下※

main( )

{

int i,j=0;

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

{

if((i%4==0)&&(i%100!=0)||(i%400==0)) /* 判断是否是闰年的条件 */

{

printf("&d ",i);

j++;

if(j%3==0) /* 控制换行 */

printf("\n");

}

}

}

5.20 编写程序,打印以下图形:

*

***

*****

*******

*****

***

*

※程序如下※

#include

main( )

{

int i,j;

for(i=1;i<=7;i++) /*控制行数*/

{

for(j=1;j<=7;j++) /*控制星数*/

{

if((j<=fabs(4-i))||(j>7-fabs(4-i)))

printf(" ");

printf("*")

}

printf("\n");

}

}

#include

#include

main()

{ int i,j,k;

for(i=-3;i<=abs(i);i++)

{for(j=0;j<=abs(i);j++)printf(“”);

for(k=0;k<=7-abs(i);k++)printf(“*”);

printf(“\n”);

}

}

第六章字符型数据

6.21 请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,每行输出三队.

※程序如下※

#include

main( )

{

int i=0;

char ch;

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

{

printf("%4c%4d",ch,ch);

i++;

if(i%3==0)

printf("\n");

}

}

6.21 请编写程序,输入一行数字字符(用EOF结束),每个数字字符的前后都有空格。

请编程,把这一行中的数字转换成一个整数。例如,若输入:

2 4 8

3 代表Enter键)

则输出整数:2483

※程序如下※

#include

main()

{

char ch;

{

if(ch==' ')

continue;

else

printf("%c",ch);

}

}

6.22 请编写程序统计输入的行数,输入用EOF结束输入。

※程序如下※

#include

main()

{

char ch;

int i=0;

while((ch=getchar())!=EOF)

{

if(ch=='\n') i++;

}

printf("%d",i);

}

6.23 请编写程序统计输入的一行中小写字母的个数。

※程序如下※

#include

main()

{

int i=0;

char ch;

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

{

if((ch>='a')&&(ch<='z'))

i++;

}

printf("%d",i);

}

6.24 请编写输出以下图案的程序,图案的行数由输入的值确定。

A

BBB

CCCCC

DDDDDDD

EEEEEEEEE

※程序如下※

#include

main()

{

printf("Enter n(integer):\n");

scanf("%d",&n);

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

{

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

printf(" ");

for(k=1;k<=2*i-1;k++)

printf("%c",64+i);

printf("\n");

}

}

第七章函数

7.14 以下fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正。 fun(int n)

{

int k,yes;

for(k=2;k<=n/2;k++)

if(n%k==0) return yes=0;

return yes=1;

}

※正确答案是:

fun(int n)

{

int k,yes=1;

for(k=2;k<=n/2;k++)

if(n%k==0) return yes=0;

return yes;

}

main()

{

int n,yes;

printf("Enter n (int):\n");

scanf("%d",&n);

yes=fun(n);

if(yes==1)printf("%d is a prime",n);

else printf("%d is not a prime",n);

}

7.15 编写函数 int mymod(int a, int b)用以求a被b除之后的余数。

※程序如下※

#include

int mymod( int a, int b )

int remainder;

remainder=a%b;

return remainder;

}

main()

{

int a,b;

printf("Enter a b (int):\n");

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

printf("余数=%d",mymod(a,b));

}

7.16 编写程序求:1-1/2+1/3-1/4+1/5-1/6+1/7-...1/n

※程序如下※

main()

{

int n;

float a;

float sum(int n);

scanf("%d",&n);

a=sum(n);

printf("%10.5f",a);

}

float sum(int n)

{

float s=0;

int i,t=1;

for(i=1;i

{

s=s+1/i*t;

t=-t;

}

return s;

}

7.17 编写函数,根据整型形参m的值,计算如下公式的值。 t=1-1/(2 x 2)-1/(3 x 3)-...-1/(m x m)

例如:若m=5,则应输出0.536389。

※程序如下※

main()

{

float t=1;

float f2(int);

int i,m;

scanf("%d",&m);

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

printf("t=%f",t);

}

float f2(int m)

{

float s;

s=1.0/(m*m);

return s;

}

7.18 编写函数用以求表达式x2-5x+4,x作为参数传给函数,调用此函数求:

y1=22-5*2+4

y2=(x+15)2-5*(x+15)+4

y3=sin2x-5*sinx+4

※程序如下※

#include

#include

float fun(float x)

{

float y;

y=pow(x,2)-5*x+4;

return y;

}

main()

{

float x,y1,y2,y3;

clrscr();

printf("Enter x:\n");

scanf("%f",&x);

y1=fun(2);

y2=fun((x+15));

y3=fun(sin(x));

printf("y1=%f\ny2=%f\ny3=%f\n",y1,y2,y3);

}

第八章地址和指针

8.17 请编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数。

※程序如下※

#include

{

*sum=a+b;

*sub=a-b;

}

main()

{

float a,b,sum,sub; /*定义变量sum求和,变量sub求差*/

printf("Enter a b (float):\n");

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

sum_sub(a,b,&sum,&sub);

printf("sum=%f,sub=%f",sum,sub);

}

8.18 请编写函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。

※程序如下※

#include

max_min(double a,double b,double c,double *max,double *min)

{

*max = a ; /* 假定a的值为最大,把a值赋给指针变量*max */

if(*max

if(*max

*min = a ; /* 假定a的值为最小,把a值赋给指针变量*min */

if(*min>b) *min = b;

if(*min>c) *min = c;

}

main()

{

double a,b,c,max,min;

printf("Enter a b c (double):\n");

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

max_min(a,b,c,&max,&min);

printf("max=%lf,min=%lf",max,min);

}

第九章函数

9.27 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数.用下标为 0元素统计字符"1"的个数,下标为1的元素统计字符"2"的个数,...

※程序如下※

#include

void count(int a[])

{

int i;

char ch;

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

if(i==ch-'0')

if(i==0)

a[9]++;

else

a[i-1]++;

}

main( )

{

int i,a[10]={0};

count(a);

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

printf("a[%d]=%d\n",i,a);

}

9.28 编写函数,对具有10个整数的数组进行如下操作:从第n个元素开始直到最后一个元素,依次向前移动一个位置.输出移动后的结果.

※程序如下※

fun (int a[],int n)

{

int i;

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

a=a[i+1];

}

main()

{

int a[10]={0,1,2,3,4,5,6,7,8,9},n,i;

scanf("%d",&n);

fun(a,n);

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

printf("%d ",a);

}

9.29 编写函数把数组中所有奇数放在另一个数组中返回.

※程序如下※

#include

#include

int fun(int a[],int b[])

{

int i,j=0;

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

if(a%2==1)

b[j++]=a;

return(j);

}

main()

int i,j,a[10],b[10];

clrscr();

printf("\n****Enter 10 integer number:****\n");

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

scanf("%d",&a);

j=fun(a,b);

printf("****Output the odd arrage***:\n");

for(i=0;i

printf("%d ",b);

getchar();

}

9.30 编写函数对字符数组中的输入字母,按由大到小的字母顺序进行排序。※程序如下※

#include

void alpha_sort(char a[],int n);

void alpha_rout(char a[],int n);

main()

{

char a[20];

int n;

clrscr();

printf("****The original alphabetic is****:\n");

gets(a);

n=strlen(a);

alpha_sort(a,n);

alpha_rout(a,n);

}

void alpha_sort(char a[],int n)

{

int i,j,p,t;

for(j=0;j

{p=j;

for(i=j+1;i

if(a[p]

if(p!=j)

{

t=a[j];

a[j]=a[p];

a[p]=t;

}

}

}

void alpha_rout(char a[],int n)

{

int i;

for(i=0;i

printf("%c",a[i]);

}

9.31 输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对以下三种情况运行你的程序,以便验证你的程序是否

正确。

(1)插在最前(2)插在最后(3)插在中间

※程序如下※

#include

#define M 10

void sort(int a[M],int b[M+1],int n)

{

int i;

for(i=0;i

{

if(a[0]>a[M-1])

{

if(n

b=a;

else

{

b=n;

break;

}

}

else

{

if(n>a)

b=a;

else

{

b=n;

break;

}

}

}

if(i

for(;i

b[i+1]=a;

else

b=n;

}

main()

{

int i,n,a[M],b[M+1];

printf("Enter ten integer number(be sorted):\n");

for(i=0;i

scanf("%d",&a);

printf("Enter a number\n");

scanf("%d",&n);

sort(a,b,n);

printf("Result of insert\n");

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

printf("%d ",b);

}

9.32 编写函数把任意十进制整数转换成二进制数.提示:把十进制数不断除2除,余数放

在一个一维数组中,直到商数为零.在主函数中进行输出,要求不得按逆序输出.

※程序如下※

#include

int dec_bin(int a[],int decimal) /*变量decimal表示十进制数*/

{

int i=0,remainder;

while(decimal>0)

{

remainder=decimal%2;

decimal=decimal/2;

a[i++]=remainder;

if(decimal<2)

{

a=decimal;

break;

}

}

return(i);

}

main()

{

int i,j,decimal,a[64];

printf("Enter decimal number:\n");

scanf("%d",&decimal);

j=dec_bin(a,decimal);

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

printf("%d",a);

}

9.33 编写函数调用随机函数产生0到19之间的随机数,在数组中存入15个互不重复的整数。要求在主函数中输出结果。若已定义x为int类型,调用随机函数步骤如下:

#include "stdio.h"

. x=rand()%20 /*产生0到19的随机数*/

※程序如下※

void rand1(int a[])

{

int i=0,j,x,flag;

while(i<15)

{

flag=1;

x=rand()%20;

for(j=0;j

if(a[j]==x)

{

i--;

flag=0;

break;

}

if(flag==1)

a=x;

i++;

}

}

main()

{

int i,a[15];

clrscr();

rand1(a);

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

printf("%d ",a);

}

9.34 求任意方阵每行、每列、两对角线上元素之和。※程序如下※

#include

#define M 3

void line_sum(int a[M][M],int a1[])

{

int i,j,k;

for(i=0,k=0;i

{

a1[k]=0;

for(j=0;j

a1[k]+=a[j];

}

}

void column_sum(int a[M][M],int a2[])

{

int i,j,k;

for(i=0,k=0;i

a2[k]=0;

for(j=0;j

a2[k]+=a[j];

}

}

void diagonal_sum(int a[M][M],int a3[])

{

int i,j;

for(i=0;i

for(j=0;j

{

if(i==j)

a3[0]+=a[j];

if(i+j==M-1)

a3[1]+=a[j];

}

}

main()

{

int i,j,a[M][M],a1[M],a2[M],a3[2]={0};

clrscr();

i=M;

printf("****Enter %d x %d phalanx****\n",i,i); for(i=0;i

for(j=0;j

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

line_sum(a,a1);

column_sum(a,a2);

diagonal_sum(a,a3);

for(i=0;i

printf("line%d=%d\n",i,a1);

for(i=0;i

printf("column%d=%d\n",i,a2);

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

printf("diagonal%d=%d\n",i,a3);

}

9.35 求两个矩阵的和

#include

#define M 4

void add(int a[M][M],int b[M][M],int c[M][M]) {

int i,j;

for(i=0;i

{

for(j=0;j

c[j]=a[j]+b[j];

}

main()

{

int i,j,k,a[M][M],b[M][M],c[M][M]={0};

i=M;

printf("****Enter NO.1 Matrix( %d x %d)****\n",i,i); for(i=0;i

for(j=0;j

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

i=M;

printf("****Enter NO.2 Matrix( %d x %d)****\n",i,i); for(i=0;i

for(j=0;j

scanf("%d",&b[j]);

add(a,b,c);

i=M;

printf("****Output result Matrix( %d x %d)****\n",i,i); for(i=0;i

{

for(j=0;j

printf("%5d",c[j]);

printf("\n");

}

}

9.36 编写函数打印出以下形式的乘法九九表。

** A MULTIPLICATION TABLE **

(1) (2) (3) (4) (5) (6) (7) (8) (9)

----------------------------------------------------------

(1) 1 2 3 4 5 6 7 8 9

(2) 2 4 6 8 10 12 14 16 18

(3) 3 6 9 12 15 18 21 24 27

(4) 4 8 12 16 20 24 28 32 36

(5) 5 10 15 20 25 30 35 40 45

(6) 6 12 18 24 30 36 42 48 54

(7) 7 14 21 28 35 42 49 56 63

(8) 8 16 24 32 50 48 56 64 72

(9) 9 18 27 36 45 54 63 72 81

----------------------------------------------------------

※程序如下※

#include

main()

{

int i,j;

clrscr();

printf("** A MULTIPLICATION TABLE **\n");

printf("\(1) (2) (3) (4) (5) (6) (7) (8) (9)\n");

{

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

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

printf("%4d",i*j);

printf("\n");

}

printf("----------------------------------------------------------\n");

}

9.37 调用随机函数为5 x 4的矩阵置100以内的整数,输出该矩阵,求出每行元素之和并把和值最大的那一行与第一行上的元素对调。若已定义x为int类型,调用随机

函数步骤如下:

#include "stdio.h"

. x=rand( )%100 /*产生0到100的随机数*/

※程序如下※

#include

#include

void rand1(int *p)

{

int i,j;

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

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

*p=rand()%100;

}

void exchange(int a[5][4])

{

int i,j,max,temp,b[5]={0};

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

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

b+=a[j];

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

if(b

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

{

temp=a[j];

a[j]=a[max][j];

a[max][j]=temp;

}

}

main()

{

int i,j,a[5][4];

clrscr();

rand1(a);

printf("****The origient Matrix****\n");

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

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

c语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

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、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“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 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

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

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.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. 函数可以带参数,也可以不带参数。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

c语言程序设计期末试题A(含答案)

c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从(A )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是(D )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( C)。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是(B)。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是(D)。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( C)。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A) p=1; B) *q=2; C) q=p; D) *p=5; 选D. A.p是一个指针,不能给它赋一个整型的值1 B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值. C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针. *p=5,即给n赋值为5,正确.

C语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案 祝胜林主编 华南理工大学出版社 【习题1】 (1) 【习题2】 (2) 【习题3】 (3) 【习题4】 (5) 【习题5】 (8) 【习题6】 (11) 【习题7】 (14) 【习题8】 (16) 【习题9】 (16) 【习题10】 (18)

一、简答题(在课本中寻找答案,略) 1.1C程序的基本结构包括哪些内容? 1.2如何定义标识符? 1.3输入格式、输出格式的组成包括哪些内容? 1.4C语言函数分为哪两类? 1.5计算表达式的值应该考虑哪些方面? 1.6上机调试程序的步骤如何? 二、判断并改错 1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13在屏幕上输出自己名字的拼音。 提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);

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