2024年3月12日发(作者:)

1、C程序是由函数构成的。其中有并且只能有________个主函数。C语言程序的执行总是由_______函数开始的。

2、C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为____________。

3、C语言中算术运算符、关系运算符、逻辑运算,这三个运算符中优先级最高有是__________。

4、结构化程序设计规定的三种基本结构是__________结构、选择结构、__________结构。

5、设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为 _____________。

6、C语句可以分为五大类:控制语句、_________、_________、空语句、分程序。

7、表达式10!=9的值是___________。

8、若在程序中用到“putchar( )”函数时,应在程序开头写上包含命令______________。

9、执行“int b[5] ={1,2,3,4,5},a[ ][4]={1,2,3,4,5,6 };”后,b[4]= ________,a[1][2]= _______。

10、函数中的形参和调用时的实参都是数组名时,传递方式为________,都是变量时,传递方式为________。

11、”%-ms”表示如果串长________,则在m列范围内,字符串向________靠,________补空。

12、若有以下定义语句:int a=5; printf(“%dn”,a++); 则输出结果是________。

13、一个表达式要构成一个C语句,必须有________。

15、如果想输出字符“%”,则应该在“格式控制”字符串中用__ __表示。

16、printf函数的“格式控制”包括两部分,他们是__ __和__ __。

17、符号’&’是__ __运算符,&a是指__ __。

18、putchar 函数的作用是__ __。 getchar 函数的作用是__ __。

19、复合语句是由一对__ __括起来的若干语句组成的。

20、把for(表达式1;表达式2;表达式3);改写为等价的while语句为__ __。

21、while语句与do-while语句的区别是__ __。

22、字符常量使用一对__ __界定单个字符,而字符串常量使用一对__ __来界定若干个字符的序列。

23、设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为__ __。

24、设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为__ __ 。

25、一个表达式要构成一个C语句,必须有__ __。

26、C语言提供三种逻辑运算符,按优先级高低它们分别是__ __。

27C语言三个循环语句分别是__ _语句,__ __语句和__ __语句。

28、在C语言中,二维数组的元素在内存中的存放顺序是__ __。

二、选择

1、 下面C语言的变量中,定义非法的是:( )。

A、Abaf B、

——

322 C、alpf

——

beat D、

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

A、在C程序中,逗号运算符的优先级最低

B、在C程序中,APH和aph是两个不同的变量

C、若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。

D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

3、设以下变量均为int类型,则值不等于7的表达式是( )。

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+l,x=y,x+1)

4、设a=13.6,b=8,则表达式a+b%3*(int)(a-b)/4的值为( )。

A、15.6 B、15 C、14.6 D、14

5、这段程序中的常量有:( )。

#define PI 3.14

void main()

{ int sum;sum = 10 + 15;

printf("sum=%dn",sum);

printf("result is 25n");}

这段程序中常量有:

A、sum B、main C、PI D、int

6、使用“scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是( )。

A、1.25,1.25 B、1.25 1.25

C、x=1.25,y=1.25 D、x=1.25 y=1.25

7、设有语句int a=3,执行下列语句a+=a-=a*a后,变量a的值为( )。

A、3 B、0 C、9 D、-12

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

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

C、 (ch>='A' )&&(ch<='Z') D、('A'< = ch)AND('Z'>=ch)

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

A、 continue语句的作用是结束整个循环的执行

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

第 1 页 共 5 页

C、 在循环体内使用break语句或continue语句的作用相同

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

10、不能把字符串“Hello!”赋给数组b的语句是( )。

A、char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};

B、char b[10];b=”Hello!”;

C、char b[10]; strcpy(b,”Hello!”); D、char b[10]=”Hello!”;

11、在C语言中以下不正确的说法是( )。

A、实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式

C、实参可以为任意类型 D、形参应与其对应的实参类型一致

12、以下能正确定义且赋初值的语句是( )。

A、int n1=n2=10; B、char c=32;

