C语言程序设计-中国大学mooc

http://carrottt.blog.bokee.net    2020-6-9

转载自网课答案 (www.daanplus.com) :

完整答案请关注公众号【大学答案帮手】查看!

1、计算机只能处理由人们编写的、解决某些问题的、事先存储在计算机存储器中的二进制指令序列。

答案:正确

2、通常把高级语言源程序翻译成目标程序的程序称为( )。

A、编辑程序

B、解释程序

C、汇编程序

D、编译程序

答案:D

3、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是()。

A、有零个或多个输出

B、有穷性

C、有零个或多个输入

D、可行性

答案:A

4、结构化程序由三种基本结构组成,三种基本结构组成的算法,( )。

A、只能完成一些简单的任务

B、只能完成符合结构化的任务

C、可以完成任何复杂的任务

D、只能完成部分复杂的任务

答案:C

5、面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送()完成的。

A、命令

B、消息

C、口令

D、调用语句

答案:B

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

A、必须在系统调用的库函数的后面

B、必须在*后

C、可以任意

D、必须在*开始

答案:C

7、以下叙述正确的是()。

A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误

B、在C程序中,main函数必须位于程序的*前面

C、C语言本身没有输入输出语句

D、C程序的每行中只能写一条语句

答案:C

8、一个C程序的执行是从()。

A、本程序的main函数开始,到main函数结束

B、本程序文件的*个函数开始,到本程序main函数结束

C、本程序文件的*个函数开始,到本程序文件的*后一个函数结束

D、本程序的main函数开始,到本程序文件的*后一个函数结束

答案:A

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

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

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

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

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

答案:D

10、以下叙述正确的是( )。

A、C语言允许直接访问物理地址,可以直接对硬件进行操作

B、C语言程序不用编译,即可被计算机识别运行

C、C语言不允许直接访问物理地址,不可以直接对硬件进行操作

D、C语言程序只需编译,不需连接即可被计算机运行

答案:A

11、下面不是算法特征的是( )。

A、继承性

B、有穷性

C、确定性

D、可行性

答案:A

12、关于C语言,下面叙述不正确的是()。

A、既具有高级语言的特点,又具有汇编语言的特点

B、既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序

C、语法限制不太严格,例如,对数组下标越界不作检查

D、不用编译可以直接运行

答案:D

13、下面选项()不属于结构化程序设计原则。

A、自顶向下

B、逐步求精

C、程序模块化

D、不限制GOTO语句使用

答案:D

14、下面选项中,( )不属于程序的特性。

A、目的性

B、有序性

C、有限性

D、可操作性

E、实用性

答案:E

15、计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。

答案:正确

16、可计算问题的规模造成复杂度加大,理论上计算机可以完成的计算工作,实际计算机都可以完成。

答案:错误

17、计算机程序是计算机为完成某一任务所必须执行的一系列指令的有序集合。

答案:正确

18、高级语言是用接近自然语言的符号,按照一定的语法规则编写程序,需要编译程序翻译成机器指令才能被计算机执行。

答案:正确

19、编译方式下的程序当修改源程序后,需要重新编译才能够正确运行。

答案:正确

20、面向对象程序设计方法具有与人们的习惯与思维方法一致,便于解决复杂问题的特性。

答案:正确

21、面向对象程序设计将数据和使用此数据的过程封装成一个类。

答案:正确

22、C语言属于面向过程的*程序设计语言,既可作为系统设计语言,也可作为应用程序设计语言。

答案:正确

23、算法可以分为数值算法和非数值算法两大类。

答案:正确

24、对于同一个问题,只能有*的算法去解决。

答案:错误

25、C语言中不区分大小写字母。

答案:错误

26、程序中适当地添加注释,可以增加程序的可读性和清晰性。

答案:正确

27、在VC++6.0环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函数。

答案:正确

28、经过编译、连接后的可执行程序可以多次运行。

答案:正确

29、C语言开发工具直接输入的程序代码是____文件,经过编译后生成的是目标程序文件, 经过连接后生成的是可执行程序文件。

答案:源  源程序

30、C语言源程序的基本组成单位是_____。

答案:函数

31、结构化程序设计所规定的三种基本控制结构是顺序结构、_____结构和循环结构。

答案:选择 *支

32、算法的效率通常由_____ 复杂度和空间复杂度衡量。

答案:时间

33、描述算法的方法主要有_____、专用工具(传统流程图、N-S流程图)和伪代码等。

答案:自然语言

34、计算机系统由硬件系统和______系统两部分组成。

答案:软件

35、计算机语言分为:机器语言、汇编语言和_________语言。

答案:高级

36、程序的执行方式分为_________和解释两种方式。

答案:编译

37、衡量算法的时间复杂度是指对于相同规模的问题,算法的执行_______的长短。

答案:时间

38、我爱编程

答案:暂无答案

39、计算两个整数的和

答案:暂无答案

40、计算两个整数的乘积

答案:暂无答案

41、以下不合法的变量命名是( )。

A、_123

B、xfloat

C、stu_1

D、float

答案:D

42、字符串"\\\’\054"占用的存储空间的长度是____。

答案:4

43、下列哪些是C语言的合法的字符常量?

A、'10'

B、"a"

C、'\054'

D、'\085'

答案:C

44、“/”运算符,当两个整数相除时结果取整。

答案:正确

45、表达式 a=3*5,a*4,a+5的值为_______。

答案:20

46、关于变量定义,下面说法错误的是()。

A、变量的类型确定了变量占据的存储单元的大小

B、确定了变量的名字

C、确定了变量中的内容

D、确定了变量的表数范围

答案:C

47、sizeof(float)的执行结果是()。

A、一种函数调用

B、一个浮点表达式

C、一个不合法的表达式

D、一个整型表达式

答案:D

48、若有 float x=2,y=5.6; 则表达式 (int)x%(int)y将完成( )。

A、将x和y的类型转换为整型

B、将x和y的的表达式的类型转换为整型,完成求余运算

C、不能进行求余运算

D、将x的值的类型转换为整型

答案:B

49、下列叙述正确的是( )。

A、C语言中的数据的类型不同,在内存中占据相同长度的存储单元

B、C语言中的数据的类型不同,在内存中占据不同长度的存储单元

C、C语言中的常量是没有类型的

D、C语言中的数据的类型不同,但取值范围都是相同的

答案:B

50、下列关于C语言用户标识符的叙述中正确的是( )。

A、用户标识符中可以出现下划线和中划线(减号)

B、用户标识符中不可以出现中划线,但可以出现下划线

C、用户标识符中可以出现下划线,但不可放在标识符开头

D、用户标识符中可以出现下划线和数字,它们都可放在用户标识符的开头

答案:B

51、下列转义字符中,错误的是( )。

A、' \0xa5'

B、' \031'

C、' \b'

D、' \"'

52、字符串 "\\\\abcd\\\\\n"在内存中占用的字节数是( )。

A、14

B、9

C、10

D、11

53、已知梯形的上底为a,下底为b,高为h,用C语言书写的正确的面积公式是( )。

A、1/2*(a+b)*h

B、1.0/2*(a+b)*h

C、1.0/2.0(a+b)h

D、1.0\2*a+b*h

54、与k=n++完全等价的表达式是( )。

A、n=n+1, k=n

B、k+=n+1

C、k=++n

D、k=n, n=n+1

55、下面关于C语言标识符的命名规则叙述中不准确的是()。

A、只能由字母、数字和下划线组成

B、首字符必须为字母或下划线

C、不区分大小写字母

D、不能使用系统的保留字

56、关于定点数和浮点数的说法,下列说法错误的是()。

A、在计算机中通常用定点数表示整数和纯小数

B、用浮点数表示既有整数部分、又有小数部分的实数

C、浮点数表示的数即是数值的*值

D、定点数表示数据的范围有限

57、以下哪种运算能从变量x中取得十进制*低位的数字( )。

A、x/10

B、x%10

C、x*10

D、10/x

58、以下哪个数字占据的空间*大( )。

A、32768

B、‘3’

C、32768.0

D、32768.0F

59、以下哪个字母不能在常量数字后面表示类型( )。

A、F

B、U

C、L

D、X

60、以下哪个数字的值*大( )。

A、10

B、010

C、0x10

D、10.0

61、下列哪个不是有效的字符常量( )。

A、‘ ’

B、‘\’‘

C、'1'

D、"1"

62、C语言的关键字是由C语言规定的、具有特定功能的固定字母组合,也称为保留字,共计32个。

63、变量是在程序执行期间其值可以改变的量,必须先定义后使用。

64、变量被定义后没有赋值,其单元内容不可以使用,是内存中的随机数。

65、变量的初始化是指在定义时对其赋值。

66、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。

67、定义变量时的变量的类型决定变量占据存储单元的大小和数据的表数范围。

68、变量中只能存放指定类型的数据,程序运行过程中可以改变变量的类型。

69、当存储单元溢出时,数据的值不会受到影响,只会丢掉超过的部分。

70、当有若干运算符同时出现在表达式中时,运算符的优先级规定了运算的先后次序。

71、当若干具有相同优先级的运算符相邻出现在表达式中时,结合性规定了运算的先后次序。

72、在C语言中,对于整型变量采用有符号数和_________数两种存储形式。

73、当赋值语句右边表达式类型与左边变量类型不一致时,以_______类型为准。

74、若有定义:char c='\010'; 则变量C中包含的字符个数为_____。

75、若有变量定义: char w; int x; float y; double z; 则表达式w*x+z-y的结果为_____类型。

76、设int w=5;w+=-2; 则w的值为_____。

77、已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是_____。

78、在C语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、_______和尾数几部分。

79、设k=a=5,b=3,a*b,则表达式的值为_____。

80、设有变量定义: int i=3,j=5; float x=2.5; double y=5.0; 则表达式 y+=i-=j*=++x;的计算结果为________。

81、设有变量定义: char a='a'; int i=3, j=5; 则表达式 a=a+i, a+j 的值为________。

82、C语言中用一个符号代表一个常量的量称为________常量。

83、设有变量定义: float x=2.5; double y=5.0; 则表达式 (int)x / (int)y+y的值为______。

84、华氏温度转换为摄氏温度

85、计算圆的面积

86、计算平方根

87、输出逆序数

88、下面程序的运行结果是 ( )。 #include <stdio.h> int main( ) { int i=5; while(i>0); printf("%d",i--); return 0; }

A、5

B、-1

C、0

D、死循环

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

A、3

B、4

C、5

D、不定

90、关于下面程序段,正确的是( )。 int k=10; while(!k) k--;

A、循环体执行10次

B、循环体执行1次

C、循环体一次也不执行

D、死循环

91、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int x=3; do{ printf("%3d",x-=2); }while(!(--x)); return 0; }

A、死循环

B、1 -2

C、10

D、1

92、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int i=0,sum=0; while(i++<6) sum+=i; printf("%d",sum); return 0; }

A、15

B、16

C、21

D、22

93、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int i=10; while(i-->0); printf("%d ",i); return 0; }

A、10

B、0

C、10987654321

D、-1

94、已定义int j; 下面程序段的输出结果是( )。 for(j=7;j<10;j++) printf("%d",j);

A、8910

B、789

C、91011

D、无结果

95、下面程序的输出结果是( )。 #include <stdio.h> int main( ) { int i,j,s=0; for(j=1,i=7;j<=i;j++,i--) s=s+i+j; printf("%d",s); return 0; }

A、32

B、28

C、死循环

D、0

