文档库 最新最全的文档下载
当前位置:文档库 › C语言模拟题十套附答案

C语言模拟题十套附答案

C语言模拟题十套附答案
C语言模拟题十套附答案

第一部分:选择题(40分,20小题/套)

概述

1、下面关于C语言的叙述中,正确的是(D)

A. 每行只能写一条语句

B. 程序中必须包含有输入语句

C. main函数必须位于文件的开头

D. 每条语句最后必须有一个分号

2、下面关于C语言的叙述中,错误的是(B)

A. 若一条语句较长,也可分写在下一行上

B. 构成C语言源程序的基本单位是表达式

C. C语言源程序中大、小写字母是有区别的

D. 一个C语言源程序可由一个或多个函数组成

3、关于C语言数据类型的叙述,正确的是()

A. 枚举类型不是基本类型

B. 数组不是构造类型

C. 变量必须先定义后使用

D. 不允许使用空类型

4、C程序中main函数的位置(C)

A. 必须在最开始

B. 必须在系统库函数后面

C. 可以在自定义函数后面

D. 必须在最后

5、C语言的函数体由(B)括起来

A. ( )

B. { }

C. [ ]

D. /* */

6、关于C语言的叙述中,不正确的是(C)

A. C程序可由一个或多个函数组成

B. C程序必须包含一个main()函数

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

D. 注释说明只能位于一条语句的后面

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

A. 本程序的第一个函数开始,到最后一个函数结束

B. 本程序的main函数开始,到main函数结束

C. 本程序的main函数开始,到最后一个函数结束

D. 本程序的第一个函数开始,到main函数结束

8、结构化程序设计的三种基本结构是(C)

A. 函数结构、分支结构、判断结构

B. 函数结构、嵌套结构、平行结构

C. 顺序结构、分支结构、循环结构

D. 分支结构、循环结构、嵌套结构

9、调试程序是指对程序进行(C)

A. 编辑

B. 编译

C. 查错和排错

D. 连接

10、C语言中,复合语句的构成是将一系列语句置于(C)

A. begin与end之间

B. 一对圆括号“()”之间

C. 一对花括号“{ }”之间

D. 一对方括号“[ ]”之间

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

A. 语句

B. 过程

C. 表达式

D. 函数

语法基础

12、在C语言中,正确的用户标识符是(B)

A. 3f

B. _for

C. struct

D. _f.5

13、C语言的基本数据类型包括(A)

A. 整型、实型、字符型

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

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

D. 整型、实型、逻辑型

14、以下(D)是正确的常量

A. E-5

B. 1E5.1

C. …a12?

D. 32766L

15、以下(D)是正确的变量名

A. a.bee

B. –p11

C. int

D. p_11

16、以下(C)是正确的字符常量

A. “c”

B. …//”

C. …W?

D. “\32a”

17、以下(A)是不正确的字符串常量

A. …abc?

B. “12?12”

C. “0”

D. “ “

18、C语言的整型数据在内存中的存储形式是(C)

A. 原码

B. 反码

C. 补码

D. ASCII码

19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字

A. e3

B. .62

C. 2e4.5

D. 123

20、下列不属于C语言关键字的是(D)

A. continue

B. integer

C. static

D. signed

21、C语言的字符型数据在内存中的存储形式是(D)

A. 原码

B. 补码

C. 反码

D. ASCII

22、在C语言中,变量所分配的内存空间大小是(A)

A. 由变量的类型决定

B. 由用户自己决定

C. 任意的

D. 均为两个字节

23、若有定义:int a=2;则正确的赋值表达式是(A)

A. a-=(a*3)

B. double(-1)

C. a*3

D. a*4=3

24、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()

A. 3,3,4

B. 4,4,3

C. 4,4,4

D. 3,4,3

25、语句a=(3/4)+3%2;运行后,a的值为(B)

A. 0

B. 1

C. 2

D. 3

26、以下四项中,符合C语言语法的语句是(C)注意分号

A. int a+b=c;

B. int a=12:b=12:c=12;

C. int a=12,b=12,c=12;

D. int a,b=12,float c=21

27、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()

A. 3,3

B. 4,4

C. 4,3

D. 3,4

28、若变量已正确定义并赋值,符合C语言语法的表达式是()

A. a=8+b+c,a++

B. a=3a

C. int(12.3%4)

D. a=a+1=c+b

29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()

A. x%(-3)

B. a+=-1

C. a=b=2

D. x=a+b

30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)

A. x=x*3=2

B. x=(y==1)

C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)

D. i%(-3)

31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()

A. 8

B. 7

C. 6

D. 5

32、下面关于C语言变量的叙述中,错误的是(C)

A. 可以用const关键字定义变量

B. 在C程序中,SUM和sum是不同的变量

C. 变量名必须由字母或下划线组成(可是是字母和数字组合)

D. 变量的类型确定了变量的取值范围

33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()

A. 5

B. 1

C. 6

D. 0

34、下面叙述正确的是(B)

A. 2/3与2.0/3.0等价

B. (int)2.0/3与2/3等价

C. ++5与6等价

D. …A?与”A”等价

35、下面叙述中,错误的是(A)

A. C语言基本的算术运算符不包含模运算符”%”

B. 算术运算符的优先级高于关系运算符

C. 自加和自减运算符的结合方向是”自右向左”

D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行

36、下面叙述正确的是(A)

A. 强制类型转换运算的优先级高于算术运算

B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)

C. …A?*?B?是不合法的

D. “A”+”B”是合法的只能字符间运算

37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)

A. 1

B. 0

C. 6

D. 7 (i先运算再减减,加了括号也一样

38、设整型变量a为5,使b不为2的表达式是(C)

A. b=(++a)/3

B. b=6-(--a)

C. b=a%2

D. b=a/2

39、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)

A. 1

B. 0

C. 2

D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)

40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)

A. 7

B. 8

C. 9

D. 10 (i++要算完)

41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)

A. 7

B. 8

C. 9

D. 10

42、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)

A. 8

B. 6

C. 7

D. 5 红字部分先算

43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)

A. 4

B. 5

C. 6

D. 7 ( i先运算再--

44、C语言的运算符按运算对象的个数可以分为(C)

A. 单目运算符一种

B. 单目和双目运算符

C. 单目、双目和三目运算符

D. 单目、双目、三目和四目运算符

45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)

A. scanf(“%5.2f”,&m);

B. scanf(“%3.2f”,&m);

C. scanf(“6.2f”,&m);

D. scanf(“%6f”,&m);

46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()

A. scanf(“%l d”,&a);

B. scanf(“%l f”,&a);

C. scanf(“%c”,&a);

D. scanf(“%u”,&a);

47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)

A. scanf(“%d”,&a);

