C练习题答案.docx

上传人:b****5 文档编号:2884029 上传时间:2022-11-16 格式:DOCX 页数:8 大小:31.95KB
下载 相关 举报
C练习题答案.docx_第1页
第1页 / 共8页
C练习题答案.docx_第2页
第2页 / 共8页
C练习题答案.docx_第3页
第3页 / 共8页
C练习题答案.docx_第4页
第4页 / 共8页
C练习题答案.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

C练习题答案.docx

《C练习题答案.docx》由会员分享,可在线阅读,更多相关《C练习题答案.docx(8页珍藏版)》请在冰豆网上搜索。

C练习题答案.docx

C练习题答案

一、填空

1、C语言规定,在一个源程序中main函数的位置可以任意

2、C语言中的标识符只能由三种字符组成,它们是数字、字母和下划线

3、表达式18/4*sqrt(4.0)/8值的数据类型为双精度

4、当a=3,b=2,c=1时,表达式f=a>b>c的值是0

5、在C语言中,char型数据在内存中的存储形式是ASCII值

6、对应scanf(“a=%d,b=%d”,&a,&b);语句的输入a为3,b为7的键盘输入格式是a=3,b=7

7、C语言提供的三种逻辑运算符是&&、||、!

8、下面程序段的运行结果是you?

charstr[]=“howareyou?

”;

printf(“%s”,str+8);

9、模块化程序设计要求:

高内聚、低偶合。

10、已知指针p的指向如图所示,则表达式*p++的值是21

二、单项选择

1、以下运算符中运算级别最高的是(D)

(A)%(B)/(C)<(D)!

2、以下是字符常量的是C

(A)"C"(B)'\\''(C)'W'(D)''

3、sizeof(float)是 B 。

(A)一个双精度型表达式

(B)一个整型表达式

(C)一种函数调用

(D)一个不合法的表达式

4、已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是:

(C)

(A)scanf("%2d%2d%2d",&i,&j,&k);

(A)scanf("%d%d%d",&i,&j,&k);

(A)scanf("%d,%d,%d",&i,&j,&k);

(A)scanf("i=%d,j=%d,k=%d",&i,&j,&k);

5、以下非法的赋值语句是:

(C)

(A)n=(i=2,++i);(B)j++;

(C)++(i+1);(D)x=j>0;

6、以下四个选项中,均是不合法的用户标识符的是(C)

(A)AP_Odo(B)floatla0_A

(C)b-agotoint(D)_123tempint

7、若有说明语句:

charc='/72';则变量c(A)

(A)包含1个字符(B)包含2个字符

(C)包含3个字符(D)说明不合法,C的值不确定

8、下面不正确的字符串常量是:

(A)

(A)'abc'(B)"12'12"(C)"0"(D)""

9、执行下列程序段后,a值为:

D

inta,b;

a=15;b=12;

a=(a--==b++)?

a%5:

a/5;

(A)0(B)2.8(C)4(D)2

10、判断char型变量ch是否为大写字母的正确表达式是(C)

(A)’A’<=ch<=’Z’

(B)(ch>=’A’)&(ch<=’Z’)

(C)(ch>=’A’)&&(ch<=’Z’)

(D)(‘A’<=ch)AND(‘Z’>=ch)

11、以下程序的运行结果是(C)

main()

{intm=5;

if(m++>5)

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

else

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

}

(A)4(B)5(C)6(D)7

12、以下程序段的运行结果是:

(B)

 intx=0,s=0;

while(!

x!

=0)s+=++x;

printf(“%d”,s); 

(A)0 (B)1 (C)无限循环 (D)程序段中的控制表达式是非法的

13、C语言中while和do-while循环的主要区别是 (A)。

(A)do-while的循环体至少无条件执行一次

(B)while的循环控制条件比do-while的循环控制条件严格

(C)do-while允许从外部转到循环体内

(D)do-while的循环体不能是复合语句

14、有如下程序,该程序的执行结果是(C)

main()

{intnum=0;

while(num<=2)

{num++;

printf(“%d”,num);

}

}

(A)1(B)12(C)123(D)1234

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

main()

{inti=3,j=0;

do

{j=j+(--i);}while(i<2);

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

(A)2(B)3(C)4(D)无限循环

 

16、如果charcc[]=“12345”,做sizeof(cc)后的返回值应为(C)

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

17、判断字符串a和b是否相等,应当使用(D)。

(A)if(a==b)

(B)if(a=b)

(C)if(strcpy(a,b))

(D)if(strcmp(a,b))

18、执行语句for(i=1;i++<4;);后变量i的值(C)

(A)3(B)4(C)5(D)不定

19、下面程序行的结果是:

(C)

func(inta,intb)

{intc;

c=a+b;

Returnc;

}

main()

{intx=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--);

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

}

(A)11(B)20(C)21(D)31

20、有以下程序:

main()

{chars[]="ABCD",*p;

  for(p=s+1;p

}

程序运行后的输出结果是(D)

A)ABCD    B)A  C)B  D)BCD

  BCD   B     C    CD

   CD    C    D     D

   D       D

 

三、改错题

1、以下程序段求两个数的和:

inta,b=4,c;

scanf(“%d”,a);

c=a+b;

printf(“%d”,c);

答案:

scanf(“%d”,a);有错,

应为:

scanf(“%d”,&a);

2、以下程序段将输入字符显示到屏幕上:

charch;

ch=getchar(‘ch’);

putchar(‘ch’);

答案:

一、ch=getchar(‘ch’);有错

改为:

ch=getchar()

二、putchar(‘ch’);有错

改为:

putchar(ch);

3、以下程序段输出最大者:

inta=5,b=3;

if(a

elseprintf(“%d”,b);

答案:

if(a

改为:

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

4、以下程序段求1-10所有数的和:

intsum,i;

do

{sum=sum+i;

i++;

}while(i<10);

printf(“%d”,sum);

答案:

intsum,i;有错

改为:

intsum=0,i=1;

while(i<10);有错

改为

while(i<=10);

5、以下程序段将输入的字符串显示到屏幕上:

charstr[20];

scanf(“%s”,&str);

puts(str);

答案:

scanf(“%s”,&str);有错

改为

scanf(“%s”,str);

因为数组名本身就表示数组的首地址

四、编程题

答案:

#include"stdio.h"

voidmain()

{

doublex,y;

printf("请输入X的值:

");

scanf("%lf",&x);

if(x<1)

{y=x;}

elseif(x>=1&&x<10)

{y=2*x-1;}

else

{y=3*x-1;}

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

}

2、求十个学生成绩的平均值。

答案:

#include"stdio.h"

voidmain()

{

doublescore[10],sum=0,avg;

inti;

printf("请输入10个学生的成绩:

");

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

{

scanf("%lf",&score[i]);

sum=sum+score[i];

}

avg=sum/10;

printf("学生的平均成绩为:

%.2lf",avg);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1