当前位置:文档之家› C语言重点复习题2

C语言重点复习题2

C语言重点复习题2
C语言重点复习题2

第2章

1.下列叙述中正确的是()。

A.C语言中既有逻辑类型也有集合类型

B.C语言中没有逻辑类型但有集合类型

C.C语言中有逻辑类型但没有集合类型

D.C语言中既没有逻辑类型也没有集合类型

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

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

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

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

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头★3.下列4个选项中,()是合法的用户自定义标识符。

A.b-b B.float C.2a D._isw

4.以下选项中不正确的整型常量是()。

A.12L B.-10 C.1 900 D.123U ★5.以下选项中,()是不正确的字符常量。

A."a" B.'1' C.'\n' D.'\101

6.下列关于自增运算符++和自减运算符--的叙述中正确的是()

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

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

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

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

★7.下列表达式中值为0的是()。

A.3%5 B.3/5.0 C.3/5 D.3.0/5

8.设变量已正确定义并赋值,表达式()不符合C语言语法。

A.int(3.14)B.++a C.a=b=5 D.a=4,3

★9.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。

A.a:=b+1 B.a=b=c+2C.int 18.5%3 D.a=a+7=c+b 10.若变量已正确定义并赋值,表达式()不符合C语言语法。

A.a*b/c; B.3.14%2C.2, b D.a/b/c

11.下列选项中,()可以将x、y定义成float类型变量,并赋同一初值3.14。

A.float x, y=3.14; B.float x, y=2*3.14;

C.float x=3.14, y=3.14;D.float x=y=3.14;

★12.若变量已正确定义,表达式“j=3, j++”的值是()。

A.3B.4 C.5 D.0

1

13. 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式

abc 的表达式是()。

A. 1/a*b*c B.1/(a*b*c) C.1/a/b/(float)c D.1.0/a/b/c

14. 以下能正确定义且赋初值的语句是()

int n1=n2=10; B. char c=32; C. float f=f+1.1; D. double x=12.3E2.5;

15. 以下不能定义为用户标识符的是( )

A. scanf

B. Void

C. _3com_

D. int

16. 设x 、y 、z 和k 都是int 型变量,则执行表达式:x=(y=4,z=16,k=32+z)后,x 的值为 ( ) A .4 B .16 C .48 D .32 ★17. 设有 int x=11,则表达式(x++ * 1/3)的值是( )

A . 3

B .4

C . 11

D .12

18.以下变量x 、y 、z 均为double 类型且已正确赋值,不能正确表示数学式子z

y x 的C 语言表达式是

()。

A . x/y*z

B . x*(1/(y*z))

C . x/y*1/z

D . x/y/z

19. 有以下程序 main()

{ c har a1='M ', a2='m ';

printf("%c\n", (a1, a2) ); } 以下叙述中正确的是( ) A .程序输出大写字母M

B.程序输出小写字母m

C .格式说明符不足,编译出错 D.程序运行时产生出错信息 20. 以下程序运行后的输出结果是( ). main()

{ char p[]={'a ', 'b ', 'c '}, q[]="abc"; printf("%d %d\n", sizeof(p),sizeof(q)); };

A .4 4 B.3 3 C.3 4 D.4 3 21. 以下叙述中错误的是( ) A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大、小写字母代表不同标识

22.在C 语言中,下列属于构造类型的是()

A.整型 B 字符型 C 实型 D.数组类型 23.下列字符串属于标识符的是()

A. INT

B. 5_student

C. 2ong

D. !DF 24.C 语言中能用来表示整常数的进制是()

A.十进制、八进制、十六进制

B.十二进制、十进制

C.六进制、八进制

D.二进制、十进制 25.在C 语言中,回车换行符是()

A. \n

B. \t

C. \v

D. \b

26. 在ASCII 码表中可以看到每个小写字母的ASCII 码比它相应的大写字母的ASCII 码 () 。 A )大32 B )大64

C )小32

D )小64 ★27. 设d 为字符变量,下列表达式不正确的是() 。

A )d=97

B )d=?a ?

C )d=”a ”

D )d=?g ?

28.设d 为字符变量,下列表达式正确的是 () 。

A )d=678

B )d=?a ?

C )d=”d ”

D )d=?gjkl ?

★29. 已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为。main()

{char x,y;

x=?0?;y=?9?;

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

}

A)因输出格式不合法,输出错误信息B)48,57

