c语言程序设计期末复习题汇总

c语言程序设计期末复习题汇总
c语言程序设计期末复习题汇总

C语言程序设计试题

第1、2、3章概述、类型、表达式

一、选择题

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

A、任意

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

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

D、其他函数可以任意,主函数必须在最后

答案:A

2、下列四个叙述中,正确的是:()

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

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

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

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

答案:D

3、下列四个叙述中,错误的是:()

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

B、一个C源程序可以有多个函数

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

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

答案:C

4、下面不是C语言合法标识符的是:()

A、abc

B、5n

C、_4m

D、x3

答案:B

5、以下叙述不正确的是:()

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

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

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

D. 主函数的名字不一定非用main来表示

答案:D

6、C语言中允许的基本数据类型包括:()

A. 整型、实型、逻辑型

B. 整型、实型、字符型

C. 整型、字符型、逻辑型

D. 整型、实型、逻辑型、字符型

答案:B

7、C语言中能用八进制表示的数据类型为:()

A、字符型、整型

B、整形、实型

C、字符型、实型、双精度型

D、字符型、整型、实型、双精度型

答案:A

8、下列属于C语言合法的字符常数是:()

A、’\97’

B、”A”

C、’\t’

D、”\0”

答案:C

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

A、char

C、char

D、char=int=

答案:A

10、在C语言中(VC环境),一定是长整型常数的是:()

A、0L

B、4962710

C、0412765

D、0xa34b7fe

答案:A

11、若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出

结果是:()

A、2,M

B、3,E

C、2,E

D、输出项与相应的格式控制不一致,输出结果不确定

答案:B

12、以下合法的赋值语句是:()

A、x=y=100

B、d--;

C、x + y

D、c = int(a+b);

答案:B

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

A、++t;

B、n1=(n2=(n3=0));

C、k=i==m;

D、a=b+c=1;

答案:D

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

A、<=

B、==

C、%

D、&&

答案:C

15、下列能正确表示a≥10或a≤0的关系表达式是:()

A、a>=10 or a<=0

B、a<=10 || a>=0

C、a>=10 || a<=0

D、a>=10 && a<=0

答案:C

16、下列只有当整数x为奇数时,其值为“真”的表达式是:()

A、x%2==0

B、!(x%2==0)

C、(x-x/2*2)==0

D、!(x%2)

答案:B

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

A、1 0< a < 15

B、!(a<=10 || a>=15)

C、a>10 && a<15

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

答案:A

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

A、0

B、语法错

C、1

D、“假”

答案:C

19、表达式17%4 /8的值为:()

A、0

B、1

C、2

D、3

答案:A

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

A、无输出

B、结果不确定

C、-1

D、1

答案:D

21、一个可执行的C程序的开始执行点是:()

A. 程序中的第一个语句

B. 包含文件中的第一个函数

C. 名为main的函数

D. 程序中的第一个函数

答案:C

22、组成C语句的一个必不可少的符号是:()

答案:D

23、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:()

A. int

B. long

C. float

D. double

答案:D

24、下述是C语言中有关变量定义的几个说法,正确的是:()

A. 变量可以不定义直接使用

B. 一个说明语句只能定义一个变量

C. 几个不同类型的变量可在同一语句中定义

D. 变量可以在定义时进行初绐化

答案:D

25、与x * = y + z等价的赋值表达式是:()

A. x = y + z

B. x = x * y + z

C. x = x * (y + z)

D. x = x + y * z

答案:C

26、当代电子计算机能够自动地处理指定的问题是因为:()

A.计算机是电动的

B.有解决该问题的计算机程序

C.事先存储了解决该问题的程序

D.以上都不是

( 知识点:程序的基本概念;难度系数:2;答案:C )

27、以下叙述中最准确的是:()

A.计算机程序是处理某一问题所有指令的集合

B.计算机程序是处理某一问题所用到的所有数据的集合

C.计算机程序是处理某一问题的所有指令及其数据的集合

D.计算机程序是处理某一问题的所有指令及其数据的有序集合

( 知识点:程序的基本概念;难度系数:2;答案:D )

28、关于计算机程序设计,以下描述最准确的是:()