96、下面程序的输出结果是( )。 #include <stdio.h> int main( ) { int j,s; for(j=1;j<=7;j++) s=s+j; printf("%d",s); }

A、0

B、28

C、不确定

D、死循环

97、已定义int j,s; 则下面程序段的输出结果是( )。 int j,s; for(j=1,s=0;j<=5;j++) s*=j; printf("%d",s);

A、0

B、120

C、死循环

D、无结果

98、while循环语句至少无条件执行一次循环体。

99、for循环语句只能用于循环次数已经确定的情况。

100、do while循环语句中,根据情况可以省略关键字while。

101、do while循环语句至少无条件执行一次循环体。

102、for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。

103、do-while循环由do开始,while结束,在while(表达式)后面加分号。

104、for循环的三个表达式中间用逗号相分隔,并且不能省略。

105、do while循环语句的特点是先执行循环体,然后判断循环条件是否成立。

106、while循环语句和do while循环语句在任何情况下都可以互换。

107、for循环的三个表达式中间用分号相分隔,*个表达式执行一次。

108、下面程序用来计算自然数1-10之和,请完善程序。 #include <stdio.h> int main( ) { int j,s; ; for(j=1;j<=10;j++) s=s+j; printf("%d",s); return 0; }

109、下面程序用来计算10!,请完善程序。 #include <stdio.h> int main( ) { int j,s; ; for(j=1;j<=10;j++) s*=j; printf("%d",s); return 0; }

110、下面程序用来计算1+1/2!+1/3!+…1/10!,请完善程序。 #include <stdio.h> int main( ) { int i,j; sum=0,fac; for(i=1;i<=10;i++) { fac=1; for(j=1;j<=i;j++) fac=fac*j; sum=sum+1/fac; } printf("%f",sum); return 0; }

111、下面程序计算并输出1100之间(包括100)能被3整除同时能被7整除余3的所有数之和,请完善程序 。 #include <stdio.h> int main( ) { int sum=0,i; i=1; while ( ) { if (i%3==0&&i%7==3) sum=sum+i; i++; } printf("sum=%d",sum); return 0; }

112、下面程序计算并输出500以内*大的10个能被13或17整除的自然数之和。请完善程序。 #include <stdio.h> int main ( ) { int m=0, mc=0, k=500; while (k >= 1 && ) { if (k%13== 0 || k%17 == 0) { m=m+k; mc++; } k--; } printf("sum=%d",m); return 0; }

113、用for语句实现判断并求和。

114、用do while 语句实现从键盘输入一组整数,求平均值。

115、用while语句实现计算圆周率 pi (3.14) 的近似值。

116、在调用printf函数输出数据时,当数据的实际位宽大于printf函数中格式指定宽度时,将按照数据的实际宽度输出数据。

117、输入时可以指定数据的宽度,但不允许指定精度。

118、单个字符既可以以c格式符也可以以d格式符输出,前者是输出这个字符,后者是输出这个字符的ASCII码值。

119、若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,正确的数据输入方法是( )。

A、20,30,40

B、2030,40

C、20, 30 40

D、20 30 40

120、printf("a\rHappi\by");在屏幕上正确的输出形式是( )。

A、aHappy

B、Happy

C、Happi

D、aHappi

121、若定义字符变量c1的值是'A',c2的值是'D',执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。

A、65,66

B、65,68

C、A,68

D、A,B

122、以下程序的输出结果是()。 int main() { float x=3.6; int i; i=(int)x; printf("x=%f,i=%d\n",x,i); return 0; }

A、x=3.600000,i=4

B、x=3 i=3.600000

C、x=3,i=3

D、x=3.600000,i=3

123、已定义double a; int i;选择正确的输入格式为( ) 。

A、scanf("%6.2f%3d", &a,&i);

B、scanf("%lf%s", &a,&i);

C、scanf("%6lf%3d",&a,&i);

D、scanf("%f%d", a,i);

124、已有定义char s1,s2;,下面正确的语句是( )。

A、scanf ("%s%c", s1,s2);

B、scanf ("%s%c", s1,&s2);

C、scanf ("%c%c", &s1,&s2);

D、scanf ("%c%c",s1,s2);

125、为下面的程序输入数据,使得i=10,k='a' ,j=15,正确的键盘输入方法是( )。 #include <stdio.h> int main( ) { int i,j,k; scanf("%d%c%d",&i,&k,&j); printf("i=%d,j=%c,k=%d\n",i,k,j); return 0; }

A、10,a,15<回车>

B、10<回车>a<回车>15<回车>

C、10'a'15<回车>

D、10a15<回车>

126、运行下面的程序,正确的输出结果是( )。 #include <stdio.h> int main( ) { double x=68.7563, y= -789.127; printf ("%f, %10.2f\n", x,y); return 0; }

A、68.756300, □□□-789.12

B、68.756300, □□□-789.13

C、68.75, □□□-789.13

D、68.75, -789.12

127、已知float x=2.23,y=4.35;,根据下面的输出结果,正确的程序段是( )。 x=2.230000,y=4.350000 y+x=6.58,y-x=2.12

A、printf("x=%8.2f,y=%8.2f",x,y); printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);

B、printf("x=%8.6f,y=%8.6f\n",x,y); printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);

C、printf("x=%7.2f,y=%7.2f\n",x,y); printf("y+x=%3.2f,y=%3.2f\n",y+x,y-x);

D、printf("x=%f,y=%f\n",&x,&y); printf("y+x=%f,y=%f\n",y+x,y-x);

128、C语言中本身没有提供专门的输入输出语句,输入输出通过调用函数完成。

129、输入数据时不能指定数据的精度。

130、输入数据时不可以指定数据的宽度。

131、混合输入数值型数据和字符型数据时,数据之间不能加空格。

132、使用getchar()函数可以一次接受多个字符。

133、在使用标准的输入/输出库函数时,应该在程序的开头使用编译预处理命令“#include <stdio.h>”。

134、字符型数据存储其ASCII码值,占一个字节,在ASCII范围内与整数通用。

135、输入数据时可以有多种方法分隔多个输入数据。

136、程序的顺序结构是指按照解决问题的顺序写出相应的语句,程序执行顺序按照自上而下,依次按顺序执行。

137、若在输入格式控制字符串中包含普通字符,则输入时必须照原样输入普通字符,否则将导致输入错误。

138、getchar()函数只能接收一个_____。

139、下列语句输出的结果是_____。 char ch='b'; printf("%c,%d",ch,ch);

140、用scanf函数输入数据,使得x=1.23, y=67.1234。 #include <math.h> #include <stdio.h> int main( ) { double x,y,z; scanf(" ", &x,&y ); z=2*x+y/sin(3.1415/4); printf("z=%6.2f",z); return 0; }

141、完善下列程序: #include < > int main( ) { char str; str=getchar(); putchar(str); return 0; }

142、根据下面的输出结果, 完善程序。 s1=C,ASCII is 67 x=655.35,y=765.43 #include <stdio.h> int main( ) { double x=655.3524,y=765.4271; char s1='C'; printf( , s1,s1,x,y); return 0; }

143、下面程序的运行结果是: 。 #include <stdio.h> int main( ) { char str=65; printf("str=%c,ASCII=%d",str,str ); return 0; }

144、在格式说明符中,当%后边出现______,表示要跳过相应的数据,是附加说明符。

145、若要将数据以指数形式输出,应该选择______格式符。

146、交换两个变量

147、输出字符ASCII码

148、求一元二次方程的两个实根

149、计算银行存款本息

150、算术运算符的优先级高于关系运算符。

151、写出下列程序段的输出结果: int a = 56; if ( a>50 ) printf("A"); if ( a>40 ) printf("B"); if ( a>30 ) printf("C");

152、写出下列程序段的输出结果:_______。 int i=1; switch ( i%3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); }

153、下列运算符优先级*高的是( )。

A、&&

B、||

C、,

D、+

154、若给定条件表达式(m)?(a++):(a--),则其中表达式m()。

A、和(m==0)等价

B、和(m!=0)等价

C、和(m==1)等价

D、和(m!=1)等价

155、C语言中以下几种运算符的优先次序()的排列是正确的。

A、由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||

B、由高到低为:!,&&,||,算术运算符,赋值运算符

C、由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符

D、由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符

156、C语言中,switch后的括号内表达式( )。

A、只能是整型和字符型

B、只能为整型

C、可以是任何类型

D、只能为整型,字符型或枚举型

157、C语言的switch语句中case后边( )。

A、可为任何量或表达式

B、可为常量或表达式或有确定值的变量及表达式

C、只能为常量或常量表达式

D、只能为常量

158、执行下面程序段后,k的值是:( )。 int k=2; switch(k+1) { case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k; }

A、10

B、2

C、28

D、27

159、执行下面程序段后,ch的值是( )。 char ch='a'; ch=(ch>='A'&&ch<='Z')?(ch+32):ch;

A、z

B、Z

C、a

D、A

160、若在程序运行时,输入:4 3,则执行下面程序输出的结果是( )。 #include <stdio.h> int main() { int a,b,s; scanf("%d%d",&a,&b); s=a; if(a>b) s=b; s=s*s; printf("%d\n", s); return 0; }

A、13

B、9

C、16

D、15

161、下列表达式中,值为0的表达式是( )。

A、3!=0

B、3!=3>4

C、3>4==0

D、6>5>4

162、下列表达式中,结果为1的表达式是( )。

A、!0==1

B、!6

C、!2>=3

D、!3!=0

163、设int a=3;,则表达式a<1&&--a>1的运算结果和a的值分别是( )。

A、0和2

B、0和3

C、1和2

D、1和3

164、设整型变量x、y、z的值分别为3、2、1,则下列程序段的输出是( )。 if(x>y) x=y; if(x>z) x=z; printf("%d,%d,%d\n",x,y,z);

A、3,2,1

B、1,2,3

C、1,2,1

D、1,1,1

165、判断char型变量ch是否为小写字母的正确表达式是()。

A、('a'>=ch)||('z'<=ch)

B、'a'<=ch<='z'

C、(ch>=a)&&(ch<=z)

D、(ch>='a')&&(ch<='z')

166、能正确表达逻辑关系“0<a<1并且0<b<1”的表达式是(0<a<1)&&(0<b<1)。

167、所有逻辑运算符的优先级都高于关系运算符。

168、在switch语句中,switch与case后的表达式可以为任意类型。

169、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。

170、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。

171、switch语句嵌套使用时,一条break语句可用于跳出所有嵌套switch语句。

172、在a>b?a+b:a-b 表达式中,若a>b,则条件表达式的值为a+b的值,否则为a-b的值。

173、条件运算符的优先级低于算术运算符、关系运算符及逻辑运算符,高于赋值运算符和逗号运算符。

174、同一个switch语句中各个常量表达式的值必须互不相等,且只能是常量。

175、C语言没有逻辑型数据,关系表达式的真、假是以数值“1”代表“真”,以“0”代表“假”,即非0为真(true),0为假(false)。

176、并非所有的if语句都有等价的switch语句,switch语句只能用来实现以相等关系作为选择条件的多分支结构。

177、已知 a=10,b=15,c=1,d=2,e=0,则表达式c==b>e的值为_____。

178、int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____。

179、int x=4,y=4,z=2;x=y==z; 则x的值为_____。

180、假设变量a,b均为整型,表达式 (a=5,b=2,a>b?a++:b++,a+b) 的值是_____。

181、当a=1,b=2,c=3时,执行以下程序段后b的值为 _____。 if (a>c) b=a; a=c; c=b;

182、已知a=13,b=2,表达式b||++a,运算结果a的值是_____。