C)0,9 D)48,58

30.已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为。main()

{char c=?A?;int i=10;

c=c+10;

i=c%i;

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

}

A)75,7 B)75,5

C)K,5 D)因存在非图形字符,无法直接显示出来

31.已知在ASCII集中,字母A的序号为65,下面程序的输出结果为。main()

{char c1=?B?,c2=?Y?;

printf(“%d,%d\n”,++c1,--c2);

}

A)输出格式不合法,输出错误信息B)67,88

C)66,89 D)C,X

★32. C语言中,运算对象必须是整型数的运算符是()。

A)% B)\ C)% 和\ D)** 33..下列常数中,合法的C 常量是()。

A)-0. B)?105?C)?AB?D)”35”

34.下列常数中,合法的C 常量是()。

A)”x-y”B)?105?C)?Be?D)7ff

35.下列常数中,合法的C 常量是()。

A)?\n?B)e-310 C)?DEF?D)?1234?

36.下列常数中,不合法的C 常量是()。

A)-0x2a B)lg3 C)?[? D ”CHINA”37.下列常数中,不合法的C 常量是()。

A)-0x3b B)123e+2.3C)?}?D)6e+7

38.下列符号中,可以作为变量名的是()。

A)+a B)12345e C)a3B D)5e+0 39.下列符号中,可以作为变量名的是()。

A)+c B)*X C)_DAY D)next day

★40. 若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为()。

A)1 B)2 C)2.0 D)2.5

★41.下列程序的执行结果是()。

#include

#define sum 10+20

main()

{

int b=0,c=0;

b=5;

c=sum*b;

printf("%d",c);

}

A)100 B)110 C)70 D)150

★42..下列程序的执行结果是()。

#include

#define sum (10+20)

mian()

{

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

a=sum;

b=5;

c=sum*b;

printf("%d",c);

}

A)100 B)110 C)70 D)150

★43. 表达式(int)2.1416的值为()。

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

44.表达式(double)(20/3)的值为。

A)6 B)6.0 C)2 D)3

45. 假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是()。

A)8 B)7

C)6 D)5

46.C语言规定标识符由()等字符组成.

A)字母数字下划线B)中划线字母数字

C)字母数字逗号D)字母下划线中划线

47. 已知ch是字符型变量,下面不正确的赋值语句

是:()。

A)ch=…\0? B)ch=…a+b?

C)ch=…7?+…9? D)ch=7+9

48. 若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为:()。

printf(“%f”,(x,y));

A)3.600000 B)5.800000

C)3.600000,5.800000 D)输出符号不够,输出不正确值

49. 设整型变量a值为9,则下列表达式中使b的值不为4的表达式:。

A)b=a/2 B)b=a%2

C)b=8-(3,a-5) D)b=a>5?4:2

2.2 填空题(同教材P39)

1.若x是浮点型变量,则表达式“x=10/4”的值是____2.000000______。

★2.下列程序段的运行结果为:___1,0.5_______。

double x1, x2;

x1=3/2;

x2=x1/2;

printf("%d,%.1f", (int)x1, x2) ;

3.执行下列程序段后变量i和j的值为:__ 9,2____。

int i=10, j=1;

(i--,++j);

4.表达式sizeof("hello")的值为_____6_____。

5.表达式“'c'+1”的值为___100_____,对应的英文字符为___d_______。

6.设有语句“int a=10;”,请分别填写下列各表达式的值。

(1)a+=a的值为_____20_____。

(2)a+=a-=a*=a的值为____0______。

(3)a*=2+4的值为___60_______。

7.写出下列各程序段执行后相应变量的值。

(1)int a,b,c;

a=b=c=5;

a=++b+(--c);

变量a,b,c的值为_10, 6 , 4____。

(2)int a=4,b=5,c;

c=(a=6)+(b=9);

变量a,b,c的值为_6,9,15_________。

(3) int a,b,c;

c=(a=5,b=a*4);

a=2+6,a*2,a*5;

c+=(a=b=3,b=a*c,a+b);

变量a,b,c的值为___3,60,83_______。

8.表达式“'H'-'A'+'0'”的值为__55________。

9. 写出下列程序段的执行结果

int a,b,c;

a=b=c=5;

a=++b+(c--);

变量a,b,c的值为11 6 4

★10. 若有如下程序段:

int a=10,b=9,c=8;

c=(a-=(b-5));