A.程序设计就是用语言来编写程序

B.程序设计就是用计算机语言来编写程序

C.程序设计就是用计算机程序设计语言来编写程序

D.程序设计就是用计算机能识别的语言来编写程序

( 知识点:程序设计的基本概念;难度系数:1;答案:C )

29、目前编写计算机程序一般采用的是:()

A.机器语言B.汇编语言C.高级语言D.英语

( 知识点:程序设计的基本概念;难度系数:1;答案:C )

30、设计一个计算机程序最基本的工作是:()

A.制定正确的算法B.选择合理的数据结构

C.制定正确的算法和选择合理的数据结构D.以上都不是

( 知识点:算法的基本概念;难度系数:1;答案:C )

31、算法具有五个特性,以下选项中不属于算法特性的是:()

A.有穷性B.简洁性C.可行性D.确定性( 知识点:算法的基本概念;难度系数:3;答案:B )

32、下述哪一个不是结构化程序基本结构:()

A.顺序B.选择C.循环D.嵌套

( 知识点:结构化程序设计的概念;难度系数:2;答案:D )

33、C语言是一种:()

( 知识点:C语言的特点;难度系数:1;答案:C )

34、C语言源程序的扩展名为:()

A..exe B..c C..obj D..cpp

( 知识点:C语言的特点;难度系数:1;答案:B )

35、C程序编译后最终产生(即计算机执行)的文件的扩展名为( )

A..exe B..c C..obj D..cpp

( 知识点:C语言的特点;难度系数:1;答案:A )

36、下列各项中,不是C语言的特点是:()

A.语言简洁、紧凑,使用方便

B.程序执行效率高,可移植性好

C.能实现汇编语言的大多数功能

D.有较强的网络操作功能

( 知识点:C语言的特点;难度系数:3;答案:D )

37、构成C语言源程序的基本单位是:()

A.子程序B.过程C.文本D.函数

( 知识点:C程序的特点;难度系数:1;答案:D )

38、下列叙述正确的是:()

A.C语言源程序可以直接在DOS环境中运行

B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行

C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行

D.C语言源程序可以直接在VC++环境中运行

( 知识点:C程序的特点;难度系数:2;答案:C )

39、某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()

A.写在前面的函数先开始执行

B.总是从main()函数开始执行

C.总是从max()函数开始执行

D.写在后面的函数先开始执行

( 知识点:C程序的特点;难度系数:1;答案:B )

40、以下叙述不正确的是:()

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

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

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

D.主函数的名字不一定用mian表示

( 知识点:C程序的特点;难度系数:1;答案:D )

41、以下为C语句的是:()

A.a=8 B.a++;C.if(a>8) D. #include ( 知识点:C语句的特点;难度系数:2;答案:B )

以下不是C语句的是:()

A.a=8; B.a++;C.if(a>8);D.for(i=1;i<5;i++) ( 知识点:C语句的特点;难度系数:2;答案:D )

42、以下所列语句中,合法的语句是:( )

A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);

( 知识点:C语句的特点;难度系数:2;答案:B )

43、C程序中的复合语句指的是:()

A.并列的多个C语句B.写在同一行中的多个C语句

C.用一对大括号对括的多个C语句 D.就是函数体中的语句

A.由系统自动换行

B.立即按回车键换行

C.在任意一个空格处按回车键换行

D.输入一个分号后并按回车键换行换行

( 知识点:C语句的特点;难度系数:2;答案:C )

45、在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。

A.( 2> x> -2 )||(4 > x > 8)