183、当a=3,b=2,c=1;时,执行以下程序段后,a=_____。 if(a>b) a=b; if(b>c) b=c; else c=b; c=a;

184、c语言表达式5>2>7>8的值是_____。

185、为了避免嵌套条件语句的二义性,C语言规定else与其前面*近的_____语句配对。

186、大小写字母转换

187、计算分段函数

188、百分制成绩转换为五级分制成绩

189、输出水仙花数

190、从循环体内某一层跳出,继续执行循环外的语句是( )。

A、continue语句

B、空语句

C、break语句

D、if语句

191、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是( )。

A、break语句可以一次性跳出多层嵌套循环

B、break语句只能跳出所在层循环

C、continue语句可以一次性跳出多层嵌套循环

D、continue语句只能跳出所在层循环

192、以下正确的描述是( )。

A、只能在循环体内和switch语句内使用break语句。

B、continue语句的作用是终止整个循环的执行。

C、从多层嵌套的外层循环中退出时,只能使用goto语句。

D、在循环体内使用break和continue语句的作用相同。

193、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int i,j,sum; for(i=2;i<7;i++) { sum=1; for( j=i;j<7;j++) sum=sum+j; } printf("%d",sum); return 0; }

A、48

B、49

C、1

D、7

194、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int i=10,s=0; while(i>0) { if(i%3==0) continue; s=s+i; i--;} printf("s=%d",s); return 0; }

A、死循环

B、55

C、37

D、10

195、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int i=10,s=0; for(i=1;i<=10;i++) { if(i%3!=0) continue; s=s+i; } printf("%d",s); return 0; }

A、死循环

B、55

C、37

D、18

196、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int x=15; do{ x--; } while(x--); printf("%d ",x--); return 0; }

A、0

B、1

C、-1

D、-2

197、continue语句用于终止循环体的本次执行。

198、break语句能够终止当前进行的多层循环。

199、continue语句对于while和do-while循环来说,意味着转去计算While表达式。

200、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式3。

201、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一循环的判定。

202、goto语句和break语句都能够实现使程序执行的流程从循环体内跳至循环体外。

203、break终止包含该语句的*内层循环。

204、在循环体内又包含一个循环语句,称为循环嵌套。

205、for(表达式1;表达式2;表达式3),当执行循环体内的continue语句时,意味着转去执行表达式2。

206、程序中遇到goto语句无条件跳到标号指定的位置继续执行。

207、/*程序的功能是:求1到10的阶乘的和*/ #include "stdio.h" int main () { int n,j,s=0,t; for(n=1;n<=10;n++) { ; for(j=1;j<=n;j++) t=t*j; s=s+t; } printf("s=%d\n",s); return 0; }

208、/*程序的功能是:从键盘输入10个字符,输出其中数字字符*/ #include <stdio.h> int main( ) { int i; char c; for(i=1;i<=10;i++) { c=getchar( ); if(c< '0' ||c> '9') ; putchar(c); } return 0; }

209、/*用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)。*/ #include <stdio.h> int main( ) { int i,j,k,m=0; for(i=0;i<=20;i++) for(j=0; ;j++) for(k=0;k<=100;k++) if(i*5+j*2+k==100) { m++;printf("i=%d,j=%d,k=%d\n",i,j,k);} printf("m=%d",m); return 0; }

210、/*程序的功能是:输出斐波那契数列前n项(n为偶数)。*/ #include <stdio.h> int main() { int i,n ; int a1=1,a2=1; scanf(“%d”,&n); printf( "%d %d ", a1,a2); for ( i = 1; i<n/2; i++ ) { a1= ; a2=a1+a2; printf( "%d %d ", a1,a2); } return 0; }

211、/*编写打印以下图形的程序(行与行之间没有空行,第三行与左边界没有空格)。*/ * *** ***** #include <stdio.h> int main() { char c= '*',s=' '; int i,j; for(i=0;i<3;i++) { for(j= ;j>0; j--) printf("%c",s); for(j=0;j<2*i+1;j++) printf("%c",c); printf("\n"); } return 0; }

212、求两个整数的*大公约数。

213、找素数

214、斐波那契数列求和

215、若有说明int a[10],则对a数组元素的正确引用是( )。

A、a[10]

B、a[3.5]

C、a(5)

D、a[10-10]

216、在C语言中,引用数组元素时,其数组下标的数据类型不允许的是( )。

A、整型常量

B、正整型常量表达式

C、整型变量表达式

D、任何类型的表达式

217、对以下说明语句的正确理解是( )。) int a[10]={6,7,8,9,10};

A、将5个初值依次赋给a[1]至a[5]

B、将5个初值依次赋给a[0]至a[4]

C、将5个初值依次赋给a[6]至a[10]

D、因为数组长度与初值的个数不相同,所以此语句不正确

218、现有如下程序,则程序的输出结果为( )。 #include <stdio.h> int main( ) { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if(k[i]%2==0‖k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); return 0; }

A、7,8

B、8,8

C、7,10

D、8,10

219、以下能对一维数组a进行初始化的正确语句是( )。

A、int a[10]=(0,0,0);

B、int a[10]={ };

C、int a[]={0};

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

220、以下对一维整型数组a的正确说明是( )。

A、int a(6);

B、int n=10,a[n];

C、int n; scanf(“%d”, &n); int a[n];

D、#define N 8 int a[N];

221、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d", a[i]); } return 0; }

A、-4 0 4 0 4

B、-4 0 4 0 3

C、-4 0 4 4 3

D、-4 0 4 4 0

222、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int x[3],i,j,k; for(i=0;i<3;i++) x[i]=0; k=3; for (i=0;i<k;i++) for (j=0;j<k;j++) x[j]=x[j]+1; printf("%d\n",x[2]); return0; }

A、2

B、0

C、1

D、3

223、下面程序的运行结果是( )。 #include <stdio.h> int main( ) { int a[10],i,k=1; for(i=0;i<10;i++) a[i]=i; for (i=1;i<6;i++) k+=a[i]+i; printf("%d\n",k); return 0; }

A、32

B、20

C、31

D、33

224、若有以下程序段,则数值为3的表达式( )。 int x[12]={1,2,3,4,5,6,7,8,9,10}; char c=‘a’,d,f;

A、x[g-c]

B、x[3]

C、x['d'-'c']

D、x['d’-‘b']

225、数组定义int a[10];也可以写成 int a(10)。

226、在对全部数组元素赋初值时,可以不指定数组长度。

227、数组定义int a[10]; 表示数组名为a,此数组有10个元素,首元素为a[0]。

228、如果对数组不赋初值,则数组元素取随机值。

229、引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。

230、若有int a[10]={6,7,8,9,10};,则是将5个初值依次赋给a[0]至a[4]。

231、数组名的规定与变量名不相同。

232、一个数组可以存放许多不同类型的数值。

233、数组的下标通常是float型。

234、数组可以声明为任何数据类型。

235、下列程序的功能是输入N个实数,然后依次输出前l个实数和、前2个实数和、……前N个实数和。 #define N 10 #include <stdio.h> int main() { float f[N],x=0.0; int i; for(i=0;i<N;i++) scanf("%f", &f[i]); for(i=1;i<=N;i++) { ; printf("sum of NO %2d %f\n", i, x); } return 0; }

236、下列程序的功能是输出数组s中*大元素的下标。 #include <stdio.h> int main() { int k,i; int s[]={3,-8,7,2,-1,4}; for(i=0,k=0;i<6;i++) if(s[i]>s[k]) ; printf("k=%d\n", k); return 0; }

237、以下程序以每一行输出4个数据的形式输出a数组。 #include <stdio.h> int main() { int a[20],i; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) { if ( ) printf("\n"); printf("%3d", a[i]); } printf("\n"); return 0; }

238、以下程序的功能是求数组num中小于零的数据之和。请填空。 #include <stdio.h> int main() { int num[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20}; int sum=0,i; for(i=0;i<20;i++) { if(num[i]<0) sum= ; } printf("sum=%6d",sum); return 0; }

239、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。 #include <stdio.h> int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { if(a[i]%2!=0) ; s+= a[i]; k++; } if(k!=0) { ave=s/k; printf("%d,%f\n",k,ave); } return 0; }

240、输入10个整数,用选择法排序后按从小到大的次序输出。 #include <stdio.h> #define N 10 int main( ) { int i,j,min,temp,a[N]; for(i=0;i<N;i++) scanf("%d", &a[i]); printf("\n"); for(i=0;i<N-1;i++) { min=i; for(j=i;j<N;j++) if(a[min]>a[j]) ; temp=a[i]; a[i]=a[min]; a[min]=temp; } for (i=0;i<N;i++) printf("%5d",a[i]); printf("\n"); return 0; }

241、逆序存放数据

242、找出一维整型数组中的次*大值。

243、调整*大值和*小值的位置。

244、定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是() for(i=0;i<3;i++) printf(" %d" ,x[i][2-i]);

A、1 5 9

B、1 4 7

C、3 5 7

D、3 6 9

245、有以下程序 #include <stdio.h> int main( ) { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i++) for(k=i+1;k<4;k++) if(a[i][i]<a[k][k]) {t=a[i][i]; a[i][i]=a[k][k]; a[k][k]=t;} for(i=0;i<4;i++) printf("%d,",a[0][i]); return 0; } 程序运行后的输出结果是()

A、6,2,1,1

B、6,4,3,2

C、1,1,2,6

D、2,3,4,6

246、设有数组定义: char array[ ]="China"; 则数组array所占的空间为()

A、4个字节

B、5个字节

C、6个字节

D、7个字节

247、下述对C语言字符数组的描述中错误的是()

A、字符数组的下标从0开始

B、字符数组中的字符串可以进行整体输入/输出

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D、字符数组可以存放字符串

248、对两个数组a和b进行如下初始化 char a[]=”ABCDEF”; char b[]={‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’} 则下述叙述正确是()

A、a和b数组完全相同

B、a和b长度相同

C、a和b都存放字符串

D、a数组比b数组长度长

249、下面程序的功能是将字符串s中的字符c删除,请选择填空() #include <stdio.h> int main( ) {char s[80]; int i,j; gets(s); for(i=j=0;s[i]!='\0';i++) if(s[i]!='c') ; s[j]='\0'; puts(s); return 0; }

A、s[j++]=s[i]

B、s[++j]=s[i]

C、s[i]=s[j]

D、s[j]=s[i]

250、下面程序的运行结果是 #include "stdio.h" #include"string.h" int main( ) {char a[80]="AB",b[80]="LMNP"; int i=0; strcat(a,b); while(a[i++]!='\0') b[i]=a[i]; puts(b); return 0; }

A、LB

B、ABLMNP

C、AB

D、LBLMNP

251、若二维数组a有m列,则在a[i][j]前的元素个数为

A、j*m+i

B、i*m+j

C、i*m+j-1

D、i*m+j+1

252、字符数组不要求它的*后一个字符为”\0”,甚至可以不包含”\0”。

253、在程序中可以对数值数组中的数据进行整体使用。

254、如果strcmp(s1,s2)的返回值为一个负数,则表明字符串s1小于字符串s2。

255、用scanf函数输入的字符串不可以带空格。

256、用gets函数输入的字符串可以带空格。

257、实现两个字符串的复制可以使用str1=str2;语句。

258、使用strcpy函数可以实现两个字符串的复制。

259、使用strcat函数可以实现两个字符串的连接。

260、使用strlen函数可以求出一个字符串的存储长度(包含‘\0’字符)。