c=(a%11)+(b=5);

顺序执行上述语句后,变量b的值为5

11. 设有以下变量定义,并已赋确定的值

char w; int x; float y; double z;

则表达式:w * x + z - y所求得的数据类型为double。

12.C语言基本数据类型包括整型、字符型、实型、枚举类型。

13. C语言在定义变量的同时说明变量的数据类型,系统在编译时就能根据变量定义及其数据类型为它分配相应数量的存储空间。

14. 在C语言中,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须字母或下划线。

15. 实型变量分为单精度和双精度,即float和double型。

16.C语言中规定,在变量定义的同时也可以给变量赋初值,叫做变量初始化。

17. C的字符串常量是用双引号括起来的字符序列。(0级)

18.在C 语言中,系统在每一个字符串的结尾自动加一个“字符串结束标志符”即…\0?,以便系统据此数据判断字符串是否结束。

19. 下面的程序

mian()

{float x;int i;

x=3.6;i=(int)x;

printf("x=%f,i=%d",x,i);

}

运行结果为x=3.600000,i=3。

习题4

1.在C语言程序中,用()表示逻辑值“真”。

A.1 B.非0的数C.非1的数D.大于0 的数★2.在C语言程序中,做逻辑运算时判断操作数真、假的表述中,下列哪一个是正确的()。

A.0为假,非0为真B.只有1为真

C. 1为假,1为真D.0为真,非0为假

★3.表达式!(x>0||y>0) 等价于()。

A.!x>0||!y>0 B.!(x>0)||!(y>0)

C.!x>0&&!y>0 D.!(x>0)&&!(y>0)

★4.判断整型变量x、y中有且只有1个值为0的表达式为()。

A.!(x*y) && (x+y)B.(x*y)&&x+y

C.x*y==0 D.x==0&&y!=0

5.下列条件语句中,功能与其他语句不同的是()。

A. if(a) printf("%d\n",x); else printf("%d\n",y);

B. if(a==0) printf("%d\n",y); else printf("%d\n",x);

C.if (a!=0) printf("%d\n",x); else printf("%d\n",y);

D.if(a==0) printf("%d\n",x); else printf("%d\n",y);

★6.以下程序段中与语句“k=a>b?(b>c?1:0):0;”功能等价的是()。

A.if((a>b)&&(b>c)) k=1;B.if((a>b)||(b>c)) k=1

else k=0; else k=0;

C.if(a<=b) k=0; D.if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1;

else k=0

★7.以下程序执行后输出的结果是()

#include "stdio.h"

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,2D.2,2,3

8.下列各语句序列中,能够将变量u和s中的较大值赋值到变量t中的是()。

A.if(u>s)t=u ; t=s; B.t=s ; if(u>s)t=u;

C.if(u>s)t=s ; else t=u; D.t=u ; if(u>s)t=s;

★9.以下程序执行后的输出结果是()。

#include "stdio.h"

main( )

{int k=1,s=0;

switch(k) {

case 1: s+=10;

case 2: s+=20; break;

default: s+=3;

}

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

}

A.10 B.30 C.20 D.23

★10.以下程序执行后的输出结果是()。

#include "stdio.h"

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.编译时有错误,无结果11.以下程序执行后的输出结果是()。

#include "stdio.h"

main( )

{ char x='A';

x=(x>='A'&& x<='Z')? (x+32): x ;

printf("%c\n", x);}

A.A B.a C.z D.Z

★12.下列程序段执行后,变量k、x、y、z值依次为()。

int k,x,y,z;

x=y=z=1;

k=x++&&y++||z++;

A.1、2、2、1B.1、2、2、2

C.0、2、2、1 D.0、2、2、2

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

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

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

14. 设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是()

A. (!a==1)&&(!b==0)

B. (a

C. a && b

D.

a||(b+b)&&(c-a)

15. 能正确表示逻辑关系“a≥=10或a≤0”的C语言表达式是()。

A.a>=10 or a<=0 B.a>=0|a<=10 C.a>=10 && a<=0 D.a>=10‖a<=0

16. 下列运算符中优先级最高的是。

A)> B)+ C)&& D)!=

17.以下关于运算符优先级的描述中,正确的是。

A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算

B)&&(逻辑与)>算术运算>关系运算>赋值运算

C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算

D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)

18.逻辑运算符的运算对象的数据类型。