B.!((( x < -2 )||( x >2 )&&(( x <= 4 )||( x > 8 ))

C.( x < 2 )&&( x >= -2 )&&( x > 4 )&&( x < 8 )

D.( x > -2 )&&( x >4 )||( x < 8 )&&( x < 2 )

答案:B

二、判断题

1.( T )C语言是严格区分大写和小写的,因次主函数不能写成main()以外的其他形式。

2.( F )C语言程序是从源文件的第一条语句开始执行的。

3.( T )C语言对其数据在内存中所占用的实际字节数是有明确规定的。

4.( F )C语言中/*..*/之间的注释内容是不能跨行的。

5.( F )C语言中多个以“;”结束的语句不能放在同一行。

6.( T )以下常数:'101',e3,’\78’,(2+3)e(4-2)都是不合法的。

7.( F )变量说明语句int a=b=c=23;是正确的。

8.( F )字符型数据不可以和整数数据一起进行算术运算。

9.( F )C语句:3*x*x+4*x+1+6sin(x)=y.是可以允许的。

10.( T )表达式m=(a=4,4*5)和m=a=4,4*5的值是相等的。

11.( T )C语言中强制类型转换不会改变原变量的原有数据类型。

12.( F )表达式j=-i++和j=-(i++)不相等

13.( T )程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其结果9,10,9,10.

14.( F )C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。

15.( T )计算机程序的基本组成是:指示计算机如何去解决某一问题的一组指令。

16.( T )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。

17.( T )目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”方面转变。

18.( T )任何一个计算机程序都可以用机器语言、汇编语言和高级语言来编写。

19.( T )有人曾提出:计算机程序=算法+数据结构。

20.( T )在程序设计中提到的算法就是“解决问题的方法和步骤”

21.( T )在程序设计中提到的数据结构就是“程序处理的对象的表示方法”

22.( T )计算机程序的算法就是解决“做什么”和“怎么做”的问题。

23.( T )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。

24.( T )C程序的编译是从程序的第一行开始,到程序的最后一行结束。

25.( F )C程序的编译是从主函数的第一行开始,到主函数的最后一行结束。

26.( F )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。

27.( T )C程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。

28.( T )设x、t均为int型变量,则执行语句"x = 10;t = x && x > 10;"后,t的值为0

29.( T )若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变

30.( T )在C程序中,%是只能用于整数运算的运算符

31.( T )在C语言中,逻辑“真”等价于不等于0的数

33.(F)在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:char

34.( T )变量的三要素是:变量名、变量类型、变量的值。

三、多选题

1.目前程序设计采用的基本方法有:

A.面向过程的程序设计B.面向对象的程序设计

C.面向问题的程序设计D.面向机器的程序设计

( 知识点:结构化程序设计的概念;难度系数:1;答案:AB )

第4章顺序结构

一、选择题

1、下面程序的输出是:()

main()

{ int k=11;

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

}

A) k=11,k=12,k=13 B) k=11,k=13,k=13

C) k=11,k=013,k=oXb D) k=11,k=13,k=b

答案:D

2、以下合法的C语言赋值语句是:()

A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)-- i;

答案:D

3、以下程序的输出结果是:()

main()

{ int x=10,y=3;

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

}

A)0 B)1 C)3 D)不确定

答案:C

4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是:()

A)read (a,b,c); B)scanf(“%d%d%d”,a,b,c);

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

答案:D

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

int c1=1 , c2=2 , c3;

c3=c1/c2;

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

答案:A

6、若执行以下程序段,其输出结果是:()

int a=0 , b=0 , c=0;

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

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

答案:B

7、以下程序段的输出是:()

float a=57.666;

printf(“*%2.2f*\n”, a);

A)*57* B)*58* C)*57.66* D)*57.67*

答案:D

8、若有以下定义和语句:()

int a=5,b

b=a++;

此处b的值是:()

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

答案:C

9、若有以下定义和语句:()

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

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

则输出结果是:()

A) 2,M B) 3,E C) 2,e D) 输出结果不确定

答案:B

10、以下程序的输出结果是:()

main()

{ int x=10,y=10;

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

}

A) 10 10 B) 9 9 C) 9 10 D) 10 9

答案:D

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

sum=pad=5;

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

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

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

答案:A

12、以下程序的输出结果:()

#include

main()

{

int i=010,j=10;

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

}

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

答案:B

13、在C语言中,short类型数据的范围是-32768~32767,下面程序段的输出结果是:() short i =65536;

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

A) 65536 B) 0

C) 1 D)超出取值范围,无输出结果

14、已知字符A的ASCII码为十进制的65,下面程序的输出是:()

main()

{

char ch1,ch2;

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

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

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

}

A) 67,D B) B,C

C) C,D D) 不确定的值

答案:A

