文档库 最新最全的文档下载
当前位置:文档库 › C语言 考试题库

C语言 考试题库

C语言 考试题库
C语言 考试题库

1. 以下数据中,不正确的数值或字符常量是(A).

(A).c

(B).66

(C).0xaa

(D).50

2. 设j和k都是int类型,则for循环语句:

for(j=0,k=0;j<=9&&k!=87 6;j++)

scanf("%d",&k);(A)

(A).最多执行10次

(B).最多执行9次

(C).是无限循环

(D).循环体一次也不执行

3. char

a1[]="abc",a2[80]="1234 ";将a1串连接到a2串后面的语句是(A).

(A).strcat(a2,a1);

(B).strcpy(a2,a1);

(C).strcat(a1,a2);

(D).strcpy(a1,a2);

4. 以下正确的说法是:在C语言中(A).

(A).实参和与其对应的形参各占用独立的存储单元(B).实参和与其对应的形参共占用一个存储单元(C).只有当实参和与其对应的形参同名时才共占用存储单元

(D).形参是虚拟的,不占用存储单元

5. 下列字符序列中,是C 语言保留字的是(A).

(A).sizeof

(B).include

(C).scanf

(D).sqrt

6. 以下选项中,与k=n++完全等价的表达式是(A).

(A).k=n,n=n+1 (B).n=n+1,k=n

(C).k=++n

(D).k+=n+1

7. 在位运算中,操作数每

左移一位,其结果相当于

(A).

(A).操作数乘以2

(B).操作数除以2

(C).操作数除以4

(D).操作数乘以4

8. 以下程序的运行结果

是(A).

main()

{ int n;

for(n=1;n<=10;n++)

{

if(n%3==0) continue;

printf("%d",n);

}

}

(A).12457810

(B).369

(C).12

(D).1234567890

9. int

a=1,b=2,c=3;if(a>b)a=b;

if(a>c)a=c;则a的值为

(A).

(A).1

(B).2

(C).3

(D).不一定

10. 下列定义数组的语句

中正确的是(A).

(A).#define size 10 char

str1[size],str2[size+2]

;

(B).char str[];

(C).int num['10'];

(D).int n=5; int

a[n][n+2];

11. C语言中运算对象必须

是整型的运算符是(A).

(A).%=

(B)./

(C).=

(D).〈=

12. C语言中while 和

do-while 循环的主要区别

是(A).

(A).do-while 的循环体至

少无条件执行一次

(B).while的循环控制条件

比 do-while的循环控制条

件更严格

(C).do-while 允许从外部

转到循环体内

(D).do-while 的循环体不

能是复合语句

13. 16.在C语言中,形参的

缺省存储类别是(A).

(A).auto

(B).register

(C).static

(D).extern

14. 从键盘上输入某字符

串时,不可使用的函数是

(A).

(A).getchar()

(B).gets()

(C).scanf()

(D).fread()

15. 以下数据中,不正确的

数值或字符常量是(A).

(A).8.9e1.2

(B).10

(C).0xff00

(D).82.5

16. 以下不是无限循环的

语句为(A).

(A).for(y=0,x=1;x>++y;x

=i++) i=x;

(B).for(;;x++=i);

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

(D).for(i=10;;i--)

sum+=i;

17.

while(fabs(t)<1e-5)

if(!s/10)break;循环结束的条件是(A).

(A).t>=1e-5&&t<=-1e-5

(B).fabs(t)<1e-5&&!s/10

(C).fabs(t)<1e-5

(D).s/10==0

18. 以下叙述中正确的是

(A).

(A).构成C程序的基本单位是函数

(B).可以在一个函数中定义另一个函数

(C).main()函数必须放在其它函数之前

(D).所有被调用的函数一定要在调用之前进行定义19. 函数rewind 的作用是(A).

(A).使位置指针重新返回文件的开头

(B).将位置指针指向文件中所要求的特定位置(C).使位置指针指向文件的末尾

(D).使位置指针自动移至下一个字符位置

20. C语言程序中,当调用函数时(A).

(A).实参和虚参各占一个独立的存储单元

(B).实参和虚参可以共用存储单元

(C).可以由用户指定是否共用存储单元

(D).计算机系统自动确定是否共用存储单元

21. 当定义一个结构体变量时,系统分配给它的内存是(A).

(A).各成员所需内存量的总和

(B).结构中第一个成员所需内存量

(C).结构中最后一个成员所需内存量

(D).成员中占内存量最大

者所需的容量

22. 下列变量定义中合法

的是(A).

(A).short _a=1-.1e-1;

(B).double b=1+5e2.5;

(C).long do=0xfdaL;

(D).float 2_and=1-e-3;

23. 若有说明语句:char

c='\72';则变量c(A).

(A).包含1个字符

(B).包含2个字符

(C).包含3个字符

(D).说明不合法,c的值不

确定

24. 结构体类型的定义允

许嵌套是指(A).

(A).成员是已经或正在定

义的结构体型

(B).成员可以重名

(C).结构体型可以派生

(D).定义多个结构体型

25. 先用语句定义字符型

变量c,然后要将字符a赋

给c,则下列语句中正确的

是(A).

(A).c='a';

(B).c="a";

(C).c="97";

(D).C='97'

26. 下列数组说明中,正确

的是(A).

(A).static char

str[]="China";

(B).static char str[];

str="China";

(C).static char

str1[5],str2[]={"China"

}; str1=str2;

(D).static char

str1[],str2[];str2={"Ch

ina"};

strcpy(str1,str2);

27. 若有int *p=(int

*)malloc(sizeof(int));

则向内存申请到内存空间

存入整数123的语句为(A).

(A).scanf("%d",p);

(B).scanf("%d",&p);

(C).scanf("%d",*p);

(D).scanf("%d",**p);

28. 以下叙述中正确的是

(A).

(A).C程序中注释部分可以

出现在程序中任意合适的

地方

(B).花括号"{"和"}"只能

作为函数体的定界符

(C).构成C程序的基本单位

是函数,所有函数名都可以

由用户命名

(D).分号是C语句之间的分

隔符,不是语句的一部分

29. 执行下面程序后,输出

结果是(A).

main()

{ int a=45,b=27,c=0;

c=max(a,b);

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

}

int max(int x,int y)

{ int z;

if(x>y) z=x;

else z=y;

return(z);

}

(A).45

(B).27

(C).18

(D).72

30. 设有以下语句, 若

0

串的非法引用是(A).

char

str[4][2]={"aaa","bbb",

"ccc","ddd"},*strp[4];

int j;

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

strp[j]=str[j];

(A).strp

(B).str[k]

(C).strp[k]

(D).*strp

31. 9以下语句中,循环次数不为10次的语句是(A).

(A).for(i=1;i<10;i++);

(B).i=1;do{i++;}while(i <=10);

(C).i=10;while(i>0){--i ;}

(D).i=1;m:if(i<=10){i++ ;goto m;}

32. 14以下不能正确进行字符串赋初值的语句是(A).

(A).char str[5]="good!";

(B).char str[]="good!";

(C).char *str="good!";

(D).char

str[5]={'g','o','o','d' };

33. 18若有double *p,x[10];int i=5;使指针变量p指向元素x[5]的语句为(A).

(A).p=&x[i];

(B).p=x;

(C).p=x[i];

(D).p=&(x+i)

34. C语言的if语句嵌套时,if与else的配对关系是(A).

(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对(B).每个else总是与最外层的if配对

(C).每个else与if的配对是任意的

(D).每个else总是与它上面的if配对35. 16以下正确的函数定

义形式是(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);

36. 18经过下列的语句

int j,a[10],*p;定义后,下

列语句中合法的是(A)

(A).p=a+2;

(B).p=a[5];

(C).p=a[2]+2;

(D).p=&(j+2);

37. 17enum a

{sum=9,mon=-1,tue};2cha

r a[]="This is a

program.";输出前5个字符

的语句是(A).

(A).printf("%.5s",a);

(B).puts(a);

(C).printf("%s",a);

(D).a[5*2]=0;puts(a);

选择题B篇

38. C语言源程序的基本单

位是(B).

(A).过程

(B).函数

(C).子程序

(D).标识符

39. 下列程序的输出结果

是(B).

main()

{char c1=97,c2=98;

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

}

(A).97 98

(B).97 b

(C).a 98

(D).a b

40. 下列四个选项中,均是

C语言关键字的选项是(B).

(A).auto enum

include

(B).switch typedef

continue

(C).signed union

scanf

(D).if struct type

41. 以下能对二维数组a进

行正确初始化的语句是

(B).

(A).int

a[2][]={{1,0,1},{5,2,3}

};

(B).int

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

};

(C).int

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

{6}};