261、如有定义char a[20];则可以通过a=“I am a boy”;给a赋值。

262、下面程序的功能是将二维数组a中每个元素向右移一列,*右一列换到*左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b,请填空。 例如:array a: array b: 4 5 6 6 4 5 1 2 3 3 1 2 #include <stdio.h> int main() { int a[2][3]={4,5,6,1,2,3},b[2][3]; int i,j; printf("array a:\n"); for(i=0;i<=1;i++) {for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n");} for(i=0;i<=1;i++) for(j=0;j<2;j++) ; for(i=0; i<2;i++) b[i][0]=a[i][2]; printf("array b:\n"); for(i=0;i<2;i++) {for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n");} return 0; }

263、下面程序的功能是检查一个二维数组是否对称(即:对所有ij都有a[i][j]=a[j][i]).请填空。 #include <stdio.h> int main() {int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int i,j,found=0; for(j=0;i<4;j++) for(i=j+1; i<4;i++) if( ) { found=1; break;} if(found) printf("No"); else printf("Yes"); return 0; }

264、以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。请填空。 #include <stdio.h> int main() {int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}}; int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}}; int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) c[i][j]= a[i][j]+b[i][j]; for(i=0;i<3;i++) {for(j=0; ;j++) printf("%3d",c[i][j]); printf("\n");} return 0; }

265、下面程序将输出computer,请填空。 #include <stdio.h> int main() {int i,j; char c[]="It's a computer"; for(i=0; i<=7;i++) { ; printf("%c",c[j]);} return 0; }

266、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则输出该字符在数组中*次出现的位置(下标值);否则输出-1。请填空。 #include <stdio.h> #include <string.h> int main() {char c='a',t[50]; int n,k,j; gets(t); n=strlen(t); for(k=0; k<n;k++) if( ) {j=k; break;} else j=-1; printf("%d",j); return 0; }

267、输出连接后的字符串 #include "stdio.h" int main() { char ss[10]="12345"; strcat(ss,"6789"); printf("%s",ss); return 0; }

268、计算矩阵a的下三角(包含主对角线)元素之和,矩阵的行、列数和元素值均由键盘输入 #define M 20 #include "stdio.h" int main() {int i,j,n,a[M][M]; int s=0; scanf("%d",&n); for(i=0;i<n;i++) for(j=0; j<n;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++) for(j=0; ;j++) s=s+a[i][j]; printf("%d\n",s); return 0; }

269、下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变。请填空。 #include <stdio.h> int main() {char a[]="labchmfye",t; int i,j; for(i=0;i<7;i+=2) for(j=i+2;j<9; j++) if( ) {t=a[i]; a[i]=a[j]; a[j]=t; j++;} puts(a); printf("\n"); return 0; }

270、连接两个字符串

271、求矩阵外围元素之和

272、求矩阵主对角线和副对角线元素之和

273、将字符串的小写字母转换为大写字母

274、关于函数调用的值传递,下列正确的是( )。

A、值传递的传输方向是单向的,从主调函数到被调函数

B、值传递的传输方向是单向的,从被调函数到主调函数

C、值传递的数据传输方向是双向的

D、值传递时,实参和形参使用相同的存储空间

275、关于函数调用的地址传递,下列正确的是( )。

A、地址传递的传输方向是单向的,从主调函数到被调函数

B、地址传递的传输方向是单向的,从被调函数到主调函数

C、地址传递的实参和形参使用相同的变量名

D、地址传递时,实参和形参使用相同的存储空间

276、以下函数返回值的类型是( )。 int fff(float x) { x=x+5; return x; }

A、void 类型

B、与参数x的类型相同

C、int类型

D、无法确定

277、下面对函数的叙述,正确的是( )。

A、函数中没有return语句,说明不带回值

B、函数的返回值是通过return语句获得的

C、函数中无论是否有return语句,都能返回正确值

D、函数不能嵌套定义

278、简单变量做实参时,它和对应形参之间的数据传递方式是()。

A、由实参传给形参,再由形参传回给实参

B、地址传递

C、单向值传递

D、由用户指定的传递方式

279、若用数组名作为函数的实参,传递给形参的是()。

A、数组的首地址

B、数组*个元素的值

C、数组元素的个数

D、数组中全部元素的值

280、以下叙述错误的是( )。

A、函数调用可以作为一个函数的实参

B、函数调用可以出现在一个表达式中

C、函数调用可以作为一个函数的形参

D、函数允许递归调用

281、下面叙述中错误的是( )。

A、函数的形式参数,在函数未被调用时不被分配存储空间

B、若函数的定义出现在主调函数之前,则可以不必再加说明

C、一般来说,函数的形参和实参的类型要一致

D、函数的形参和实参必须要使用相同名字的变量

282、若函数的调用形式如下: f((x1,x2,x3),(y1,y2)) 则函数形参个数是( )。

A、2

B、3

C、4

D、5

283、下列程序段中,有错误的是( )。

A、int f() { int x; scanf("%d", &x); return x++, x+5; }

B、int f2(int x) { return (x>1?printf("Y"): putchar('N')); }

C、int main() { float a=2.6 , b; b=max(2.1, 3.6)=a++; printf("%f", a+b); }

D、void change(int x, int y) { int t; t=x; x=y; y=t; }

284、关于函数正确的说法是( )。

A、主函数必须写在其他函数之前,函数内可以嵌套定义函数

B、主函数可以写在其他函数之后,函数内不可以嵌套定义函数

C、主函数必须写在其他函数之前,函数内不可以嵌套定义函数

D、主函数必须在写其他函数之后,函数内可以嵌套定义函数

285、以下说法正确的是( )。

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

B、C程序中,被调用的函数必须在main()函数中定义

C、C程序总是从*个定义的函数开始执行

D、C程序中的main()函数必须放在程序的开始处

286、关于函数的定义,叙述错误的是( )。

A、必须指出函数的名字和类型

B、必须给出函数完成的功能语句

C、函数参数可有可无

D、函数必须要有返回语句

287、关于函数原型,叙述错误的是( )。

A、当自定义函数被放在了主调函数的后面,就需要在函数调用之前,加上函数的原型声明

B、被调用函数在主调函数之前定义,可以省略函数原型声明

C、所有函数定义放在main函数之前,可以省略原型声明

D、函数可以不必进行声明,可以放在程序的任意位置

288、主函数中有声明语句: int a[100], n=5; 下列哪组实参和形参的对应是正确的( )。

A、f(a,n); int f(int a, int n);

B、f(a[100], n); int f(int a[], int n);

C、f(a, n); int f(int a[], int n);

D、f(a[100], n); int f(int a[100], int n);

289、下列函数定义中,正确的是( )。

A、int max1(int a,int b) { return a>b?a:b; }

B、int max1(int a,b) { return a>b?a:b; }

C、int max1(a,b) { int a,b; return a>b?a:b; }

D、int max1(int a,int b); { return a>b?a:b; }

290、函数可以根据需要通过参数与调用函数之间进行数据传递。

291、模块化程序设计方法是采用逐步分解、分而治之的方法处理问题。

292、没有返回值的函数可以进行函数的语句调用。

293、函数的表达式调用必须是有返回值的函数调用。

294、函数通过return语句可以向主调用函数返回多个值。

295、一个函数中有且只能有一个return 语句。( )

296、C语言规定,程序中各函数之间既允许嵌套定义,也允许嵌套调用。( )

297、数组作为函数参数进行函数调用时,实参应当采用( )。

298、以下函数的功能是计算x的y次方,请完善程序。 double fun(float x, int y) { int i=1; double z=1; if(y==0) return 1; while( i<=y ) { z= ; i++; } return z; }

299、以下函数的功能是计算n!,请完善程序。 long mul(int n) { int i=1; long sum; if(n==0) return 1; else sum=1; while(i<=n) { sum= ; i++; } return sum; }

300、如果函数不要求返回值,可用_____来定义函数为空类型。

301、在调用一个函数的过程中,直接或间接地调用该函数本身,称为函数的_____调用。

302、下面程序的运行结果: 。 #include <stdio.h> int fan(int n) { int k; if(n==0||n==1) return 3; else k=n-fan(n-2); return k; } int main() { printf("%d\n", fan(9)); return 0; }

303、/*完善下列程序*/ #include <stdio.h> _______________ int main() { int a[3][3],i,j; data(a); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%3d",a[i][j]); printf("\n"); } return 0; } void data(int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==0||i==2||j==0||j==2) b[i][j]=6; else b[i][j]=1; }

304、/*下列程序是求n元数组的平均值,请完善程序。*/ #include <stdio.h> #define N 10 float aver (float array[ ], int n) { int i; float sum=0; for (i=0; i<n; i++) sum=sum+array[i]; return sum/n; } int main() { int i; float a[N]; for (i=0; i<N; i++) scanf("%f",&a[i]); printf("平均值 %f\n",_________); return 0; }

305、编写函数,计算银行存款本息并输出。

306、数值转换

307、求一组数中大于平均值的数的个数

308、设有以下宏定义: #define N 3 #define Y(n) ((N+1)*n) 则执行语句z=2*(N+Y(5+1));后,z的值为( )。

A、60

B、42

C、48

D、54

309、C编译系统对程序中的宏展开是在()。

A、编辑时进行的

B、编译时进行的

C、程序执行时进行的

D、编译前预处理时进行的

310、以下叙述不正确的是( )。

A、全局变量可以由系统自动初始化

B、在程序运行期间,全局变量所占存储单元的值永久保留

C、当局部变量与全局变量重名时,全局变量起作用

D、全局变量存放在静态存储区

311、下面叙述中错误的是( )。

A、在其它函数中定义的变量在主函数中也不能使用

B、主函数中定义的变量在整个程序中都是有效的

C、形式参数也是局部变量

D、复合语句中定义的变量只在该复合语句中有效

312、执行下列程序后的输出结果是( )。 #include <stdio.h> int a=3, b=4; void fun(int x1, int x2) { printf("%d, %d", x1+x2, b); } int main() { int a=5, b=6; fun(a, b); return 0; }

A、3, 4

B、11,1

C、11,4

D、11,6

313、下列说法错误的是()。

A、变量的作用域是指变量的作用范围,即在程序中可以被读写访问的区域,它取决于变量被定义的位置

B、局部变量与全局变量同名时,全局变量隐藏局部变量,即全局变量起作用,局部变量不起作用

C、形参也是局部变量,形参变量和实参变量的作用域是不同的,因此形参变量和实参变量同名时,二者互不干扰

D、只要同名的变量出现在不同的作用域内,二者互不干扰,编译器有能力区分不同作用域中的同名变量

314、C编译系统对文件包含命令#include "file.h"的处理通常是在( )。

A、编译处理之前

B、编译处理过程之中

C、程序连接时

D、程序执行的开始

315、在文件包含预处理的定义中,#include后的文件名用< >括起来时,寻找被包含文件的方式是( )。

A、仅搜索当前目录

B、先在源程序所在目录搜索,再按系统设定的标准方式搜索

C、仅搜索源程序所在目录

D、按系统指定的路径下搜索指定文件

316、如果在一个函数中的复合语句中定义了一个变量,以下正确的说法是( )。

A、该变量在本程序范围内均有效

B、该变量在主函数中有效

C、该变量只在该复合语句中有效

D、该变量在该函数中有效

317、函数的形式参数系统默认存储类型说明是()。

A、static

B、extern

C、register

D、auto

318、下面叙述中错误的是( )。

A、在其它函数中定义的变量在主函数中也不能使用

B、主函数中定义的变量在整个程序中都是有效的

