C语言复习题带答案.docx

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

C语言复习题带答案.docx

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

C语言复习题带答案.docx

C语言复习题带答案

一、选择题

1、以下叙述中正确的是(A)

A、构成C程序的基本单位是函数

B、可以在一个函数中定义另一个函数

C、main()函数必须放在其它函数之前

D、所有被调用的函数一定要在调用之前进行定义

2、以下选项中合法的实型常数是(D)

3、以下选项中合法的用户标识符是(B)

4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(

A)

A、字符AB、字符aC、字符eD、非法的常量

5、以下非法的赋值语句是(C)

A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;

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

7、已知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);

8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是(C)

A、3*x^n/(2*x-1)B、3*x**n/(2*x-1)

C、3*pow(x,n)*(1/(2*x-1))D、3*pow(n,x)/(2*x-1)

9、设有定义:

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

A、printf(“x=%d“,x);B、printf(“x=%ld“,x);

C、printf(“x=%8dL“,x);D、printf(“x=%LD“,x);

10、若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);printf(”%d,%d”,m,i);

}

执行后的输出结果是(C)

A、8,6B、8,3C、6,4D、7,4

11、已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是(D)

A、6B、0C、2D、1

12、有一函数y=

以下程序段中不能根据x的值正确计算出y的值的是(C)

A、if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B、y=0;if(x>0)y=1;elseif(x<0)y=-1;

C、y=0;if(x>=0)if(x>0)y=1;elsey=-1;

D、if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;

13、以下选项中,与k=n++完全等价的表达式是(A)

A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1

14、以下程序的功能是:

按顺序读入10名学生4

门课程的成绩,计算出每位学生的平均分并输出,程序如

下:

main()

{intn,k;

floatscore,sum,ave;

sum=0.0;

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

{for(k=1;k<=4,k++)

{scanf(“%f”,&score);sum+=score;}

ave=sum/4.0;

printf(“NO%d:

%f“,n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语

句出现在程序的位置不正确,这条语句是(A)

A、sum=0.0;B、sum+=score;

C、ave=sum/4.0;D、printf(“NO%d:

%f“,n,ave);

15、有以下程序段

intn=0,p;

do{scanf(“%d”,&p);n++}while(p!

=12345&&n<3);

此处do-while循环的结束条件是(D)

A、p的值不等于12345并且n的值小于3

B、p的值等于12345并且n的值大于等于3

C、p的值不等于12345或者n的值小于3

D、p的值等于12345或者n的值大于等于3

16、有以下程序(A)

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0;m++;break;

case1;m++;

switch(b%2)

{default:

m++;

case0;m++;break;

}

}

printf(“%d”,m);

}

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

17、C语言中,函数值类型的定义可以缺省,

此时函数值的隐含类型是(B)

A、voidB、intC、floatD、double

18、有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf(’%d”,j);

}

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

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

19、C语言规定,在一个源程序中,main()函数的位置(C)

A、必须在最开始B、必须在系统调用的库函数的后面

C、可以任意D、必须在最后

20、下列数据中,不合法的C语言实型数据是(C)

21、下面4个选项中,均是不合法的用户标识符的选项是(C)

A、AP_0doB、floata0_AC、b-agotointD、_123tempint

22、设变量a是int型,f是float型,i是double型,

则表达式10+’a’+i*f值的数据类型为(C)

A、intB、floatC、doubleD、不确定

23、能正确表示逻辑关系:

”a>10或a<0”的C语言表达式是(D)

A、a>=10ora<=0B、a>=10|a<=0C、D、a>=10||a<=0

24、设以下变量均为int类型,表达式的值不为7的是(C)

A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)

C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)

25、若变量a是int类型,并执行了语句:

a=’A’+1.6;,则正确的叙述是(D)

A、a的值是字符CB、a的值是浮点型

C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上1

26、有如下程序

main()

{intx=23;

do

{printf(“%d”x--);}while(!

x);

}

该程序的执行结果是(B)

A、321B、23C、不输出任何内容D、陷入死循环

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

A、’a’<=c<=’z’B、(c>=’a’)||(c<=’z’)