(D).int

a[][3]={{1,0,1}{},{1,1}

};

42. 以下对枚举类型名的

定义中正确的是(B).

(A).enum

a={sun,mon,tue};

(B).enum a

{sun=9,mon=-1,tue};

(C).enum

a={"sun","mon","tue"};

(D).enum a

{"sun","mon","tue"};

43. 以下选项中合法的用

户标识符是(B).

(A).long

(B)._2Test

(C).3Dmax

(D).A.dat

44. 以下叙述中正确的是

(B).

(A).C语言的源程序不必通

过编译就可以直接运行

(B).C语言中的每条可执行

语句最终都将被转换成二

进制的机器指令

(C).C源程序经编译形成的二进制代码可以直接运行(D).C语言中的函数不可以单独进行编译

45. 以下叙述中不正确的是(B).

(A).一个好的程序应该有详尽的注释

(B).在C程序中,赋值运算符的优先级最低

(C).在C程序中,j++;是一条赋值语句

(D).C程序中的#include和#define均不是C语句

46. 若有以下程序段:int a=3,b=4;

a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是(B).

(A).a=3,b=4

(B).a=4,b=3

(C).a=4,b=4

(D).a=3,b=3

47. 9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).

k1=1;

k2=2;

k3=3;

x=15;

if(!k1) x--;

else if(k2) x=4; else x=3;

(A).14

(B).4

(C).15

(D).3

48. 给数组a的所有元素分别赋值为1、2、3、……的语句是(B).

(A).for(i=1;i<11;i++)a[ i]=i;

(B).for(i=1;i<11;i++)a[i-1]=i;

(C).for(i=1;i<11;i++)a[

i+1]=i;

(D).for(i=1;i<11;i++)a[

0]=1;

49. C语言中不可以嵌套的

是(B).

(A).函数调用

(B).函数定义

(C).循环语句

(D).选择语句

50. int

a[10]={1,2,3,4,5,6,7,8}

;int *p;p=&a[5];p[-3]的

值是(B)

(A).2

(B).3

(C).4

(D).不一定

51. 若k为int型变量,则

以下程序段的执行结果是

(B).

k=-8567;

printf("|%06D|\n",k);

(A).格式描述符不合法,输

出无定值

(B).输出为|%06D|

(C).输出为|0-8567|

(D).输出为|-8567|

52. fseek函数的正确调用

形式是(B).

(A).fseek(文件类型指针,

起始点,位移量)

(B).fseek(fp,位移量,起

始点)

(C).fseek(位移量,起始

点,fp)

(D).fseek(起始点,位移量,

文件类型指针)

53. 下列表达式中,可作为

C合法表达式的是(B).

(A).[3,2,1,0]

(B).(3,2,1,0)

(C).3=2=1=0

(D).3/2/1/0

54. 以下程序的输出结果

为(B).

main()

{int

a=1,b=2,c=3,d=4,e=5;

printf("%d\n",func((a+b

,b+c,c+a),(d+e)));

}

int func(int x,int y)

{

return(x+y);

}

(A).15

(B).13

(C).9

(D).函数调用出错

55. 以下标识符中,不能作

为合法的C用户定义标识符

的是(B).

(A).a3_b3

(B).void

(C)._123

(D).IF

56. 假设所有变量均为整

型,表达

式:a=2,b=5,a>b?a++:b++,

a+b的值是(B).

(A).7

(B).8

(C).9

(D).2

57. 以下程序段的输出结

果为(B).

for(i=4;i>1;i--)

