最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C程序设计课后习题1-3(答案)

来源:动视网 责编:小OO 时间:2025-09-26 20:51:27
文档

C程序设计课后习题1-3(答案)

C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。A.main函数的入口B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。A.B.C.TomB.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check
推荐度:
导读C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。A.main函数的入口B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。A.B.C.TomB.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check
C程序设计课后习题

                           第一章习题

1.选择题

(1)C语言程序的执行总是从( A )开始。

A.main函数的入口           B.编译预处理命令

C.源程序的第一个函数         D.源程序的第一行语句

(2)在C语言的源程序中,主函数的位置( C )。

A.必须在编译预处理命令的后面  B.必须在源程序的最后

C.任意                        D.必须在源程序的开头

(3)下列变量名中合法的是(  C  )。

A. B.C.Tom                   B.3a6b

C._6a7b                      D.$ABC

   (4)下面两对用户定义标识符哪个可读性更强:( C )

A.checkquality               B.salarytotal

C.check_quality              C.sal_ary_tot_al

(5)C程序是由(  D  )组成。

A.若干个过程                 B.若干子程序

C.一个主程序和若干子程序     D.若干函数

 2.填空题

   (1)一个函数一般由两部分组成,它们分别是_函数首部______和__函数体____。

  (2)编译预处理命令___是_____(填“是”或“不是”)C语言文本的一部分。

  (3)一个C语言程序至少应包含一个__主函数或main()__。

  (4)C语言的标准输入函数是_scanf()__,标准输出函数是___printf()____。

  (5)函数体用___{______符号开始,用_____}______符号结束。

  (6)注释的开始和结束标志分别为__/*____和____*/____。为增强程序的__可读性___,应该为程序写上清晰的注释。

3.编程题:参考本章例题,编写一个C程序,输出以下信息。

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

*The data is         *

*    2005-03-23      *

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

程序如下:

#include

Void main()

{printf(“**********************\\n”);

printf(“*The data is         *\\n”);

printf(“*    2005-03-23      *\\n”);

printf(“**********************\\n”);

}

                            第二章习题

1.选择题

(1)设int m=10 ,则下列表达式的值不等于零的有( A  F )。

A.1%2                 B. m=10/11.0

C.  m==8                        D. 2/3

E. ~m&m                         F. ~(m|m)

G. !m                             H.m^m

(2)设有int  m=11,则表达式(  B )使整型变量n的值为1。

A.n=m%3 B.n=m-1<11? 1.0:3.0

C.n=m/12                       D.n=11-m

(3)设有int  x=10,y=3;则下列表达式值为1的是(  D  )。

A.!(y==x/3)                  B. y!=x%7

C. x>0&&y<0 D.x!=y||x>=y

(4)有如下定义

long  m; char  c; float  x; double  y;

则表达式2L+3*y+m*2+c+x*m*3的值的类型为(  D  )。

A.long       B. char      C.  float       D.double

(5)’a’在内存中占(  A )个字节,“a”在内存中占( B )个字节。

A. 1        B. 2        C. 3         D.4

(6)设int x=25;则表达式(x&20 >>1)|(x>10|7&x^33)的值为(    F    )。

A.35       B. 43       C. 11         D.  3    F.41

2.填空题

(1)若int类型占2个字节,则long型数据占_4_字节,short类型占_2_字节,unsigned int占__2__字节,float类型占__4__字节。

(2)若有float  x,执行表达式语句 x= 8.7+123.7*6-‘a’%7;后,x的值为__744.900024___。

(3)欲将一个16位二进制的整型变量的高8位清零,而只保留低8位,可用的方法__与八进制数377按位与即可______。

(4)下面程序段的输出结果为___0___。

Int  a=1,b=2,c=3;

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

(5)有如下语句,则输出输出结果为__k1=-1,k2=65535____。

int k=-1;

printf(“k1=%d,k2=%u”,k,k);

3.阅读程序,写出输出结果

(1)

# include

main ()

{ char  c1=‘H’,c2=c1+32;

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

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

}

输出结果为:

110,48,72

H,104

(2)

# include

main()