A)只能是0或1 B)只能是.T.或.F.

C)只能是整型或字符型D)任何类型的数据

★19. 以下程序的运行结果是。

main( )

{

int c,x,y;

x=1;

y=1;

c=0;

c=x++||y++;

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

}

A)110 B)211 C)011 D)001

★20. 以下程序的运行结果是。

main( )

{

int c,x,y;

x=0;

y=0;

c=0;

c=x++&&y++;

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

}

A)100 B)211 C)011 D)001

21.判断字符型变量ch为大写字母的表达式是。

A)?A?<=ch<=?Z?B)(ch>=?A?)&(ch<=?Z?)

C)(ch>=?A?)&&(ch<=?Z?)D)(ch>=?A?)AND(ch<=?Z?)22.判断字符型变量ch为小写字母的表达式是。

A)?a?<=ch<=?z?B)(ch>=a)&&(ch<=z)

C)(ch>=?a?)||(ch<=?z?)D)(ch>=?a?)&&(ch<=?z?)23.以下if语句书写正确的是。

A)if(x=0;)B)if(x>0)

printf(”%f”,x); {x=x+1; printf(”%f”,x);}

else printf(”%f”,-x); else printf(”%f”,-x);

C)if(x>0);D)if(x>0)

{x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) }

else printf(”%f”,-x); else printf(”%f”,-x);

★24.分析以下程序:

main( )

{ int x=5,a=0,b=0;

if(x=a+b) printf(“** **\n”);

else printf(“## ##\n”);

以上程序。

A)有语法错,不能通过编译B)通过编译,但不能连接

C)输出** ** D)输出## ##

25. 写出下面程序的执行结果。

main( )

{int x,y=1;

if(y!=0) x=5;

printf(“%d\t”,x);

if(y= =0) x=3;

else x=5;

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

}

A)1 3 B)1 5 C)5 3 D)5 5 ★26. 若有以下变量定义:

float x; int a,b;

则正确的switch语句是。

A)switch(x)

{ case 1.0:printf("*\n");

case 2.0:printf("* *\n");

}

B)switch(x)

{ case 1,2:printf("*\n");

case 3:printf("* *\n");

}

C)switch(a+b)

{ case 1:printf("*\n");

case 2*a:printf("* *\n");

}

D)switch(a+b)

{ case 1:printf("*\n");

case 1+2:printf("* *\n");

}

27. 以下关于运算符优先顺序的描述正确的是。

A)关系运算符<算术运算符<赋值运算符<逻辑运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑运算符

★28. 能正确表示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

29. 以下不正确的if 语句形式是。

A)if ( x > y && x != y ) ;

B)if ( x = = y ) x + = y ;

C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);

D)if ( x < y ) { x++; y++;}

★30. 能表示整数x符合下面两个条件的语句是。

(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.

A)(x%4==0&&x%100!=0)||x%400==0

B)(x%4==0||x%100!=0)&&x%400==0

C)(x%4==0&&x%400!=0)||x%100==0

D)(x%100==0||x%4!=0)&&x%400==0

★31.设有如下定义:char ch=?z?,则执行下面语句

后变量ch是值为:。

ch=(…A?<=ch&&ch<=…Z?)?(ch+32):ch

A)A B)a C)Z D)z

32.若I为整型变量,则下列程序段的运行结果为。

I=322;

if(I%2==0) printf(“#####”)

else printf(“*****”);

A)##### B)#####*****

C)***** D)有语法错误,无法输出结果

★33.已知int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为:。

if (x>y||xz)

z=x; x=y; y=z;

A)x=50, y=80, z=80 B)x=50, y=30, z=30

C)x=30, y=50, z=80 D)x=80, y=30, z=50

★34.已知int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为:。

if (x>y||xz)

{ z=x; x=y; y=z; }

A)x=50, y=80, z=80 B)x=50, y=30, z=30

C)x=30, y=50, z=80D)x=80, y=30, z=50

★35. 以下程序的输出结果是。

main( ) {int x=2,y=-1,z=2;

if (x

printf(“%d\n”,z); }

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

36.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:。

A)‘a’+ …b?B)a<=b

C)a||b+c&&b-c D)!( (a

37. 在C的if语句中,可用作判断的表达式是:。

A)关系表达式B)逻辑表达式

C)算术表达式D)任意表达式

38.下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为:。

A)0<=a || a<=5 ||6