for(j=1;j

putchar('#');

(A).无

(B).######

(C).#

(D).###

58. 设C语言中,int类型

数据占2个字节,则

unsigned类型数据占(B).

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

59. 对 for(表达式1; ;表达式3) 可理解为(B). (A).for(表达式1;0;表达式3)

(B).for(表达式1;1;表达式3)

(C).for(表达式1;表达式1;表达式3)

(D).for(表达式1;表达式3;表达式3)

60. C语言中,定义结构体的保留字是(B).

(A).union

(B).struct

(C).enum

(D).typedef

61. 设C语言中,int类型数据占2个字节,则short 类型数据占().B

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

62. 对 for(表达式1; ;表达式3) 可理解为(B). (A).for(表达式1;0;表达式3)

(B).for(表达式1;1;表达式3)

(C).for(表达式1;表达式1;表达式3)

(D).for(表达式表达式3;表达式3)

63. C语言允许函数类型缺省定义,此时函数值隐含的类型是().B

(A).float

(B).int

(C).long (D).double

64. 若有int

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

则*(a+1),*(*a+1)的含义

分别为(B).

(A).非法,2

(B).&a[1][0],2

(C).&a[0][1],3

(D).a[0][0],4

65. 以下叙述正确的是

(B).

(A).可以把define和if定

义为用户标识符

(B).可以把define定义为

用户标识符,但不能把if定

义为用户标识符

(C).可以把if定义为用户

标识符,但不能把define定

义为用户标识符

(D).define和if都不能定

义为用户标识符

66. sizeof(float)是(B).

(A).一个双精度型表达式

(B).一个整型表达式

(C).一种函数调用

(D).一个不合法的表达式

67. 对 for(表达式1; ;表

达式3) 可理解为(B).

(A).for(表达式1;0;表达

式3)

(B).for(表达式1;1;表达

式3)

(C).for(表达式1;表达式

1;表达式3)

(D).for(表达式1;表达式

3;表达式3)

68. 若有说明:int i,

j=2,*p=&i;,则能完成i=j

赋值功能的语句是(B).

(A).i=*p;

(B).*p=*&j;

(C).i=&j;

(D).i=**p;

69. 下面四个选项中,均是

不合法的浮点数的选项是

(B).

(A).160. 0.12 e3

(B).123 2e4.2 .e5

(C).-.18 123e4 0.0

(D).-e3 .234 1e3

70. 在一个C程序中(B).

(A).main函数必须出现在

所有函数之前

(B).main函数可以在任何

地方出现

(C).main函数必须出现在

所有函数之后

(D).main函数必须出现在

固定位置

71. 若二维数组a有m列,

则在a[i][j]前的元素个数

为(B).

(A).j*m+i

(B).i*m+j

(C).i*m+j-1

(D).i*m+j+1

72. 若有下列定义,则对a

数组元素地址的正确引用

是(B).

int a[5],*p=a;

(A).&a[5]

(B).p+2

(C).a++

(D).&a

73. 2下列字符序列中,不

可用作C语言标识符的是

(B).

(A).b70

(B).#ab

(C).symbol

(D).a_1

74. 15以下不正确的说法

是:C语言规定(B).

(A).实参可以是常量,变量

或表达式

(B).形参可以是常量,变量

或表达式

(C).实参可以为任何类型

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

75. 3下列数据中,为字符串常量的是(B).

(A).A

(B)."house"

(C).How do you do.

(D).$abc

76. 17在位运算中,操作数每右移一位,其结果相当于(B).

(A).操作数乘以2

(B).操作数除以2

(C).操作数乘以16

(D).操作数除以16

77. 以下所列的C语言常量中,错误的是(B).

(A).0xFF

(B).1.2e0.5

(C).2L

(D).'\72'

78. 为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.

(A).auto

(B).register

(C).static

(D).extern

79. 10int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c 的值为().B

(A).1

(B).2

(C).3

(D).不一定

80. 以下不正确的定义语句是(B).

(A).double

x[5]={2.0,4.0,6.0,8.0,1

0.0};

(B).int y[5]={0,1,3,5,7,9};

(C).char

c1[]={'1','2','3','4','

5'};

(D).char

c2[]={'\x10','\xa','\x8

'};

81. C语言规定:简单变量

做实参时,它和对应形参之

间的数据传递方式是(B).

(A).地址传递

(B).单向值传递

(C).由实参传给形参,再由

形参传回给实参

(D).由用户指定的传递方

82. 以下程序的输出结果

是(B).

main()

{ char s[]="123",*p;

p=s;

printf("%c%c%c\n",*p++,

*p++,*p++);

}

(A).123

(B).321

(C).213

(D).312

83. 以下语句中,不能实现

回车换行的是(B).

(A).printf("\n");

(B).putchar("\n");

(C).fprintf(stdout,"\n"

);

(D).fwrite("\n",1,1,std

out);

选择题C篇

84. 设C语言中,int类型

数据占2个字节,则long类

型数据占(C).

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

85. 以下叙述正确的是

(C).

(A).在C程序中,main函数

必须位于程序的最前面

(B).C程序的每行中只能写

一条语句

(C).C语言本身没有输入输

出语句

(D).在对一个C程序进行编

译的过程中,可发现注释中

的拼写错误

86. 以下数值中,不正确的

八进制数或十六进制数是

(C).

(A).0x16

(B).016

(C).-16

(D).0xaaaa

87. 已知x=43,ch='A',y=0;

则表达式

(x>=y&&ch<'B'&&!y)的值

是(C).

(A).0

(B).语法错

(C).1

(D).假

88. 能将高级语言编写的

源程序转换为目标程序的

是(C).

(A).链接程序

(B).解释程序

(C).编译程序

(D).编辑程序

89. 以下关于运算符优先

顺序的描述中正确的是

(C).

(A).关系运算符<算术运算

符<赋值运算符<逻辑运算

(B).逻辑运算符<关系运算

符<算术运算符<赋值运算

(C).赋值运算符<逻辑运算

符<关系运算符<算术运算

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

90. 以下叙述中不正确的是(C).

(A).表达式a&=b等价于a=a&b

(B).表达式a|=b等价于a=a|b

(C).表达式a!=b等价于a=a!b

(D).表达式a^=b等价于a=a^b

91. 12.以下不能对二维数组a进行正确初始化的语句是(C).

(A).int a[2][3]={0};

(B).int

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

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

(D).int

a[][3]={1,2,3,4,5,6}; 92. 下列语句中,不正确的是C

(A).static char a[2]={1,2};

(B).static int a[2]={'1','2'};

(C).static char a[2]={'1','2','3'}; (D).static char a[2]={'1'};

93. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};

说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(C). (A).a[1]

(B).a[-1]

(C).a[0]

(D).a[10]

94. 以下字符中不是转义

字符的是(C).

(A).'\a'

(B).'\b'

(C).'\c'

(D).'\\'

95. 以下数据中,不正确的

数值或字符常量是(C).

(A).0

(B).5L

(C).o13

(D).9861

96. 若输入ab,程序运行结

果为(C).

main()

{ static char a[2];

scanf("%s",a);

printf("%c,%c",a[1],a[2

]);

}

(A).a,b

(B).a,

(C).b,

(D).程序出错

97. 下列程序段的输出结

果为(C).

int a=7,b=9,t;

t=a*=a>b?a:b;

printf("%d",t);

(A).7

(B).9

(C).63

(D).49

98. 下面四个选项中,均是

不合法的用户标识符的选

项是(C).

(A).A P_0 do

(B).float la0 _A

(C).b-a goto int

(D)._123 temp int

99. 在C语言中,调用函数

除函数名外,还必须有(C).

(A).函数预说明

(B).实际参数

(C).( )

(D).函数返回值

100. 下面判断正确的

是(C).

(A).char *a="china";等价

于 char *a;*a="china";

(B).char

str[10]={"china"};等价

charstr[10];str[]={"chi

na"};

(C).char *s="china";等价

于 char *s;s="china";

(D).char

c[4]="abc",d[4]="abc";

等价于char

c[4]=d[4]="abc";

101. char

*s1="hello",*s2;s2=s1;

则(C)

(A).s2指向不确定的内存

单元

(B).不能访问"hello"

(C).puts(s1);与puts(s2);

结果相同

(D).s1不能再指向其它单

102. 若a是float型变

量,b是unsigned型变量,

以下输入语句中合法的是

(C).

(A).scanf("%6.2f%d",&a,

&b);

(B).scanf("%f%n",&a,&b)

;

(C).scanf("%f%3o",&a,&b

);

(D).scanf("%f%f",&a,&b)

;

103. C语言执行程序的开始执行点是(C). (A).程序中第一条可以执行语言

(B).程序中第一个函数

(C).程序中的main函数

(D).包含文件中的第一个函数

104. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是(C).

(A).字符串读入后不会自动加入'\0'

(B).fp是file类型的指针

(C).fgets函数将从文件中最多读入n-1个字符(D).fgets函数将从文件中最多读入n个字符

105. 若有说明int a[3][4];则对a数组元素的正确引用是(C).

(A).a[2][4]

(B).a[1,3]

(C).a[1+1][0]

(D).a(2)(1)

106. C程序中的宏展开是在(C).

(A).编译时进行的

(B).程序执行时进行的

(C).编译前预处理时进行的

(D).编辑时进行的

107. 设有说明int (*ptr)[M];其中标识符ptr 是(C).

(A).M个指向整型变量的指针

(B).指向M个整型变量的函数指针

(C).一个指向具有M个整型元素的一维数组的指针(D).具有M个指针元素的一维指针数组,每个元素都只能指向整型量

108. 若有char

a[80],*s=a;不正确的输入

语句是(C).

(A).scanf("%s",s);

(B).gets(s);

(C).fscanf(stdin,"%c",s

);

(D).fgets(s,80,stdin);

109. 以下选项中合法

的实型常数是(C).

(A).5E2.0

(B).E-3

(C)..2

(D).1.3E

110. 以下常量中,能够

代表逻辑"真"值的常量是

(C).

(A).'\0'

(B).0

(C).'0'

(D).NULL

111. 以下标识符中,不

能作为合法的C用户定义标

识符的是(C).

(A).putchar

(B)._double

(C).123_

(D).INT

112. 7经过以下语句定

义后,表达式

z+=x>y?++x:++y的值为

(C).

int x=1,y=2,z=3;

(A).2

(B).3

(C).6

(D).5

113. 8以下运算符中优

先级最低的是(C).

(A).&&

(B).&

(C).||

(D).|

114. char a[10];不能

将字符串"abc"存储在数组

中的是(C).

(A).strcpy(a,"abc");

(B).a[0]=0;strcat(a,"ab

c");

(C).a="abc";

(D).int

i;for(i=0;i<3;i++)a[i]=

i+97;a[i]=0;

115. 在C语言中,引用

数组元素时,其数组下标的

数据类型允许是(C).

(A).整型常量

(B).整型表达式

(C).整型常量或整型表达

(D).任何类型的表达式

116. 以下各选项企图

说明一种新的类型名,其中

正确的是(C).

(A).typedef v1 int;

(B).typedef v2=int;

(C).typedef int v3;

(D).typedef v4: int;

117. 9执行语句

for(i=1;i++<4;); 后变量

i 的值是(C).

(A).3

(B).4

(C).5

(D).不定

118. 1以下程序段的执

行结果是(C).

double x;x=218.82631;

printf("%-6.2e\n",x);

(A).输出格式描述符的域

宽不够,不能输出

(B).输出为21.38e+01

(C).输出为2.2e+02

(D).输出为-2.14e2

119. 以下运算符中,优

先级最高的运算符是(C).

(A).||

(B).%

(C).!

(D).==

(C).98,c

120. C语言规定,在一个源程序中,main函数的位置(C).

(A).必须在最开始

(B).必须在系统调用的库函数的后面

(C).可以任意

(D).必须在最后

121. 当顺利执行了文件关闭操作时,fclose函数的返回值是(C).

(A).-1

(B).True

(C).0

(D).1

122. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C).

(A).char

s[10]="abcdefg"; (B).char

t[]="abcdefg",*s=t; (C).char

s[10];s="abcdefg"; (D).char

s[10];strcpy(s,"abcdefg ");

123. 在C语言中,函数的隐含存储类别是(C).

(A).auto

(B).static

(C).extern

(D).无存储类别

124. 若已定义x为int 类型变量,下列语句中说明指针变量p的正确语句是(C).

(A).int p=&x;

(B).int *p=x;

(C).int *p=&x; (D).*p=*x;

125. 切换编辑窗和信

息窗的命令键是(C).

(A).F2

(B).F3

(C).F6

(D).F9

126. 在以下给出的表

达式中,与do--while(E)

语句中的(E)不等价的表达

式是(C).

A).(!E==0)

(B).(E>0||E<0)

(C).(E==0)

(D).(E!=0)

127. 用下列语句定义

a,b,c,然后执行b=a、

c='b'+b,则b,c的值是(C).

long a=0xffffff;

int b; char c;

(A).0ffffff 和0x61

(B).-1和98

(C).-1和97

(D).指向同一地址

128. 以下对二维数组a

的正确说明是(C).

A).int a[3][]

(B).float a(3,4)

(C).double a[1][4]

(D).float a(3)(4)

129. 在C语言的函数中,

下列正确的说法是(C).

(A).必须有形参

(B).形参必须是变量名

(C).可以有也可以没有形

(D).数组名不能作形参

130. char

*s1="hello",*s2;s2=s1;

则(C).

(A).s2指向不确定的内存

单元

(B).不能访问"hello"

(C).puts(s1);与puts(s2);

结果相同

(D).s1不能再指向其它单

131. 以下不正确的if

语句形式是(C).

(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

选择题D篇

132. C语言中,double

类型数据占(D).

(A).1个字节

(B).2个字节

(C).4个字节

(D).8个字节

133. 设a为整型变量,

初值为12,执行完语句

a+=a-=a*a后,a的值是(D).

(A).552

(B).144

(C).264

(D).-264

134. 下列程序的输出

为(D).

main()

{ int y=10;

while(y--) ;

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

}

(A).y=0

(B).while构成无限循环

(C).y=1

(D).y=-1

135. 以下能正确定义

数组并正确赋初值的语句

是(D).

(A).int N=5,b[N][N];

(B).int

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

(C).int

c[2][]={{1,2},{3,4}};

(D).int

d[3][2]={{1,2},{34}}; 136. 若有说明: int a[][4]={0,0};则下面不正确的叙述是(D).

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

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

(C).因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

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

137. C语言规定,函数返回值的类型是由(D). (A).return语句中的表达式类型所决定

(B).调用该函数时的主调函数类型所决定

(C).调用该函数时系统临时决定

(D).在定义该函数时所指定的函数类型所决定

138. 则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是(D).

(A).if(strcmp(s1,s1)>0) puts(s2);

(B).if(strcmp(s2,s1)>0) puts(s2);

(C).if(strcmp(s2,t)>0)p uts(s2);

(D).if(strcmp(s1,t)>0)p uts(s2);

139. 下列选项中正确的语句组是(D).

(A).char s[8]; s={"Beijing"};

(B).char *s; s={"Beijing"} (C).char s[8];

s="Beijing";

(D).char *s;

s="Beijing";

140. 以下叙述中错误

的是(D).

(A).二进制文件打开后可

以先读文件的末尾,而顺序

文件不可以

(B).在程序结束时,应当用

fclose函数关闭已打开的

文件

(C).在利用fread函数从二

进制文件中读数据时,可以

用数组名给数组中所有元

素读入数据

(D).不可以用FILE定义指

向二进制文件的文件指针

141. 以下数组定义中

不正确的是(D).

(A).int a[2][3];

(B).int

b[][3]={0,1,2,3};

(C).int c[100][100]={0};

(D).int

d[3][]={{1,2},{1,2,3},{

1,2,3,4}};

142. 函数的形式参数

隐含的存储类型说明是

(D).

(A).extern

(B).static

(C).register

(D).auto

143. 在定义构造数据

类型时,不能(D).

(A).说明变量

(B).说明存储类型

(C).初始化

(D).末尾不写分号

144. 具有相同类型的

指针变量p与数组a,不能

进行的操作是(D).

(A).p=a;

(B).*p=a[0];

(C).p=&a[0];

(D).p=&a;

145. 8.下列运算符中,

不属于关系运算符的是

(D).

(A).<

(B).>

(C).>=

(D).!

146. 15.以下错误的描

述是:函数调用可以(D).

(A).出现在执行语句中

(B).出现在一个表达式中

(C).做为一个函数的实参

(D).做为一个函数的形参

147. 18.若有说明:int

n=2,*p=&n,*q=p;,则以下

非法的赋值语句是(D).

(A).p=q;

(B).*p=*q;

(C).n=*q;

(D).p=n;

148. 下列字符序列中,

可用作C标识符的一组字符

序列是(D).

(A).S.b,sum,average,_ab

ove

(B).class,day,lotus_1,2

day

(C).#md,&12x,month,stud

ent_n!

(D).D56,r_1_2,name,_st_

1

149. double

x;scanf("%lf",&x);不可

以赋值给x变量的常量是

(D).

(A).123

(B).100000

(C).'A'

(D)."abc"

150. 若int类型数据占

两个字节,则下列语句的输

出为(D).

nt k=-1; printf("%d,%u\n",k,k);

(A).-1,-1

(B).-1,32767

(C).-1,32768

(D).-1,65535

151. 若k,g均为int型变量,则下列语句的输出为(D).

k=017; g=111; printf("%d\t",++k); printf("%x\n",g++);

(A).15 6f

(B).16 70

(C).15 71

(D).16 6f

152. 以下不能正确定义二维数组的选项是(D). (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}}; 153. 下列定义数组的语句中不正确的是(D). (A).static int a[2][3]={1,2,3,4,5,6}; (B).static int a[2][3]={{1},{4,5}}; (C).static int a[][3]={{1},{4}}; (D).static int a[][]={{1,2,3},{4,5,6}}

;

154. 在定义构造数据类型时,不能(D).

(A).说明变量

(B).说明存储类型

(C).初始化

(D).末尾不写分号155. 下面说明不正确

的是(D).

(A).char a[10]="china";

(B).char

a[10],*p=a;p="china"

(C).char *a;a="china";

(D).char

a[10],*p;p=a="china"

156. 若a=1,b=2则 a|b

的值是(D).

(A).0

(B).1

(C).2

(D).3

157. 下列运算符中是C

语言关系运算符的是(D).

(A).~

(B).!

(C).&

(D).!=

158. C语言中要求对变

量作强制定义的主要理由

是(D).

(A).便于移植

(B).便于写文件

(C).便于编辑预处理程序

的处理

(D).便于确定类型和分配

空间

159. 以下不符合C语言

语法的赋值语句是(D).

(A).j++;

(B).j=j=5;

(C).k=(2*4,k*4);

(D).y=float(j);

160. 在C语言中,if语

句后的一对原括号中,用以

决定分支的流程的表达式

(D).

(A).只能用逻辑表达式

(B).只能用关系表达式

(C).只能用逻辑表达式或

关系表达式

(D).可用任意表达式

161. 在C语言中,一维

数组的定义方式为:类型说

明符数组名(D).

(A).[常量表达式]

(B).[整型表达式]

(C).[整型常量]或[整型表

达式]

(D).[整型常量]

162. 以下标识符中,不

能作为合法的C用户定义标

识符的是(D).

(A).For

(B).Printf

(C).WORD

(D).sizeof

163. 在C语言中,char

型数据在内存中的存储形

式是(D).

(A).补码

(B).反码

(C).原码

(D).ASCII码

164. c以下对一维整型

数组a的正确说明是(D).

(A).int a(10);

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

(C).int n;

scanf("%d",&n); int

a[n];

(D).#define SIZE 10 (换

行) int a[SIZE];