15、若有定义和语句:

char s; s="abcd"; printf("%d\n",s);

则结果是:()

A) 输出 97 B) 输出 a

C) 输出 adcb D) 编译不能通过

答案:D

16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行,?代表空格):

1?2

A?B?C

则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:()

A) scanf("x=%d y=%d",&x,&y); a=getchar(); c=getchar();

B) scanf("%d%d",&x,&y); a=getchar(); b=getchar(); c=getchar();

C) scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);

D) scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);

答案:D

17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:()

main()

{

int x;

scanf("%d",&x);

if (x++>5)

printf("%d",x)

else

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

}

A) 7和5 B) 6和3 C) 7和4 D) 6和4

答案:A

18、若执行下面的程序从键盘输入3和4,则输出是:()

main()

{ int a,b,s;

scanf("%d%d",&a,&b);

s=a;

if (a

s=s*s;

}

A) 14 B) 16 C) 18 D) 20

答案:B

19、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值

scanf("i=%d,f=%f",&i,&f);

为了把100和765.12分别赋给i和f,则正确的输入为:()

A) 100<空格>765.12<回车> B) i=100,f=765.12<回车>

C) 100<回车>765.12<回车> D) x=100<回车>,y=765.12<回车>

答案:B

20、以下程序的输出结果是:()

#include

main()

{ int n;

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

}

A) -1 B) 0 C) 1 D) 不确定

答案:B

二、判断题

1.( F )在C语言中,实型数据在内存都中占4个字节。

2.( F )在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。

3.( F )若有定义和语句:int a;char c;scanf("%d,%c",&a,&c);当通过键盘输入:10,‘A’之后,则变量a中存放的是10,变量c中存放的是‘A’。

4.( F )C语言中,变量名只能是小写字母表示,符号常量名可用大写表示

5.( F )在C语言中,变量可以不要定义,直接使用

6.( T )一个C语言程序总是从主函数开始执行的

7.( F )注释语句必须用/*和*/括起来,且只能位于某一语句的后面

8.( F ) “a”和‘a’均是占用1个字节的内存空间的数据

三、多选题

1.以下所列语句中,不合法的语句是:()

A、a=1,b=2

B、++a;

C、a=a+1=5;

D、y= (int) a;

E、a=b=c=10;

答案:ACD

2.下列描述正确的是:()

A. putchar函数的作用是向屏幕输出一个字符

B. putchar函数能在屏幕上输出控制字符

C. putchar(c)函数中,c只能是字符型变量,不能是整型变量

D. putchar函数能在屏幕上输出转义字符

E.putchar函数的使用需要包含“stdio.h”头文件

答案:ABDE

3.下列描述正确的是:()

A. getchar函数只能接收一个字符

B. getchar函数得到的字符可以赋给一个字符变量

C. getchar函数得到的字符可以赋给一个整型变量

D. getchar函数得到的字符可以作为表达式的一部分

E.getchar函数是编程者自定义的函数

A.格式字符o表示以八进制无符号形式输出整数

B.格式字符u 表示以无符号十进制形式输出整数

C.格式字符x 表示以无符号十六进制形式输出整数

D.格式字符f 表示以实数形式输出单、双精度数

E.格式字符e 表示以浮点数形式输出单、双精度数

答案:ABCDE

5.假设int x,y,z;若从键盘给x、y、z输入数据,下列不正确的输入语句是:()

A.input x、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);

E.scanf("%d%d%d,&x,&y,&z");

答案:ACDE

6.假设float x,y,z;,并通过scanf("%f%f%f ",&a,&b,&c);对a赋于10.0,b赋予

22.0,c赋予33.0的值,下面正确的输入形式是:()(注:符号︻代表空格)

A、10<回车>22<回车> 33<回车>

B、10.0<回车>22.0<回车>33.0<回车>

C、10.0,22.0,33.0<回车>

D、10.0︻22.0︻33.0<回车>

E、10︻22︻33<回车>

答案:ABDE

7.若有int a,c;char b;并通过scanf("%f%c%f ",&a,&b,&c);对a赋于整数10,b赋

予字符M,c赋予整数33的值,下面正确的输入形式是:()(注:符号︻代表空格)