B. scanf(“%l f”,&a);不可能是实数

C. scanf(“%c”,&a);

D. scanf(“%u”,&a);十进制无符号

48、putchar()函数的功能是向终端输出(B)

A. 多个字符

B. 一个字符

C. 一个实型变量值

D. 一个整型变量表达式

49、以下程序段运行后的输出结果是(C)

int k=11;

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

A. k=11,k=13,k=c

B. k=11,k=12,k=13

C. k=11,k=13,k=b

D. k=11,k=13,k=a

50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)

A. 123412312

B. 12341234123412341231231231212

C. 1234+1234+1234

D. 1234+123+12

51、已有如下定义和输入语句,

int a;char c1,c2;

scanf(“%d%c%c”,&a,&c1,&c2);

若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()

A. 10AB

B. 10 A B

C. 10A B

D. 10 AB

52、以下程序段的运行结果是(A)

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

if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)

c++;

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

A. 0,0

B. 1,2

C. 2,2

D. 1,0

53、以下程序的运行结果是()

void main()

{

int a=65;

c har c=?A?;

printf(“%x,%d”,a ,c);

}

A. 65,a

B. 41,a

C. 65,65

D. 41,65

54、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)

A. printf(“%d%d”,a,b);

B. printf(“%d%2f”,a,b);

C. printf(“%2f%2f”,a,b);

D. printf(“%2f%d”,a,b);

55、运行以下程序段时编译出错,其原因是(A)

char c1='8',c2='2008';

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

A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量

B. 字符串要用“2008“表示,而‘2008’不是字符串表示

C. ‘2008’只能赋值给字符数组

D. 字符变量不能用%d格式输出

56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)

A. 1

B. 0

C. t

D. f

57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)

A. 1

B. 非0的数

C. 大于0的数

D. 非0的整数

58、若已定义:int a=-36,b=-30,c;则语句c=a

A. 1

B. t

C. 0

D. f (有符号的比较,按负数进行比较)

59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)

A. (y<=800)&&(y>=500)

B. (y<=800)AND(y>=500)

C. 800>=y>=500

D. (y<=800)&(y>=500)

60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不

是零就是一

A. 1

B. 0

C. 3

D. 4

61、若有定义:int i=7,j=8;则表达式i>=j||i

A. 1

B. 变量i的值

C. 0

D. 变量j的值

62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。则不能满足要求的表达式是()

A. a%2==1

B. !(a%2==0)

C. !(a%2)

D. a%2

63、若有定义:int x=3,y=4,z=5;则值为0 的表达式是()

A. ‘x’&&y

B. x<=y

C. x||y+z&&y-z