165. 关于指针概念说

法不正确的是(D).

(A).一个指针变量只能指

向同一类型变量

(B).一个变量的地址称为

该变量的指针

(C).只有同一类型变量的

地址才能放到指向该类型

变量的指针变量之中

(D).指针变量可以由整数

赋,不能用浮点赋

166. 以下运算符中,优

先级最高的运算符是(D).

(A).=

(B).!=

(C).*(乘号)

(D).()

167. 使用共用体变量,不可以(D).

(A).节省存储空间

(B).简化程序设计

(C).进行动态管理

(D).同时访问所有成员168. 以下叙述正确的是(D).

(A).do-while语句构成的循环不能用其它语句构成的循环来代替.

(B).do-while语句构成的循环只能用break语句退出.

(C).用do-while语句构成的循环,在while后的表达式为非零时结束循环. (D).用do-while语句构成的循环,在while后的表达式为零时结束循环

169. 以下程序段 char *alp[]={"ABC","DEF","GH I"}; int j; puts(alp[1]);的输出结果是(D).

(A).A

(B).B

(C).D

(D).DEF

170. 在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D).

(A).由用用户自己定义

(B).均为2个字节

(C).是任意的

(D).由所用机器的机器字长决定

171. 12以下定义语句中,错误的是(D).

(A).int a[]={1,2};