A、10<回车>M<回车> 33<回车>

B、10M33<回车>

C、10︻M︻33<回车>

D、10M<回车>33<回车>

E、10M︻<回车>33<回车>

答案:BDE

8.若有 char ch;,下面可以对变量c正确赋值的语句是:()

A.ch =‘A’;

B.getchar(ch);

C.ch = getchar();

D.scanf(“%c”,&ch);

E.printf(“%c”,ch=‘B’);

答案:ACDE

9.下面属于转义符的有:( )

A.‘\t ’ B.‘\n’ C.‘%d’ D.‘\376’ E.‘\x20’

答案:ABDE

10.若a为整型变量,则下列表达式的值为0的是( ),

A.a % a

B.a != a

C.3/4

D.3 && 0

E.a = 0

答案:ABCDE

第5、6章选择与循环结构

一、选择题

1.有以下程序

main( )

{ int i;

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

switch ( i )

{ case 1 : printf("%d ", i);

case 2 : printf("%d ", i);

default : printf("%d ", i);

}

}

执行后输出结果是:()

A)011122 B)012 C)012020 D)120 答案:A

2.有以下程序

main()

{ int i=1, j=1, k=2;

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

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

}

执行后输出结果是:()

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 答案:C

3.有以下程序

main()

{ int a=5,b=4,c=3,d=2;

if (a>b>c)

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

else if ( (c-1 >= d) ==1)

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

else

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

}

执行后输出结果是:()

A)2 B)3 C)4 D)编译时有错,无结果答案:B

4.有以下程序

main()

{ int i=0,s=0;

do {

if (i%2)

{ i++; continue; }

i++;

s += i;

} while( i<7 );

}

执行后输出结果是:()

A)16 B)12 C)28 D)21

答案:A

5.以下程序的输出结果是:()

main()

{ int a=5,b=4,c=6,d;

printf("%d\n",d=a>b?(a>c?a:c):(b));

}

A) 5 B) 4 C) 6 D) 不确定

答案:C

6.以下程序中,while循环的循环次数是:()

main()

{ int i=0;

while(i<10)

{ if(i<1) continue;

if(i==5) break;

i++;

}

}

A) 1 B) 10 C) 6 D) 死循环,不能确定次数

答案:D

7.以下程序的输出结果是:()

main( )

{ int a=0,i;

for(i=1;i<5;i++)

switch(i)

{ case 0:

case 3: a+=2;

case 1:

case 2: a+=3;

default: a+=5;

}

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

}

A) 31 B) 13 C) 10 D) 20

答案:A

8.以下程序的输出结果是:()

main()

{ int a=4,b=5,c=0,d;

d=!a && !b || !c;

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

}

A) 1 B) 0 C) 非0的数 D) -1

答案:A

#include

main()

{ int i=0,a=0;

while(i<20)

{ for( ; ; )

{ if((i%10)==0) break;

else i--;

}

i+=11; a+=i;

}

printh("%d\n",a);

}

A) 21 B) 32 C) 33 D) 11

答案:B

10.阅读以下程序:()

main()

{ int x;

scanf("%d",&x);

if(x--<5) printf("%d"x);

else printf("%d"x++);

}

程序运行后,如果从键盘上输人5,则输出结果是:()

A)3 B) 4 C) 5 D) 6

答案:B

11.假定w、x、y、z、m均为int型变量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w

则该程序运行后,m的值是:()

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

答案:D

12.以下程序的输出结果是:()

main()

{ int a, b;

for(a=1, b=1; a<=100; a++)

{ if(b>=10) break;

if (b%3==1)

{ b+=3; continue; }

}

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

}

A) 101 B) 6 C) 5 D) 4

答案:D

13.若执行以下程序时从键盘上输入9,则输出结果是:() main()

{ int n;

if(n++<10)

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

else

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

}

A) 11 B) 10 C) 9 D) 8

答案:B

14.有以下程序段

int k=0

while(k=1)

k++;

则while 循环执行的次数是:()

A) 无限次B) 有语法错,不能执行 C) 一次也不执行D) 执行1次

答案:A