C、(’a’<=c)and(’z’>=c)D、(c>=’a’)&&(c<=’z’)

28、以下不正确的定义语句是(B)

A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5.3]={0,1,3,5,7,9};

C、charc1[]={‘1’,’2’,’3’,’4’,’5’};D、charc2[]={‘\x10’,’\xa’,’

\x8’};

29、有以下程序

fun(intx,inty,intz)

{z=x*y;}

main()

{inta=4,b=2,c=6;

fun(a,b,c);

printf(“%d”,c);

}

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

A、16B、6C、8D、12

30、下列函数的运行结果是(A)

main()

{inti=2,p;

intj,k;

j=i;

k=++i;

p=f(j,k);

printf(”%d”,p);

}

intf(inta,intb)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

returnc;

}

A、-1B、1C、2D、编译出错,无法运行

31、下面可以作为C语言程序中标识符的是(A)

A、_total3

B、num(10)

C、2Date

D、long

32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是(C)

A、字符A

B、字符B

C、字符C

D、非法常量

33、每个C语言程序都必须有一个(B)函数,C程序总是从该函数开始执行。

A、include()

B、main()

C、scanf()

D、printf()

34、下面说法中,正确的是(D)

A、C语言是机器语言

B、C语言程序不用编译就可以直接运行

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

D、C语言程序可以由一个或多个函数构成

35、设i,j,k为int型变量,若从键盘输入1#2#3<回车>,下面(A)输入语句可以使i的值为1,j

的值为2,k的值为3。