C、float f=f+1.1; D、double x=12.3E2.5;

13、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。( )。

 main()

 /* Beginning */

 { int r; float s;

 scanf("%d",&r);

 s=pi*r*r; printf("s=%fn",s);

 }

 出错的原因是

A、注释语句书写位置错误 B、存放圆半径的变量r不应该定义为整型

C、输出语句中格式描述符非法 D、计算圆面积的赋值语句中使用非法变量

14、以下对C语言函数的有关描述中,正确的是( )。

A、在C中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。

B、C函数既可以嵌套定义又可以递归调用。

C、函数必须有返回值,否则不能使用函数。

D、C程序中有调用关系的所有函数必须放在同一个源程序文件中。

15、有以下程序段

 int k=0,a=1,b=2,c=3;

 k=a

执行该程序段后,k的值是( )。

A、3 B、2 C、1 D、0

16、有以下程序

 main()

 { char a1=’M’, a2=’m’;

 printf("%cn", (a1, a2) ); }

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

A、程序输出大写字母M B、程序输出小写字母m

C、格式说明符不足,编译出错 D、程序运行时产生出错信息

17、有以下程序

 main()

 { int k=5,n=0;

 while(k>0)

 { switch(k)

 { default : break;

 case 1 : n+=k;

 case 2 :

 case 3 : n+=k;

 }

 k--;

 }

 printf("%dn",n);

 }

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

A、0 B、4 C、6 D、7

18、设有如下定义:

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

则执行表达式:(m=a>b)&&(n=c>d)后,n的值为( )。

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

19、若i、j已定义为int类型,则以下程序段中内循环体的执行次数是( )。

for(i=5;i>0;i--)

for(j=0;j<4;j++){„„„}

第 2 页 共 5 页

A、20 B、24 C、25 D、30

20、设a=1,b=2,c=3,d=4,则表达式a

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

21、一个C程序由若干个C函数组成,各个函数在文件中的位置为( )。

A、任意

B、第一个函数必须是主函数,其他函数任意

C、必须完全按照顺序排列

D、其他函数必须在前,主函数必须在最后

22、下列四个叙述中,正确的是( )。

A、C程序中的所有字母都必须小写

B、C程序中的关键字必须小写,其他标示符不区分大小写

C、C程序中的所有字母都不区分大小写

D、C语言中的所有关键字必须小写

23、下列四个叙述中,错误的是( )。

A、一个C源程序必须有且只能有一个主函数

B、一个C源程序可以含零个或多个子函数

C、在C源程序中注释说明必须位于语句之后

D、C源程序的基本结构是函数

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

A、分号是C语句的必要组成部分

B、C程序的注释可以写在语句的后面

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

D、主函数的名字不一定用main表示

25、执行下面程序段后,c3中的值是( )。

int c1=1 , c2=2 , c3;

c3=c1/c2;

A、0 B、1/2 C、0.5 D、1

26、在c语言中以下不正确的说法是( )。

A、实参可以是常量、变量、或表达式

B、形参可以是常量、变量或表达式

C、实参可以为任意类型

D、形参应与其对应的实参类型一致

27、在c语言中,以下说法正确的是( )。

A、普通实参和与其对应的形参各占用独立的存储单元

B、实参和与其对应的形参共占用一个存储单元

C、只有当实参和与其对应的形参同名时才共占用存储单元

D、形参是虚拟的,不占用存储单元

28、在C语言中,5种基本数据类型的存储空间长度的排列顺序为( )。

A、char

B、char=int

C、char

D、char=int=

29、在C语言中,合法的长整型常数是( )。

A、0L B、4962710 C、0412765 D、0xa34b7fe