C、复合语句中定义的变量只在该复合语句中有效

D、形式参数也是局部变量

319、下述程序的结果为( )。 int f(int x) { static int a=3; a+=x; return a; } int main() { int k=2,m=1,n; n=f(k); n=f(m); printf("%d", n); return 0; }

A、9

B、6

C、4

D、3

320、以下对静态局部变量的叙述,不正确的是()。

A、在一个函数中定义的静态局部变量可以被另一函数调用

B、数值型静态局部变量的初值默认为0

C、静态局部变量是在编译时赋初值的,故它只被赋值一次

D、静态局部变量在整个程序运行期间都不释放

321、在一个函数中定义的静态局部变量可以被另一个函数调用。

322、用户可以自己定义包含类型声明、函数原型、全局变量、符号常量等内容的头文件,使用#include 命令将其包含到程序中。

323、条件编译可以根据设定的表达式的值,决定编译不同的程序段。

324、内部函数是指函数的作用域仅限于本文件的函数。

325、编译预处理命令也属于C语句,可以在末尾加分号。

326、在一个文件内定义的静态全局变量也可以被其他文件引用。

327、如果在一个文件内需要使用在其他文件中定义的全局变量,则需要在引用该变量的文件内,用extern对此变量做说明。

328、宏名没有作用域,在整个文件范围内都有效。

329、进行宏定义时,可以引用已经定义的宏名进行层层置换。

330、带参数的宏定义,进行宏展开时与函数调用主要区别是,只替换,不求值。

331、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为____。

332、预处理命令行都必须以_____号开始 。

333、局部静态变量是在静态存储区分配存储单元的,在整个程序运行期间始终占_____空间。

334、在定义函数时,如果在函数名字前面加上关键字_______或省略该关键字,则函数属于外部函数。

335、如果希望变量在函数调用结束后仍然保留其值,则可以将变量定义为局部静态变量,定义方式为在类型说明符前加上_______关键字。

336、下面程序的运行结果: 。 #include <stdio.h> #include <ctype.h> void fun(char s[]) { int i, j; for(i=j=0; s[i];i++) if(isalpha(s[i])) s[j++]=s[i]; s[j]= '\0'; } int main() { char str[20]= "How are you!"; fun(str); puts(str); return 0; } 其中,函数isalpha(ch)的功能是判断ch是否为字母,若是,函数值为1,否则为0。

337、下列程序的运行结果:_______。 #define MOD(x,y) x%y int main() { int z,a=15,b=100; z=MOD(b,a); printf("%d\n",++z); return 0; }

338、下面程序的运行结果: 。 #include <stdio.h> int a=200; void f() { static a=20; a++; printf("%d,", a); } int main() { int i; for(i=1;i<=3; i++) { a++; printf("%d ", a); f(); } return 0; }

339、求x的n次方

340、输出*大、*小数

341、任意整数转换为千分位分隔的字符形式

342、如有下面的语句说明, 则表达式 *(p+3) 的值是 ( )。 int a[]={2,3,4,5,6,7}; int *p=a;

A、3

B、4

C、5

D、6

343、如有下面的语句说明, 则执行语句for(i=0;*s++;i++); 后变量i的值是 ( )。 int i; char *s="a\n46\b";

A、5

B、6

C、7

D、8

344、如有下面的语句说明, 则正确的赋值语句是 ( )。 char a[10], *p=a;

A、a[10]=”VC++”;

B、a=”VC++”;

C、p=”VC++”;

D、*p=”VC++”;

345、如有下面的语句说明, 则下面赋值表达式非法的是 ( )。 int i, j, *p,*q;

A、p=&i

B、*q=&j

C、i=*p++ + *q

D、i=(int) p

346、若有以下语句,则&a[2]-p的值是( )。 int a[3],*p=a;

A、2

B、3

C、1

D、不确定

347、若有程序段 int b[4],*p,*q; p=&b[1]; q=&b[3]; 则q-p表示的意义是( )。

A、表达式错误

B、p与q之间数据个数

C、p占据的字节数

D、p与q之间的字节数

348、若有定义: float *p,m; , 则以下正确的表达式是( )。

A、p=&m

B、p=m

C、*p=&m

D、*p=*m

349、地址运算符”&”可作用于变量和数组元素,分别获得变量和数组元素的地址。

350、只可以通过求地址运算”&”获得地址值。

351、空指针p是指向地址为0的存贮单元的指针。

352、如有变量的定义char *p=”abc”; 语句 *p=’X’;是合法的。

353、如有变量的定义char s[]=”abc”; 语句char *p=s; 是合法的。

354、如有变量的定义int *r; double x; 则语句 r=&x; 是合法的。

355、若有定义:char ch; 使指针p指向变量ch的定义语句是_______。

356、若已定义char *p;,使指针p指向变量ch的赋值语句是______ 。

357、若有定义:char ch,*p=&ch; 通过指针p给变量ch读入字符的scanf调用语句是______。

358、若有定义:char ch,*p=&ch; 通过指针p用格式输出函数输出ch中字符的语句是______。

359、如有变量的定义int i,j, *p=&i,*q=&j; 则表达式 p==&i的值是 。

360、将字符数组s1中的字符串拷贝到字符数组s2中,请完善程序。 #include <stdio.h> int main( ) { char s1[80],s2[80],*p1,*p2; gets(s1); p1=s1; p2=s2; while(*p2++=*p1++); printf("s2=%s",________); return 0; }

361、将输入的字符串按逆序输出,例如输入abcd,则按dcba顺序输出出来,请完善程序。 #include <stdio.h> #include <string.h> int main( ) { char *str, s[20]; int n; str=s; scanf("%s",str); n=strlen(str); while(--n>=0) { str=&s[____]; printf("%c",*str); } return 0; }

362、删除字符串的所有前导空格,请完善程序。 #include <stdio.h> void f1(char *s) { char *t; t=________; while(*s==' ') s++; while(*t++=*s++); } int main( ) { char str[80]; gets(str); f1(str); puts(str); return 0; }

363、利用指针编写程序,统计字符串的长度。

364、利用指针编程,将数组中所有元素的值对称交换。

365、利用指针编写程序,求一维数组中的*大和*小的元素值。

366、如定义 int (*p)[10];, 则标识符p是( )。

A、指向含有10个整型元素的一维数组的指针

B、指向整型变量的地址

C、含有10个整型元素的数组名

D、含有10个整型指针元素的数组名

367、以下与库函数strcpy(char *p, char *q)功能不相等的程序段是()。

A、strcpy1(char *p, char *q) { while ((*p++=*q++)!='\0'); }

B、strcpy2( char *p, char *q) { while((*p=*q)!='\0') {p++; q++;} }

C、strcpy3(char *p, char *q) { while (*p++=*q++); }

D、strcpy4( char *p, char *q) { while(*p) *p++=*q++; }

368、以下正确的程序段是()。

A、char s[]="12345", t[]="6543d21"; strcpy( s,t);

B、char s[20], *t="12345"; strcat(s,t);

C、char s[20]=" ", *t="12345"; strcat(s, t);

D、char *s="12345", *t="54321"; strcat (s,t);

369、下面程序段的运行结果是()。 #include <stdio.h> int main() { char s[]="example!", *t; t=s; while( *t!='p') { printf("%c", *t-32); t++; } return 0; }

A、EXAMPLE!

B、example!

C、EXAM

D、example!

370、若有定义: char d[15],*p=d; , 则以下正确的赋值语句是( )。

A、d[0]="I love China!";

B、d="I love China!";

C、*p="I love China!";

D、p="I love China!";

371、如定义 int *p[10];, 则标识符p是( )。

A、指向10个整型元素的一维数组的指针

B、整型指针变量

C、含有10个整型指针元素的数组名

D、指向二维数组的指针变量

372、指向函数的指针变量的值是一个函数的入口地址。 ( )

373、作为函数形式参数时,int x[ ][5]与int (*x)[5]两种写法等价。

374、二维M*N数组的名字是一个指向N元数组的指针常量。

375、如果一个变量的值是一级指针变量的地址,则称这个变量为二级指针变量。

376、可以利用指针实现函数返回多个值。

377、如有变量的定义int i,j, *p=&i,*q=&j; 则 表达式 p==&i的值是 。

378、如有变量的定义double a[2], *p=a,*q=p+1; 则表达式 q-p 的值是 。

379、以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。 void exchange(int *x, int *y) { int t; ; }

380、下面程序的运行结果为:________。 #include<stdio.h> int main( ) { static char a[ ]=”Program”, *ptr; for(ptr=a;ptr<a+7; ptr+=2) putchar(*ptr); return 0; }

381、下面程序的运行结果是_________。 #include<stdio.h> int main() { static int x[ ]={1,2,3,}; int s,i,*p; s=1; p=x; for(i=0;i<3;i++) s*=*(p+i); printf(“%d”,s); return 0; }

382、利用指针编写一函数,输入3个整数,按由大到小的顺序将它们输出。

383、用指向数组的指针变量实现输出指定学生的全部成绩。

384、下面结构体的定义语句中,错误的是()。

A、struct ord {int x; int y; int z;}struct ord a;

B、struct ord {int x; int y; int z;}; struct ord a;

C、struct ord {int x; int y; int z;}a;

D、struct {int x; int y; int z;}a;

385、有以下的结构体变量定义语句: struct student { int num; charname[9]; } stu; 则下列叙述中错误的是( )。

A、结构体类型名为stu

B、num是结构体成员名

C、struct是C的关键字

D、结构体名为student

386、设有定义: struct complex { int real, unreal; } data1={1,8},data2; 则以下赋值语句中错误的是()。

A、data2=(2,6);

B、data2.real=data1.unreal;

C、data2=data1;

D、data2.real=data1.real;

387、设有定义: struct {char mark[12]; int num1; double num2;} t1,t2; 若变量均已正确赋初值,则以下语句中错误的是()。

A、t2.mark=t1.mark;

B、t2.num2=t1.num2;

C、t2.num1=t1.num1;

D、t1=t2;

388、有以下定义语句: struct student {int num; charname[9];} 则不能正确定义结构体数组并赋初始值的是( )。

A、struct student stu[2]={1, "zhangsan",2,"li si"};

B、struct student stu[2]={{1,"zhangsan"},{2,"li si"}};

C、struct student stu[]={{1,"zhangsan"},{2,"li si"}};

D、struct stu[]={{1,"zhangsan"},{2,"li si"}};

389、有以下程序: #include<stdio.h> struct S { int a,b;}data[2]={10,100,20,200}; main() {struct S p=data[1]; printf("%d\n",++(p.a));} 程序运行后的输出结果是()。

A、11

B、20

C、10

D、21

390、以下程序的输出结果是( )。 #include <stdio.h> void main() { struct cmplx { int x; int y; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); }

A、3

B、1

C、6

D、0

391、有以下程序: #include <stdio.h> struct ord { int x,y; } dt[2]={1,2,3,4}; int main() { struct ord *p=dt; printf("%d,",++p->x); printf("%d\n",++p->y); return 0; } 程序的运行结果是()。

A、2,3

B、1,2

C、4,1

D、3,4

392、若有以下定义: struct date{int y,m,d;}; struct student { int num;char name[9]; structdate bir;} stu,*p=&stu; 则以下对结构体变量stu成员的引用中错误的是( )。

A、p->bir->y

B、stu.bir.y

C、stu.name

D、p->bir.y

393、若有以下说明和定义 union dt { int a; char b; double c; }data; 以下叙述中错误的是()。

A、data的每个成员起始地址都相同