A、scanf(“%d#%d#%d”,&i,&j,&k)

B、scanf(“%d,%d,%d”,&i,&j,&k)

C、scanf(“%d%d%d”,&i,&j,&k)

D、scanf(“%d%d%d”,&i,&j,&k)

36、下面能够正确表示字符串常量的表达式是(B)。

A、’test’

B、”test”

C、test

D、’test\0’

37、在C语言中,运用对象必须是整型数的运算符是(A)

A、%B、\C、%和\D、**

38、有定义语句:

intb,charc[10];则正确的输入语句是(B)

A、scanf(“%d%s”,&b,&c);B、scanf(“%d%s”,&b,c);

C、scanf(“%d%s”,b,c);D、scanf(“%d%s”,b,&c);

39、假设所有变量均为int型,则执行语句a=(b=5,c=b++);后,a、b、c的值分别为(C)

A、6,6,5

B、5,5,6

C、5,6,5

D、5,6,6

40、设x,y,z为int型变量,执行下面的语句后,z的值为(D)

for(x=0,y=10;x<=y;x++,y—)z=x+y;

A、7

B、8

C、9

D、10

41、设x、y均为整型变量,且x=y=5,则下面语句的输出结果是(B)

printf(”%d,%d\n”,x++,++y);

A、5,5

B、5,6

C、6,5

D、6,6

42、下面关于字符串的叙述中,正确的是(B)

A、C语言中有字符串变量

B、空串一定比空格打头的字符串小

C、可以用关系运算符对字符串的大小进行比较

D、两个字符串中的字符个数相同时才能进行字符串大小的比较

43、下列数据中,(B)是合法的实型数据。

B、123e3

D、.e1

44、设以下变量均为int类型,表达式的值不为3的是(D)

A、a=b=2,a+b,b+1

B、a=b=2,b=a+b,a+1

C、b=2,b+1,a=b,a+1

D、a=2,a=a+1,b=1,a+b

45、下列说法中,正确的是(C)

inti,x;

for(i=0,x=0;i<=5&&x!

=4;i++);

A、循环体一次也不执行

B、是无限循环

C、最多执行6次

D、最多执行5次

46、已知字符‘a’的ASCII码值是97,字符变量c1的值是‘a’,c2的值是‘e’。

执行语句printf

(”%d,%d”,c1,c2—2);后,输出的结果是(D)

A、a,c

B、a,101

C、97,101

D、97,99

47、下面程序的运行结果是是(D)

#include

voidmain()

{inti;

for(i=0;i<=6;i++){

{if(i%2)

printf(”%d”,i);

printf(”#”);

}

}

A、0#2#4#6

B、1#3#5#

C、0##2##4##6#

D、#1##3##5##

48、结构化程序所规定的三种最基本的控制结构是(C)

A、输入、处理、输出B、树形、网形、环形

C、顺序、选择、循环D、主程序、子程序、函数

49、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项的含义不同的是(A

A、k%2B、k%2==1C、k%2!

=0D、!

k%2==1

50、设有intx=11,则表达式(x++*1/3)的值是(D)

A、3B、4C、11D、12

二、程序填空(20分每小题5分)

1、小写字母转大写字母

voidmain()

{charch1,ch2;

ch1=’a’;

ch2=’b’;

ch1=__ch1-32__;

ch2=__ch2-32__;

printf(“%c,%c”,ch1,ch2);

}

2、输出两个数中较大的数

voidmain()

{inta,b,max;

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

printf(“max=%d\n”,___a>b?

a:

b___);

}

3、把100~200之间的能被5整除的数输出。

voidmain()

{intn;

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

{if(__n%5!

=0__)continue;

printf(“%d”,n);

}

}

4、输出字符数组

main()

{

chara[]={'h','e','l','\0','l','o','\0'};

printf(“%s",__a__);

}

5、大写字母转小写字母

voidmain()

{charch1,ch2;

ch1=’A’;

ch2=’B’;

ch1=__ch1+32__;

ch2=__ch2+32__;

printf(“%c,%c”,ch1,ch2);

}

6、把200~300之间的不能被3整除的数输出。

voidmain()

{intn;

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

{if(__n%3==0__)continue;

printf(“%d”,n);

}

参考答案:

1-5ADBAC

6-10DCCBC

11-15DCAAD

16-20ABBCC

21-25CCDCD

26-30BDBBA

31-35ACBDA

36-40BABCD

41-45BBBDC

46-50DDCDA

判断题:

1.#include命令不能包含用户自己建立的头文件。

2.用标识符来表示的常量称为符号常量。

3.(int)x+y的作用是把x+y的结果转换成整型。

4.如果赋值运算符两边的数据类型不一致,在赋值时要进行类型转换。

5.要使用printf函数输出字符“%”,需要在格式控制字符串中用连续两个%来表示。

6.只有在a为真(非0)时,表达式a&b才需要判断b的值。

7.switch语句中,case语句后如没有break,则顺序向下执行。

8.do-while循环中,根据情况可以省略while。

9.如果形参与实参的类型不一致,以实参类型为准。

10.“一个单精度指针变量只能赋单精度变量的地址,单精度数组名,另外单精度指针变量的值”这种说法正确否?

11.后缀为f或F的数为浮点数。

12.‘5’于5是一样的。

13.在赋值运算中,类型转换是由系统自动进行的。

14.条件运算符?

和:

是一对运算符,不能分开单独使用。

15.在switch语句中,每一个的case常量表达式的值可以相同。

16.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成。

17.全局变量的作用域一定比局部变量的作用域范围大。

18.C程序一行只能写一个语句。

19.C语言的数据类型只有int型、float型、char型。

20.表达式1\4*3的值是0.75。

21.关系运算符的优先级高于逻辑运算符(不包括!

)。

22.若有inti=10,j=0;则执行完语句if(j=0)i++;elsei--;i的值为11。

23.Continue语句的作用是结束整个循环的执行。

24.若有定义语句:

doublea,*p=&a;定义语句中的*号是一个间址运算符,这种说法是否正确?

25.注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。

26.变量可以先使用后定义。

27.在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。

28.a=b+c=1是正确的赋值表达式。

29.用putchar函数可以输出能在屏幕上显示的字符,也可以输出屏幕控制字符及其他转义字符。

‘c’&&‘d’的值为0。

31.If(a=5)是合法的。

32.静态(static)类别变量的生存期贯穿于整个程序的运行期间。

33.源文件经过编译可得到目标文件。

34.在C语言中,常数045跟45等值。

35.在所有运算符中,逗号运算符的优先级最低。

36.空语句可以用来作流程的转向点,即流程从程序其他地方转到此语句处。

37.若a为整型变量,则语句scanf(“%d”,a);是合法的。

“<=”和“==”的优先级相同。

39.If语句的嵌套是指在if语句中又包含一个或多个if语句。

40.For、while、do-while循环中的循环体均可以由空语句构成。

41.未在定义语句中赋初值的auto变量和static变量的初值都是随机值。

42.有定义:

floatx,*p=&x;是否正确?

43.自增,自减运算符既可以用于变量,又可用于常量和表达式。

44.字符变量可以不定义直接使用。

45.在逻辑表达式的求解中,并不是所有的逻辑运算都被执行。

 

1.一个C程序可以由多个源文件组成。

2.字符变量可以不定义直接使用。

×

3.自增、自减运算符既可用于变量,又可用于常量和表达式。

×

4.在结构化程序设计中,循环结构就是无休止地反复执行某一部分的操作。

×

5.在执行语句scanf("%d,%d",&a,&b);时,正确的数据输入形式是3,4<回车>。

6.表达式‘c’&&‘d’的值为0。

7.if语句不可以嵌套。

×

8.在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作√

9.若已定义的函数有返回值,函数调用可以作为一个函数的形参×

10.若有定义语句:

doublea,*p=&a;定义语句中的*号是一个间址运算符。

这种说法是否正确?

×

11.注释不宜太多也不能太少,注释语言必须准确、易懂、简洁√

12.C语言中标识符是区分大小写的。

13.5’与5是一样的。

14.空语句可以用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。

15.C语言中,字符数据用格式说明"%s"来输出,字符串数据用格式说明"%c"来输出。

×

16.表达式‘a’<‘z’的值是1。

17.if(a=5)是合法的。

18.break语句仅能使用在switch结构中×

19.定义函数时,形参的类型说明可以放在函数体内×

20.有定义:

float*p=1024;是否正确。

×

21.#include命令不能包含用户自己建立的头文件。

×

22.#defineN10定义了一个值为10的变量N。

×

24.条件运算符?

和:

是一对运算符,不能分开单独使用。

×

25.语句inta=2;if(a=3)b=1;执行后b的值是1。

×

26.函数体内,return后面不能为表达式?

27.源文件经过编译可得到目标文件。

28.C语言中构造类型包括数组、结构体、共用体类型。

29.表达式1/4*3的值是0.75。

×

30.程序中的“=”是赋值号,与数学中等号的功能相同×

31.若a为整型变量,则语句scanf("%4d",&a);是一个合法的scanf函数。

32.C语言中,在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。

33.可以用swicth结构实现的程序都可以使用if语句来实现。

34.continue语句的作用是使程序的执行流程跳出包含它的所有循环√

35.如果形参与实参的类型不一致,以实参类型为准

36.C语言中只能使用单行注释。

37.C语言中普通字符型变量在内存中占1个字节。

39.若a为float变量,则语句scanf("%7.2f",&a);是一个合法的scanf函数。

40.逻辑运算符“!

”的优先级高于算术运算符和关系运算符。

41.continue语句的作用是结束整个循环的执行×

42.C语言中,else总是与它上面、最近的、尚未配对的if配对。

44.用C语言编写的指令序列称为C语言源程序

45.逗号表达式以最左边表达式的值作为整个逗号表达式的值。

46.a=b+c=1是正确的赋值表达式×

47.要使用printf函数输出字符“%”,需要在格式控制字符串中用连续两个%来表示。

48.a>b==c等价于(a>b)==c。

49.有定义:

floatx,*p=&x;是否正确?

50.设有inta;floatf=5.75;在执行语句a=(int)f;后,f变成了int型。

×

51.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。

×

5.语句printf("%3s","CHINA");的输出结果是CHI√

52.break语句只能用在循环体内和switch语句体内

53.函数调用可以出现在表达式中

54.#include命令只能包含.h文件。

55.158L为十进制长整数√

56.若a为整型变量,则语句scanf("%d",a);是合法的。

×

57.关系运算符的优先级高于逻辑运算符(不包括!

)。

58.函数的类型决定返回值的类型√

59.实型数据

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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