30、若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%cn”,c2-c1,c2-‘a’+’A’);则输出结果是(

A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不确定

31、以下合法的赋值语句是( )。

A、x=y=100 B、d--; C、x+y D、c=int(a+b)

32、设变量t为int型,下列选项中不正确的赋值语句是( )。

A、++t; B、n1=(n2=(n3=0)); C、k=i= =m; D、a=b+c=1;

33、在以下一组运算符中,优先级最高的是( )。

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

34、设a为整型变量,不能正确表达数学关系10

A、10

C、a>10 && a<15 D、!(a<=10)&&!(a>=15)

35、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是( )。

A、0 B、语法错 C、1 D、“假”

36、表达式17%4 /8的值为( )。

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

37、语句printf(“%d”,(a=2)&&(b= -2));的输出结果是( )。

A、无输出 B、结果不确定 C、-1 D、1

38、 下面哪个表达式的值为4. ( )。

第 3 页 共 5 页

。 )

A、 11/3 B、11.0/3 C、(float)11/3 D、(int)(11.0/3+0.5)

39、以下程序的输出结果是( )。

main()

{ int x=10,y=10;

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

}

A、 10 10 B、9 9

C、 9 10 D、10 9

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

char c1='b',c2='e';

printf("%d,%cn",c2-c1,c2-'a'+"A")

则输出结果是( )。

A、 2,M B、 3,E

C、 2,e D、 输出结果不确定

三、 判断题

1、MAIN函数必须写在一个C程序的最前面。【 】

2、C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【 】

3、自增运算符(++)或自减运算符(--)可以用于变量,也可以用于常量或表达式。【 】

4、条件表达式可以取代IF语句,或者用IF语句取代条件表达式。【 】

5、在WHILE循环中允许使用嵌套循环,但只能是嵌套WHILE循环。【 】

6、一个C程序的执行总是从该程序的MAIN函数开始,在MAIN函数最后结束。 【 】

7、一个C程序可以包含若干的函数。【 】

8、C程序的注释只能是一行。【 】

9、C程序的注释不能是中文文字信息。【 】

10、赋值符号“=”就是赋值运算符,它的作用是将一个变量赋值给一个数据。【 】

11、对几个变量在定义时赋初值可以写成:int a=b=c=3;【 】

12、在实际编程中,do-while循环完全可以用for循环替换。【 】

13、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数据。【 】

14、一个实型变量的值肯定是精确的。【 】

15、语句标号与C语言标识符的语法规定是完全一样的。【 】

16、for循环的三个表达式可以任意省略,while,do-while也是如此。【 】

17、用do-while实现的循环至少执行一次。【 】

18、while的循环控制条件比do-while的循环控制条件严格。【 】

19、do-while循环中,根据情况可以省略while。【 】

20、do-while循环的while后的分号可以省略。【 】

四、分析程序写结果

1、以下程序的输出结果是

main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d %d %d",a[2],a[5],a[8]);

}

2、有以下程序,它运行之后的结果是

main()

{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf("%d %d %d %dn",a[0][3],a[1][2],a[2][1],a[3][0];

)

3、下面程序段的输出是

main( )

{int a,b,c;

a=8;b=7;c=9;

if(a>b)

a=b;b=c;c=a;

printf(“a=%d,b=%d,c=%dn,a,b,c);

}

4、下列程序的输出结果是___________。

Main()

{double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

printf(“%fn”,d*y);}

第 4 页 共 5 页

5、下列程序执行后的输出结果是__________。

Main()

{double d; float f; long l; int j;

j=f=l=d=20/3;

printf(“%d %d %f %fn”,j,l,f,d);}

6、下列程序的输出结果是_____________。

Main()

{int a=1,b=2;

a+=b; b=a-b; a-=b;

printf(“%d,%dn”,a,b);}

五、编程题(第1题6分,第2题9分,共15 分)

1、输入a、b、c、3个整数,按从大到小的顺序输出。

2、求两个数 m 和n的最大公约数。设计函数实现。

3、求100 ~ 200 之间的全部素数。(请使用for循环语句)

4、有一个数组中有20个元素,编程实现数组元素求和。

第 5 页 共 5 页