搜档网
当前位置:搜档网 › 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语言试题带答案

C语言模拟题二 C语言模拟题二 一、单项选择题 1.程序中定义以下宏#define S(a,b)a*b 若定义int area;且令area=S(3+1,3+4),则变量area的值为_________ A 10 B 12 C 21 D 28 2.正确的标识符是_________ A if B a=2 C a.3 D a_3 3.表达式1&3&5&7的值为_________ A 1 B 3 C 5 D 7 4.语句printf(″s\\t″)的输出结果为_________ A s\\t B s\t C s\ D s 5. 执行下列语句后,sum变量的值是_________ int sum=0; for(int i=0;i<10;i++,sum+=i); A 45 B 55 C 0 D 编译错误 6.已知有共用体变量data1定义如下: union data { int i; char ch; float f; } data1;则变量data1所占的内存存储空间可表示为_________ A sizeof(int) B sizeof(char) C sizeof(float) Dsizeof(int)+sizeof(char)+sizeof(float) 7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示_________ A 已读到此文件末尾 B 未读到此文件的末尾

C 此文件已关闭D此文件尚未被打开 8.以下c语言函数声明中,不正确的是_________ A void fun (int x,int y); B fun (int x,int y); C int fun (int x,y); D char *fun (char *s); 9.若有语句if(x==0) y=5;则与条件x==0等价的表达式为_________ A x B !x C x!=1 D 以上都不对 10. 在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为 A)ABCdef B)abcDEF C)abc D)DEF #include main( ) { char ch;while((ch=getchar( ))!='\n'){ if(ch>='A' && ch<='Z')ch=ch+32; else if(ch>='a' && ch<='z')ch=ch-32; printf("%c",ch);}printf("\n");} 11.下面不能正确进行字符串赋值操作的语句是_______ A)char s[5]={"ABCDE"};B)char s[5]={'A'、'B'、'C'、'D'、'E'}; C) char *s;s="ABCDEF";D)char *s;scanf("%s",s); 12.若x=4,则x*=x+2的值为_________ A 36 B 24 C 18 D 20 13.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为_________ A 1 B 2 C 4 D 5 14.设a为5,执行下列语句后,b的值不为2的是_________ A b=a/2 B b=6-(--a) C b=a%2 D b=a<32?2:1 15.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是_________ A p2=**p1 B p2=*&p1 C p2=*p1 D p2=&*p1 16.以下运算符中,运算对象必须是整型的是_________ A / B %= C != D〈= 17.以下关于typedef的叙述中错误的是_________ A用typedef可以增加新的类型 B用typedef可以定义各种类型名,但不能用来定义变量 C用typedef只是将已有的类型用新的标识符来代表 D使用typedef有利于程序的通用和移植

C模拟题及答案

1、设有数组的初始化定义如下:int a[5]={1,2,3};对该定义的正确理解是( B )。 A.将3个数依次赋给a[1 ]至a[3 ] B.将3个数依次赋给a[0 ]至a[2 ] C.将3个数依次赋给a[0 ]至a[3 ] D.因初值的个数小于数组长度,所以定义是错的 2、下列选项中,值不等于0.5的表达式是( A)。 A.1/2 B.1/2.0 C.(float)1/2 D.1.0/2 3、若有“float x=123.456; printf("%2.1f",x);”,则执行后的输出结果为( D )。 A.3.4 B.3.5 C.123.4 D.123.5 4、能把ch中的大写字母转换为对应小写字母的表达式是( B )。 A.ch=ch-32 B.ch-='A'-'a' C.ch+=-32 D.ch-='a'-'A' 5、以下对结构体变量成员num的非法引用是( B)。 struct person { int age; intnum; }x,*p=&x; A.x.num B.person.num C.p->num D.(*p).num 6、设有以下程序,则对循环次数描述正确的是( B )。 int k=10; while (k= =0) k=k-1; A. 执行10次循环 B.不执行循环 C.执行一次循环 D.执行无限次循环 7、设有如下程序,则输出结果是()。 int a=2,b=3,c=1; if (a>b) if (a>c) printf(“%d\n ”,a); else printf(“%d\n ”,b );

