C语言练习题及答案1.docx

上传人:b****5 文档编号:8124627 上传时间:2023-01-29 格式:DOCX 页数:54 大小:42.14KB
下载 相关 举报
C语言练习题及答案1.docx_第1页
第1页 / 共54页
C语言练习题及答案1.docx_第2页
第2页 / 共54页
C语言练习题及答案1.docx_第3页
第3页 / 共54页
C语言练习题及答案1.docx_第4页
第4页 / 共54页
C语言练习题及答案1.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

C语言练习题及答案1.docx

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

C语言练习题及答案1.docx

C语言练习题及答案1

 

C

 

第一章C语言概述

1、所有C函数的结构都包括的三部分是(C)

A.语句、花括号和函数体

B.函数名、语句和函数体

C.函数名、形式参数和函数体

D.形式参数、语句和函数体

2、C语言中主函数的个数是(B)

A.2个B.1个C.任意个D.10个

3、下面可能不影响程序正常运行的是(C)

A.语法错误B.逻辑错误

C.警告提示D.算法错误

4、一个C程序的执行是从(A)

A.本程序的main()函数开始,到main()函数结束.

B.本程序文件的第一个函数开始,到本程序文件第一个函数结束.

C.本程序文件的第一个函数开始,到本程序main函数结束.

D.本程序的main()函数开始,到本程序文件的最后一个函数结束.

5、C程序由(C)组成。

A.子程序B.主程序和子程序

C.函数D.过程

6、下列关于C语言注释的叙述中错误的是(D)。

A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容。

B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。

C.程序编译时,不对注释作任何处理。

D.程序编译时,需要对注释进行处理。

7、C语言源程序经过编译后,生成文件的后缀是____C_____。

   A、.c    B、.exe  C、.obj   D、.cc

8、以下说法中正确的是____C_____。

A、C语言程序总是从第一个函数开始执行

B、在C语言程序中,要调用函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

9、以下叙述中正确的是__A____。

A:

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

B:

花括号"{"和"}"只能作为函数体的定界符

C:

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

D:

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

第二章变量与表达式

第一节简单表达式

1.算术运算符及其表达式

1、C语言中运算对象必须是整型的运算符是_____A______。

A、%    B、*    C、+    D、/

2.下面运算符优先级最高的是(C)

A.<=B.=C.%D.&&

3、下面程序

main()

{

intx=10,y=3;

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

}

的输出是___C___。

A:

0B:

1C:

3D:

不确定的值

4、执行下面程序段后,c3中的值是_A____

intc1=1,c2=2,c3;

c3=c1/c2;

A:

0B:

1/2C:

0.5D:

1

2.C语言表达式书写规则

1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是___A___。

A:

x/y*zB:

x*(1/(y*z))C:

x/y*1/zD:

x/y/z

2、设有定义:

floata=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是___B___。

A:

(a+b)*h/2B:

(1/2)*(a+b)*hC:

(a+b)*h*1/2D:

h/2*(a+b)

第二节变量

1.变量

1、下列关于C语言的关键字的叙述中错误的是(C)

A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字。

B.用户定义的标识符不应与关键字相同。

C.ANSIC标准规定的关键字有64个。

D.ANSIC标准规定的关键字有32个。

2、下面关于C语言用户标识符的描述,正确的是(D)

A.不区分大小写B.用户标识符不能描述常量

C.类型名也是用户标识符D.用户标识符可以作为变量名

3、以下(D)是正确的变量名。

A.a.beeB.-p11C.intD.p_11

4、下面属于C语言标识符的是(D)

A.2abB.@fC.?

bD._a12

5、下列保留字中用于构成循环结构的是(B)

A.ifB.whileC.switchD.default

6、以下定义语句中正确的是(C)。

A.chara='A'b='B';B.floata=b=10.0;

C.inta=10,*b=&a;D.float*a,b=&a;

7、下面标识符中,不合法的用户标识符为(D)

A)PadB)a_10C)_12abD)int

8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符_____C____。

A、必须为下划线B、可以是字母、数字和下划线中任一种字符

C、必须为字母或下划线D、必须为字母

9、请选出可用作C语言用户标识符的一组标识符____B__。

①void②a3_b3③For④2a

define_123_abcDO

WORDIFcasesizeof

A:

①B:

②C:

③D:

9、以下选项中合法的用户标识符是___B___。

A:

longB:

_2TestC:

3DmaxD:

A.dat

10、以下不能定义为用户标识符的是__D____。

A:

scanfB:

VoidC:

_3com_D:

int

11、在C语言中,如果下面的变量都是int类型,则输出结果是__A____

sum=pad=5;

pad=sum++,pad++,++pad;

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

A:

7B:

6bC:

5D:

4

2.常量和符号常量

1、以下(B)是错误的整型常量。

A.-0xcdfB.018C.0xeD.011

2、下列符号中用来表示C语言中的回车换行的是(B)

 A.\”       B.\n        C.\b        D.\\

3、以下(C)是正确的字符常量。

A."c"B.'\\''C.'W'D."\32a"

4、下面不正确的字符串常量是(A)

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