B)0<=a&&a<=5 || 6

C)(0<=a||a<=5)&&(6

D)0<=a&&a<=5&&6

★39. 为了表示关系x>=y>=z,应使用C语言表达式。

A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)

C)(x>=y>=z) D)(x>=y)&(y>=z)

★40.下面程序的输出结果是。

main()

{int x=40,y=4,z=4;

x=y= =z;

printf(“%d”,x);

x=x= =(y-z);

printf(%d”,x);

}

A)4 0 B)4 1 C)1 1 D)1 0

★41.若x=3,y=z=4,则下列表达式的值分别为。

(1)(z>=y>=x)?1:0

(2)z>=y&& y>=x

A)0 1 B)1 1 C)0 0 D)1 0

42.若x=3,y=z=4,则下列表达式的值分别为。

(1)(z>=y>=x)?1:0

(2)y+=z,x*=y

A)0 24 B)1 8 C)0 8 D)1 12

4.2 填空题

★1.设x=-1,则表达式1

2.将下列条件写成C语言的逻辑表达式。

(1)a或b中有一个大于零:___ a>0 || b>0 _______。

(2)x大于零,并且x小于等于10:____x>0 && x<=10______。

(3)a、b和c同时等于1.5:___a==1.5 && b==1.5 && c==1.5_______。

(4)p小于a或p小于b或p小于c:___p

3.写出下列各逻辑表达式的值,设int a=3,b=6,c=8。

(1)a+b>c &&b==c:_____0____。

(2)a||b+c && b-c:____1______。

(3)!(a>b)&& ! c||1:_____1_____。

(4)!(x=a)&&(y=b)&& 1:____0______。

(5)!(a+b) c && b+c/2:____1______。

4.将变量a、b、c中的较大者赋给变量max的条件表达式为____(max=a>b?a:b)>c?max:c ______。

★5.下列程序执行后的输出结果是_____-4_____。

#include "stdio.h"

main( )

{ int n=0,m=1,x=2;

if(!n) x-=1;

if(m) x-=2;

if(x) x-=3;

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

}

★6.以下程序执行后的输出结果是____1______。

#include "stdio.h"

main( )

{ int p,a=5;

if(p=a!=0)

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

else

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

}

7.以下程序执行后的输出结果是_____5,0,3_____。

#include "stdio.h"

main( )