15.以下程序执行后sum的值是:()

main()

{ int i , sum;

for(i=1;i<6;i++) sum+=i;

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

}

A)15 B)14 C) 不确定D)0

答案:A

16.有以下程序段

int x=3

do

{ printf ("%d",x -=2);

}while (!(--x));

其输出结果是:()

A) 1 B) 3 0 C) 1 -2 D) 死循环

答案:C

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

A) 'a'<=c<= 'z'

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

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

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

答案:D

18.以下程序的输出结果是:()

main()

{ float x=0.5; char z='a';

printf("%d\n", (x>1) && (z<'z') );

}

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

答案:A

19.以下程序的输出结果是:()

{ int x=10,y=10,i;

for(i=0;x>8;y=i )

printf(“%d %d ”,x--,y);

}

A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 0

答案:D

20.以下程序的输出结果是:()

main()

{ int i;

for(i=1;i<=6;i++)

{ if(i%2)

{ printf(“#”);

continue;

}

printf(“*”);

}

printf(“\n”);

}

A)#*#*# B)##### C)***** D)*#*#*

答案:A

21.以下程序的输出结果是:()

main()

{ int i;

for(i='A';i<='I';i++)

printf(“%c”,i+32);

printf(“\n”);

}

A)编译不通过,无输出 B) aceg C)acegi D)abcdefghi

答案:D

22.以下程序输出结果是:()

main ()

{ int m=5;

if (m>5)

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

else

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

}

A )7

B )6 C)5 D)4

答案:C

23.运行以下程序后,如果从键盘上输入china#《回车》,则输出结果为:() #include

main()

{ int v1=0,v2=0; char ch ;

while ((ch=getchar())!='#')

switch (ch )

case 'h':

default:v1++;

case '0':v2++;

}

printf(“%d,%d\n”,v1,v2);

}

A) 2,0 B)5,0 C) 5,5 D)2,5

答案:C

24.设有如下定义:

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

答案:D

25.以下程序的输出结果是:()

main()

{ int i,j,x=0;

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

{ x++;

for(j=0;j<3;j++)

{ if (j%2)

continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

A)x=4 B)x=8 C)x=6 D)x=12

答案:B

26.设x和y均为int型变量,则执行以下的循环后,y值为:() for(y=1,x=1;y<=50;y++)

{ if(x==10))

break;

if (x%2==1)

{ x+=5;

continue;

}

x-=3;

}

A)2 B)4 C)6 D)8

答案:C

27.假定a和b为int型变量,则执行以下语句后b的值为:() a=1;b=10;

do

{ b-=a; a++;

A)9 B)-2 C)-1 D)8

答案:D

28.设j为int型变量,则下面for循环语句的执行结果是:()

for (j=10;j>3;j--)

{ if(j%3) j--;

--j;--j;

printf(“%d ”,j);

}

A)6 3 B)7 4 C)6 2 D)7 3

答案:B

29.有以下程序

main()

{ int x, i;

for(i=1;i<=50;i++)

{ x=i;

if(x%2==0)

{ x++;

if(x%3==0)

{ x++;

if(x%7==0)

{ x++;

printf("%d ",i);

}

}

}

}

}

输出结果是:()

A)28 B)27 C)42 D)26

答案:D

30.假定所有变量均已正确说明,下列程序段运行后x的值是:()

a=b=c=0;x=35;

if(!a)

x--;

else if(b) ;

if(c)

x=3;

else

x=4;

A)34 B)4 C)35 D)3

答案:B

31.执行表达式k = ( 10>12 ? 15 :6>5 ? 8 :9 )后,变量k的值为:()

A. 9

B. 8

C. 15

D. 1

答案:B

32.以下程序运行后,如果从键盘上输人5,则输出结果是:()

{

int x;

scanf("%d",&x);

if(x--<5)

printf("%d",x);

else

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

}

A、3

B、4

C、5

D、6

答案:B

33.以下程序段的输出结果是:()

int k, j , s ;

for(k=2;k<6;k++,k++)

{ s=1;

for (j=k;j<6;j++)

s+=j;

}

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

A)9 B)1 C)11 D)10 答案:D