(B).char *a[3];

(C).char s[10]="test";

(D).int n=5,a[n];

172. 2putchar函数可

以向终端输出一个(D).

(A).整型变量表达式值

(B).实型变量值

(C).字符串

(D).字符或字符型变量值

173. 以下不正确的叙

述是(D).

(A).在C程序中所用的变量

必须先定义后使用

(B).程序中,APH和aph是

两个不同的变量

(C).若a和b类型相同,在

执行了赋值语句a=b;后b

中的值将放入a中,b中的

值不变

(D).当输入数值数据时,对

于整型变量只能输入整型

值;对于实型变量只能输入

实型值

174. 6以下程序的输出

结果是(D).

main()

{int i,j,k,a=3,b=2;

i=(--a==b++)?--a:++b;

j=a++;k=b;

printf("i=%d,j=%d,k=%d\

n",i,j,k);

}

(A).i=2,j=1,k=3

(B).i=1,j=1,k=2

(C).i=4,j=2,k=4

(D).i=1,j=1,k=3

175. 7判断char型变

量cl是否为小写字母的正

确表达式是(D).

(A).'a'<=cl<='z'

(B).(cl>=a)&&(cl<=z)

(C).('a'>=cl)||('z'<=cl

)

(D).(cl>='a')&&(cl<='z'

)

176. 10以下程序的运

行结果是(D).

main()

{

int i=1,sum=0;

while(i<10)

sum=sum+1;i++;

printf("i=%d,sum=%d",i,

sum);

}

(A).i=10,sum=9

(B).i=9,sum=9

(C).i=2,sum=1

(D).运行不出结果

177. 下列关于C语言数

据文件的叙述中正确的是

(D).

(A).文件由ASCII码字符序

列组成,C语言只能读写文

本文件

(B).文件由二进制数据序

列组成,C语言只能读写二

进制文件

(C).文件由记录序列组成,

可按数据的存放形式分为

二进制文件和文本文件

(D).文件由数据流形式组

成,可按数据的存放形式分

为二进制文件和文本文件

178. 5C语言中表达逻

辑"真"值的是(D).

(A)..T.

(B).0

(C).True

(D).非0的数

179. 20若调用fputc

函数输出字符成功,则其返

回值是(D).

(A).EOF

(B).1

(C).0

(D).输出的字符

180. 10下面有关 for 循环的正确描述是(D). (A).for 循环只能用于循环次数已经确定的情况(B).for 循环是先执行循环循环体语句,后判断表达式

(C).在 for 循环中,不能用 break 语句跳出循环体(D).for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来181. 若char a[10];已正确定义,以下语句中不能

从键盘上给a数组的所有元

素输入值的语句是(D).

(A).gets(a);

(B).scanf("%s",a);

(C).for(i=0;i<10;i++)a[

i]=getchar();

(D).a=getchar();

182. 20fscanf函数的

正确调用形式是(D).

(A).fscanf(fp,格式字符

串,输出表列);

(B).fscanf(格式字符串,

输出表列,fp);

(C).fscanf(格式字符串,

文件指针,输出表列);

(D).fscanf(文件指针,格

式字符串,输入表列);

183. 7下列语句的结果

是(D).

main()

{ int j;

j=3;

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

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

}

(A).3,3

(B).3,4

(C).4,3

(D).4,4

判断题 - 正确篇

1. 字符常量的长度肯定为1.Y

2. 在调用函数时,实参把值传送给对应位置上的形参,形参的值不能传给实参.Y

3. 在程序中凡是以#号开始的语句行都是预处理命令行Y

4. 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量.Y

5. 在程序中,APH和aph是两个不同的变量.Y

6. 在Turbo C中,int型数据在内存中占2个字节.Y

7. 在C语言中8.9e1.2是不正确的实型常量.Y

8. 在C语言中,变量必需先定义后使用.Y

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

10. 在C语言的函数中,可以有也可以没有形参Y

11. 在C语言程序中,函数的定义不可以嵌套,但函数的调用可以嵌套Y

12. 在C语言程序设计中,"/*"和"*/"之间的内容是C语言的注释Y

13. 在C程序中,逗号运算符的优先级最低.Y

14. 在C程序中,j++;是一条赋值语句.Y

15. 在C 语言中,此定义和语句是合法的:enum aa { a=5,b,c}bb;bb=(enum aa)5;Y

16. 用fopen("file","r+");打开的文件"file"可以进行修改.Y

17. 一个字符变量只能存储一个字符.Y

18. 一个指针变量只能指向同一类型变量. Y

19. 一个C程序必须由一个或一个以上的函数组成.Y

20. 也可用其它编辑软件创建ASCII数据文件用在C程序中.Y

21. 位段定义中允许长度为零的无名字段.Y

22. 同一数组的元素在内存中存储是连续存放的,占有连续的存储单元.Y

23. 数组说明 int a[3][3]={1,2,3,4,5}; 是正确的.Y

24. 数 -32100可以赋值给int型和long int型变量.Y

25. 设x、t均为int型变量,则执行语句"x=10;t=x&&x<=10;"后,t的值为1.Y

26. 三种循环(while语句for语句do-while语句)都可以用来处理同一个问题,一般它们可以相互代替.Y

27. 若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y

28. 若有int a[3][4];*(a+1)+2表示a[1][2]元素的地址. Y

29. 若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5.Y

30. 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变.Y

31. 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};Y

32. 枚举类型的数据不能从键盘上直接输入、输出.Y

33. 结构体类型的定义允许嵌套.Y

34. 将整数以二进制形式存盘比以ASCII形式存盘省空间、运算快.Y

35. 将一维双精度实数数组x的下标为i的变量的地址赋给指针变量p的语句为:double *p,x[10];int i=5;p=&x[i];Y

36. 将数组a的首地址赋给指针变量p的语句是p=a;Y

37. 共用体类型变量不能被初始化.Y

38. 共同体变量所占的内存长度等于最长的成员的长度.Y

39. 对指针变量的初始化int a,*pa=&a,*pc=0;是正确的.Y

40. 对文件进行读写操作,必须先打开,可调用函数fopen().Y

41. 对枚举类型名的定义enum a {sum=9,mon=-1,tue};是正确的.Y

42. 对结构体类型的变量的成员可以象普通变量一样参与各种运算.Y

43. 动态存储分配,可调用函数malloc(),如int *p;p=(int *)malloc(sizeof(p));Y

44. 当定义一个结构体变量时,系统分配给它的内存是各成员所需内存量的总和.Y

45. 当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址.Y

46. 不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以文件的形式存在磁盘上.Y

47. x*=y+8 等价于 x=x*(y+8).Y

48. while 和for循环都是先判断表达式的值,后执行循环体语句.Y

49. typedef long int BIGGY;的作用是给长整型起了一个别名BIGGY.Y

50. static char a[]="This is a program.";printf("%s",a);是正确的.Y

51. rewind(fp);可使fp所指文件的位置返回到文件的开头.Y

52. r_1_2是C语言合法的用户定义标识符.Y

53. int n; scanf("%d",&n); int a[n]; 是不合法的.Y

54. int i=3,j=5; if(i>j);是正确的.Y

55. int i,*p=&i;是正确的C说明.Y