D. !((x

64、若有定义:int a=5,b=2,c=1;则表达式a-b

A. 0

B. 1

C. 3

D. -1

65、C语言中,能正确表示条件10

A. 10

B. x>10||x<20

C. x>10&&<20

D. (x>10)&&(x<20)

66、以下运算符中优先级最低的是()

A. <<

B. &

C. >>

D. |

67、已知double a=5.2;则正确的赋值表达式是(A)

A. a+=a-=(a=4)*(a=3)

B. a=a*3=2

C. a%3 (赋值语句必须有“= ”)

D. a=double(-2)

68、已知char a='R';则正确的赋值表达式是()

A. a=(a++)%4

B. a+2=3

C. a+=256--

D. a=?\078?

69、已知int a=?R?;则正确的表达式是(A)

A. a%10

B. a=int(3e2) 要将(int)

C. 2*a=a++

D. a=a+a=a+3

70、设有语句float x=3.0,y=3.0;使x值为6.0的表达式是()

A. x*=y-4

B. x*=y

C. x=y+4

D. x+=y

71、若有定义:float x=3.5,int z=8;则表达式x+z%3/4的值为()

A. 3。75

B. 3.5

C. 3

D. 4

72、设有语句int x=3,y=3,a=1,b=2;表达式(x=a>b)&&(y=b>a)的值是()

A. 8

B. 1

C. 5

D. 0

73、若有定义:int a=2,b=3;float x=3.5,y=2.5;

则表达式(float)(a+b)/2+(int)x%(int)y的值是()

A. 3.5

B. 3.0

C. 2.5

D. 2.0

74、若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)/4的值是(B)

A. 2.5

B. 3.5

C. 4.5

D. 5.5

75、若有定义:int a=6,b=2;char c1=’a’,c2=’b’;则表达式a+b%5+c2-c1的值是(C)

A. 7

B. 8

C. 9

D. 表达式错误

76、在下列运算符中,优先级最高的运算符是(C)

A. <=

B. !=

C. !

D. ||

77、设有定义:char c;float f;int i;unsigned u;double d;下列各表达式的类型分别是(A)

1. u+9

2. d!=f&&(i+2)

3. 8.2*i+c

A. 1. unsigned,2.int,3.double

B. 1.double,2.double,3.double

C. 1.int,2.double,3.char

D. 1.unsigned,2.double,3.int

控制结构

78、以下程序段运行时,若从键盘输入10,则输出结果是(D

int a;

scanf(“%d”,&a);

if(a++>10) (先与10比较,再a++;)

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

else

printf(“%d\n”,++a); (++a后输出)

A. 2

B. 11

C. 3

D. 12

79、以下程序的运行结果是()

void main()

{

int x,y=1,z;

z=-1;

if(z==0)

z=-z;

else

x=y>0?3:5;

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

}

A. -1

B. 3

C. 1

D. 5

80、对于整型变量x,下属if语句()与赋值语句:x=x%2==0?1:0;不等价。

A. if(x%2!=0) x=0;else x=1;

B. if(x%2) x=1;else x=0;

C. if(x%2==0) x=1;else x=0;

D. if(x%2==1) x=0;else x=1;

81、以下程序段运行的结果是()

int a,b,c,x;

a=b=c=0;x=15;

if(!a) x--;

else if(b);

if(c) x=3;

else

x+=4;

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

A. 15

B. 17

C. 18

D. 19

82、若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为(D

if(a

{c=a;a=b;b=c;} (c=1,a=2,b=c=1)

A. a=1,b=2,c=3

B. a=2,b=3,c=1

C. a=2,b=3,c=3

D. a=2,b=1,c=1

83、以下程序段运行后变量a的值为()

int x=6,y=5;

int a;

a=(--x==y++)?x:y+1

A. 0

B. 1

C. 6

D. 5

84、以下程序的运行结果是(C

void main()

{

i nt n=?e?;

switch(n--) (n将一直减下去,知道遇到break为止,n=e 后面语句没有,所以就输出error,因为后面没跟break ,所以继续向下执行直到遇到break为止)

{

defalut:printf(“error”);

c ase …a?:

c ase …b?:printf(“good”);break;

c ase …c?:printf(“pass”);

c ase …d?:printf(“warn”);

}

}

A. error

B. good

C. error good

D. warn

85、以下程序的运行结果是(C

void main()

{

i nt n=?c?;

switch(n++)

{

defalut:printf(“error”);

c ase …a?:

c ase …b?:printf(“good”);break;

c ase …c?:printf(“pass”);

(因为后面没跟break,所以继续往下执行输出warn)

c ase …d?:printf(“warn”);

}

}

A. pass

B. warn

C. pass warn

D. error

86、以下程序的运行结果是(D

void main()

{

int n=5;

if(n++>6) (n先与6比较,再n++

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

else

printf(“%d\n”,++n); (先++后输出

}

A. 4

B. 5

C. 6

D. 7

87、下面关于switch语句的叙述中,错误的是(A)

A. case后面的表达式可以是关系表达式

B. switch语句是多分支选择语句

C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象

D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句

88、若有定义:int a=1,b=2,c=3;则以下程序段运行后c的值为(D

if(a>b)

c=a*b;

else

c=a-b;

A. 2

B. 0

C. 1

D. -1

89、若有定义:int x;以下不会产生死循环的是(A

A. for(;(x=getchar())!=?\n?;);

B. while(1){x++;}

C. for(i=10;;i++);

D. for(;;x+=1);

90、在循环语句的循环体中,break语句的作用是(D

A. 暂停程序的运行

B. 结束本次循环

C. 继续执行break语句之后的循环体各语句

D.提前结束循环,接着执行该循环后续的语句

91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为(A

int i,j,count=0;

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

{

count+=2;

printf(“%d”,count);

}

A. 4次

B. 10次

C. 16次

D. 20次

92、在c语言中while循环和do-while循环的主要区别是(B

A. do-while循环体内可以使用break语句,while循环体内不能使用break语句

B. do-while的循环体至少无条件执行一次,while的循环体不是

C. do-while循环体可以使用continue语句,while循环体内不能使用continue语句

D. while的循环体至少无条件执行一次,do-while的循环体不是

93、以下程序段运行后,循环体运行的次数为(A)

int i=0,x;

for(;i<10;i++) x=x+i;

A. 10

B. 0

C. 1

D. 无限

94、以下程序段运行后变量n的值为(D

int i=1,n=1;

for(;i<3;i++) (遇到continue后直接返回验证循环条件,不在往下执行{continue;n=n+i;}

A. 4

B. 3

C. 2

D. 1

95、有以下程序:

void main()

{

int i;

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

switch(i)

{

case 1:printf(“%d”,i);

case 2:printf(“%d”,i);

case 3:printf(“%d”,i);

}

}

执行后输出的结果是(A

A. 11122

B. 01222

C. 013020

D. 120

96、以下程序的运行结果是(C

void main()

{

int sum=0,item=0;

while(item<5)

{

item++;

sum+=item;

if(sum>=6)

break; (当sum>=6时马上跳出循环,不在管item是否大于5了}

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

}

A. 10

B. 15

C. 6

D. 7

97、以下程序的运行结果是(B

voin main()

{

int sum=0,item=0;

while(item<5)

{

item++;

if(item==2) (检查item是否等于2,如果是则跳出循环,在检测item是否小于 5 ,如果item不等2则进行sum+=item运算)

continue;

sum+=item;

}

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

}

A. 10

B. 13

C. 15

D. 1

98、以下程序段执行后变量sum的值为(C

int i,j=1,sum=0;

for(i=1,i<=3,i++)

{

sum+=j;

j++;

}

A. 5

B. 3

C. 6

D. 4

99、以下程序的运行结果是(D

#include

main()

{

int y=10;

do

{y--;}

while(--y);

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

}

A. 1

B. 2

C. -1

D. 0

数组

100、C语言中数组元素下标的数据类型是()

A. 实型常量

B. 整型常量或整型表达式

C. 任何类型的表达式

D. 字符型常量

101、下列数组定义中,正确的是()

A. int a[10];

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

C. int N=10;int a[N];

D. int n;scanf(“%d”,&n);int a[n];

102、若已定义:int a[13];则不能正确引用a数组的元素的是()

A. a[0]

B. a[10]

C. a[10+3]

D. a[13-5]

103、若有定义:int a[3]={0,1,2};则a[1]的值为()

A. 0

B. 1

C. 2

D. 3

104、若有定义:int a[5]={1,2,3,4,5};

则语句a[1]=a[2]+a[2+2]-a[3-1];运行后a[1]的值为()

A. 6

B. 5

C. 1

D. 2

105、以下合法的数组定义是(C)

A. int a[ ]=“string”; 数组类型定义错误

B. int a[5]={0,1,2,3,4,5}; 注意数组的存储空间大小

C. char a[ ]={0,1,2,3,4,5};

D. char s={“string”};少了一个中括号[ ],char

s[ ]=”string”是正确的大括号可以去掉,或者可以改成char *s=“string”

106、若有如下程序段:

char s[10];

s=“abcd”;

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

则(A)。

A. 执行时输出:abcd

B. 执行时输出:a

C. 执行时输出:ab

D. 编译不通过

107、下面程序段的运行结果是(C)

int i=0,a[]={7,5,7,3,8,3};

do{

a[i]+=2; 首先循环一次

}while(a[++i]>5); a[1]==5 所以跳出循环向下执行

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

printf("%d",a[i]);

A. 9 7 9 5 10 5

B. 9 5 9 3 10 3

C. 9 5 7 3 8 3

D. 7 5 7 3 8 3 108、下面程序段的运行结果是(A)

int i=0,a[]={1,2,3,4,5};

do{

a[i]+=10;

}while(a[++i]>2);

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

printf("%d",a[i]);

A. 11 2 3 4 5

B. 1 2 3 4 5

C. 11 12 13 14 15

D. 11 12 3 4 5 109、西面关于数组的叙述中,正确的是(A)

A. 数组必须先定义,然后使用

B. 定义数组时,可不加类型说明符

C. 定义数组后,可通过赋值运算符“=”对该数组名直接赋值

D. 在数据类型中,数组属于基本类型

110、一下程序段的运行结果是(C)

int i=0,a[]={6,5,3,7};

do

{

a[i]++;

}while(a[i]<4);

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

A. 6537

B. 7563

C. 7537

D. 5673

111、有如下程序段:

int t[][3]={1,2,3,4,5,6,7,8,9,10,11,12};

printf("%d\n",t[2][1]);

则执行该程序段后输出结果是()

A. 8

B. 7

C. 4

D. 2

112、以下程序段运行后s的值是(B)

int a[3][3]={1,2,3,1,2,3,1,2,3};

int i,j,s=1;

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

for(j=i;j<3;j++) s*=a[i][j]; 1*2*3*2*3*3

A. 18

B. 108

C. 2

D. 12

113、以下不能对二维数组arr进行正确初始化的语句是(C)

A. int arr[2][3]={0};

B. int arr[][3]={1,2,3,4,5};

C. int arr[2][3]={{1,2},{3,4},{5,6}};3行四列

D. int arr[2][3]={{1},{3,4,5}}; 114、若有定义:int a[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为()

A. 0

B. {1,2}

C. 1

D. 3

115、若有定义:int a[3][3];则表达式&a[2][1]-a[0]的值为()

A. 7

B. 8

C. 6

D. 9

116、若有定义:int i=0,x=0;int a[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x 的值为(C)

for(;i<3;i++) x+=a[i][2-i]; 0+3+5+7

A. 0

B. 12

C. 15

D. 18

117、若有定义int a[2][3];则对数组元素的非法引用的是(D)

A. a[0][1/2]

B. a[1][1]

C. a[4-4][0]

D. a[0][3]

118、以下数组定义中,正确的是()

A. int a[2][]={1,2,3,4,5};

B. int a[][2]={{0},{}};

C. int a[2][2]={{1,2},{3}};

D. int a[][]={1,2,3,4};

119、若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为(A)a表示第一行的首地址所以内存空间只有第一行的3*2÷2

A. 3

B. 4

C. 5

D. 9

120、以下程序段运行后s的值是(A)

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

int i,j,s=1;

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

for(j=i+1;j<3;j++) s*=a[i][j]; 2*3*1

A. 6

B. 120

C. 24

D. 480

121、设已定义:int a[][4]={0,0};则下列描述错误的是()

A. 数组a的每个元素都可得到初值0

B. 二维数组a的第一维大小为1

C. 数组a的行数为1

D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

122、设已定义:char str1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()

A. str1=”Fujian”

B. strcpy(str1,str2);

C. strcpy(str2,str1);

D. str1=str2;

123、有如下定义:char str[3][2]={ 'a','b','c','\0','e','f'};则语句:printf("%s",str[0]);的输出结果是(D)str[ 0]相当于str

A. ab

B. abcef

C. abc\0

D. abc

124、设有如下数组定义:char str[8]={ "Fu jian"};则分配给数组str的存储空间是(C)字节空格也算

A. 6

B. 7

C. 8

D. 9

125、若有定义:char a[]="abcdef";char b[]="xyz";则以下程序段运行后屏幕输出为()

strcpy(a,b);

printf("%c",a[2]);

A. c

B. z

C. \0

D. d

126、以下程序段运行后屏幕输出为()

char a[]="abc\0mis";

printf("%d",strlen(a));

A. 5

B. 8

C. 3

D. 4

127、若有定义:int a=2;则语句a=strcmp("miss","miss");运行后a的值为()A. 1 B. 0 C. -1 D. 2

128、以下对C语言字符数组描述中,正确的是(C)

A. 可以用length函数计算字符数组中字符串的长度length 函数只能计算出字符个数,不计算\0

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

C. 存放在字符数组中的字符串,以?\0?作为该字符串结束标志

D. 字符数组只能存放字符串,不能存放字符

129、以下程序段运行后屏幕输出为(A)

char str[80];

strcpy(str, "hello");

printf("%d",strlen(str));

A. 5

B. 6

C. 7

D. 80

130、若有定义:char str1[6]= "abcdm",*ps,*str2="abcdef";则(B)是正确的

A. strcpy(str1,str2); str1的存储空间小于str2

B. 表达式strcmp(str1,str2)的值大于0

C. str1=str2;

D. 表达式strlen(str1)的值为6 应该为5

131、已有定义:char str1[15]={“university”},str2[15];则以下语句中正确的是(D)A. str2=str1; B. str2=”college”;要改成str[ ] str是一个地址常量C. scanf(“%s”,&str2);字符串不用加& D. printf(“%s”,str1);

132、设已定义:char s1[20]=”You are”,s2[9]=”welcome!”;若要形成字符串”You are welcome!”,正确的语句是()

A. strcat(s1,s2);

B. strcpy(s1,s2);

C. s1+s2;

D. s1&s2

函数

133、在C语言中,数组名作为函数调用的实参时,传递给形参的是()

A. 数组元素的个数

B. 数组的第一个元素值

C. 数组中全部元素的值

D. 数组的首地址

134、以下程序的运行结果是()

int fun(int array[4][4])

{

int j;

for(j=0;j<4;j++) printf("%2d ",array[2][j]);

printf("\n ");

}

main()

{

int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};

fun(a);

}

A. 2 0 0 5

B. 1 0 0 4

C. 0 1 2 0

D. 0 4 5 0

135、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()

A. float型

B. long型

C. int型

D. double型

136、以下程序运行后屏幕输出为(B)

#include

int f(int x,int y)

{

return(x+y);

}

main()

{

int a=2,b=3,c;

c=f(a,b);

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

}

A. 0

B. 2+3=5

C. 2+3=0

D. 3+2=5 137、以下程序运行后屏幕输出为( D)

#include

int a=2,b=3;

int max(int a,int b)

{

int c;

c=a>b?a:b;

return(c);

}

main()

{

int a=4;

printf("%d ",max(a,b));

}

A. 3,2

B. 2

C. 3

D. 4

138、以下程序的运行结果是()

fun(int i)

{

int a=2;

a=i++;

printf("%d ",a);

}

main()

{

int a=5,c=3;

fun(c);

printf("%d",a);

}

A. 4 5

B. 3 5

C. 4 4

D. 3 3 139、若有如下函数定义:

int fun()

{

static int k=0;

return ++k;

}

以下程序段运行后屏幕输出为()

int i;

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

printf("%d",fun());

A. 0

B. 1

C. 5

D. 6

140、下面程序的输出结果是:()

#include

int global=100;

fun()

{

int global=5;

return ++global;

}

void main()

{

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

}

A. 100

B. 101

C. 5

D. 6

141、下列关于C语言函数的描述中,正确的是(B)

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

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

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

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

142、以下程序的运行结果是()

fun(int x,int y)

{

int z;

z=(x

return(z);

}

main()

{

int a=10,b=6;

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

}

A. 4

B. 6

C. 10

D. 6

143、以下程序运行结果是(B)

void main()

{

int min(float x,float y);

float a=-7.9,b=-6.3;

int c;注意c的数据类型负数的比较一样按数学方式进行即(-7.9小于-6.3)

c=min(a,b);

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

}

int min(float x,float y)

{

float z;

if(x>y) z=y;

else z=x;

return(z);

}

A. -7.9

B. -7

C. -6.3

D. -6

144、以下程序的运行结果是(C)

#define M(a,b) a*b

main() 注意括号问题()

{

int x=3,y=2,s1,s2;

s1=M(x+y,x-y);

s2=M(x-y,x+y);

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

}

A. -1,7

B. 5,5

C. 7,-1

D. 5,-5

145、以下叙述中,正确的是(B)

A. “#define PRICE=30”定义了与30等价的符号常量PRICE

B. 预编译处理命令行都必须以“#”开头

C. 程序中使用带参的宏时,参数类型要与宏定义时一致宏名无类型

D. 宏名只能包含大写字母和数字字符

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

A. 宏展开不占用运行空间,只占用编译时间

B. 预编译处理命令行必须以分号结束

C. 一个源程序只能有一个预编译处理命令行

D. 使用带参数的宏定义时,应该说明每个参数的数据类型

147、以下的叙述中不正确的是(C)

A. 宏展开不占用运行时间,只占用编译时间

B. 宏名无类型

C. 宏名必须用大写字母表示

D. 预处理命令行都必须以#号开始

148、若有定义:#define PI 3,在表达式PI*2*2的值为()

A. 12

B. 4

C. 3

D. 不确定

149、以下程序运行后,屏幕输出为(C)

#define MIN(a,b) ((a)<(b)?(a):(b))

main()

{

int x=2,y=3,z;

z=2*MIN(x,y);

printf("%d",z);

}

A. 2

B. 3

C. 4

D. 6

150、下列#include命令中,正确的是(D)

A. #inclue [string.h]

B. #include {string.h}

C. #include (string.h)

D. #include

151、下面程序的输出结果是()

#include

#define ONE 1

#define TWO ONE+1

#define THREE TWO+1

void main ()

{

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

}

A. 产生错误

B. 1

C. 2

D. 3

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

A. 预处理命令行必须位于C源程序的起始位置

B. 在C语言中,预处理命令行都以”#”开头

C. 每个C程序必须在开头包含预处理命令行:#include

D. C语言的预处理只能实现宏定义和条件编译的功能

153、以下程序的运行结果是()

#define ADD(x) x+x

main()

{

int m=1,n=2,k;

k=ADD(m+n)*3;

printf("%d",k);

}

A. 9

B. 10

C. 12

D. 18

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

#define M 10

#define S(x) x*x

#define F(x) (x*x)

main()

{

int n1,n2;

n1=1000/S(M);

n2=1000/F(M);

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

}

A. 10,10

B. 1000,10

C. 10,1000

D. 1000,1000

指针

155、设有以下语句,则(D)是对a数组元素的不正确引用,其中0<=i<10。

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

A. a[p-a]

B. *(&a[i])

C. p[i]

D. *(*(a+i))

156、若有定义int *p1,*p2;则指针变量p1、p2不能进行运算的是(C)

A. <

B. =

C. +

D. -

157、以下关于指针概念的叙述中,错误的是(C)

A. 一个指针变量只能指向同一类型的变量

B. 一个变量的地址称为该变量的指针

C. 两个同类型的指针变量可以作加减运算

D. 任何指针变量都可以与空指针NULL进行比较

158、以下程序段运行后*(p+3)的值为(A)

char a[]=”good”;

char *p;

p=a;

A. …d?

B. …\0?

C. 存放?d?的地址

D. …0?

159、以下程序段运行后*(++p)的值为(C)

char a[5]=”work”;

char *p;

p=a;

A. …w?

B. 存放?w?的地址

C. ?o?

D. 存放?o?的地址

160、若有定义:int *p,a=4;p=&a;则以下均代表地址的是(B)

A. a,p

B. &a,p

C. &a,*p

D. a,*p

161、若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是(D)

A. *p=&a;scanf(“%lf”,p);

B. *p=&a;scanf(“%lf”,*p);

C. p=&a,scanf(“%lf”,*p);

D. p=&a;scanf(“%lf”,p);

162、若已定义:int x=12;对①int *p=&x;和②*p=x;这两条语句的正确理解是(A)A. 语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x 的值赋给指针变量p所指向的变量

B. 语句①和②中的*p含义相同,都表示给指针变量赋值

C. 语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x 的值赋给指针变量p

D. 语句①和②的执行结果都是把变量x的地址赋给指针变量p

163、下面语句正确的是(B)

A. int *p;*p=20

B. char *s=”abcdef”;printf(“%s\n”,s);

C. char str[]=”abcd”;str++;

D. char str[]={…a?,?b?,?c?};printf(“%s”,str);

164、若有定义int a[2][3],*p=a[0];则以下不能表示数组元素a[1][2]的是(B)A. *(a[1]+2) B. *(p[1]+2) 表示第二行第三个数 C. p[5] D. *(p+5) 注意:

165、若已定义:int a=5,*p;且p=&a;则以下表示中不正确的是(D)

A. &(*p)==&a

B. *(&a)==a

C. &(*p)==p

D. *(p++)==a++ 166、若有以下程序段,其中0<=i<4,0<=j<3,则不能正确访问a数组元素的是()

int i,j,(*p)[3];

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

p=a;

A. *(*(a+i)+j)

B. p[i][j]

C. (*(p+i))[j]

D. p[i]+j 167、以下程序段的运行结果是(B)

int x[]={2,3,4,5,6,7},*p=x;

int i,s=0;

for(i=1;i<6;i++) s+=p[i++];

printf("%d",s);

A. 12

B. 15

C. 25

D. 27

168、下面程序的运行结果是(C)

main()

{

int x=36,y=63;

int *p,*q,*t;

p=&x;q=&y;

t=p;

p=q;

q=t;

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

}

A. 36,36

B. 63,63

C. 36,63

D. 63,36

169、以下程序段运行后x的值为()

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

int i,x,*p;

x=1;

p=&a[2];

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

x*=*(p+i);

A. 不确定

B. 24

C. 120

D. 60

170、以下程序段运行后x的值为(B)

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

int *p,*q;

int i,x;

p=a;q=b;

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

if(*(p+i)==*(q+i))

x=*(p+i)*2;

A. 2

B. 4

C. 5

D. 不确定

171、以下程序运行结果是(B)

main()

{

char a[]="1357",*p;

for(p=a;p

printf("%s",p);

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

C语言程序设计模拟试题A附答案

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

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

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 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 则程序的输出结果是__17______。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() {

float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x

_k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #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.执行下述程序时的输出结果是____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语言答案

此答案为自己所出,若有不对之处请谅解,并希望能留言 单选题(共60题,每题1分,共60分) 1. 下列符号串中,属于C语言合法标识符的个数为 (B)。 _1_2_3,a-b-c,float,9cd,a3b4 A:1 B:2 C:3 D:4 2. 下列能为字符变量 a 赋值的是:char a= (C)。 A:'ab' B:"a" C:'\0' D:"\0" 3. 在下列字符序列中,合法的标识符是(B)。 A:P12.a B:stud_100 C:$water.1 D:88sum 4. 下列用于printf函数的控制字符常量中,代表tab

的字符常量是(B)。 A:'\b' B:'\t' C:'\r' D:'\f' 5. 下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。 A:'\b' B:'\t' C:'\r' D:'\n' 6. 如有以下程序:unsigned int a=6; int b=-20; char c; c=(a+b>6); 则c的值为(C)。(int转换为unsigned ) A:6 B:-14 C:1 D:0 7. 关于C语言,以下不正确的叙述是(B)。 A:在C语言程序设计中,逗号运算符的优先级最低 B:在C语言程序设计中,var和VAR是两个相

同的变量 C:C语言也支持重载 D:此处的两个语句int a; a=-13.06;在程序编译中将会提示出错 8. 若有定义: int a=2,*p; float x=1, y=2; char e=‘w’; 则以下用法不正确的是(B)。 A:printf("%c",e+a); B:p=&x; C:a *=y+x; D:x=y=e; 9. int x=20; printf("%d\n",~x); 以上程序片段的输出是(B)。 A:235 B:-21 C:-20 D:-11 10. 在C语言中,要求运算数必须是整型的运算符是 (D)。 A:/

C语言模拟题目及答案

:题.选择一1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(%d,%x,k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]=abc; char s[5]={'a','b','c'}; char s[5]= ; char s[5];s=abc; 5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行循环体语句只执行一 次 6. 如果x为int型且为5,则执行if(x--<5) printf(%d,x);else printf(%d,x++);后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用 语句中,含有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式逻辑表达式 关系表达式任意表达式 9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型定义函数时指定或缺省 的函数类型调用函数时临时决定 return语句中表达式的类型答案:D A B D C B A D C B 二.填空题: 1.如果static int y=8;main(){ int y=3;printf(%d, y);}则输出结果是______。 2. 若int x=120,y=50; 执行printf(%d,(y,x));后输出结果是______。 3. 若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的 值为__________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf

C语言程序设计模拟题(含答案).doc

C语言程序设计试题 一、单项选择题(本题共 25 小题,每小题 2 分,共 50 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡 上。错选、多选或未选均无分。 1.以下正确的 C 语言自定义标识符是 __A____。 A. _1a B. 2a_ C. do D. 2.在 C 语言中,错误的常数表示是 ___D____。 A. 0L C. '6' D. 设 int a, x=2; 执行语句 a=x>03*x:x=10 ;后,变量x 的值是 ___B____。 A. 1 B. 2 C. 6 D. 10 4.设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf("%d,%d,%d\n",x,y,z); 执行后输出的结果是 ___C______。 A.2,2,0 B. 3, 3,1 C.3,2,0 D.3,2,1 5. 在 C 语言中,字符串"\\TOP\t\65\""的长度是__B_____。 A. 5 B. 7 C. 8 D. 12 6. 设 float x ,由键盘输入: , 能正确读入数据的输入语句是 ___C_____A_。 A. scanf("%5f",&x) B. scanf("%5d",&x); C. scanf("%f",x); D. scanf("%s",&x); 7.逗号表达式a=2*6,a*3,a+5的值是___B______。

A. 12 B. 17 C. 36 D. 41 8.C 语言程序中 , 整型常量的书写形式不包括 ___A______。 A.二进制 B.八进制 C. 十进制 D.十六进制 9.在C语言中,下列运算符中结合性属于自右向左的是________B_。 A. && B. -- C.<< D. -> 10.设int x;,则与计算︱x︱等价的表达式是___B______。 A. x>0-x:x B. x>0x:-x C. x<0x:-x D. x<0-x:-x 11.执行下面的程序段后, k 的值是 __A_____B。 int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 12. 表达式的值为0 的是 ________C_。 A. 5/5%5 B. 5>2 C. !4 D. 0x7&&7 13. 设 int a=11, b=2 ;执行下述程序段后,变量 a 和 b 的值分别是 ___B____。 do { a/=b++; }w hile(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 14.在C语言中,下列错误的说法是_______C。 A.函数可以递归调用

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

《C 语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1 ?在内存中,短整型变量占 _______ 字节,单精度实型变量占 ___________ 字节,字符型变量占 ____________ 字 节。 2?一个C 语言文件就是由若干个 _______________ 组成。 3 ?设有以下变量定义,并已赋确定得值 char w; int x; float y; double z; 则表达式:w*x+z-y 所求得得数据类型为 ____________________________ 。 4?若x 为int 类型,请以最简单得形式写岀与逻辑表达式 !x 等价得C 语言关系表达 式 _______________________________ 。 5.若有如下图所示五个连续得 int 类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。p 与s 就 是基类型为int 得指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1 )若p 已指向存储单元 a[1]。 是 。 (2)若指针s 指向存储单元a[2],p 二、单项选择题。(每题 通过指针p,给s 赋值,使s 指向最后一个存储单元 a[4]得语句就 指向存储单元a[0],表达式s-p 得值就是 ________________________________ 2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 得值就是( ) A ) 3 B ) 4 C ) 11 D ) 12 2 ?下列程序得输岀结果就是() A) 3 B) 3、2 C) 0 main() {double d=3、2; int x,y; x=1、2; y=(x+3、8)/5、0; printf( “ %d \n ” , d*y); } 3?下列程序执行后得输岀结果就是 A) 6 6 6、0 6、0 C) 6 6 6、0 6、 7 D) 3、07 (小数点后只写一位)( ) B ) 6 6 6、7 6、7 D ) 6 6 6、7 6、0 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); scanf("%d", &d); } 4?下列变量定义中合法得就是(

c语言模拟题1(有答案)

模拟题1 一、单选题(本大题10小题,每题2分,共20分) 1.C语言表达式a=15,a%6的值是_______A A.3 B.5 C.非法表达式 D.15 2.循环语句中,continue语句的作用是______A A.结束本次循环 B.跳出子函数 C.| D.从本循环体内跳出 E.终止程序 3.定义一个返回值为int 的无参函数cacul的正确语句是______C A.void cacul(void); B.void cacul(int); C.int cacul(); D.int cacul; 4.下面运算优先级按从高到低的排列正确的是_____A A.条件运算赋值运算逗号运算 B.算术运算逻辑运算关系运算 C.】 D.逻辑运算关系运算赋值运算 E.位运算算术运算赋值运算 5.以下叙述中,正确的是_____B A.C程序中,main函数必须位于程序最前面 B.C语言本身没有输入和输出语句 C.在对一个C程序进行编译的过程中发现注释中的拼写错误 D.C程序中每行中只能写一个语句 6.数组age[2][4]的非法引用是________A A.age[3][0] B.&age[0][0] C.> D.age[0][1] E.age[1][1+1] 7.变量定义int x, a=3, b=4;则语句x = ( a = 0 ) && ( b = 8 ); 执行之后各变量的值为______B A.x =0, a=3, b=4 B.x =0, a=0, b=4 C.x =0, a=3, b=8 D.x =0, a=0, b=8 8.下列_________语句正确定义字符数组。C A.char x[4]= "hello"

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案) 1、下列述叙中正确的是 A) 显示器和打印机都是输出设备 B) 显示器只能显示字符 C) 通常的彩色显示器都有7种颜色 D) 打印机只能打印字符和表格 2、微型计算机中运算器的主要功能是进行 A) 算术运算B) 逻辑运算 C) 算术和逻辑运算D) 初等函数运算 3、https://www.wendangku.net/doc/b510007499.html,是DOS系统的最外层模块,通常称之为 A) 引导程序B) 输入输出系统 C) 命令处理系统D) 文件管理系统 4、电子邮件是 A) 网络信息检索服务 B) 通过Web网页发布的公告信息 C) 通过网络实时交互的信息传递方式 D) 一种利用网络交换信息的非交互式服务 5、和十进制数225相等的二进制数是 A) 11101110 B) 11111110 C) 10000000 D) 11111111 6、下列叙述中正确的是 A) 指令由操作数和操作码两部分组成\ B) 常用参数xxMB表示计算机的速度 C) 计算机的一个字长总是等于两个字节

D) 计算机语言是完成某一任务的指令集 7、计算机的内存储器比外存储器 A) 价格便宜B) 存储容量大 C) 读写速度快D) 读写速度慢 8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是 A) B盘上的A.TXT文件被复制到C盘的PRN文件 B) 屏幕上显示B盘上的A.TXT文件内容 C) B盘上的A.TXT文件内容在打印机上输出 D) B盘上的A.TXT文件被复制到B盘上的PRN文件 9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是 A) COPY A:X1.TXT+C:B1.TXT Z.TXT B) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXT C) COPY A:X1.TXT+C:\\WS\\B1.TXT D) COPY X1.TXT+B1.TXT B:Z.TXT 10、下列四组DOS命令中,功能等价的一组是 A) COPY A:*.* B:与DISKCOPY A: B: B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXT C) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXT D) TYPE *.FOR>CON与COPY *.FOR CON 11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令 A) DEL A*.TXT B) DEL \\AA\\A.TXT C) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT 12、在Windows中,启动应用程序的正确方法是 A) 用鼠标指向该应用程序图标