B、程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000

C、变量data所占内存字节数与成员c所占字节数相等

D、data可以作为函数的实参

394、设有定义: struct student { int ID; char name[12]; }s,*p=&s; 语句:p.ID=20161001;是否正确?

395、使几个不同类型的变量共占同一段内存的结构称为共用体。

396、在定义一个共用体变量时,系统分配给它的存储空间是该共用体变量中占用存储单元*长的成员的长度。

397、结构体变量可以在函数间传递,传递方式有值传递和地址传递两种。

398、结构体是不同数据类型的数据集合,作为数据类型, 必须先定义结构体______,再定义结构体变量。

399、设有定义: struct person { int ID; char name[12]; }pa; 请将scanf("%s",______);语句补充完整,使其能够为结构体变量pa的成员name正确读入数据。

400、以下程序运行后的输出结果是 ______。 #include<stdio.h> struct NODE { int k; char s[20]; }; int main() { struct NODE m[3]; int i; for(i=0;i<3;i++) m[i].k=i+1; for(i=0;i<3;i++) printf("%d ",m[i].k); return 0; }

401、设有以下语句: struct st {int n; struct st *next; }; static struct st a[3]={5, &a[1], 6,&a[2], 9, '\0'}, *p; p=&a[0]; 则表达式++p->n的值是______。

402、程序运行的结果是______。 #include <stdio.h> int main() { union example { int a; int b; }e; e.a=1;e.b=2; printf("%d\n",e.a); return 0; }

403、某班有5名同学,建立一个学生的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学生的平均成绩及名次。

404、在C语言中,文件存取的基本单位是:

A、字

B、字节

C、位

D、回车符

405、在C语言中,从文件中将数据读到内存中称为:

A、输入操作

B、输出操作

C、修改

D、删除

406、定义fp为文件型指针变量,以读写方式打开一个已存在的文本文件test.dat,下面fopen函数正确的调用方式是:

A、FILE *fp; fp=fopen("test.dat", "rb");

B、FILE*fp; fp=fopen("test.dat", "r+");

C、FILE *fp; fp=fopen("test.dat", "r");

D、FILE *fp; fp=fopen("test.dat", "rb+");

407、若FILE *fp; 关闭文件的语句是:

A、close(fp);

B、fclose( );

C、fclose(fp);

D、close( );

408、FILE *fp; 有两个整型变量a和b, 若要从文件把数据读到其中, 正确的形式是:

A、fscanf(fp,"%d%d",a ,b);

B、fscanf(fp,"%d%d",&a ,&b);

C、fscanf("%d%d",&a ,&b, fp);

D、fprintf(fp,"%d",a ,b);

409、定义fp为文件型指针变量,使用fopen只读方式打开一个已存在的二进制文件,以下正确的调用形式为:

A、fp=fopen("my.dat", "r");

B、fp=fopen("my.dat", "rb+");

C、fp=fopen("my.dat", "rb");

D、fp=fopen("my.dat", "r+");

410、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为:

A、-1

B、1

C、0

D、非零

411、下列关于C语言数据文件的叙述中正确的是:

A、文件由数据流形式组成,可分为二进制文件和ASCII码字符序列组成的文本文件。C语言可以读/写文本文件和二进制文件。

B、文件是由ASCII码字符序列组成的, C语言只能读/写文本文件。

C、文件是由二进制数据序列组成, C语言只能读/写二进制文件。

D、C语言只能按格式化的方式读/写文件 。

412、若执行fopen函数时发生错误,则函数的返回值是:

A、EOF

B、1

C、地址值

D、NULL

413、若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是:

A、rb

B、wb

C、wb+

D、ab

414、“文件”一般指存储在外部介质上的数据集合。

415、C语言中,文件的存取方式可以是随机存取,也可以是顺序存取。

416、feof(fp)函数用来判断fp所指向的文件是否结束,若遇到文件结束符,函数feof()的返回值是假(0),否则是真(非0),

417、对文件进行读/写操作之前必须打开文件。

418、C语言中,在打开文件时,必须说明文件的使用方式, "r+"用于打开一个不存在的文件。

419、对文件读写操作之后,程序结束之前必须关闭文件。

420、C语言中,文件的使用方式"w+"用于建立一个新的的文件,然后进行写/读操作。

421、C语言中,文件的使用方式 "wb" 用于新建一个二进制文件,然后进行写操作。

422、C语言中,fprintf是一个向文件格式化写数据(输出)的函数。

423、在C语言中,当顺利地执行了关闭文件操作后,文件关闭函数返回值为0。

424、//下面程序用来统计文件中字符的个数。 #include <stdlib.h> #include <stdio.h> int main() { FILE *fp; int num=0; if((fp=fopen("test.dat", "r"))==NULL) { printf("Can't Open File!\n"); exit(0); } while ( ) { fgetc(fp); num++; } printf("num=%d\n", num-1); fclose(fp) ; return 0; }

425、在C语言中,根据要处理的文件存储的编码形式,可以把文件分为ASCII文件和 文件.

426、调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 向已存在的文本文件尾增加数据需填入 。

427、函数fgetc(FILE *fp)读到文件尾结束符时,函数返回一个文件结束标志EOF,其值为:

428、//下面程序是把从键盘输入的字符依次存放到文件中,用“#”作为结束输入的标志。 #include <stdlib.h> #include <stdio.h> int main() { FILE *fp; char ch, if((fp=fopen("test.txt","w"))==NULL) { printf("Can't Open File\n"); exit(0); } printf("Enter data\n"); while((ch=getchar())!='#') fputc( , fp); fclose(fp); return 0; }

429、题目内容:某班有10名同学,建立学生结构体类型,包括学号、姓名、3门课程的成绩,编写程序,读入已准备好的文本文件student1.txt,为结构体数组变量赋值,计算每名学生的平均成绩及名次。结果输出到屏幕的同时保存到student2.txt文件中。将源程序作为答案提交,程序运行后将生成的student2.txt文件作为附件上传。 (该作业不计入课程总成绩。student1.txt已提供,直接从附件下载)。

430、以下说法不正确的是()。

A、一个C程序有且只能有一个main 函数。

B、C程序总是从main 函数开始执行,无论main函数在程序中的什么位置。

C、函数可以嵌套调用,但是不可以嵌套定义。

D、函数如果使用在定义之前,可以不必进行原型声明,

431、与k=n++完全等价的表达式是( )。

A、k=n, n=n+1

B、n=n+1, k=n

C、k+=n+1

D、k=++n

432、下列哪个不是有效的字符常量( )。

A、"a"

B、‘\x6c ’

C、‘\''

D、'1'

433、已有定义char s1,s2[20]; ,下面可以为所定义的变量正确输入数据的语句是( )。

A、scanf ("%c%s", &s1,s2);

B、scanf ("%s%c", &s1,s2);

C、scanf ("%c%s", &s1,&s2);

D、scanf ("%c%s",s1,s2);

434、有定义语句: char s[30]; 若将字符串"I am student."存放在字符数组中,使用正确的语句是()。

A、gets(s);

B、s=gets();

C、scanf("%s",s);

D、scanf("%s",&s);

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

A、(ch>='A')&&(ch<='Z')

B、('A'>=ch)||('Z'<=ch)

C、65<=ch<=90

D、(ch>=A)&&(ch<=Z)

436、执行下面程序段后,k的值是:( )。 int k=2; switch(k+1) { case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k; }

A、2

B、9

C、10

D、6

437、下面的定义语句中,使数组str不能正确保存字符串的是()。

A、char str[6]="China";

B、char str[ ]="China";

C、char str[5]={'C','h','i','n','a'};

D、char str[6]={"China"};

438、下面程序段的功能是()。 int x,k=0; printf("请输入x: "); scanf("%d",&x); do { x=x/10; k++; }while(x>0); printf("k=%d ",k);

A、输出x/10的商

B、求x的各位数之和

C、当x>0时,输出x的位数

D、输出x的位数

439、执行语句 for(i=1;i++<5;) ; 后变量 i 的值是( )。

A、5

B、6

C、4

D、不确定

440、针对for循环语句,for(表达式1;表达式2;表达式3),下列说法正确的是( )。

A、break语句只能跳出所在层循环

B、break语句可以一次性跳出多层嵌套循环

C、continue语句可以一次性跳出多层嵌套循环

D、continue语句只能跳出所在层循环

441、下面程序的功能是判断用10元人民币兑换角币有多少种换法(角币有1角、2角、5角三种)。请选择正确的表达式。 #include <stdio.h> int main( ) { int i,j,k,m=0; for(i=0;i<=20;i++) for(j=0; ;j++) for(k=0;k<=100;k++) if(i*5+j*2+k==100) { m++;printf("i=%d,j=%d,k=%d\n",i,j,k);} printf("m=%d",m); return 0; }

A、j<=50

B、j<50

C、j>50

D、j>=50

442、若有变量声明语句: int a=10; int *p=&a; 则*p的值是( )。

A、变量p的地址值

B、变量p的值

C、变量a的地址值

D、变量a的值

443、假定有定义语句 int a[10], x, *p=a; 若要把数组a中下标为3的元素值赋给x,下面不正确的语句为( )。

A、x=*p+3;

B、x=*(p+3);

C、x=p[3];

D、x=a[3];

444、若有定义: char d[15],*p=d; , 则以下正确的赋值语句是( )。

A、p="I love China!";

B、d[0]="I love China!";

C、d="I love China!";

D、*p="I love China!";

445、主函数中有声明语句: int a[100], n=5; 下列函数调用和函数定义语句中,实参和形参的对应正确的是( )。

A、f(a, n); int f(int a[], int n);

B、f(a,n); int f(int a, int n);

C、f(a[100], n); int f(int a[], int n);

D、f(a[100], n); int f(int a[100], int n);

446、下述程序的结果为( )。 int f(int x) { static int a=3; a+=x; return a; } int main() { int k=2,m=1,n; n=f(k); n=f(m); printf("%d", n); return 0; }

A、6

B、9

C、4

D、3

447、设已定义下面的fun函数,则( )是对fun函数正确调用。 void fun(int x) { ....... }

A、m=fun(5);

B、fun();

C、fun(5);

D、printf("%d",fun(5));

448、下列叙述错误的是( )。

A、在函数之外定义的变量是全局变量

B、全局变量不一定在所有的函数中有效

C、在函数内定义的变量和形参都属于局部变量

D、在其他函数中定义的变量在主函数中也不能使用

449、设整型变量x、y、z的值分别为3、2、1,则下列程序段的输出是( )。 if(x>y) x=y; if(x>z) x=z; printf("%d,%d,%d\n",x,y,z);

A、1,2,1

B、3,2,1

C、1,2,3

D、1,1,1

450、能正确表达逻辑关系“0<a<1并且0<b<1”的表达式是( )。

A、(0<a<1)&&(0<b<1)

B、(a>0&&a<1)&&(b>0&&b<1)

C、(a>0&&a<1)||(b>0&&b<1)

D、(a>0||a<1)&&(b>0||b<1)

451、下面程序计算e的值,要求*后一项的*值小于,并统计出累加了多少项。请在空白处选择合适的语句,使程序正确。 #include <math.h> #include <stdio.h> int main() { int n = 1, count = 1; double e = 1.0, term = 1.0; long fac = 1; for (n=1; ________________; n++) { fac = fac * n; term = 1.0 / fac; e = e + term; count++; } printf("e = %f, count = %d

", e, count); return 0; }

A、fabs(term)>=1e-5

B、fabs(term)<=1e-5

C、fabs(term)<1e-5