6、以下列出C语言常量中,错误的是__B____。

A:

OxFFB:

1.2e0.5C:

2LD:

'\72'

7、以下选项中,非法的字符常量是___C___。

A:

'\t'B:

'\17'C:

"\n"D:

'\xaa'

第三节数据类型

1.整型数据

1、以下选项中不属于C语言的类型的是__D____。

A:

signedshortintB:

unsignedchar

C:

singedlongD:

longshort

2、以下选项中可作为C语言合法整数的是___C___。

A:

10110BB:

0386C:

0XffaD:

x2a2

2.实型数据

1、以下选项中属于C语言的数据类型是___C___。

A:

复数型B:

逻辑型C:

双精度型D:

集合型

2、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___C___。

A:

1B:

2C:

2.0D:

2.5

3、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是___C___。

A:

x=x*100+0.5/100.0;B:

x=(x*100+0.5)/100.0

C:

x=(int)(x*100+0.5)/100.0;D:

x=(x/100+0.5)/100.0;

4、以下符合C语言语法的实型常量是__C____。

A:

1.2E0.5B:

3.14159EC:

.5E-3D:

E15

3.字符型数据

1、判断char型变量ch是否为大写字母的正确表达式是____C_____。

A、‘A’<=ch<=‘Z’  B、‘A’<=chandch<=‘Z’ 

C、‘A’<=ch&&ch<=‘Z’ D、‘A’<=ch||ch<=‘Z’

2.设有语句chara='\72';则变量a(A) 。

A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法

3.判断变量ch中的字符是否为数字字符,最简单的正确表达式是(D)。

A)ch>=0&&ch<=9B)’0’<=ch<=’9’

C)ch>=’0’||ch<=’9’D)ch>=’0’&&ch<=’9’

4、设有说明语句:

chara='\72';则变量a__A____。

A:

包含1个字符B:

包含2个字符C:

包含3个字符D:

说明不合法

5、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是___A___。

A:

字符AB:

字符aC:

字符eD:

非法的常量

6、若有以下定义和语句:

charc1='b',c2='e';

printf("%d,%c\n",c2-c1,c2-'a'+'A');

则输出结果是___B____

A:

2,MB:

3,EC:

2,eD:

输出结果不确定

7、已知字符A的ASCII码为十进制的65,下面程序的输出是__A___

main()

{

charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

A:

67,DB:

B,CC:

C,DD:

不确定的值

8、若变量c为char类型,能正确判断出c为小写字母的表达式是D

A:

'a'<=c<='z'  B:

(c>='a')||(c<='z')

C:

('a'<=C)and('z'>=c)D:

(c>='a')&&(c<='z')

4.类型转换

1、表达式‘f’+10的类型是____A_______。

A、intB、char  C、double   D、float

2、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是___D___。

A:

6.500000B:

6C:

5.500000D:

6.000000

第四节赋值语句

1、若有定义:

inta=2;则正确的赋值表达式是(A)。

A.a-=(a*3)B.double(-a)C.a*3D.a*4=3

2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)

A)–3B)9C)–12D)6

3、请选出合法的C语言赋值语句__B____。

A:

a=b=58B:

i++;C:

a=58,b=58D:

k=int(a+b);

4、若变量已正确定义并赋值,下面符合C语言的表达式是___B___。

A:

a:

=b+1B:

a=b=c+2C:

int18.5%3D:

a=a+7=c+b

5、若变量a、i已正确定义,且i已正确赋值,合法的语句是__B____。

A:

a==1B:

++i;C:

a=a++=5D:

a=int(i);

6、以下非法的赋值语句是__C____。

A:

n=(i=2,++i);B:

j++;C:

++(i+1);D:

x=j>0;

7、以下选项中非法的表达式是___D___。

A:

0<=x<100B:

i=j==0C:

(char)(65+3)D:

x+1=x+1

8、若以下选项中的变量已正确定义,则正确的赋值语句是___C___。

A:

x1=26.8%3;B:

1+2=x2;C:

x3=0x12;D:

x4=1+2=3;

第五节复杂表达式

1.自增、自减运算符

1、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\n”,x--,--y);(D)

A)10,3B)9,3C)9,2D)10,2

2、设i为整型变量,且值为100,则语句++i;执行后i的值是____B_____。

A、100    B、101     C、102    D、语句错

3.以下程序的输出结果是(B)。

#include

main()

{

inti=010,j=10;

printf("%d,%d\n",++i,j--);

}

A)11,10B)9,10C)010,9D)10,9

4.下列程序的运行结果是(  A  )

    #define A 5

    #define B A+1

    main()

    {inta;

     a=B;

     printf(″%d\n″a--);

    }

 A.6  B.5 C.4 D.出错

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

#include

main()

{

inti=10,j=10;

printf("%d,%d\n",++i,j--);

}

A:

11,10B:

9,10C:

010,9D:

10,9

6、有如下程序

main()

{inty=3,x=3,z=1;

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

}

运行该程序的输出结果是___D___。

A:

34B:

42C:

43D:

33