C语言模拟试题答案

C 语言程序设计模拟试题1 一、单项选择题(本大题共20小题,每小题2分,共40分) 1.C 语言中,错误..的int 类型的常数是( ) A .1E5 B .0 C .037 D .0xaf 2.在C 语言中,′a ′和″a ″存储所占用的字节数分别是( ) A .1,1 B .1,2 C .2,1 D .2,2 3.对于数学表达式3sinx b a x 2++,正确的C 语言表达式是( ) A .2sqrt(x)+(a+b)/3sin(x) B .2sqrt(x)+(a+b)/(3sin(x)) C .2*sqrt(x)+(a+b)/3/sin(x) D .2*sqrt(x)+(a+b/3*sin(x)) 4.设int x=10, a=0, b=25;,条件表达式x<1?a+10︰b 的值是( ) A .0 B .1 C .10 D .25 5.C 语言中,下列运算符优先级最高的是( ) A .! B .% C .>> D .= = 6.设有以下程序段: int a=1, b=10, c=1, x; x=a&&b||++c; printf(″%d, %d\n ″,x,c); 执行后输出的结果是( ) A .0,0 B .0,1 C .1,0 D .1,1 7.设int x;,则以下语句中错误..的输入是( ) A .scanf (″%d ″,x); B .scanf (″%d ″,&x); C .scanf (″%o ″,&x); D .scanf (″%x ″,&x); 8.在C 语言中,运算符″=″和″==″的功能分别是( ) A .关系运算和赋值运算 B .赋值运算和关系运算 C .都是关系运算 D .都是赋值运算 9.设for (i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是( ) A .0 B .3 C .4 D .无限

C语言模拟试题(答案)

一、选择题 1.有如下程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); } 该程序的输出结果是【】。 A.1,2 B.2,1 C.2,2 D.3,2 2.有以下程序: 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。3.有以下程序: 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.不确定 4.有如下程序: 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("%2d",f(a)); } 该程序的输出结果是【】。 A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 8 5.有如下程序段: main() { int a,b,c=246; a=c/100%9; b=(-1) && (-1); printf("%d,%d\n",a,b); } 输出结果是【】。 A.2,1 B. 3,2 C. 4,3 D. 2,-1 6.有如下程序: main() { char str[ ][20]={"Hello","Beijing"}, *p=str; printf("%d\n",strlen(p+22)); } 该程序的输出结果是【】。 A.0 B.5 C.7 D.20 7.有如下程序: #define U 2 #define V U+2 #define X V*V/2 main() { printf("%d\n",5*X); } 该程序的输出结果是【】。 A.10 B.20 C.15 D.40 8.有以下程序: main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=a[i][1];