printf(“Over!\n ”); A.2 B.3 C.Over! D.1 8、对二维数组a初始化为:int a[ ][2]={1,2,3,4,5,6};则a第一维的大小是()。 A.2 B.3 C.4 D.不能确定 9、若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4 B.16 C.32 D.52 10、执行函数调用“fun('A')”得到的返回值为()。 int fun(char ch) { return(ch>='0'&&ch<='9'); } A.-1 B.0 C.1 D.2 11、以下数组的定义形式正确的是()。 A.int k=5,a[k]; B.int a[ ]; C.char c[]={'a'}; D.char a(10); 12、若有语句“int a[10],*p=&a[2];”,则执行语句“p=p+4;”后,p指向的数组元素是()。 A.a[4] B.a[5] C.a[6] D.a[7] 13、表示关系x<=y<=z的C语言表达式为()。 A.(x<=y)&&(y<=z) B.(x<=y)AND(y<=z) C.(x<=y<=z) D.(x<=y)&(y<=z) 14、下面不正确的字符常量是()。 A.“c” B.‘\\’’ C.‘’ D.‘K’ 15、若有定义:char a; int b; float c; double d;,则表达式a*b+d-c值的类型为()。 A.float B.double C.char D.int 16、定义int a[9],*p=a;不能表示a[1] 地址的是()。 A.p+1 B.a+1 C.a-1 D.&a[1] 17、下列关于C程序的说法错误的是()。

大学生c语言考试模拟编程题及其解析

1.题目:有一个分数序列: 从序列第二项开始,每一项的分子等于前一项分子分母之和,每一项的分母等于前一项的分子。编程求这个序列的前20项之和(要求使用循环实现)。说明:结果保留5位小数。 输出结果的形式为:s=1.23456 int i; double a=2,b=1,s=0,t; for(i=1;i<=20;i++) {s=s+a/b; t=a; a=b+a; b=t;} PRINT(s); } 2.题目: 某知名企业测试5G网络速度(Mbps),最近一批60次的测试结果存储在数组f中,其中-1表示无效测试。编程计算并输出平均网速。输出结果的形式为:s=123.45Mbps void main() { int f[60]={477,497,469,494,494,464,495,465,494,491,491,478,481,473,481,490,461,482,465,494 ,495,471, 468,484,466,492,483,479,488,491,461,-1,490,497,469,462,486,476,472,476,-1,495,466, 480,462,459, 492,469,484,466,471,494,485,467,487,485,468,467,489,486}; /*考生在此设计程序*/ int i,n=0; double s=0; for(i=0;i<60;i++) { if(f[i]!=-1) { n++; s=s+f[i]; } } s=s/n; PRINT(s); 3.题目: 根据下式求s的值(要求使用循环实现): 说明:结果保留5位小数。输出结果的形式为s=1.23456

C语言模拟测试题一及答案

模拟题一 一、选择题 1.下列说法正确的是()。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 2.C语言中不能用来表示整常数的进制是()。 A)十进制B)十六进制C)八进制D)二进制 3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。 A)整型实型字符型B)整型数组指针 C)数组结构体共用体D)指针逻辑型空类型 4.C语言规定标识符由()等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。 A)1个字符B)2个字符 C)3个字符D)说明不合法,C值不确定 6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是()。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 7.设有如下定义和执行语句,其输出结果为()。 int a=3,b=3; a = -- b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3 8.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。 A)int B)float C)char D)double 9.C语言中,运算对象必须是整型数的运算符是()。 A)%B)\C)% 和\D)** 10.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为()。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。 A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 12.以下if语句中语法错误的是()。

C语言模拟试卷及答案