D、fabs(term)!=1e-5

452、下面程序的功能是输出30以内素数及素数之和,请选择正确的语句( )。 #include "stdio.h" int main() { int j,i,sum=0; for(i=2;i<=30;i++) { for(j=2;j<i;j++) if(i%j==0) ___________; if(j>=i) { printf("%-3d",i); sum+=i; } } printf("\n%d\n",sum); return 0; }

A、break

B、continue

C、goto

D、return

453、下面程序的功能是:从键盘输入10个字符,输出其中数字字符。请完善程序。 #include <stdio.h> int main( ) { int i; char c; for(i=1;i<=10;i++) { c=getchar( ); if(c< '0' ||c> '9') _________ ; putchar(c); } return 0; }

454、设有定义: struct person { int ID; char name[12]; }pa; 请将scanf("%s",______);语句补充完整,使其能够为结构体变量pa的成员name正确读入数据。

455、int x=2,y=3,z=4; 则表达式x+y&&(x=y)的值为_____。

456、若有定义 int a=3,b=2,c=6,d=5,n=8; 则 表达式 (m=a<b)&&(n=c-d)的值为_______。

457、下面程序的运行结果为:________。 #include<stdio.h> int main( ) { char a[ ]="Program", *ptr; for(ptr=a;ptr<a+7; ptr+=2) putchar(*ptr); return 0; }

458、输入并保存5名学生的I信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。

459、编写程序键盘输入整型变量num,从低位开始取出整型变量num奇数位上的数依次放在t中,然后输出t。

460、以下叙述不正确的是() 。

A、一个C语言程序可以由一个或多个函数组成。

B、C语言程序的基本组成单位是函数。

C、在C语言程序中,注释只能位于一条语句的后面。

D、一个C语言程序必须包含一个main函数。

461、在一个C程序中,main函数出现的位置是( )

A、必须在程序的*后面。

B、必须在程序的*前面。

C、必须在系统调用的库函数的后面。

D、可以在任意地方。

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

A、在C语言程序中,一条语句可以占一行,也可以占多行

B、C语言程序中有输入输出语句

C、同一个C语言程序中的函数之间可以相互调用

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

463、对于项目,以下叙述错误的是()

A、一个解决方案可以包含多个项目。

B、一个项目只是一个源程序文件。

C、运行程序指的是运行对应的项目。

D、一个项目包含了某个程序的所有项。

464、下面四个选项中,均是合法整型常量的选项是( )

A、160, −0xffff, 011

B、−01, 986, 012, 0668

C、−0x48a, 2e5, 0x

D、−0xcdf, 01a, 0xe

465、设C语言中,一个short int型数据在内存中占2个字节,则unsigned short int型数据的取值范围为()

A、0~255

B、0~65535

C、0~32767

D、0~2147483647

466、在C语言中,char型数据在内存中存储的是字符的( )

A、补码

B、原码

C、反码

D、ASCⅡ码

467、执行逗号表达式a=3,b=5,a-=a+b,b=a-b之后,a和b的值分别( )

A、3和5

B、−5和−2

C、8和3

D、−5和−10

468、下列程序执行后的输出结果是(小数点后只写一位)( ) #include <stdio.h> main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); }

A、6 6 6.0 6.0

B、6 6 6.0 6.7

C、6 6 6.7 6.0

D、6 6 6.7 6.7

469、putchar函数可以向终端输出一个( )

A、字符串

B、整型变量表达式值

C、实型变量值

D、字符

470、输出语句“printf("*%10.2f*\n",57.666);”的输出结果是( )

A、*ㄩㄩㄩㄩㄩ57.66*

B、*0000057.67*

C、*0000057.66*

D、*ㄩㄩㄩㄩㄩ57.67*

471、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从*列开始输入数据时,正确的输入方式是 ( ) 。 int a1,a2;char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A、10ㄩA20B↙

B、10A20ㄩB↙

C、10A20B↙

D、10ㄩAㄩ20ㄩB↙

472、以下关于运算符优先级的描述中正确的是 ()

A、关系运算符<算术运算符<赋值运算符<逻辑运算符(不含!)

B、逻辑运算符(不含!)<关系运算符<算术运算符<赋值运算符

C、赋值运算符<逻辑运算符(不含!)<关系运算符<算术运算符

D、算术运算符<关系运算符<赋值运算符<逻辑运算符(不含!)

473、对于以下程序,输出结果为( )。 #include <stdio.h> main() { int a,b,c; a=b=c=0; a++ && b++ || c++; printf("%d,%d,%d\n",a,b,c); }

A、1,0,1

B、1,1,0

C、1,0,0

D、1,1,1

474、对于以下程序,输出结果为 ( )。 #include <stdio.h> main( ) { int x=1,y=0,a=0,b=0 ; switch(x) { case 1: switch ( y ) { case 0:a++;break ; case 1:b++;break ; } case 2:a++;b++;break ; } printf ("a=%d,b=%d\n",a,b); }

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=2

475、下面这个程序的输出是()  #include <stdio.h> main() { int y=10; while(y- -); printf(“y=%d\n”,y); }

A、y=0

B、y=1

C、y=-1

D、while构成死循环

476、循环语句while(!E);中的表达式!E等价于( )

A、E!=0

B、E!=1

C、E==0

D、E==1

477、以下程序执行后的输出结果是( ) main() { int x=0, y=0; while(x<20) x+=3, y++; printf(“%d,%d\n”,y,x); }

A、7,21

B、21, 7

C、8, 24

D、1, 21

478、若“int a=5;”则执行以下语句后,打印的结果是 ( ) do { printf(“%2d\n”,a--); } while(!a)

A、5

B、不打印任何内容

C、4

D、陷入死循环

479、以下程序执行后的输出结果是( ) main( ) { int i; for(i=0; i<10; i++); printf(“%d”,i); }

A、0

B、123456789

C、0123456789

D、10

480、以下叙述错误的是( )

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

B、while循环是先判断表达式,后执行循环体语句

C、do-while和for循环均是先执行循环体语句,后判断表达式

D、for、while和do-while循环中的循环体均可以由空语句构成

481、下列程序是求1~100的累加和,其中有三个不能够完成规定的功能,只有一个能正确完成累加和,是( )

A、s=0; i=0; while(i<=100) s+=i++;

B、s=0; i=1; while(i++<100) s+=i;

C、s=0; i=0; while(i<100) s+=i++;

D、s=0; i=1; while(++i<=100) s+=i;

482、C语言中一维数组的定义方式为:类型说明符数组名( )

A、[整型常量]

B、[整型表达式]

C、[整型常量]或[整型常量表达式]

D、[常量表达式]

483、若有定义:int a[3][4];,则对a数组元素的非法引用是( )

A、a[0][3*1]

B、a[2][3]

C、a[1+1][0]

D、a[0][4]

484、若有定义:int a[][3]={1,2,3,4,5,6,7,8,9};,则 a 数组*维的大小是 ( )

A、1

B、2

C、3

D、4

485、下面程序段的运行结果是( ) 。 char c[]="\t\v\\\0will\n"; printf("%d",strlen(c));

A、14

B、3

C、9

D、字符串中有非法字符,输出值不确定

486、判断字符串s1是否等于字符串s2,应当使用( ) 。

A、if(s1==s2)

B、if(s1=s2)

C、if(strcpy(s1,s2))

D、if(strcmp(s1,s2)==0)

487、若二维数组a有m列,则在a[i][j]前的元素个数为( ) 。

A、i*m+j

B、j*m+i

C、i*m+j-1

D、i*m+j+1

488、以下正确的函数定义是( ) 。

A、double fun(int x,int y) { z=x+y; return z; }

B、fun(int x,y) { int z; return z; }

C、fun(x,y) { int x,y; double z; z=x+y; return z; }

D、double fun(int x, int y) { double z; z=x+y; return z; }

489、若有函数调用语句:fun(a,(x,y),fun(n,d,(a,b)));,则在此函数调用语句中实参的个数是( )

A、3

B、4

C、5

D、6

490、C语言规定,调用函数时实参和形参之间的数据传递是( )。

A、地址传递

B、值传递

C、由实参和形参双向传递

D、由用户指定传递方式

491、若函数调用时的实参为变量,下列关于函数形参和实参的叙述中正确的是( ) 。

A、函数的实参和其对应的形参共占同一存储单元

B、形参只是形式上的存在,不占用具体存储单元

C、同名的实参和形参占同一存储单元

D、函数的形参和实参分别占用不同的存储单元

492、以下程序有语法性错误,有关错误原因的正确说法是( ) 。 main() { int G=5,k; void par_char(); …… k=par_char(G); …… }

A、语句“void par_char();”有错,它是函数调用语句,不能用void说明

B、变量名不能使用大写字母

C、函数声明和函数调用语句之间有矛盾

D、函数名不能使用下划线

493、若用数组名作为函数调用的实参,传递给形参的是( ) 。

A、数组的首地址

B、数组*个元素的值

C、数组中全部元素的值

D、数组元素的个数

494、二维数组名作为函数形参时,下面说法错误的是( )。

A、该数组的行大小可以省略

B、该数组的列大小不能省略

C、调用时传递的是地址

D、调用时传递的是行的大小

495、在下列叙述中,错误的一条是 ( ) 。

A、主函数main中定义的变量在整个文件或程序中有效

B、不同函数中,可以使用相同名字的局部变量

C、形式参数是局部变量

D、在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效

496、以下叙述正确的是( ) 。

A、函数调用必须在函数的定义之后

B、float类型的函数在调用前不必声明

C、函数的形参是自动变量

D、函数内部可以定义全局变量

497、在C语言中,存储类型为( )的变量只在使用它们时才占用存储空间。

A、static和auto

B、register和auto

C、static和register

D、resister和extern

498、下列各种存储类型的变量中,必须定义在函数体外的是( )。

A、自动类型变量

B、寄存器类型变量

C、内部静态类型变量

D、外部静态类型变量

499、以下叙述中错误的是( ) 。

A、一个局部变量的作用域的开始位置完全取决于变量定义语句的位置

B、全局变量可以在函数以外的任何部位进行定义

C、自动变量的“生存期”只限于本次函数调用,因此不可能将自动变量的运算结果保存至下一次调用

D、一个变量说明为static存储类别是为了限制其他编译单位的引用

500、以下程序正确的运行结果是 ( ) 。 #include <stdio.h> fun(int a) { int b=0; static int c=3; a=c++,b++; return (a); } main() { int a=2,i,k; for(i=0; i<2; i++) k=fun(a++); printf("%d\n",k);

A、3

B、6

C、5

D、4

501、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。

A、p=q;

B、*p=*q;

C、n=*q;

D、p=n;

502、若有定义:int x,*pb;,则正确的赋值表达式是( )。

A、pb=&x

B、pb=x

C、*pb=&x

D、*pb=*x

503、若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是( )。

A、a,point,*&a

B、&*a,&a,*point

C、*&point,*point,&a

D、&a,&*point,point

504、以下程序的输出结果是( )。 #include<stdio.h> main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf(“%d\n”,n); }

A、4

B、6

C、8

D、10

505、指针变量是一种特殊的变量,用来存放变量的指针或者地址。

506、若有定义:int (*fprt)();,则标识符fprt是一个指向int型变量的指针。

507、char *s; s="BOOK!"; 语句组是正确的。