C语言模拟题答案

一、单选题:(每题1.5分,共60分) 1、C程序是( ) A.顺序执行 B.从Main函数开始 C.从函数体开始 D.任意语句 答案:B 2、以下说法中正确的是( )。 A.C语言程序中是从第一定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 答案:C 3、算法的表示方法有________。 A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言 B.高级语言,汇编语言,机器语言 C.C语言,QBASIC语言,InterDev D.图形图像法,描述法,编程法 E.计算机语言 答案:A 4、以下选项中,非法的字符常量是( ) A.'\t' B.'\17' C."n" D.'\xaa' 答案:C 5、以下所列的C语言常量中,错误的是 A.0xFF B.1.2e0.5 C.2L D.'\72' 答案:B 6、下列变量名合法的是( ) A.#1 B.$567 C.a-b D.m_number 答案:D 7、下面四个选项中,均是不正确的八进制数或十六进制数的选项是 A.016 0x8f 018 B.0abc 017 0xa C.010 -0x11 0x16

D.0a12 7ff -123 答案:D 8、sizeof(float)是 A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式 答案:B 9、C语言中,double类型数据占( )个字节,char类型数据占( )个字节 A.1 B.2 C.4 D.8和1 答案:D 10、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A.c=b=a; B.(a=c) ‖(b=c) ; C.(a=c) &&(b=c); D.a=c=b; 答案:C 11、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是( ) A.1 B.2 C.2.0 D.2.5 答案:C 12、执行语句x=(a=3,b=a--)后x,a,b的值为; A.3 3 2 B.3 2 2 C.3 2 3 D.2 3 2 答案:C 13、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是 A.a\bre\'hi\'y\\\bou B.a\bre\'hi\'y\bou C.re'hi'you D.abre'hi'y\bou 答案:C 14、在下列运算符中,优先级别最高的是 A.<= B.= C.% D.&& 答案:C