7、设x,y均为int型变量,且x=10,y=3,则以下数据的输出结果是Dprintf("%d,%d\n",x--,--y)。

A:

10,3B:

9,3C:

9,2D:

10,2

8、下列关于单目运算符++、--的叙述中正确的是___D___。

A:

它们的运算对象可以是任何变量和常量

B:

它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C:

它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D:

它们的运算对象可以是char型变量、int型变量和float型变量

9.main()

{intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

程序运行后的输出结果是__D____。

A:

3B:

5C:

-1D:

-2

10、有以下程序

main()

{chara='a',b;

printf("%c,",++a);

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

}

程序运行后的输出结果是___A___。

A:

b,bB:

b,cC:

a,bD:

a,c

11、若有以下定义和语句:

inta=5

a++;

此处表达式a++的值是__B__

A:

7B:

6C:

5D:

4

2.关系运算符与关系表达式

1、设有intx,y;以下语句判断x和y是否相等,正确的说法是该语句(B)

if(x=y)printf("xisequaltoy.");

A.语法错B.不能判断x和y是否相等

C.编译出错D.能判断x和y是否相等

2、表达式:

10!

=9的值是___D___。

A:

trueB:

非零值C:

0D:

1

3.逻辑运算符与逻辑表达式

1、能表示条件0≤x≤100的表达式是(D)

A)0<=x<=100B.x>=0,x<=100

C)0≤x≤100D)x>=0&&x<=100

2、设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>b)&&(n=c>d)后n的值为(C)

A)0B)1C)2D)3

3、能正确表示a和b同时为正或同时为负的逻辑表达式是___D______。

  A、(a>=0‖b>=0)&&(a<0‖b<0)    B、(a>=0&&b>=0)&&(a<0&&b<0)

  C、(a+b>0)&&(a+b<=0)       D、a*b>0

4、设有定义inta=1,b=2,c=3;则下面的值为1的表达式是___A_______。

   A、a&&7    B、a

c   C、a&&!

b    D、b〉=c

5、设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表达式是___D___。

A:

'a'&&'b'B:

a<=bC:

a||+c&&b-cD:

!

((a

c||1)

6、设a=5、b=6、c=7、d=8、m=2、n=2,执行

(m=a>b)&&(n=c>d)

后n的值为___B___。

A:

1B:

2C:

3D:

4

7、有如下程序段

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为___D___。

A:

trueB:

falseC:

0D:

1

8、设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为____C__。

A:

不定值B:

4C:

3D:

1

9.以下程序的输出结果是__A____。

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

printf("%d\n",d)

}

A:

1B:

0C:

非0的数D:

-1

10、有以下程序

main()

{inta=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

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

}

程序运行后的输出结果是__C____。

A:

0,0B:

0,1C:

1,0D:

1,1

11、有以下程序

main()

{inti=1,j=1,k=2;

if((j++||k++)&&i++)

printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是C

A:

1,1,2B:

2,2,1C:

2,2,2D:

2,2,3

12、以下程序的输出结果是A

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

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

}

A:

1B:

0C:

非0的数D:

-1

4.逗号运算符

1、若x,i,j,k都是int型变量,则执行下面表达式后x的值为____C____

x=(i=11,j=22,k=33)

A、11    B、22     C、33    D、66

2、若x和y都是int型变量,x=100、y=200,且有下面的程序片段

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

上面程序片段的输出结果是__A____。

A:

200B:

100C:

100200D:

输入格式符不够,输出不确定的值

3、若执行以下程序段,其输出结果是__B____

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

A:

3,0,-10B:

0,0,5C:

-10,3,-10D:

3,0,3

 

第六节基本输入输出语句

2.格式化输入与输出函数

1、若有说明语句:

inta,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、b、c的语句是(A)

A.scanf("%d%d%d",&a,&b,d);B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);D.scanf("%d%d%d",a,b,*d);

2、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是(A)

A)10,20B)a=10,b=20C)10:

20D)1020

3、下面的程序段

  inti=6;

  printf(“***%-4d***\n”,i);

  的输出是______B______。

 A、***6***   B、***6***   

C、***0006***   D、出错

4.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是(D)。

#include

main()

{

charc1='A',c2='Y';

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

}

A)因输出格式不合法,输出错误信息B)65,90C)A,YD)65,89

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

main()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}

A:

17,021,0x11B:

17,17,17C:

17,0x11,021D:

17,21,11

6、若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

___B___。

A:

10

22

33

B:

10.0,22.0,33.0

C:

10.0

22.033.0

D:

1022

33

7、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是___B___。

A:

INPUTX,Y,Z;B:

scanf("%d%d%d",&X,&Y,&Z);

C:

scanf("%d%d%d",X,Y,Z);D:

read("%d%d%d",&X,&Y,&Z);

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

1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是__C____。

A:

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

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

C:

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

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

9、设有定义:

longx=-123456L;,则以下能够正确输出变量x值的语句是___B___。

A:

printf("x=%d\n",x);B:

printf("x=%ld\n",x);

C:

printf("x=%8dL\n",x);D:

printf("x=%LD\n",x);

10、有以下程序段

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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