508、若有定义:int a[4][3],(*prt)[3]=a,*p=a[0];,则*((*prt+1)[2]可以正确表示数组元素a[1][2]的表达式。

509、宏定义指将一个标识符(宏名)定义为一个字符串(替换文本)。

510、引用结构体变量时可以将一个结构体变量作为一个整体进行输入输出 。

511、对结构体的成员变量可以像普通变量一样进行各种运算。

512、对于结构体变量,可以引用结构体变量成员的地址,也可以引用结构体变量的地址。

513、如果结构体变量的成员本身又是一个结构体类型,则要用若干个成员运算符逐级找到*低一级的成员才能引用 。

514、在使用fopen函数打开文件时,文件位置指针总是指向文件的开头。

515、C语言可以处理的文件类型是文本文件和数据文件。

516、对文件的一般操作步骤是:打开文件->操作文件->关闭文件 。

517、标准库函数fgets(s,n,f)的功能是从文件中读取长度为n的字符串存入指针s所指的内存。

518、设有 int a[5];且已知fp是指向某个已打开的磁盘文件的文件指针,则下面函数调用语句中不正确:fread(a,sizeof(int),5,fp);

519、函数rewind的作用是使位置指针重新返回文件的开头。

520、若一些源程序中包含某个头文件,当该头文件有错时,只需对该头文件进行修改,包含此头文件的所有源程序不必重新进行编译。

521、C程序中的预处理是在编译之前进行的。

522、结构化程序设计主要强调的是程序的执行效率。

523、在VC++2010中,可以设置出现暂停的地方。

524、设变量a是整型,f是单精度型,i是双精度型,则表达式10+'a'+i*f值的数据类型为 float。

525、若有定义“char c='\72';”,则变量c 包含2个字符。

526、若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是1。

527、for(i=10; ; i--) sum+=i; 以上语句不会形成死循环。

528、以下语句对数组s的初始化不正确 :char s[5]="";

529、在一个函数内部,可在复合语句中定义变量,这些变量只在本复合语句中有效。

530、函数ftell(fp)的作用是得到文件的当前读写位置。

531、#include <stdio.h> main() { char *a[]={"abcd","ef","gh","ijk"};int i; for(i=0;i<4;i++) printf("%c",*a[i]); } 以上程序的输出结果是adgj

532、C语言中必须先定义结构体类型,再定义结构体变量。

533、成员运算符“.”在所有的运算符中优先级*高。

534、如果函数定义时函数值的类型和return语句中表达式的值类型不一致,则以return语句中的类型为准。

535、输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。

536、编写程序键盘输入整型变量num,从低位开始取出整型变量num奇数位上的数依次放在t中,然后输出t。

537、有以下程序 #include <stdio.h> int main( ) { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i++) for(k=i+1;k<4;k++) if(a[i][i]<a[k][k]) {t=a[i][i]; a[i][i]=a[k][k]; a[k][k]=t;} for(i=0;i<4;i++) printf("%d,",a[0][i]); return 0; } 程序运行后的输出结果是()

A、6,2,1,1

B、6,4,3,2

C、1,1,2,6

D、2,3,4,6

538、在C语言中,假定有以下变量定义: int k=7 ,x=12; 则能使其值为 3 的表达式是( )。

A、x%=(K%=5)

B、x%=(k-k%5)

C、x%=k-k%5

D、(x%=k)-(k%=5)

539、在C语言中,设 int a=10,则执行完语句 a+=a-=a*a后,a的值是( )

A、99

B、100

C、110

D、-180

540、在C语言中,下列不正确的转义字符是( )。

A、\\'

B、\t'

C、074'

D、\0'

541、在程序设计时,应采纳的原则是()

A、不限制goto语句的使用

B、减少或取消注释行

C、程序越短越好

D、程序结构应有助于读者理解

542、有以下程序: #include <stdio.h> int main() { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); return 0; } 若想使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )。

A、m=123n=456p=789

B、123456789

C、m=123,n=456,p=789

D、123 456 789

543、下面程序的运行结果是() #include<stdio.h> int main(void) { int i; for(i=1;i<=5;i++) switch(i%5) { case 0 : printf("*");break; case 1 : printf("#");break; default : printf("\n"); case 2 : printf("&"); } return 0; }

A、#& & &

B、#& & &*

C、#

D、#&

544、下面程序的输出结果是#include<stdio.h> int main(void) { int x=1, y=0, a=0, b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++; b++; break; } printf("a=%d, b=%d\n",a,b); return 0; }

A、a=2, b=1

B、a=1, b=1

C、a=1, b=0

D、a=2, b=5

545、循环语句while(!E);中的表达式!E等价于

A、E!=0

B、E!=1

C、E==0

D、E==1

546、以下程序的输出结果是( )。 main() {int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d\n", s); }

A、18

B、19

C、20

D、21

547、若有以下程序段,则数值为3的表达式( )。 int x[12]={1,2,3,4,5,6,7,8,9,10}; char c=‘a’,d,f;

A、x[g-c]

B、x[3]

C、x['d'-'c']

D、x['d’-‘b']

548、下面程序的功能是将字符串s中的字符c删除,请将程序补全() #include <stdio.h> int main( ) {char s[80]; int i,j; gets(s); for(i=j=0;s[i]!='\0';i++) if(s[i]!='c') ; s[j]='\0'; puts(s); return 0; }

A、s[j++]=s[i]

B、s[++j]=s[i]

C、s[i]=s[j]

D、s[j]=s[i]

549、以下程序段的运行后结果是 char str[] = "ab\n\t\\\""; printf("%d", strlen(str));

A、4

B、12

C、6

D、3

550、下面函数返回值的类型是( ) s(int r) { return 3.14*r*r }

A、整型

B、实型

C、空类型

D、指针类型

551、下面程序的输出是 fun3(int x) {static int a=3; a+=x; return(a);} main() { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d\n",n);}

A、20

B、24

C、25

D、15

552、以下程序中,*个输出值是()    。 #include <stdio.h> #define M 3 #define N (M+1) #define NN N*N/2 main() { printf(“%d\n”,NN); printf(“%d”,5*NN); }

A、3

B、4

C、6

D、8

553、下面程序的输出结果是() main() { int a,b,c; int *p; a=5; b=a+3; p=&a; c=*p+3; printf("%d,%d\n",*p,c); }

A、5,8

B、5,5

C、8,5

D、8,8

554、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为6的表达式是( )

A、*p+6

B、*(p+6)

C、*p+=5

D、p+5

555、下面函数的功能是( ) int funl(char * x) { char *y=x; while(*y++); return(y-x-1);}

A、求字符串的长度

B、比较两个字符串的大小

C、将字符串x复制到字符串y

D、将字符串x连接到字符串y后面

556、若以”a+”方式打开一个已存在的文件,则以下叙述正确的是( )。

A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。

B、文件打开时,原有文件内容被删除,位置指针移到文

C、文件打开时,原有文件内容被删除,只可作写操作。

D、各种说法皆不下确。

557、本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

558、本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。

c语言只需编译 不需连接,C语言程序设计-中国大学mooc相关推荐

  1. python语言使用不需要付费不存在商业风险_中国大学MOOC慕课_Python语言基础与应用_答案...

    中国大学MOOC慕课_Python语言基础与应用_答案 答案: 更多相关问题 下列不属于不得再次公开发行公司债券的情形是(). A.对于公司前一次公开发行的公司债券尚未募足B 从生物电的角度而言,细胞 ...

  2. 中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)

    中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)  Lan   2020-05-03 14:21   369 人阅读  0 条评论 感谢中国大学MOOC提供的学习平台 ...

  3. 中国大学Mooc浙大翁恺老师《零基础学Java语言》编程作业(续)(5~ 7)

    感谢中国大学Mooc平台给我学习的机会,感谢翁恺老师深入浅出的讲解. 写此文为纪念我从无到有的学习和成长.便于以后回顾. 此答案仅供参考. 提交作业时需把 public class Homework_ ...

  4. 中国大学MOOC C语言程序设计入门 第8周编程练习第二题 GPS数据处理

    中国大学MOOC C语言程序设计入门 第8周编程练习第二题 GPS数据处理 题目内容 解题思路 这个题的题目真的是我学习C语言以来见过的最长的题目了,很多人的第一感觉可能是无从下手,所以让我们先来整理 ...

  5. 中国大学Mooc浙大翁恺老师《零基础学Java语言》编程作业

    感谢中国大学Mooc平台给我学习的机会,感谢翁恺老师深入浅出的讲解. 写此文为纪念我从无到有的学习和成长.便于以后回顾. 另外: 此答案仅供参考,用于启发没有思路的同学.切勿照搬,自欺欺人. 提交作业 ...

  6. python程序只能使用源代码进行运行、不能打包_中国大学MOOC计算机程序设计语言(Python)网课答案...

    中国大学MOOC计算机程序设计语言(Python)网课答案 表达式[3] in [1, 2, 3, 4]的值为________________. python 3.x语句 print(1, 2, 3, ...

  7. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(四)(Python语言基础(2))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(四)(Python语言基础(2)) 第4讲 Python语言基础(2) 4.1 内置数据结构 4.1.1 序列数据结构(sequ ...

  8. python能在哪些系统上运行_中国大学MOOC:Python语言可以在哪些操作系统下运行______。...

    中国大学MOOC:Python语言可以在哪些操作系统下运行______. 正常人一出生其颈部有()条横向皱纹,属于正常生理现象.A:1--3B:5--6C:4--5D:3--4 在Al海区实现船对岸遇 ...

  9. python语言程序设计慕课_中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案...

    中国大学MOOC(慕课)_Python语言程序设计基础_试题及答案 更多相关问题 智慧职教: 反应级数的绝对值不会超过3,可以是正整数或者负整数,不能是分数. 在铆接过程中,铆孔的质量直接影响铆接质量 ...

最新文章

  1. 在MyEclipse启动或者是tomcat启动的时候出现:Address already in use: JVM_Bindnull:8080
  2. jvm性能调优实战 - 46堆区OOM解析
  3. Netty原理一:ServerBootstrap启动过程全解析
  4. EJB3.0开发环境的搭建
  5. c#解压,压缩文件!!!
  6. jenkins 插件目录_10 个 Jenkins 实战经验,助你轻松上手持续集成
  7. 2017.9.24 虔诚的墓主人 思考记录
  8. VC++ COleSafeArray VARIANT的使用
  9. 否认气候变暖的人都是睁眼说瞎话
  10. 给一张表加一个自动编号字段_Python办公自动化|从Word到Excel
  11. GP数据库-Creenplum
  12. matlab中变压器的仿真,基于MATLAB的稳压变压器建模与仿真
  13. O2O营销模式的特点
  14. 电脑数据格式化如何快速简单恢复数据?
  15. MIPS中的异常处理和系统调用
  16. [iOS Xib加载/封装] xib加载以后无法赋值Laber属性的值
  17. SAP S4 会计科目表的设计
  18. Apex—— 查询一个对象上的所有字段记录
  19. 【图论】网络流——最大流和最小费用流
  20. DNS服务器未响应,电脑网页打不开

热门文章

  1. 近百个免费API接口分享 调用完全不限次数
  2. Intermediate Representation (IR) 中间表示
  3. python递归三角形_python 谢尔宾斯基三角形的递归实现
  4. 《新课程研究》期刊简介及投稿须知
  5. 人脸识别——脸部属性辅助(Attribute-Centered Loss)
  6. 北京招聘ASP.Net程序员
  7. 用matlab计算偏科,初中三年如何少走弯路?最实用的技巧在这里!
  8. API获得淘宝商品评论
  9. 分析筛选网站关键词的方法
  10. 阿波罗尼斯圆证角相等_Simplelife_新浪博客