C语言模拟题(2014-5)答案

1、与下面代码运行效果相同的代码是__ i = 10; while( i

B 6、假定int类型变量占用两个字节,且有定义:int x[10]={0,2,4}; 则数组x 在内存中所占字节数是__ C 7、下面四个选项中,均是不合法的用户自定义标识符的选项是__ D 8、有以下定义:char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为__ D 9、函数调用语句y = func(a, b, max(d, e));中实参的个数为__

C 10、设有int a=3, *p=&a; 则*p的值是__ B 11、设有如下定义,struct sk{ int a; float b; } data, *p=&data; 则对 data 中的 a 成员的正确引用是__ D 12、设变量x为double类型,n为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是__ C 13、在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为__ D

全国计算机等级考试二级C语言模拟试题及答案(一)

全国计算机等级考试二级C语言模拟试题及答案(一) 一、选择题 (1)栈和队列的共同特点是 A)都是先进先出 B)都是先进后出 C)只允许在端点处插入和删除元素 D)没有共同点 正确答案: C (2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)cedba 正确答案: D (3)链表不具有的特点是 A)不必事先估计存储空间 B)可随机访问任一元素 C)插入删除不需要移动元素 D)所需空间与线性表长度成正比 正确答案: B (4)结构化程序设计的3种结构是 A)顺序结构、选择结构、转移结构 B)分支结构、等价结构、循环结构 C)多分支结构、赋值结构、等价结构 D)顺序结构、选择结构、循环结构 正确答案: D (5)为了提高测试的效率,应该 A)随机选取测试数据 B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)集中对付那些错误群集的程序 正确答案: D (6)算法的时间复杂度是指 A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的基本运算次数