C语言模拟试卷及答案 ____―____学年第一学期《C语言程序设计》模拟试卷(B)一、单项选择题(每题1分,共30分) 1.C语言程序总是从______开始执行。A)第一条语句B)第一个函数C)主函数D)子程序2.以下选项中正确的C语言标识符是______。A)a+bB)3Dma_C)_25D)ó.以下选项中正确表示字符型常量的是______。 A)’\\t’B)\C)’abc’D)’279’4.以下选项中属于C语言基本数据类型的是 ______。A)逻辑型B)双精度型C)复数型D)集合型5.已知:inta=8,b=5,c;,则执行语句c=a%b+0.3;后,c的值是______。A)1B)1.3C)3D)3.36.设在程序中的a,b,c均被定义为整型并且已赋予大于1的值,能正确表示代数式1 的表达式abc是______。 A)1/a_b_cB)1/(a_b_c)C)1/a/b/(float)cD)1.0/a/b/c7.已知字符’A’的ASCII 码值为十进制数65,则执行语句printf(\______。A)AB)CC)65D)678.已知: inti=1;,则执行语句printf(\A)1B)2C)-1D)-29.以下选项中,和语句__=y+2; 等价的是______。A)_=__y+2;B)y=__(y+2);C)_=y+2__;D)_=__(y+2);10.以下选项中能正确判断字符变量c不是大写字母的表达式是______。 A)c’Z’B)!(c’Z’)C)c>=‘A’||c=‘A’__cvoidmain()—1—{inta=3,b=-1,c =1;if(a=y)__(y>=z)B)(_>=y)AND(y>=z)C)_>=y>=zD)(_>=y)||(y>=z)17.已知:inti=5;,则执行语句 while(ivoidmain(){intn=9;while(n>6){n--;printf(\}A)987B)9876C)8765D)87 619.执行以下程序后,输出结果是______。 _includevoidmain(){inti,s=0;for(i=1;ivoidsub(int_,inty,int_z){_z=y-_;} voidmain(){inta;sub(10,5,_a);printf(\}A)5B)-5C)0D)不确定25.已知: int_,_p;,则以下赋值语句中正确的是______。 A)p=__;B)p=__;C)__=_p;D)_p=__;26.已知:charstr[]=\=str;,则表达式_(ptr+5)的值为______。A)’o’B)’\\0’C)’o’的地址D)不确定27.执行以下程序后,输出结果是______。 _include_defineF(_)_+_voidmain(){inta=5;printf(\}A)5B)10C)15D)____.有

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

长安大学网络教育《C语言程序设计》模拟试卷及参考答案

一、填空题(本题每空1分,共计15分) 1.设int a = 2,b = 3;float x = 3.5,y = 2.5;表达式(float)(a+b)/2+(int)x%(int)y的值为 3.5 。 2.结构化程序设计的三种基本结构是顺序结构,选择结构,循环结构。 3.设a = 3 , b = 2 , c = 1 , 则!(a+b)+c-6&&c+b%2的值为 1 。 4.int a = 6 ; 若a *= 2+3,则a = 30 ;又若a /= a+a,则a = 0 ;又若a+=a-= a*=a, 则a = 0 ; 5.int a = 2 ,b ,c ; b = ++a ; c = (a++)+(b++) ; 则c = 6 ,a = 4 ,b = 4 6、判断char型变量ch是否为大写字母的正确表达式是:ch>=’A’&&ch<=’z’ 7、若a=1;b= 2;c=2; if(a

C语言模拟试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( )函数. 3.C语言描述“x和y都大于或等于z"的表达式是x〉=z && y〉=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址. 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1._____是C语言合法的标识符。 (A)3_sy45 (B)su_m (C)@123 (D)3D64 2.一个程序的执行是从. (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. (C)本程序的main函数开始,到本程序文件的最后一个函数结束. (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是。 (A)在C程序中,main函数必须位于程序的最前面. (B)C程序每行中只能写一条语句. (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误. 4.以下叙述不正确的是。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为。 (A)28 (B)30 (C)60(D)17 6.在c语言中,变量的隐含存储类别是。 (A)auto(B)static (C)extern (D)无存储类别7.执行下面两个语句后,输出的结果为_____。 char c1=98; printf(“%d %c”,c1,c1—32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为. y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=10 9.char w;int x;float y;double z;则表达式w*x+z—y值的数据类型是。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是。 (A)/ (B)%(C)!= (D)= 11.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是。 (A)123,4 (B)123 4 (C)123;4 (D)1234 12.以下关于运算符优先顺序的描述中正确的是________

C语言程序设计A模拟考核试题及解答

C 语言程序设计A 》模拟考核试题及解答 一、选择题 1.由C 语言源程序文件编译而成的目标文件的缺省扩展名为( ) 。 A. cpp B. exe C. obj D. C 2. C 语言程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 3.x>0 || y==5 的相反表达式为( )。 A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5 4.枚举类型中的每个枚举常量的值都是一个( )。 A. 整数 B. 浮点数 C. 字符 D. 逻辑值 5.循环语句“ for(int i=0; i

c语言模拟考试及答案

c语言模拟考试及答案

————————————————————————————————作者:————————————————————————————————日期:

模拟试题 模拟试卷一 一、选择题 1.逻辑运算符两侧运算对象的数据____ A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下面程序段的输出结果是____ int a=023; printf("%d\n",--a); A.23 B.17 C.18 D.24 3.若有定义:int a[3][4]; 下面不能表示数组a[1][1]的是____。 A. *(a[1]+1) B. *(&a[1][1]) C.(*(a+1))[1] D. *(a+5) 4.设有语句:char str1[]="string",str2[8],*str3,*str4="string";则______不是对库函数strcpy的正确调用。 A. strcpy(str1,"HELLO1"); B. strcpy(str2,"HELLO2"); C. strcpy(str3,"HELLO3"); D. strcpy(str4,"HELLO4"); 5.设有定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*prt)[3]=a,*p=a[0]; 则下列能够正确表示数组元素a[1][2]的表达式是______。 A. *((*prt+1)[2]) B. *(*(p+5)) C. (*prt+1)+2 D.*(*(a+1)+2) 6.有以下程序 struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); } 程序运行后输出结果是____。 A.5 B.6 C.7 D.8 7.有以下程序: #include union pw { int i; char ch[2]; } a; main()