{ int a=4,b=3,c=5,t=0;

if(a

if(a

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

}

8.下列程序用于计算一元二次方程ax2+bx+c=0的根,程序中有不完整的地方,请在下划线处填写适当的语句或表达式以实现程序的功能。

#include "stdio.h"

#include "math.h"

main( )

{

double a,b,c,t,disc,twoa,root1,root2;

printf("Enter a,b,c:");

scanf("%lf,%lf,%lf",&a,&b,&c);

if [1] (a==0)

if [2] (b==0)printf("No answer because of input error\n");

else printf("The single root is %f\n", c/b);

else

{ disc=b*b-4*a*c;

twoa=2*a;

root1=-b/twoa;

t=abs(disc);

root2=sqrt(t)/twoa;

if [3] (disc<0)

printf("Complex roots\n real part=%f image part=%f\n",root1,root2);

else

printf("Real roots\n root1=%f root2=%f\n",root1+root2,root1-root2);

}

}

9. 下列程序段执行后,变量k、x、y、z的值依次为 1 1 0 1

int k,x,y,z;

x=y=z=0;

k=x++&&y++||++z;

10. 以下程序运行后的输出结果是10 20 0

main()

{ int a,b,c;

a=10; b=20; c=(a%b<1)||(a/b>1);

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

}

11. 以下程序运行后的输出结果是yes。

main()

{ int a=1,b=3,c=5;

if (c=a+b) printf("yes\n");

else printf("no\n"); }

★12. 若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式x==0。

13. 以下程序段的运行结果是x=1 y=0

x=2

int x=1,y=0;

switch(x)

{case 1:

switch(y)

{

case 0:printf("x=1 y=0\n");break;

case 1:printf("y=1\n");break;

}

case 2:printf("x=2\n");

}

14. 输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请在()内填入缺省的内容。(03试题)

main( )

{ char ch;

scanf(“%c”,&ch);

if (___ch>=?A?&& c<=?Z?____) ch=ch+32;

else if(ch>=?a?&&ch<=…z?) (__ch=ch-32___);

printf(”%c\n”,ch); }

★15. 以下程序的运行结果是:___-1______。(03试题)

main( )

{ int a = 2, b = 3, c ;

c = a ;

if ( a>b ) c = 1 ;

else if ( a == b ) c = 0 ;

else c = -1 ;

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

}

16. mian()

{int x,y,z;

x=3; y=z=4;

printf("%d",(x.y=.=x)?1:0);

printf("%d",z>=y&&y>x);

}

运行结果为0 1。

习题6

1.下列各函数首部中,正确的是()。

A.void play(var :Integer, var b:Integer)

B.void play(int a, b)

C.void play(int a, int b)

D.Sub play(a as integer, b as integer)

2.在C语言中,函数值类型的定义可以是默认类型,此时函数值的默认类型是()。

A.void B.int C.float D.double

3.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

★4.对C语言函数的有关描述中,正确的是()。

A.在调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参

B.C语言函数既可以嵌套定义又可以嵌套调用

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

D.C语言程序中有调用关系的所有函数必须放在一个源文件中

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

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

6.下列叙述中正确的是()。

A.C语言编译时不检查语法

B.C语言的子程序有过程和函数两种

C.C语言的函数可以嵌套定义

D.C语言所有函数都是外部函数

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

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

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

C.函数的形参都属于全局变量

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

★8.以下程序的运行结果是()。

#include "stdio.h"

int abc(int u, int v);

main( )

{int a=24,b=16,c;

c=abc(a,b);

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

}

int abc(int u,int v)

{ int w;

while(v)

{ w=u%v;u=v;v=w; }

return u;

}

A.6 B.7 C.8D.9

★9.以下程序的运行结果是()。

int f1(int x, int y)

{ return x>y? x : y; }

int f2(int x, int y)

{ return x>y? y :x ; }

main( )

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

d=f1(a,b); d=f1(d,c);

e=f2(a,b); e=f2(e,c);

f=a+b+c-d-e;

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

}

A.3,4,5 B.5,3,4 C.5,4,3 D.3,5,4 ★10.以下程序的运行结果是()。

void f(int x,int y)

{ int t;

if(x

main( )

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

f(a,b); f(a,c); f(b,c);

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

}

A.3,4,5 B.5,3,4 C.5,4,3 D.4,3,5 11.以下程序的运行结果是()。

int f( )

{static int i=0;

int s=1;

s+=i; i++;

return s;

}

main( )

{int i,a=0;

for(i=0;i<5;i++) a+=f( );

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

}

A.20 B.24 C.25 D.15

★12.以下程序的运行结果是()。

int func(int a,int b)

{ return(a+b);}

main( )

{ int x=2,y=5,z=7,r;

r=func(func(x,y),z);

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

}

A.12 B.13 C.14 D.15 13.以下程序的运行结果是()。

f(int a)

{ int b=0;

static int c = 3;

b++; c++;

return(a+b+c);

}

main( )

{ int a=2,i;

for(i=0;i<3;i++) printf("%d\n",f(a));

}

A.7B.7 C.7 D.7

8 9 10 7

9 11 13 7

★14.以下程序的运行结果是()。

int a, b;

void fun( )

{ a=100; b=200; }

main( )

{ int a=5, b=7;

fun( );

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

}

A.100200 B.57C.200100 D.75

★15.以下程序的运行结果是()。

int x=3;

main( )

{ int i;

for(i=1;i

}

void nore( )

{ static int x=1;

x*=x+1;

printf("%d",x);

}

A.3 3 B.2 2 C.2 6D.2 5

16. 有如下函数调用语句

func(recl,rec2+rec3,(rec4,rec5));

该函数调用语句中,含有的实参个数是( )。

A. 3

B. 4

C. 5

D. 有语法错误

★17. 有如下程序

int func(int a,int b)

{ return(a+b);}

main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出结果是( )。

A. 12

B. 15

C. 14

D. 13

18. 以下关于函数的叙述中正确的是( )

A.每个函数都可以被其它函数调用(包括main函数)

B.每个函数都可以被单独编译

C.每个函数都可以单独运行

D.在一个函数内部可以定义另一个函数

19. 在C语言程序中,有关函数的叙述正确的有( )。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和调用均不可以嵌套

D.函数的定义和调用均可以嵌套

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

long fib(int n)

{if (n>2) return(fib(n-1)+fib(n-2));

else return(2); }

main()

{ printf(“%d\n”,fib(3));}

A.2

B.6

C.4

D.8

21. 下列各函数首部定义正确的是()。

A. void play(var:ineger,var b:integer)

B. double play(int a,b)

C. float play(int a,int b)

D. sub play(a as integer,b as integer)

★22. 以下程序运行后的输出结果是()。

#define N 20

fun(int a[], int n, int m)

{ int i, j;

for(i=m; i>=n; i--) a[i+1]=a[i];

}

main()

{ int i, a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

for(i=0; i<5; i++) printf("%d",a[i]);

}

A. 10234

B. 12344

C. 12334

D. 12234

23. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传回实参D.传递方式由用户指定

24.设有以下函数:

f ( int A.

{ int b=0;

static int c = 3;

b++; c++;

return(a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是()。

main()

{ int a = 2, i;

for(i=0; i<3; i++) printf("%d,",f(a));

}

A.7,8,9, B.7,9,11, C.7,10,13, D.7,7,7,

★25. 以下函数值的类型是()。

fun ( float x )

{ float y;

y=3*x-4;

return y;

}

A.int B.不确定C.void D.float

26. 以下函数定义正确的是:。

A)double fun(int x, int y) B) double fun(int x; int y)

C) double fun(int x, int y) ; D) double fun(int x ,y)

27.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:。

A)地址传递;B)单向值传递;