D)算法程序中的指令条数 正确答案: C (7)软件生命周期中所花费用最多的阶段是 A)详细设计 B)软件编码 C)软件测试 D)软件维护 正确答案: D (8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为 A)C B)Basic C)DDL D)DML 正确答案: C (9)下列有关数据库的描述,正确的是 A)数据库是一个DBF文件 B)数据库是一个关系 C)数据库是一个结构化的数据集合 D)数据库是一组文件 正确答案: C (10)下列有关数据库的描述,正确的是 A)数据处理是将信息转化为数据的过程 B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C)关系中的每一列称为元组,一个元组就是一个字段 D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 正确答案: D (11)以下叙述中正确的是 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点 正确答案: C (12)C语言中用于结构化程序设计的3种基本结构是 A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue 正确答案: A (13)C语言中最简单的数据类型包括

浙江大学C语言程序设计理论考试模拟试题答案

浙江大学C语言理论考试模拟试题答案 一、判断题 共10题,每题1分,共10分。正确的请选择A,错误的请选择B。 1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。A A、正确 B、错误 解答:A 2、在程序中else 子句可以单独使用。B A、正确 B、错误 解答:B 3、C 语言源程序文件通过了编译、连接之后, 生成一个后缀为.EXE 的文件。( ) A A、正确 B、错误 解答:A 4、_ya是不合法的C语言标识符。B A、正确 B、错误 解答:B 5、在数组初始化时,如果初值个数多于数组长度,将出现错误。A A、正确 B、错误 解答:A 6、C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。B A、正确 B、错误 解答:B 7、若有定义int *p, 则表达式p++ 的值就是p 所指向的变量的地址值加1。B A、正确 B、错误 解答:B 8、'\n'不是一个字符常量。B A、正确 B、错误 解答:B 9、表达式(z=0, (x=2)||(z=1),z) 的值是1。B A、正确 B、错误 解答:B 10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。 A、正确 B、错误