C语言程序设计模拟试卷及答案

自考C语言程序设计模拟试卷及答案(3) 一、单项选择题 1B 2B 3D 4C 5D 6C7A8C 9D 10A11C 12D 13B 14D 15A 16 B 17D 18B 19A20C21C B 1. 设int *=1,y=1;表达式(!*++ || y——)的值是____B_____ A.0 B. 1 C. 2 D.-1 C 2.main(B) { int n; ( n=6*4,n+6),n*2; printf("n=%d\n”,n); } 此程序的输出结果是______C________. A.30 B. 24 C. 60 D. 48 D 3.若有如下定义,则_____D_____是对数组元素的正确的引用。 int a[10] , *p ; p=a ; p=a ; p=a ; p=a ; A. *&a[10] B. a[11] C. *(p+10) D. *p C 4.设整型变量n的值为2,执行语句"n+=n-=n*n;”后,n的值是__________ A. 0 B. 4 C. - 4 D. 2 D 5.以下不能正确定义二维数组的语句是___________ A . int a[2][2]={{1},{2}}; B. int a[][2]={1,2,3,4}; C. int a[2][2]={{1},2,3}; D. int a[2][]={{1,2},{3,4}}; C D 6. 程序段的功能是将变量 u 、s中的最大值赋给变量t . A. if(u>s) t=u;t=s; B. t=u; if(t ) t=s; C. if(u>s) t=s;else t=u; D . t=s; if(u ) t=u; A 7.下列程序段的输出结果是 . void main() { int k; for (k=1;k<5;k++〉 { if(k%2!=0) printf("#”); else printf("*”); } } A. #*#* B . *#*# C. ## D. 以上都不对C 8.设变量定义为 int a[3]={1,4,7},*p=&a[2],则*p的值是(35) . A. &a[2] B. 4 C. 7 D. 1 D 9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________. A.a>=0||b>=0)&&(a<0 ||b<0) B.(a>=0 && b>=0)&&(a<0 && b<0) C.(a+b>0) &&(a+b<=0) D. a*b>0 A 10.C语言中,合法的字符型常数是_________. A.‘A’ B."A” C. 65 D.

电大《C语言程序设计》2019-2020模拟试卷及答案

《C语言程序设计》2019-2020模拟试卷及答案 一、单项选择题。把合适的选项编号填写在括号内。 1.不符合C语言规定的复合语句是()。D A.{} B.{;} C.{x=0;} D.{y=10} 2.C语言中的选择类语句有两条,它们是()。A A.if和switch B.if和else C.switch和case D.else和case 3.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。A A. main B. MAIN C. name D. function 4. 在C语言程序中,多行注释语句使用的开始标记符为()。B A. // B. /* C. */ D. ** 5. 用于输出表达式值的标准输出函数是()。C A. scanf() B. print() C. printf() D. output() 6. 在printf()函数调用的格式字符串中,每个格式符的先导字符为()。B A. # B. % C. $ D. @ 7. 由C语言源程序文件编译而成的目标文件的扩展名为( )。C A. cpp B. exe C. obj D. C 8. 由C语言目标文件连接而成的可执行文件的扩展名为( )。B A. cpp B. exe C. obj D. c 9.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为()。A A. warning B. error C. warn D. err 10. 在C语言中,表示换行符的转义字符为()。C A. \f B. \r C. \n D. \m 11. 字符串“a+b=12\n”的长度为()。B A. 6 B. 7 C. 8 D. 9 12. 要定义a和b为两个整型变量,则使用的定义语句为()。B A. int a;b; B. int a,b; C. int a b; D. int a:b; 13. 下列数值中最大值是()。C A. 28/8 B. 35/13 C. 28%8 D. 35%5 14. 下列数值中最小值是()。D

c语言笔试模拟题以及答案

1.一、单选题:(每题1.5分,共60分) 1、 C语言程序的基本单位是_______. A. 语句 B. 函数 C. 程序行 D. 字符 答案: B 2、 C语言程序由( )组成 A. 子程序 B. 过程 C. 函数 D. 主程序段程序 答案: C 3、算法的表示方法有________。 A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言 B. 高级语言,汇编语言,机器语言 C. C语言,QBASIC语言,InterDev D. 图形图像法,描述法,编程法 E. 计算机语言 答案: A 4、以下程序的输出结果是 main( ) { int k=17; printf(“%d,%o,%x \n”,k,k,k); }

A. 17,021,0×11 B. 17,17,17 C. 17,0×11,021 D. 17,21,11 答案: D 5、下列变量定义中合法的是 A. short _a=1-.le-1; B. double b=1+5e2.5; C. long do=0xfdaL; D. float 2_and=1-e-3; 答案: A 6、 C语言中合法的字符常量是____ A. ‘\084′ B. ‘\X43′ C. ‘ab’ D. “\0″ 答案: B 7、下面说法中正确的是( ) A. int型和long型运算先将int型转换成unsigned型,再转换 B. 两个float型运算结果为double型 C. 只要表达式中存在double型,所有其他类型数据都必须转 D. 表达式中的类型转换与运算顺序有关 答案: C 8、以下不正确的叙述是

A. 在C程序中,逗号运算符的优先级最低 B. 在C程序中,APH和aph是两个不同的变量 C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 答案: D 9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 A. n=(n*100+0.5)/100.0 B. m=n*100+0.5,n=m/100.0 C. n=n*100+0.5/100.0 D. n=(n/100+0.5)*100.0 答案: B 10、下列运算符中优先级最高的是 A. < B. + C. && D. != 答案: B 11、若变量已正确定义并赋值,下面符合C语言语法的表达式是 A. a:=b+1 B. a=b=c+2 C. int 18.5%3 D. a=a+7:c+b

《C语言程序》测试题及答案

c++程序设计本科 一、判断题错误的在后面写“F”,正确的写“T”,每题1分 1. 程序是描述算法的编程工具;T 2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例 化 ; T 3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行 一些清理任务的特殊成员函数称为析构函数; T 4. 逐条翻译并执行的翻译程序称为编译程序; F 5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个 共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的; F 6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承; T 7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性; F 8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形 参; F 9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更 多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名

的措施被称为重载; T 8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏 的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨; T 11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T 12.所有的表达式都有值;F 13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T 14.类的静态数据成员需要在定义每个类的对象时进行初始化;F 15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F 16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T 17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F 18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T 19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F 20. 用new动态申请的内存空间,必须用delete来释放 ;T

嵌入式Linux C语言模拟题及答案

嵌入式Linux C语言模拟题及答案 一:选择题 1.删除文件命令为( D ) A.mkdir B.move C.mv D.rm 2.下面不是对Linux操作系统特点描述的是( B )。 [A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务 3.任何时候用户需要回到用户主目录时可以使用命令 ( A ) 。 A. cd B. pwd C. path D. cd . 4.刷新文件时间戳可以使用的命令为( D )。 chmod B.more C.ls D.touch 5.下列结构,属于线性结构的是(c) A.二叉树 B.有向无环图 C.循环队列 D.霍夫曼树 6.判断有头单链表head为空的条件是(b) A.Head == NULL; B.Head->next == NULL; C.Head->next != NULL; D.Head != NULL; 7.二叉树的第k层最多有几个节点(d) A.2k-1 B.2k+1 C.2k+1 D.2k-1 8.以读写方式打开一个已存在的标准I/O流时应指定哪个mode参数( B ) [A] r [B] r+ [C] w+ [D] a+ 9.fork()的返回值不可能是( C ) [A] -1 [B] 0 [C] 1 [D] 大于10000的正整数 10.下列哪个函数无法传递进程结束时的状态( A ) [A]close [B] exit [C] _exit [D] return 11.下列对无名管道描述错误的是( C )

[A] 半双工的通信模式 [B]有固定的读端和写端 [C]可以使用lseek函数 [D] 只存在于内存中 12.下列哪个是不带缓存的( C ) [A] stdin [B] stdout [C] stderr [D]都不是 13.默认情况下,不会终止进程的信号是( D ) [A] SIGINT [B] SIGKILL [C] SIGALRM [D] SIGCHLD 14.以下对早期ARPAnet的描述不正确的是 ( ) D [A] 使用NCP协议 [B] 不能互联不同类型的计算机 [C] 没有纠错功能[D] 可以互联不同类型的操作系统 15.将套接字和某个地址绑定可用下面那个函数()B [A] listen函数 [B] bind 函数 [C] accept函数 [D] connect函数 16.Socket API中,使用SOCK_STREAM,套接字是什么类型()(联发科)A [A] 流式套接字 [B] 数据报套接字 [C] 原始套接字 [D] 其他套接字 17.I2C传输是____方式传输。(B) [A] 单工[B] 半双工[C ] 全双工 18.ARM7是____级流水线,ARM9是____级流水线。(B) [A] 3,3[B] 3,5 [C ] 5,3 [D ]5,7 19.ATPCS规定中,推荐子函数参数最大为____个。(D) [A] 1[B] 2 [C ] 3[D ] 4 20.linux要求bootloader在运行内核前,让系统进入何种模式(B) [A] user[B] svc [C] system 21.下列二进制工具哪个是用来反汇编的(B) [A] nm[B] objdump [C] objcopy [D] string 22.当platform_device和platform_driver匹配时,会执行的函数是(C) A: 驱动模块加载函数

C语言自学考试模拟试题及答案

C语言自学考试模拟试题及答案 一、单项选择题 1。各种基本数据类型的存贮空间正确的长度排列为_____C_____. A.Char〈long

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

《C语言程序设计》模拟试卷十 一、选择题(每小题2分,共30分) 1、 C语言中的数据的基本类型包括_______ A、整型、实型、字符型的逻辑型 B、整型、实型、字符型和结构体 C、整型、实型、字符型和枚举型 D、整型、实型、字符型和指针型 2、下列算术运算符中,只能用于整型数据的是_____ A、- B、+ C、/ D、% 3、设X、Y、Z和K都是int型变量,则执行变量表达式:x=(y=52,z=26,k=32)后,x的值为______ A、 4 B、 26 C、 32 D、52 4、若有以下程序段: Int c1=2,c2=3,c3; c3=1.0/c2*c1; 则执行后,c3中的值是______ A、 0 B、 3 C、 1 D、2 5、语句:printf(“%d”,(a=3)&&(b=-3));的输出结果是_____ A、无输出 B、结果不确定 C、 -1 D、1 6、Turbo C中,一个int型整数在内存中占用两个字节,unsigned int型数据的取值范围为___ A、 0~65535 B、 -32767~32767 C、 0~32768 D、-65535~65536 7、C语言中,定义PI为一个符号常量,正确的是______ A、 #define PI 3.14 B、 Define PI 3.14 C、 #define PI 3.14 D、 8、以下正确的scanf用法是_____ A、Scanf(“%f”,&f); B、Scanf(“%f”,&f); C、Scanf(“%f”,%f); D、Scanf(“%f”,f); 9、#include Main() {int y=10; While(y--) Printf(“y=%d\n”,y); 上述程序段的输出结果是_____ A、 y=0 B、 while构成无限循环语句 C、 y=1 D、y=-1 10、现已定义整型变量int i=1; 执行循环语句”while(i++<5);”后,i的值为______ A、 1 B、 5 C、 6 D、以上三个答案均不正确 11、下述语句中,____中的if语法是错误的。 A、 If(x>y); B、 If(x==y)x+y; C、If(x!=y)scanf(“%d”,&x)else scanf(“%d”,&y); D、If(x

相关主题