34.以下程序段的输出是:()

int i,j,m=0;

for (i=1;i<=15;i+=4)

for (j=3;j<=19;j+=4)

m++;

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

A)12 B)15 C)20 D)25 答案:C

35.以下程序段的输出结果是:()

int i, sum;

for(i=1;i<6;i++)

sum+=sum;

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

A)15 B)14 C)不确定 D)0 答案:C

36.下面程序的输出是:()

main()

{ int x=3,y=6,a=0;

while (x++!=(y-=1))

{ a++;

if (y

}

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

}

A) x=4,y=4,a=1 B) x=5,y=5,a=1

答案:D

37.定义如下变量:int n=10;则下列循环的输出结果是:()

while (n>7)

{ n--; printf("%3d",n);

}

A) 10 9 8 B) 9 8 7

C) 10 9 8 7 D) 9 8 7 6

答案:B

38.以下程序段的输出结果是:()

int x=3;

do

{ printf("%3d",x-=2;

} while (!(--x));

A) 1 B) 3 0 C) 1 -2 D) 死循环

答案:C

39.执行下面的程序后,a的值为:()

main()

{ int a,b;

for (a=1,b=1;a<100;a++)

{

if (b>=20) break;

if (b%3==1)

{ b+=3; continue; }

b-=5;

}

}

A) 7 B) 8 C) 9 D) 10

答案:B

40.读程序:

main()

{ int num=0;

while (num<=2)

{ num++; printf("%3d",num);}

}

上面程序的输出结果是:()

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

答案:C

41.以下循环体的执行次数是:()

main()

{ int i,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

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

}

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

42.在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:()

A) switch B) continue

C) break D) if

答案:C

二、判断题:

1.( F )用1作while循环的判断条件,则循环一次也不执行。

2.( F )for循环表达式的括号内的3个表达式均不可以省略。

3.( T )语句while(!E);中的条件!E等价于E==0。

4.( T )语句while(E);中的条件E等价于E!=0。

5.( F )若有for( ; ; ){……},是指循环体执行0次。

6.( F )程序有死循环的时候,上机编译不能通过。

7.( T )强制终止死循环可以使用CTRL+BREAK组合键。

8.( F )执行for(I=0;I<3;I++);后I的值为2。

9.( F )执行for(I=0,j=0;I<2;I++);j=j+1;后j的值为1。

10.( T )所有类型的循环都可以进行嵌套使用。

11.( T )利用break语句可以提前终止循环的执行。

12.( F )利用continue语句可以提前终止循环的执行。

13.( F )break语句和continue语句不可以同时出现在同一个循环体内。

14.( F )switch语句中,每一个case的冒号后面都必须至少跟有一条语句

15.( F ) 关于if语句中,条件表达式只能是关系表达式或逻辑表达式

三、多选题

1、关于if语句,下列叙述正确的是:()

A.if语句中,条件表达式只能是关系表达式或逻辑表达式

B.if语句中,条件表达式的括号不可以省略

C.else子句不能作为一个独立的语句单独使用,必须是if语句的一部分。

D.if和else后面可以包含多个操作语句,此时要用一对大括号把这多个语句对括起来成为一个复合语句。

答案:BCD

2、以下4条语句,没有语法错误的是()

A.if (a>b) m =a; B.if (a);

C.if ((a=b)>=0) m=a; D.if ((a=b;)>=0) m=a;

答案:ABC

3、如果不加花括号表示else与if的配对关系,则else与if的匹配方法,不正确的是

A.else与它上面最远的if配对

B.else与它上面最近的if配对

C.else与离它最近的if配对

D.else与它上面最近的且没有和其他else配对的if配对

答案:ABC

4、关于条件运算符的叙述正确的是

A.条件运算符的优先级别比关系运算符和算术运算符都低

B.条件运算符是C语言中惟一的一个三目运算符

C.条件运算符的结合方向是“自右至左”

D.条件运算符可以替代任何if语句的功能

答案:ABC

5、关于switch语句叙述正确的是

A.语句中,case的冒号后面允许没有语句。

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、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); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

大学C语言期末考试习题集(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

大学大一C语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,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).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

相关文档
最新文档