{

int x=432;

float f=69.20;

char c;

c=f-2;

printf(“%c,”,c);

x+=f;

printf(“%d,”,x);

f=c+x;

printf(“%4.3f\\n”,f);

输出结果为:

C,501,568.000

                          第三章习题

1.选择题

(1)结构化程序设计的三种基本结构是(   A    )。

A.顺序结构、选择结构、循环结构 

B.顺序结构、转移结构、递归结构

C.嵌套结构、选择结构、递归结构

D.嵌套结构、循环结构、顺序结构

(2)C语言中,逻辑“真”等价于(  C   )。

  A.大于零的数            B.大于零的整数

  C.非零的数              D.非零的整数

(3)有程序段;

    int a;

    scanf(“%d”,&a);

    if(!a)

    printf(“continue”);

  则if语句中的!a等价于(    B   )。

A. a!=0     B.a==0     C.a>0 D.a>=0

(4)若有int  x,y;且x=20,则以下关于for循环语句的正确判断为(  A    )

for(y=20;x!=y;++x,y++)printf(“--\n”);

A.循环体一次也不执行          B.循环体只执行一次

C.死循环                      D.输出---—

(5)有程序段;

int x=20;

do{

x/=2

}while(x--);

请问此循环执行(   A   )次

A. 4       B.3       C.5        D.不确定

(6)下列说法中不正确的是 (   A    )。

A.switch语句中必须使用break语句。

B.switch后的括号中可以为任何表达式。

C.case后只能是常量或常量表达式。

D.以上结论不都正确。

(7)下面选项中与if(a)等价的是(    B     )

A.if(a==0)   B.if(a!=0)   C.if(a=0)    D.if(a==1)

(8)有如下程序段:

int k ,m;

k=5,m=1;

switch (k) {

         case 1:m++;

         case 5:m*=3;

         case 9:m+=4;break;

         case 11:m+=1;

         default:m+=3;

        }

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

则输出结果是(   B    )。

A.10     B.7     C.3      D.11

2.程序填空题

(1)求各位数为7且能被3整除的6位数的个数。

 # include“stdio.h”

main()

{ long int i;

int  count;

count=_____0______;

for(i=_100007___;i<99999;__i++_____)

if(__(i%10==7)&&(i%3==0)_______) count++;

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

}

(2)本程序判断某年(year)是否是闰年。

# include”stdio.h”

main()

{

int year;

printf(“please  input  year:”);

scanf(“%d”,&year);

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

    printf(“a leap year.\\n”);

}

(3)编程用公式:4(1-1/3+1/5-1/7+...)计算圆周率,精度要求为10-5(注:其中sign代表当前项符号(1表示+或-1表示-))。

# include

# include

void main()

{

int  sign=1;

float    Pi=0,item=1,k=3;

while(fabs(item)___)=1E-5________;)

{

     pi+=item;

     sign*=-1;

item=__sign/k______;

k_+=2_________;

}

  pi=__pi*4_______;

  printf(“pi=%f\\n”,pi);

}

3.编程题

(1)请使用if...eles if...eles语句改写下面的程序。

# include

void  main()

{  int  mark;

printf(“input the mark of a student(0scanf(“%d”,&mark);

mark=mark/10;

switch(mark)

{

case  9:printf(“A\\n”);break;

case  8:printf(“B\\n”);break;

case  7:printf(“C\\n”);break;

case  6:printf(“D\\n”);break;

default:printf(“E\\n”);break;

}

}  

结果为:

# include

void  main()

{  int  mark;

printf(“input the mark of a student(0scanf(“%d”,&mark);

if (mark/10==9)

printf(“A\\n”);

else if (mark/10==8)

printf(“B\\n”);

else if (mark/10==7)

printf(“C\\n”);

else if (mark/10==6)

printf(“D\\n”);

else

printf(“E\\n”);

}  

                   

(2)从键盘上输入四个整数,输出其中最小的一个。

结果为:

#include

void main()

{

int a,b,c,d,min;

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

min=a;

if (min>b) min=b;

if (min>c) min=c;

if (min>d) min=d;

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

}

(3)求12/(1+1)+22/(2+1)+32/(3+1)+...+n2/(n+1)的值,其中n的值由用户输入确定(注:请使用两种以上的不同循环分别编写本题)。

结果为:

方法一:

#include

main()

{int n,i=1;

 float sum=0;

scanf(“%d”,&n);

while(i<=n)

{   sum=sum+i*i/(i+1.0)

i++;

}

Printf(“sum=%f\\n”,sum);

}

方法二:

#include

main()

{int n,i=1;

 float sum=0;

scanf(“%d”,&n);

do

{   sum=sum+i*i/(i+1.0)

i++;

} while(i<=n);

Printf(“sum=%f\\n”,sum);

}

方法三:

#include

main()

{int n,i;

 float sum=0;

scanf(“%d”,&n);

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

{   sum=sum+i*i/(i+1.0)

Printf(“sum=%f\\n”,sum);

}

(4)输入一串字符,将其中的空格和数字删除后输出。

结果为:

#include

main()

{char c;

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

if(!((c==’ ‘)||(c>=48&&c<=57)))

        Putchar(c);

}

}

(5)本程序为某批发店计算应收货款总额。贷款总额等于单价乘以发货数量,而单价随发货数量的增加而降低。具体规定如下:

基本单价为10元。

购买数量(n)

当1~5件时,优惠x%,x=n-1;

当6~20件时,优惠x%,x=4+(n-5)*0.4;

当21~50件时,优惠x%,x=10+(n-20)*0.15;

当51~300件时,优惠x%,x=14.5+(n-50)*0.03;

当300件以上时,优惠x%,x=22.

当用户输入购买的数量时,程序计算并输出单价和货款总额。

结果为:

#include

void main()

{

int n;

float price=10,r_price,p_sum;

printf(“Please input number:\\n”);

scanf(“%d”,&n);

if (n<=5)

{r_price=price*(100-(n-1))/100;}

else if(n<=20)

{r_price=price*(100-(4+(n-5)*0.4))/100;}

else if(n<=50)

{r_price=price*(100-(10(n-20)*0.15))/100;}

else if(n<=300)

{r_price=price*(100-(14.5+(n-50)*0.03))/100;}

else 

{r_price=price*(100-22)/100;}

printf(“Price=%f,Sum=%f”,r_price,n*r_price);

}

文档

C程序设计课后习题1-3(答案)

C程序设计课后习题第一章习题1.选择题(1)C语言程序的执行总是从(A)开始。A.main函数的入口B.编译预处理命令C.源程序的第一个函数D.源程序的第一行语句(2)在C语言的源程序中,主函数的位置(C)。A.必须在编译预处理命令的后面B.必须在源程序的最后C.任意D.必须在源程序的开头(3)下列变量名中合法的是(C)。A.B.C.TomB.3a6bC._6a7bD.$ABC(4)下面两对用户定义标识符哪个可读性更强:(C)A.checkqualityB.salarytotalC.check
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top