56. int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0.Y

57. int *p[6];定义了6个下标变量的整型指针.Y

58. fseek()函数一般用于二进制文件.Y

59. for(i=4;i>1;i--)for(j=1;j

60. do-while循环是先执行循环体语句,后判断表达式的值.Y

61. C语言中,文件由字符(字节)序列组成.Y

62. C语言规定,函数返回值的类型是由在定义该函数时所指定的函数类型所决定的.Y

63. C语言程序中,当调用函数时实参和形参各占一个独立的存储单元Y

64. char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量c.Y

65. char *s1="hello",*s2;s2=s1;是正确的.Y

66. char (*p)[6]; 若p值为1000,则p++;后p值为1006.Y

67. a=(b=4)+(c=6) 是一个合法的赋值表达式.Y

68. 0x173是"正确"的十六进制常数.Y

69. #define 和printf 都不是C语句.Y

判断题 - 错误篇

70. 执行表达式(int)i后,i的类型一定变为整型.N

71. 在一个C程序中,main函数必须出现在所有函数之前.N

72. 在C语言中,为句构成的循环, while后一对圆括号中表达式的值应该是1.N

73. 在C语言中,调用函数必须在一条独立的语句中完成.N

74. 在C程序中,每行中只能写一条语句 .N

75. 在C程序中,赋值运算符的优先级最低.N

76. 语句 printf("%f%%",1.0/3);输出为 0.333333.N

77. 与 if(E) 语句中的(E)等价的表达式是 (E==0).N

78. 用户定义的函数也可调用main函数.N

79. 以下各数均不是合法的八进制数:256、03A2、-0127.N

80. 已知ch是字符型变量,则ch="\";是正确的赋值语句.N

81. 一个变量可以同时被定义为多种类型.N

82. 一个include 命令可以指定多个被包含的文件.N

83. 数组说明 int a[3][3]={1,2,3,4,5,6,7} ;是正确的.N

84. 数组定义 int a[10]; 占内存10个字节.N

85. 数组定义 int a(10);是正确的.N

86. 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的.N

87. 若i =3,则printf("%d",-i++);输出的值为 -4.N

88. 若a是实型变量,在执行了a=5;后,a将变为整型变量.N

89. 若a和b的类型相同,在执行了a=b;后,b中的值将丢失.N

90. 任何结构体类型的变量都可以互相赋值.N

91. 枚举类型的数据与字符串在使用上相同.N

92. 结构体类型只有一种.N

93. 将函数fun的入口地址赋给指针变量p的语句是p=fun();N

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

95. 函数strlen("ASDFG\n")的值是7.N

96. 定义结构体的保留字是struc.N

97. 调用scanf()函数进行字符数组输入时,空格和换行符都可以作为字符串的一部分而能读入.N

98. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值.N

99. 程序中的变量代表内存中的一个存储单元,它的值不可以随时修改.N

100.参加位运算的数据可以是任何类型的数据.N

101.static char str[]="China";没有定义数组元素个数.N

102.sqrt(m)是求m平方的函数.N

103.inta[]={3.1,5.8,6.7,-3.6},i;for(i=0;i<4;i++)printf("%d",a[i]);能输出数组元素a[2]的值. N

104.int k=8567;printf("|%-6d|\n",k);的输出为|008567|.N

105.int i=3,j=5; if(i>j) ; j++; else i++;是正确的.N

106.int a[2][3];按照它在内存的排列次序,a数组的所有元素是a[0][0]、a[1][0]、a[0][1]、a[1][1]、a[0][2]、a[1][2].N

107.int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则p+5相当于a[5].N

108.if语句后面的控制表达式只能使用关系表达式或逻辑表达式.N

109.if(strcmp(temp,str)>0)中的条件是当字符串temp大于字符串str为真时.N

110.if (j=0) i+ +; else i- -; i的值为11.N

111.for(m=22;m<1000;m++) if(m%3==0&&m%7!=0)break;是当m能被3整除或m不能被7整除时,结束本次循环进入下次循环.N

112.for(i=0,k=-1;k=1;k++,i++)printf("*\n"); 循环体一次也不执行.N

113.C语言中字符型、整型、实型都能用八进制表示.N

114.C语言中的文件类型只有文本文件一种.N

115.C语言中的文件类型只有二进制文件一种.N

116.C语言的if语句嵌套时,if与else的匹配关系是每个else与if的匹配是任意的.N 117.C程序中有调用关系的所有函数必须放在同一个源程序文件中.N

118.continue语句不只用于循环语句中.N

119.char a[10]="abcdefg"; printf("%6s\n",a);只输出前六个字符.N

120.char *s;*s='H';是正确的.N

121.#include "stdio.h" 是每个程序中必须写的.N

改错题

题号:1

题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。/************FOUND***********/

a[i]=a[i-1];

正确答案:a[i+1]=a[i];

/************FOUND***********/ exit;}

正确答案: break;}

题号:2

题目:以下程序的功能是求如下表达式:/************FOUND***********/

print("%d",n) ;

正确答案:scanf(“%d”,&n);

/************FOUND***********/

fun(int n)

正确答案:float fun(int n)

题号:3

题目:函数fun的功能是:根据整型形参m 的值,计算如下公式的值。

/**********FOUND**********/

y-=1/(i*i);

正确答案:y-=1.0/(i*i);

/**********FOUND**********/

return m;

正确答案:return c;

题号:4 题目:函数fun的功能是:计算并输出该数列的前n项的平方根之和sum,n的值通过形参传入。

/**********FOUND**********/

fun (int n)

正确答案:double fun (int n)

/**********FOUND**********/

sum=0.0;

正确答案:sum=1.0;

/**********FOUND**********/

for(k=0;k<=n;k++)

正确答案:for(k=4;k<=n;k++)

/**********FOUND**********/

return s0;

正确答案:return sum;

题号:5

题目:以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍有序。

/************FOUND***********/

{ a[i]=a[i+1];

正确答案:{ a[i+1]=a[i];

/************FOUND***********/

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

正确答案:for(i=1;i<=n;i++)

题号:7

题目:函数scopy的功能是:将一个字符串

前面n个子字符送到一个字符型数组中去,然后再加上一个'\0'。不用系统提供的函数strcpy。请改正程序中的2个错误,使它能得出正确的结果。

/**************FOUND**************/ scanf("%d",n);

正确答案:scanf("%d",&n);

/**************FOUND**************/ scopy(str1,str2);

正确答案:scopy(str1,str2,n);

题号:8

题目:函数fun的功能是:求n!。主函数的功能是计算: x!+y!+z!的值。请改正程序中的错误,使它能得出正确的结果。

/**********FOUND**********/

scanf("%d,%d,%d",x,y,z);

正确答案:scanf("%d,%d,%d",&x,&y,&z); /**********FOUND**********/

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

正确答案:printf("Sum=%ld\ n",sum);

题号:10

题目:编写函数fun求整数n以内(不包括n)3的倍数之和,在main函数中由键盘输入

n值,并输出运算结果。

/**********FOUND**********/

scanf("%d",n);

正确答案:scanf("%d",&n);

/**********FOUND**********/

result=fun( );

正确答案:result=fun(n);

题号:14

题目:函数fun的功能是:求1到20的阶乘的和。

/**********FOUND**********/

s+t=s;

正确答案:s+=t;

/**********FOUND**********/

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

正确答案:printf("jiecheng=%f\n ",s); 题号:15

题目:函数fun的功能是:输出Fabonacci 数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。/************FOUND***********/

f2=f1;

正确答案: f1=f2

/************FOUND***********/

f3=f2;

正确答案:f2=f3

题号:18

题目:函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值

为500,则函数值为4622。

/**********FOUND**********/

while ((k>=2)||(mc<10))

正确答案:while ((2<=k)&&(mc<10))

/**********FOUND**********/

if((k%13=0)||(k%17=0))

正确答案:if((k%17==0)||(k%13==0))

题号:19

题目:函数fun的功能是:计算正整数num 的各位上的数字之积。

/**********FOUND**********/

scanf("%ld", n);

正确答案:scanf("%ld", &n);

/**********FOUND**********/

printf("\n%ld\n",fun(long n));

正确答案:printf("\n%ld\n",fun(n));

题号:22

题目:函数fun的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。例如,若给num1和num2分别输入49和21,则输出的最大公约数为7。

/************FOUND***********/

r=a/b;}

正确答案:r=a%b;}