C)双向值传递;D)由用户指定传递方式

28.以下关于C语言程序中函数的说法正确的是:。

A)函数的定义可以嵌套,但函数的调用不可以嵌套;

B)函数的定义不可以嵌套,但函数的调用可以嵌套;

C)函数的定义和调用均不可以嵌套;

D)函数的定义和点用都可以嵌套。

29.以下正确的函数形式是:。

A)double fun(int x,int y) B)fun (int x,y)

{z=x+y;return z;} {int z;return z;}

C)fun(x,y) D)double fun(int x,int y)

{int x,y; double z; {double z;

z=x+y; return z;} z=x+y; return z;}

30.以下说法不正确的是:。

C 语言规定A)实参可以是常量、变量或表达式

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

C)实参可以是任意类型

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

31.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。

A) float型B) int 型C)long 型D)double 型

32.以下错误的描述是。

函数调用可以

A)出现在执行语句中B)出现在一个表达式中

C)做为一个函数的实参D)做为一个函数的形参

33.若用数组名作为函数调用的实参,传递给形参的是。

A)数组的首地址B)数组第一个元素的值

C)数组中全部元素的值D)数组元素的个数

34. 以下不正确的说法为。

A)在不同函数中可以使用相同名字的变量

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

★35. 下面程序的正确运行结果是:。

main( )

{int a=2, i;

for(i=0;i<3;i++) printf(“%4d”,f(a) ); }

f( int a)

{ int b=0; static int c=3;

b++; c++;

return (a+b+c);}

A)777B)71013C)7911D)789

36. 有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5);

该函数调用语句中,含有的实参个数是。

A) 3B) 4 C) 5 D) 有语法错

37. 有如下程序

int runc(int a,int b)

{ return(a+b);}

main( )

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出的结果是。

A) 12 B) 13 C) 14 D) 15

★38. 有以下程序

main()

{ char s[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

执行后输出结果是。

A) 赋初值的字符串有错B) 6,7

C) 5,6 D) 6,6

39. 以下对C语言函数的有关描述中,正确的是。

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

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

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

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

40. 以下函数值的类型是。

fun ( float x )

{ float y;

y= 3*x-4;

return y;

}

A)int B)不确定C)void D)float

★41. 下面程序的输出结果是:。

int m=13;

int fun( int x, int y)

{ int m=3;

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (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;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言选择题题库

C语言程序设计题库说明 一本题库适用对象 计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业 二本题库包含有175道选择题 三本题库所有题目均附有答案

一、选择题 下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。 1、不合法的整数是()。 A)0x35 B)43.6 C)0532 D)-346 2、下列合法的字符常量是()。 A)“f” B)x C)65 D)‘\Xab’ 3、设有整型变量x,单精度变量y=,表达式x=float(y*3+((int)y%4))执行后,x的值为()。 A)17 B)17.500000 C) D) 4、在C语言中,负整数在内存中以()形式释放。 A)补码 B)BCD码 C)反码 D)十进制数 5、在C语言中,要求参加运算的数必须是整数的运算符是()。 A)/ B)!C)% D)= = 6、()是C语言中非法的数据类型关键字。 A)float B)singed C)integer D)Char