二、单选题 请从给定的选项中选择一个唯一正确的选项。每小题2分,共10题,20分。 1、 C下面有关变量的命名,不合法的是:( ) A. _int B. __intint C. __int&int D. ___intintint C 解答:C 2、有变量定义int a;float c;下面输入语句有语法错误的是( )。 A. scanf("%d,%f", &a, &c); B. scanf("x=%d, c=%f", &a, &c); C. scanf("%d%f", &a, &c); D. scanf("%f %d",&a, &c); D 解答:D 3、下面关于函数参数使用的说法,不正确的是:() A. 函数调用时实参按顺序传递到形参; B. 函数调用时实参把值传递给形参; C. 函数的实参和形参个数可以不一致,但使用时应尽量一致; D. 函数的实参和形参可以同名; C 解答:C 4、已知int k=1; for(k=1;1;k++) if(k) break; for语句的循环次数是( )。 A. 0 B. 1 C. 2 D. 无限次 B 解答:B 5、下面定义的max函数返回值的数据类型是() max(float a,float b) { return(a>b?a :b) ; } A. int B. float

C语言模拟题目及答案.doc

一.选择题: 1.设float x,y ;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf("%d,%x",k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++); 可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]="abc"; char s[5]={'a','b','c'}; char s[5]=" "; char s[5];s="abc"; 5. 设有程序段:int k=10;while(k=0)k=k-1; 则下面描述中正确的是______。 是无限循环while 循环执行10 次 循环体语句一次也不执行循环体语句只执行一次 6. 如果x 为int 型且为5,则执行if(x--<5) printf("%d",x);else printf("%d",x++); 后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5)); ,该函数调用语句中,含 有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if 语句中,可用作条件判断的表达式为_____。 算术表达式逻辑表达式 关系表达式任意表达式 9. 若给定条件表达式(n)?(c++):(c--) ,则与表达式中(n) 等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型定义函数时指定或缺省的函数类型 调用函数时临时决定return 语句中表达式的类型 答案:D A B D C B A D C B 二.填空题: 1.如果static int y=8;main(){ int y=3;printf("%d", y);} 则输出结果是______。 2. 若int x=120,y=50; 执行printf("%d",(y,x)); 后输出结果是______。 3. 若int i, a[10]; 则执行语句for(i=9;i>=0;i--) a[i]=i+5; 后,a[8] 的值为 __________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf 来完成输入输出功能的。 5. 已知字母'A' 的ASCII 码值为65,ch1 和ch2 均为字符型变量,且ch1='A',ch2='B' ,则

相关文档
相关文档 最新文档