/************FOUND***********/

return a;

正确答案:return b;

题号:23

题目:在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

/************FOUND***********/

int sum=0.0;

正确答案:double sum=0.0;

/************FOUND***********/

while(s[i] =0)

正确答案:while(s[i] !=0)

题号:24

题目:fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线上的元素之和sum。

/**********FOUND**********/

a=0;

正确答案:sum=0;

/**********FOUND**********/

scanf("%d",a[i][j]);

正确答案:scanf("%d",&a[i][j]);

题号:25

题目:fun函数的功能是:给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。

/**********FOUND**********/

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

正确答案:for(j=0;j

/**********FOUND**********/

return xb;

正确答案:return c;

题号:26

题目:fun函数的功能是:找出大于m的最小素数,并将其作为函数值返回。

/**********FOUND**********/

for(k=1;k

正确答案:for(k=2;k

/**********FOUND**********/

if(i%k!=0) break;

正确答案:if(i%k= =0) break;

题号:27

题目:fun函数的功能是:实现3行3列矩阵的转置,即行列互换。

/**********FOUND**********/

a[i][j]=t;

正确答案:t=a[j][i];

/**********FOUND**********/

t=a[j][i];

正确答案:a[i][j]=t;

题号:28 题目:fun函数的功能是:求一个3行4列矩阵的外框的元素值之和矩阵元素为1,2,3,4,5,6,7,8,9,10,时……

/**********FOUND**********/

int i,j,s,s1=s2=s3=s4=0;

答案:int i,j,s,s1=0,s2=0,s3=0,s4=0; /**********FOUND**********/

s2=s2+a[m][j];

正确答案:s2=s2+a[m-1][j];

题号:29

题目:fun函数的功能是:实现两个字符串的连接。例如:输入dfdfqe和12345时,则输出dfdfqe12345.

/**********FOUND**********/

s2[j]=s1[i];

正确答案:s[i]=s2[j];

/**********FOUND**********/

s2[j]='\ 0';

正确答案:s1[i]='\0';

题号:31

题目:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如:当s所指的字符串的内容为"ABCD"时,t所指数组中的内容为"DCBAABCD"。

/**********FOUND**********/

void fun (char s, char t)

答案:void fun (char s[], char t[]) /**********FOUND**********/

d = len(s);

正确答案:d = strlen(s);

题号:249

题目:下面程序的功能是:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。max代表最高分,min代表最低分, avg代表平均分。

/***********FOUND***********/

max=min=avg=a[1];

正确答案:max=min=avg=a[0];

/***********FOUND***********/

if(min

正确答案:if(min>a[i])

题号:250

题目:以下程序输出前六行杨辉三角形,既1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

…………

…………

/***********FOUND***********/

if(j==0&&j==i)

正确答案:if(j==0||j==i)

/***********FOUND***********/

a[i][j]=a[i-1][j-1]+a[i][j-1];

答案:a[i][j]=a[i-1][j-1]+a[i-1][j];

题号:251

题目:有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.

/***********FOUND***********/

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

正确答案:scanf("%d", &a[i]);

/***********FOUND***********/

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

正确答案:for(i=1;i<10;i++)

题号:253

题目:有一数组内放10个整数,要求求出所有元素的平均值.

/***********FOUND***********/

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

正确答案:for(i=1;i<10;i++)

/***********FOUND***********/

int score[10],aver ;

正确答案:float score[10],aver ;

题号:254

题目:一个已排好序的一维数组,输入一个数number,要求按原来排序的规律将它插入数组中.

/***********FOUND***********/

if(number>end) a[11]=number;

答案:f(number>end) a[10]=number;

/***********FOUND***********/

if(a[i]

正确答案:if(a[i]>number)

题号:255

题目:用"起泡法"对输入的十个字符排序后按从小到大的次序输出.

/***********FOUND***********/

scanf("%s",&str);

正确答案:scanf("%s",str);

/***********FOUND***********/

sort(str[N]);

正确答案:sort(str);

题号:260

题目:函数fun的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。注意:要求n的值不大于100。

/**************FOUND**********

float s;

正确答案:double s;

/**************FOUND**********

scanf("%d",n);

正确答案:scanf("%d",&n);

题号:261

题目:下面的函数delete(s,i,n)可用来从字符串中删除第i个字符开始的n个字符。/**********FOUND**********/

void delete (char s[],int i,n)

答案void delete (char s[],int i,int n) /**********FOUND**********/

{ int j,length,k;

正确答案:{ int j,length=0,k;

程序设计

22题目:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。

/**********Program**********/

int min,i;

min=x[0];

for(i=1;i

{if(x[i]

return min;

/********** End **********/

23题目:从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main 函数中输出相应的结论信息。例如:7是素

数,8不是素数。请编写fun函数。素数是仅能被1和自身整除的数

/**********Program**********/

int i;

int j;

j= 1;

for(i=2;i

{if(n%i==0) j= 0;}

return j;

/********** End **********/

29题目:请编写一个函数fun,函数的功能是:统计出若干个学生的平均成绩,最高分以及得最高分的人数。

/**********Program**********/

int i;float sum=0,ave;

Max=array[0];

for(i=0;i

{ if(Max

ave=sum/n;

for(i=0;i

if(array [i]==Max) J++;

return(ave);

/********** End **********/

40题目:请编写函数fun,它的功能是:判断m是否为素数。主函数的功能是:求出100到200之间的素数的

个数。

/**********Program**********/

int i,k=1;

if(m<=1) k=0;

for(i=2;i

if(m%i==0) k=0;

return k;

/********** End **********/

47.题目:编写函数fun,函数的功能是:计算并输出给定整数n的所有因子之和(不包括1与自身)。规定

n的值不大于1000。

/**********Program**********/

int s=0,i;

for(i=2;i

return s;

/********** End **********/

52.题目:编写函数fun,函数的功能是:求给定正整数m(包括m)

以内的素数之和。

/**********Program**********/

int i,k,s=0;

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

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s+i;}

return s;

/********** End **********

53.题目:编写函数fun,函数的功能是:求一个给定字符串

中的字母的个数。

/**********Program**********/

int i,k=0;

for(i=0;s[i]!='\0';i++)

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s [i]<='Z')

k++;

return k;

/********** End **********/

62.题目:编写函数fun,函数的功能是:找出一批正整数中的最大的偶数。

/**********Program**********/

int i,amax=-1;

for(i=0;i

if(a[i]%2==0)

if (a[i]>amax) amax=a[i];

return amax;

/********** End **********/

126.题目:用函数将两个字符串连接起来,不允许使用strcat函数。

/**********Program**********/

int i,j;

for(i=0;c1[i]!='\0';i++);

for(j=0;c2[j]!='\0';j++)

c1[i+j]=c2[j];

c1[i+j]='\0';

/********** End **********/

127.题目:用函数将一个N阶方阵进行转置,

2019年电大C语言考试题库(c语言小题+编程)

C语言程序设计课程期末复习练习 一、单选题 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 A. main B. MAIN C. name D. function 2.每个C语言程序文件的编译错误分为()类。 A. 1 B. 2 C. 3 D. 4 3. 字符串"a+b=12\n"的长度为()。 A. 6 B. 7 C. 8 D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。 A. for B. if C. do D. while 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为()。 int i=0; do i++; while(i<10); A. 4 B. 3 C. 5 D. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为()。 A. strlen() B. strcap() C. strcat() D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是()。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( )个字节。 A. 4 B. 8 C. 16 D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为()。 A. gets() B. fgets() C. getc() D. fgetc() 11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 A. 12 B. 144 C. 156 D. 288 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。 A. 1~19 B. 1~20 C. 0~19 D. 0~20 14. for循环语句“for(i=0; i

大学C语言考试试题

C语言模拟试题 一、判断 1、关系运算符<= =与= =的优先级相同。(N ) 2、C语言的函数可以嵌套定义。(N ) 3、若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5, 则a=10,c=?A?,f=12.5.( Y ) 4、变量根据其作用域的范围可以分作局部变量和全局变量。( Y ) 5、#define和printf都不是C语句。( Y ) 6、Int I,*p=&I;是正确的C说明。( Y ) 7、结构体类型只有一种。( N ) 8、在Turbo C中,整形数据在内存中占2个字节。( N ) 9、一个include命令可以指定多个被包含的文件。( N ) 10、有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8).( Y ) 二、选择 2、C语言中,char类型数据占(A) A、1个字节 B、2个字节 C、4个字节 D、8个字节 3、已知x=43,ch=?A?,y=o;则表达式(x>=y&&ch1;i--) for(j=1;j

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char*p[10];该语句声明了一个:。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D)有10个元素的指针数组p,每个元素存放一个字符串 2.若intx;且有下面的程序片断,则输出结果为:。 for(x=3;x<6;x++) { printf((x%2)"##%d":"**%d\n",x); } A) ##3B)**3 C)**3D)##3**4 **4##4##4**5##5 ##5**5 3.在while(!x)语句中的!x与下面条件表达式等价的是:。 A)x!=0B)x==1 C)x!=1D)x==0 4.已知 structpoint { intx; inty; }; structrect { structpointpt1; structpointpt2; }; structrectrt; structrect*rp=&rt; 则下面哪一种引用是不正确的________。 A) r t.pt1.xB) (*rp).pt1.xC) rp->pt1.x D)rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:。 A)*(a+j*n+i)B)*(a+i*n+j)C)*(*(a+i)+j)D)*(*a+i) +j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1.#include main()

{intn; staticchar*monthName[]= {"Illegalmonth","January","February", "March","April","May","June","July","August", "September","October","November","December"}; for(n=1;n<=12;n++) { printf("%s\n",monthName[n]); } } 运行结果是: January February March April May June July August September October November December 2.#include #defineARR_SIZE7 voidYH(inta[][ARR_SIZE],intn); voidPrintYH(inta[][ARR_SIZE],intn); main() {inta[ARR_SIZE][ARR_SIZE];

(完整版)C语言考试题库之判断题(2)

三、判断题(10道小题,共10分) 1、C 语言具有简洁明了的特点。(1分) 正确 2、预处理命令的前面必须加一个“#”号。(1分) 正确 3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分) 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1 分) 正确 5、continue 不是结束本次循环,而是终止整个循环的执行。(1分) 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分) 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递(1分) 正确 8、直接访问就是直接利用变量的地址进行存取直接访问(1分) 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分) 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分) 错误 11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。(1分) 正确 12、浮点型常量的指数表示中,e 是可以省略的。(1分) 错误 13、任何表达式语句都是表达式加分号组成的。(1分) 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。(1分) 错误 15、do-while循环的while后的分号可以省略。(1分) 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。正确 17、C语言函数返回类型的默认定义类型是void(1分) 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分) 正确 19、枚举类型中的元素都具有一个整型值。(1分) 正确 20、C 语言是一种具有某些低级语言特征的高级语言。(1分) 正确 21、case语句后如没有break,顺序向下执行。(1分)正确

C语言考试题库及答案复习整理

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) 字符 8、设 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______. #include void main() {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

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

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

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

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语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

大一c语言考试试题

一、单项选择题(每小题2分,共50分) 1、一个C程序的执行是从___A__。 A、本程序的main函数开始,到main函数结束 B、本程序的main函数开始,到本程序文件的最后一个函数结束 C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 2、C语言程序的基本单位是___C___。 A、程序行 B、语句 C、函数 D、字符 3、请选出可用作C语言用户标识符的一组标识符___B___。 A、void B、a3_b3 C、For D、2a define_123-abcDO WORDIFasesizeof 4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__。 A、、4 C、、 5、下列可以正确表示字符型常量的是___D__。 A、297 B、"a" C、"\n" D、'\t' 6、在C语言中,要求运算数必须是整型的运算符是__D__。 A、/ B、++ C、*= D、% 7、C语言中,复合语句的构成是将一系列语句置于__C__。 A、begin与end之间 B、方框号“[]”之间 C、花括号“{}”之间 D、圆括号“()”之间 8、有如下程序段,对应正确的数据输入是___A___。 floatx,y; scanf(”%f%f”,&x,&y); printf(”a=%f,b=%f”,x,y); A、<回车> B、,<回车> <回车> C、A=,B=<回车> D、回车> 9、以下程序段的输出结果是___D__。 inta=5678; printf(”%2d\n”,a); A、提示出错、无结果 B、56 C、78 D、5678 10、已知:charch='A';则下列表达式的值是__B__。 ch=(ch>='A'&&ch<='Z')?(ch+32):ch; A、A B、a C、Z D、z

(完整版)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语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言考试题库之判断题[1]_共5页

三、判断题(10道小题,共10分) 1、c语言具有简洁明了的特点。 正确 2、预处理命令的前面必须加一个“#”号。正确 3、标准格式输入函数seanf()可以从键盘上接收不同数据类型的数据项。 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{} 括起来组成一个复合语句。 正确 5、continue不是结束本次循环,而是终止整个循环的执行。 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递 正确 8、直接访问就是直接利用变量的地址进行存取直接访问 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。 错误 11、C语言标准格式输入函数scanfO的参数表中要使用变量的地址值。 正确 12、浮点型常量的指数表示中,6是可以省略的。 错误 13、任何表达式语句都是表达式加分号组成的。 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。 错误 15、do-while循环的while后的分号可以省略。 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。 正确 17、C语言函数返回类型的默认定义类型是void( 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数正确 19、枚举类型中的元素都具有一个整型值。 正确 20、C语言是一种具有某些低级语言特征的高级语言。 正确 21、c ase语句后如没有break,顺序向下执行。正确 22、d o-while循环至少要执行一次循环语句。正确

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

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

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

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

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

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

c语言考试试题以及答案

1. 编程求和1-2+3-4+5-6+…+99-100 #include<> int main() { int i,t,s; s=0; t=1; for(i=1;i<=100;i++) { t=-t; s=s+(-t)*i; } printf("%d\n",s); system("pause"); return 0; } 2.求:1+(1+2)+(1+2+3)+…+(1+2+3+….10) 的和 #include<> int main() { int i,t,s; s=0; t=0; for(i=1;i<=10;i++) { t=t+i; s=s+t; } printf("%d\n",s); system("pause"); return 0; } 3. 求n的值,其中a是一个不为0的数字,例如2+22+222+2222+22222,其中数字a和n由键盘输入。 #include<> int main() { int a,n,i=1,sn=0,tn=0; printf("a,n:"); scanf("%d %d",&a,&n); while(i<=n) {tn=tn+a; sn=sn+tn; a=a*10; i++; } printf("%d\n",sn); system("pause"); return 0; } 4. 有一个函数如下: x (x<5) y= 2x+6 (5<=x<15) 2x-6 (x>=15) 输入x的值,计算出相应的y值。 #include<>

int main() { int x,y; printf("输入X:"); scanf("%d",&x); if(x<5) { y=x; printf("x=%3d,y=x=%d\n",x,y); } else if(x>=5&&x<15) {y=2*x+6; printf("x=%3d,y=2*x+6=%d\n",x,y); } else {y=2*x-6; printf("x=%3d,y=2*x-6=%d\n",x,y); } system("pause"); return 0; } 5. 某国的税收政策为:1000元以下免税,1000~2000元缴纳5%的税,2000~4000元上税10%,4000元以上按20%交税。试编写程序,输入一个人的收入,计算其需要上缴的税额。 #include<> int main() { float a; scanf("%f",&a); if(a<=1000) { printf("免税",a); } if(a>1000&&a<=2000) { printf("%f",a*); } if(a>2000&&a<=4000) { printf("%f",a*); } else printf("%f",a*); system("pause"); return 0; } 6. 编程分段统计学生成绩,输入为负数时结束。要求按90-100、80-89、70-79、60-69、60以下五档分别统计各分数段人数 #include<> int main() { float score; int a[6]={0,0,0,0,0,0}; char grade; int i; do{ scanf("%f",&score);

相关文档