7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为()。 A)1 B)5 C)6 D)以上三个答案都不正确 8、下列语句的输出结果是()。 printf(“%f\n”,(float)(2+4)/2); A)有语法错误不能通过编译 B)3 C)D) 9、C语言中,整数-8在内存中的存储形式是()。 A)1111,1111,1111,1000 B)1000,0000,0000,1000 C)0000,0000,0000,1000 D)1111,1111,1111,0111 10、设C语言中,int类型数据占2个字节,则long类型数据占()个字节。 A)1 B)2 C)8 D)4 11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。 A)a=(a*100+/ B)a=(a*100+/100 C)a=(int)(a*100+/ D)a=(a/100+*

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=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 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言题库_选择题(1)

本卷共有4道大 一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分) A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是(B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是(D)(2分) A、10>=a>=0 B、a>=0 and a<=10 C、a>=0||a<=10 D、a>=0&&a<=10 6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分)A、6.500000B、6 C、5.500000 D、6.000000

7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)(2分) 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); 8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分)A、把x和y按从大到小排列B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分)A、0B、0.5 C、1 D、2 10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是(B)。(2分) A、A B、a C、Z D、z 11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b-- <=0);printf(“%d %d %d\n”,k,a,b);后的输出结果是(D )。 (2分) A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4 12、设intx=1, y=1;表达式(!x||y--)的值是(B)。(2分) A、0B、1 C、2 D、-1 13、程序段intx=3;do{printf(“%d”,x-=2);}while(!(--x));的输出结果是(C)。(2分) A、1 B、30 C、1-2 D、死循环

(完整版)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; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

C语言程序设计模拟试题2(附答案)new

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是______ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) { if (x>amax) amax=x; else if (x

} 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 1 14131312121+? ++?+?+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

C语言单项选择题

单项选择题(本大题共20小题,每小题1分,共20分) 1.C++源程序文件扩展名为(A) A..cpp B..h C..1ib D..obj 5.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)A.free B.create C.delete D.realse 6.从本质上看,引用是被引用变量的(B) A.拷贝 B.别名 C.复制 D.克隆 7.在函数调用时,如某一默认参数要指明一个特定值,则有(B) A.其之前所有参数都必须赋值B.其之后所有参数都必须赋值 C.其前、后所有参数都必须赋值D.其前、后所有参数都不必赋值 8.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C) A.int m=max(22,max(59,70));B.int m=max(max(22,59),70); C.int m=max(22,59,70);D.int m=max(59,max(22,70)); 9.设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是(B) A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47); C.int m=min(15,min(47,26)); D.int m=min(min(47,26),16); 13.函数int&min(int&,int&)返回参数中较小者,设有两整型变量int a=10;int b=15; 在执行语句min(a,b)--;之后,a,b值分别为(B) A.9,14 B.9,15 C.10,14 D.10,15 16.设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为(C) A.10,10 B.10,15 C.15,10 D.15,15

C语言考试题库及答案,推荐文档(2)

C 语言理论上机考试选择题部分(共200 题) 1、下面程序的输出是___D ______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D _______ A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是_______ A ____ . A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9 的值是________ D ___ . A) true B) 非零值C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是 B . A) Double B) short C) integer D) Char 6、字符(char) 型数据在微机内存中的存储形式是 __D__. A) 反码B) 补码C) EBCDIC 码D) ASCII 码 7、 C 语言程序的基本单位是 ____ C _____ . A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是 ___ D ___ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10 、下面程序的输出是____ B _____ . {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11 、下面程序的输出的是_____ C ___ . #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ . #include void 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) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0 的关 系,则能正确表示这一关系的表达式为_______ D__. A) a<>0 B) !a C) a=0 D) a 14、以下程序的输出结果是____ D _____. #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是____ D ____ . A) 1 B) 0 C) 4 D) 3 16、为表示关系x > y > z,应使用C语言表达式 ___A___. 17、 C 语言中非空的基本数据类型包括_____ B ___ . A) 整型,实型,逻辑型B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 #include void main() A) (x>=y)&&(y>=z) C) (x>=y>=z) B) (x>=y)AND(y>=z) D) (x>=y) & (y>=z)

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

相关主题
文本预览
相关文档 最新文档