计算机等级考试二级C语言经典题目(含答案)

更新时间:2024-03-21 03:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机等级考试二级C语言经典题目(含答案)

1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、1 2、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、1

3、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、1

4、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、1

5、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、1

6、C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char、B、1

7、C语言中,运算对象必须是整型数的运算符是 A) % B) \\ C) %和\\ D) * *、A、1 8、C语言中函数返回值的类型是由( )决定。 A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、1

9、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。 A、 该数组的长度。 B、该数组的元素个数。 C、 该数组中各元素的值。 D、 该数组的首地址。、D、1

10、C语言中数组下标的下限是________。 A、1 B、0 C、视具体情况 D、无固定下限、B、1

11、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、1

12、C语言中文件的存取方式是________。 A、顺序存取 B、随机存取 C、顺序存取、随机存取均可 D、顺序存取、随机存取均不可、C、1

13、C语言中最简单的数据类型包括 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型、B、1

14、sizeof(float)是( ) A) 一种函数调用 B) 一个不合法的表示形式 C) 一个整型表达式 D) 一个浮点表达式、C、1

15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) input x,y,z; B) scanf(\read(\、B、1

16、表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1、D、1

17、表示关系x<=y<=z的c语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)、A、1

18、程序片段:在TC20中, int i=65536; printf(\的输出结果是____ A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1、B、1

19、当调用函数时,实参是一个数组名,则向函数传送的是____ A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值、B、1

20、对嵌套子程序调用说法正确的是____。 A、 外层子程序可以调用所有的内层子程序 B、 内层了程序只可以调用包含本身的外层子程序,不可以隔层调用 C、 外分程序必须能完全套住内分程序 D、 以上说法均不正确、C、1

21、对于基类型相同的两个指针变量之间,不能进行的运算是 A) < B) = C) + D) -、C、1

22、合法的C语言中,合法的长整型常数是 A) '\\t' B) \、A、1 23、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20、D、1

24、假定有以下变量定义: int k=7 ,x=12; 则能使值为3的表达式是 A x%=(k%=5) B x%=(k-k%5) C x%=k-k%5 D (x%=k)-(k%=5)、D、1

25、请读程序片段(字符串内没有空格): printf(\的输出结果是 A) 11 B) 10 C) 9 D) 8 、C、1

26、请选出合法的C语言赋值语句 A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b);、B、1

27、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 6、C、1

28、若int类型占两个字节,则以下语句输出为________。 int k=-1; printf(\、-1,-1 B、-1,65536 C、-1,32768 D、-1,65535、D、1

29、若变量a是int类型,并执行了语句:a=?A'+1、6;,则正确的叙述是 A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符?A?的ASCII值加上1。、D、1

30、若变量已正确说明为float类型,要通过语句scanf(\给a赋于10、0,b赋予22、0,c赋予33、0,不正确的输入形式是: A) 10 B) 10、0,22、0,33、0 22 33 C) 10、0 D) 10 22 22、0 33、0 33、B、1

31、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 A) a<>0 B) !a C) a=0 D) a、B、1

32、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 A)1 B)2 C)2、0 D)2、5、C、1

33、若有定义:int a=8,b=5,c;,执行语句c=a/b+0、4;后,c的值为 A) 1、4 B) 1 C) 2、0 D) 2、B、1

34、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 A) scanf(\

y+%d\scanf(\scanf(\

scanf(\、D、1

35、若有定义和语句: char s[10]:s=\则结果是(以下u代表空格) A) 输出abcd B) 输出a C) 输出abcduuuuu D) 编译不通过、D、1

36、若有以下程序段, int c1=1,c2=2,c3; c3=1、0/c2*c1; 则执行后,c3中的值是 A) 0 B) 0、5 C) 1 D) 2、A、1

37、若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c值的类型为 A) float B) int C) char D) double、D、1

38、若有以下定义和语句 char c1='b',c2='e'; printf(\则输出结果是: A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定、B、1

39、若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是 A)3 B)4 C)5 D)6、A、1

40、若执行下面的程序时从键盘上输入3和4,则输出是____ A) 14 B) 16 C) 18 D) 20 main( ) { int a,b,s; scanf(\、B、1

41、若执行下面的程序时从键盘上输入5,则输出是 A) 7 B) 6 C) 5 D) 4 main() { int x; scanf(\、B、1

42、若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 main( ) { int n; scanf(\、B、1

43、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为____ A) 0 B) 1 C) 2 D) 3、C、1

44、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 A) 552 B) 264 C) 144 D) -264、D、1

45、设 int b=2;表达式(b>>2)/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8、A、1

46、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是________ A)'a'&&'b' B)a<=b C)a||b+c&&b-c D)!((a

47、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 A 4 B 16 C 32 D 52、C、1

48、设x=3,y=-4,z=6,写出表达式的结果。 !(x>y)+(y!=z)||(x+y)&&(y-z) A、0 B、1 C、-1 D、6、B、1

49、设x和y均为int 型变量,则以下语句:x+=y;y=x-y;y=x-y;x-=y;的功能是 A、把x 和y按从大到小排列 B、把x和y按从小到大排列 C、无确定结果 D、交换x和y中的值、D、1

50、设有 int x=11; 则表达式 (x++ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 12、A、1 51、设有如下的变量定义: int i =8,k ,a,b ; unsigned long w=5; double x=1,42,y=5、2; 则以下符合C语言语法的表达式是 A、 a+=a-=(b=4)*(a=3) B、 x%(-3); C、 a=a*3=2 D、 y=float(i)、A、1

52、设有如下定义: char *aa[2]={\则以下就法中正确的是 A) aa数组成元素的值分别是\和ABCD\是指针变量,它指向含有两个数组元素的字符型一维数组 C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D) aa数组的两个元素中各自存放了字符'a'和'A'的地址、D、1

53、设有如下定义: int x=10,y=3,z; 则语句 printf(\的输出结果是 A) 1 B) 0 C) 4 D) 3、D、1

54、设有数组定义: char array [ ]=\则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节、C、1

55、设有说明语句:char a='\\72';则变量a A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法、A、1

56、设有以下语句:int x=03,y=02,z=01;那么语句printf(\的执行结果()。 (A) 1 (B) 2 (C) 3 (D) 0、C、1

57、下列if语句中,不正确的是________。 A、if(x>y); B、if(x==y) x+=y; C、if(x!=y) scanf(\、if(x、C、1

58、下列变量定义中合法的是 A) short _a=1-、le-1; B) double b=1+5e2、5; C) long do=0xfdaL; D) float 2_and=1-e-3;、A、1

59、下列标识符中不合法的是_______ A、s_name B、_e C、fox D、3DS、D、1 60、下列不正确的转义字符是 A) '\\\\' B) '\\\、C、1

61、请读程序: main() { int a=1,b=2; printf(\则上面程序的输出结果是____ A、2 B、3 C、4 D、1、A、1

62、请读程序: int i=0,j=0,a=6; if((++i>0)||(++j>0))a++; printf(\则上面程序的输出结果是____ A、i=0,j=0,a=6 B、i=1,j=0,a=7 C、i=1,j=1,a=6 D、i=1,j=1,a=7、B、1

63、下列程序段的输出结果为________? int y=1; while(y--); printf(\、y=-1B、y=0C、死循环D、y=9 、A、1

64、下列程序执行后的输出结果是 A) 3 B) 6 C) 9 D) 随机数 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=p; i、B、1

65、下列程序执行后的输出结果是 A) G B) H C) i D) J main() { int x='f'; printf(\\\n\、A、1

66、下列程序执行后的输出结果是(小数点后只写一位) A) 6 6 6、0 6、0 B) 6 6 6、7 6、7 C) 6 6 6、0 6、7 D) 6 6 6、7 6、0 main() { double d; float f; ling l; int i; i=f=1=d=20/3; printf(\、A、1

67、下列可作为C语言赋值语句的是 A)x=3,y=5 B)a=b=6 C)i--; D)y=int(x);、C、1

68、下列描述中不正确的是 A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值、C、1

69、下列说法中正确的是________。 A、在switch语句中一定要使用break语句 B、在switch语句中不一定要使用break语句 C、break语句是switch语句的一部分 D、break只能用于switch语句中、B、1

70、下列运算符其优先级最高的是________。 A、|| B、&& C、+ D、=、C、1 71、下面的DO循环中,一共循环()次。 M=5 N=1 DO WHiLE N<=M N=N+1 ENDDO (A) 1 (B) 6 (C) 4 (D) 5、D、1

72、请读程序: #include main() { int a=1,b=4,c=2; float x=5、5,y=9、0,z;

z=(a+b)/c+sqrt((double)y)*1、2/c+x; printf(\则上面程序的输出结果是____ A、数据溢出B、9、3C、9、300000D、0、93、C、1

73、请读程序: int a,b,c; a=(b=(c=10)+5)-5; printf(\b=(a+10); printf(\则上面程序的输出结果是____ A、a,b,c=0,10,10 a,b,c=10,15,10 B、a,b,c=10,15,10 a,b,c=10,15,10 C、a,b,c=10,15,10 a,b,c=0,10,0 D、a,b,c=10,15,10 a,b,c=10,15,15、C、1

74、写出下列语句执行后a,b的值。 int a=6,b; b=(++b)+(a++); A、a=8,b=14 B、a=7,b=8 C、a=14,b=14 D、a=8,b=8、A、1

75、请读程序: m=1234、123; printf=(\、3f\\n\、3f\\n\则上面程序的输出结果是____ A、1234、12300 1234、123 B、1234、123 1234、123 C、1234、123 1234、12300 D、1234、12300 1234、123、B、1

76、一个C语言的语句至少应包一个________ A、{} B、逗号 C、分号 D、什么不要、C、1

77、一个完整的C源程序是________。 A、要由一个主函数(或)一个以上的非主函数构成 B、由一个且仅由一个主函数和零个以上(含零)的非主函数构成 C、要由一个主函数和一个以上的非主函数构成 D、由一个且只有一个主函数或多个非主函数构成、B、1

78、已知整型变量a=13和b=6,则a&b的值是________,a^b的值是________ A、4 13 B、4 11 C、1 11 D、4 13、B、1

79、以下for语句构成的循环执行了()次。 # include #define N i #define M N+1 # define NUM (M+1)*M/2 main( ) {int i,n=0; for (i=1;i<=num;i++) {n++; printf(\(C) 8 (D) 9、C、1

80、以下程序的输出结果是____ # include main( ) { printf(\不确定的 (B) 0 (C) -1 (D) 1、B、1

81、在调用函数时,以下描述中正确的是________。 A、调用函数时,实参可以是表达式 B、调用函数时,将为形参分配内存单元 C、调用函数时,实参与形参的原型必须一致 D、调用函数时,实参与形参可以用内存单元、D、1

82、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次、A、1

83、有以下函数 char fun(char *p) { return p; } 该函数的返回值是 A) 无确切的值 B) 形参p中存放的地址值 B) 一个临时存储单元的地址 D) 形参p自身的地址值、B、1

84、语句printf(\,12&012);的输出结果是____ A) 12 B) 8 C) 6 D) 012、B、1 85、语句:printf(\,(a=2)&&(b= -2);的输出结果是____ A) 无输出 B) 结果不确定 C) -1 D) 1、D、1

86、运算完下面的C语言程序段以后,a的值是______,b的值是______,c的值是________。 int x=10,y=9; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y; A、6 9 13 B、8 7 11 C、8 9 10 D、8 7 10、C、1

87、在C语言程序中,注释部分从哪开始,到哪结束? A、从(到)结束 B、从REM开始无结束志标志 C、无起始标志 D、从/*开始,*/结束、D、1

88、在C语言提供的合法的关键字是 A) swicth B) cher C) Case D) default、D、1 89、在C语言中,不正确的int类型的常数是____ A) 32768 B) 0 C) 037 D) 0xAF、A、1

90、在C语言程序中,当while语句构成的循环中的条件为______时,结束循环。 A、0 B、1 C、true D、非0、A、1

91、在C语言中,函数的隐含存储类别是 A) auto B) static C) extern D) 无存储类别、C、1

92、在C语言中,合法的长整型常数是 A) OL B) 4962710 C) 324562& D) 216D、A、1

93、在C语言中,合法的字符常量是 A) '\\084' B) '\\x43' C) 'ab' D) \、B、1 94、在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是____类型 A) void B) double C) int D) char、C、1

95、在C语言中,形参的缺省存储类是 A) auto B) register C) static D) extern、A、1 96、在C语言中,要求运算数必须是整型的运算符是 A) % B) / C) < D) !、A、1 97、在宏定义 #define PI 3、14159中,用宏名PI代替一个 A) 单精度数 B) 双精度数 C) 常量 D) 字符串、D、1

98、在C语言程序中,可以用做变量名的是____ A) 1e5 B) a1 C) int D) *p、B、1 99、在以下一组运算符中,优先级最高的运算符是 A)<= B)= C)% D)&&、C、1 100、字符(char)型数据在微机内存中的存储形式是____ A) 反码 B) 补码 C) EBCDIC码 D) ASCII码、D、1101、执行语句: for (i=1;i++、C、2

102、指出下面正确的输入语句是( ) A:scanf(\B:scanf(\、2f\、B、2

103、执行下面的程序后,a的值为 main() { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } } A) 7 B) 8 C) 9 D) 10、B、2

104、在执行以下程序时,如果从键盘上输入:ABCdef〈回车〉,则输出为 A)ABCdef B)abcdef C)abc D)DEF # include main() { chsr ch; while((ch=getchar())!='\\n') { if(ch>='A'&& ch<='Z')ch=ch+32; 、C、2

105、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A) x || y B) x | y C) x & y D) x ^ y、D、2

106、在以下定义中,正确的说明语句为____ A) int a['a'] B)int a[3,4] C)int a[ ][ ] D)int *a[10]、D、2

107、执行下列程序时输入:123456789,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() { char s[100]; int c, i; scanf(\scanf(\、D、2

108、执行下面程序片段的结果是 int x=23; do { printf(\打印出321 B) 打印出23 C) 不打印任何内容 D) 陷入死循环、B、2

109、在说明语句:int *f();中,标识符f代表的是____ A) 一个用于指向整型数据的指针变量 B) 一个用于指向一维数组的行指针 C) 一个用于指向函数的指针变量 D) 一个返回值为指针型的函数名、D、2

110、在下列选项中,不正确的赋值语句是____ A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;、D、2

111、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是________ A、extern B、register C、auto D、static、D、2

112、在C语言程序中,当do-while语句构成的循环中的条件为______时,结束循环。 A、0 B、1 C、true D、非0、A、2

113、在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是 A) a=20000+20000; B) a=4000*10; C) a=30000+10000; D) a=4000L*10L;、D、2

114、阅读以下程序: main() { int x; scanf(\、B、2

115、运行以下程序后,如果从键盘上输入china#,则输出结果为 A、2,0 B、5,0 C、5,5 D、2,5 #include main( ) { int v1=0,v2=0; char ch ; while ((ch=getchar())!='#') switch (ch ) { case 'a': case 'h': default: v1++; case '0':v2++; } printf(\、C、2

116、请读程序: main() { int a=1,b=2,c=3; ++a; c+=++b; { int b=4,c; c=b*3; a+=c; printf(\

printf(\该程序的输出是________。 A、first: 12,4,12 Second: 26,4,12 third: 4,3,6B、first: 14,4,12 Second: 26,12,12 third: 26,3,4C、first: 14,4,12 Second: 26,4,12 third: 26,3,6 D、first: 14,4,12 Second: 26,6,12 third: 26,4,6、C、2

117、阅读程序: #include main() { int a[10]={1,2,3,4,5,6,7,8,9,0},*p; p=a;

printf(\该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是 A) 203 B) 204 C) 1a4 D) 1a6、D、2

118、与 y=(x>0?1:x0) y=1; B) if(x) else if(x0)y=1; else y=0; else if(x=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1;、A、2

119、以下合法的赋值语句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b);、B、2 120、以下函数返回a所指数组中最小的值所在的下标值 fun(int *a, int n) { int i,j=0,p; p=j; for(i=j;i、D、2

121、以下函数值的类型是 fun ( float x ) { float y; y= 3*x-4; return y; } A) int B) 不确定 C) void D) float、A、2

122、以下说法中正确的是 A) C语言程序总是从第一个的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分、C、2

123、以下所列的各函数首部中,正确的是 A) void play(var a:integer,var b:integer) B) void play(int a,b) C) void play(int a,int b) D) sub play(a as integer,b as integer)、C、2

124、以下叙述正确的是 A)输入项可以是一个实型常量,如: scanf(\、3、5); B)只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(\当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(\、2f\D)当输入数据时,必须指明变量地址,例如: scanf(\、&f); 、C、2

125、以下叙述正确的是 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。、D、2

126、以下叙述中不正确的是 A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。 B) 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。 C) 在C中,外部变量的隐含类别是自动存储类别。 D) 在C中,函数形参可以说明为register变量。、C、2

127、以下叙述中不正确的是____ A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效、D、2

128、以下程序运行后,输出结果是 A)1000 B)10010 C)00110 D)10100 main () { int y=18,i=0,j,a[8]; do { a[i]=y%2;i++; y=y/2; } while(y>=1); for(j=i-1>0;j--)printf(%d\printf(\、B、2

129、以下程序运行后,如果从键盘上输入: book book 则输出结果是 A)*8 B)#9 C)#6 D)*9 #include main() {char a1[80],a2[80],*s1=a1,*s2=a2; gets(s1); gets(s2);

if(!strcmp(s1,s2)) printf(“*”); else printf(“#”); printf(“%d\\n”,strlen(strcat(s1,s2))) }、B、2

130、以下程序运行后,输出结果是 A)6385 B)22 C)33 D)693825 main() { char ch[2][5]={\printf(\、A、2

131、以下程序运行后,输出结果是 A)84 B)99 C)95 D)44 int d=1; fun (int p) { int d=5; d+=p++; printf(\、A、2

132、以下程序执行后a的值是 A)4 B)1 C)0 D)运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(\、C、2

133、以下程序执行后sum的值是 A)15 B)14 C) 不确定 D)0 min() { int i , sum; for(i=1;i、C、2

134、以下程序中,while循环的循环次数是 main() { int i=0; while(i、D、2

135、以下定义语句中,错误的是 A) int a[]={1,2}; B) char *a[3]; C) char s[10]=\int n=5,a[n];、D、2

136、以下对C语言函数的有关描述中,正确的是 A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数 D) C程序中有调用关系的所有函数必须放在同一个源程序文件中、A、2

137、以下对枚举类型名的定义中正确的是____ A)enum a={one,two,three}; B)enum a {one=9,two=-1,three}; C)enum a={\、B、2

138、以下各选项企图说明一种新的类型名,其中正确的是 A) typedef v1 int; B) typedef v2=int; C) typedefv1 int v3; D) typedef v4: int;、C、2

139、以下选项中,不能正确赋值的是 A) char s1[10];s1=\'e', 's', 't'}; C) char s3[20]=\、A、2

140、以下选项中,非法的字符常量是 A) '\\t' B) '\\17' C)\、C、2

141、以下选项中不属于C语言的类型的是 A) signed short imt B) unsigned long int C) unsigned int D) long short、D、2

142、以下选项中合法的字符常量是 A)\、B、2

143、以下循环体的执行次数是 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(\、C、2

144、以下有4组用户标识符,其中合法的一组是 A) for B) 4d C) f2_G3 D) if、C、2 145、用十进制数表示表达式:12/012的运算结果是 A)1 B)0 C)14 D)12、A、2 146、有如下程序 main0 { int x=23; do { printf(\该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环、B、2

147、有如下程序 int runc(int a,int b) { return(a+b);} main0 { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(\该程序的输出的结果是A) 12 B) 13 C) 14 D) 15、D、2

148、有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main0 { printf(\该程序的输出结果是 A) 2 B) 4 C) 6 D) 8、B、2

149、有如下程序 main() { char s[]=\、D、2

150、有如下程序 main0 { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i、A、2151、有如下程序 main0 { int a=2,b=-1,c=2; if(a、C、2

152、有如下程序 main0 { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf(\该程序的执行结果是 A) 6 B) 3 C) 死循环 D) 0、C、2

153、有如下程序 main0 { int n[5]={0,0,0},i,k=2; for(i=0;i、D、2

154、有如下程序 main0 { int n=9; while(n>6) {n--;printf(\该程序段的输出结果是 A) 987 B) 876 C) 8765 D) 9876、B、2

155、有如下程序 main0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ } printf(\该程序的输出结果是 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2、A、2

156、有如下程序 main0 { int y=3,x=3,z=1; printf(\运行该程序的输出结果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3、D、2

157、有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b; 执行该程序段后,a的值为 A) 12 B) 11 C) 10 D) 编译出错、B、2

158、有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 A) *p+9 B) *(p+8) C) *p+=9 D) p+8、B、2

159、请读程序: # include void main( ) {char x=112,y=211; printf(\则上面程序的输出结果是____ A) -32 B) 0 C) -32768 D) -22、A、2

160、以下程序的输出结果是 main() { int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf(\、C、2

161、以下程序的输出结果是 main() { int i,k,a[10],p[3]: k=5; for (i=0;i、B、2 162、以下程序的输出结果是 main() { int num= 0; while(num<=2) { num++; printf(\、B、2

163、以下程序的输出结果是 fut (int**s,int p[2][3]) { **s=p[1][1]; } main( ) { int a[2][3]={1,3,5,7,9,11},*p; p=(int*)malloc(sizeof(int)); fut(&p,a); primtf(\C) 9 D) 11、C、2

164、以下程序的输出结果是 int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun(); printf(\、B、2

165、以下程序的输出结果是 main( ) { int a=-1,b=4,k; k=(+ +a〈0)&&!(b - -〈=0); printf(\、D、2

166、以下程序的输出结果是 main() { char c='z'; printf(\D) y、A、2

167、以下程序的输出结果是 main() { char st[20]= \\\n\、B、2

168、以下程序的输出结果是 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf(\输出值不定、A、2

169、以下程序段的输出结果是 char s[]=\9 B) 12 C) 13 D) 14、A、2

170、以下程序段的输出结果是 int a=1234; printf(\提示出错、无结果、C、2

171、以下程序段的输出结果是 int x=3; do { printf(\0 C) 1-2 D) 死循环、C、2

172、以下程序段的执行结果是 A) a=12 y=12 B) a=12 y=12 a=14 y=16 a=16 y=28 a=16 y=20 a=18 y=24 C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 int a, y; a=10; y=0; do { a+=2; y+=a; printf(\、、 、(39) 若有以下调用语句,则不正确的fun函数的首部是 A) void fun(int m, int x[]) B) void fun(int s, int h[41]) C) void fun(int p, int *s) D) void fun(int n, int a) main() { … int a[50],n; … fun(n, &a[9]); … }、B、2

173、以下程序段给数组所有的元素输入数据,请选择正确答案填入。 #include main() { int a[10],i=0; while(i、A、2

174、以下程序输出结果是 A、7 B、6 C、5 D、4 main ( ) { int m=5; if (m++>5 print (\、B、2

175、以下程序运行后,如果从键盘上输入ABCDE,则输出结果为 A、8 B、7 C、6 D、5 fuch (char str [ ] { int num =0; while (*(str +num )!='\\0')num ++; return(num ); } main() { char str [10],*p=str ; gets(p); printf(\、D、2

176、以下程序运行后,输出结果是 A 49、5 B 9、5 C22、0 D45、0 #include #define PT 5、5 #difine s(x) pt*x*x main() { int a=1,b=2; print (\、lf/n\、B、2

177、以下程序运行后,输出结果是 A 8,15 B 8,16 C 8,17 D 8,8 func ( int m=0 ,i=2; i+=m+1; m=i+a+b ; return(m); } main() { int k=4,m=1,p; p=func (k,m);printf(\p=func (k,m);printf(\、C、2

178、以下程序运行后,输出结果是 A、ABCDEFG B、CDG C、abcdefgh D、abCDefGh main() { siatic char a[]=\for(k=0;k<=7;k++) if (*(p1+k)==*(p2+k)) printf(\、B、2

179、以下程序运行后,输出结果是 A、cde B、字符c的ASCLL码值 C、字符C的地址 D、出错 main( ) { char *s=\、C、2

180、以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<=i;j++) t=t+b[i][b[j][j]]; printf(\、B、2

181、以下程序的输出结果是 #define M(x,y,z) x*y+z main() { int a=1,b=2, c=3; printf(\、D、2

182、以下程序的输出结果是 #include\、h\for(i=0,t=0;str[i]!='\\0';i+=2) if(! isspace(*str+i)&&(*(str+i)!='a')) ts[t++]=toupper(str[i]); ts[t]='\\0'; strcpy(str,ts); } mian( ) { char s[81]={\B) bcde C) ABCDE D) BCDE、D、2

183、以下程序的输出结果是 A) #*#*# B) ##### C) ***** D) *#*#* main( ) { int i; for(i=1;i、A、2

184、以下程序的输出结果是 A) 0 B) 1 C) 2 D) 3 main() { int x=0、5; char z='a'; printf(\、B、2

185、以下程序的输出结果是 A) -1 1 B) 0 1 C) 1 0 D) 0 0 main( ) { int a= -1,b=1,k; if((++a<0)&& ! (b-- <=0)) printf(\,a,b); else printf(\,b,a); }、C、2

186、以下程序的输出结果是 A) 1 B) 2 C) 3 D) 4 long fun( int n) { long s; if(n= =1 || n= =2) s=2; else s=n-fun(n-1); return s; } main() { printf(\、A、2

187、以下程序的输出结果是 A) 1 B) 4 C) 7 D) 5 #include int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main( ) { p=(int*)malloc(sizeof(int)); f(p,a); printf(\,*p); } f(int *s, int p[][3]) { *s=p[1][1]; }、D、2

188、以下程序的输出结果是 A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf(\,%d \,x--,y); }、D、2

189、以下程序的输出结果是 A) 123456780 B) 123 456 780 C) 12345678 D) 147 main( ) { char ch[3][4]={\,\,\, *p[3]; int i; for(i=0;i、C、2

190、以下程序的输出结果是 A) 16 B) 2 C) 9 D) 1 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(\、B、2

191、以下程序的输出结果是 A) 17,021,0x11 B) 17,17,17 B) 17,0x11,021 D) 17,21,11 main( ) { int k=17; printf(\,%o,%x \\n\,k,k,k); }、D、2

192、以下程序的输出结果是 A) 18 B) 19 C) 20 D)21 main() { int

a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<=i;j++)s+=a[i][j]; printf(\、A、2

193、以下程序的输出结果是 A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 main( ) { int n=4; while(n--)printf(\,--n); }、A、2

194、以下程序的输出结果是 A) 20 B) 21 C) 22 D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i、B、2

195、以下程序的输出结果是 A) 6 9 9 B) 6 6 9 C) 6 15 15 D) 6 6 15 int d=1; fun(int p) { static int d=5; d+=p; printf(\,d); return(d); } main( ) { int a=3; printf(\,fun(a+fun(d))); }、C、2

196、以下程序的输出结果是 A) 9 B) 6 C) 36 D) 18 #define f(x) x*x main( ) { int a=6,b=2,c; c=f(a) / f(b); printf(\,c); }、C、2

197、以下程序的输出结果是 A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL IJ O M main() { char w[][10]={ \、D、2

198、以下程序的输出结果是 A) 编译不通过,无输出 B) aceg C) acegi D) abcdefghi main( ) { int i; for(i='A';i<'i';i++,i++) printf(\,i+32); printf(\、B、2

199、以下程序的输出结果是 A) 4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8 main( ) { char *s=\,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } v[i]++; } for(k=0;k、B、2

200、以下程序的输出结果是 A)6 B) 6789 C) '6' D) 789 main( ) { char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; i=8; p=a+i; printf(\,p-3); }、B、2201、以下程序的输出的结果是 int x=3; main() { int i; for (i=1;i、C、2

202、以下程序的输出结果是 #include main() { int i=0,a=0; while(i、B、2

203、以下程序的输出结果是 int f() { static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0; for(i=0;i、D、2

204、请读程序: static int a[]={1,3,5,7,9}; int y,x,*p; y=1; p=&a[1]; for(x=0;x、D、2 205、下面函数的功能是 A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面 int funl(char * x) { char * y=x; while(*y++); return(y-x-1);}、A、2

206、下面函数的功能是 sss(s, t) char *s, *t; { while((*s)&&(*t)&&(*t++== *s++)); return(*s-*t); } A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串s复制到字符串t中 D) 将字符串s接续到字符串t中、B、2

207、下面能正确进行字符串赋值操作的语句是 A char s[5]={\={'a','b' ,'c','d',''e'}; C char *s;s=\、C、2

208、下述对C语言字符数组的描术中错误的是 A) 字符数组可以存放字符串 B) 字符数组中的字符串可以整体输入、输出 C) 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较、C、2

209、下面的程序 A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环 main() { int x=3; do { printf(\、B、2

210、下面的程序执行后,文件testt、t中的内容是 #include void fun(char *fname、,char *st) { FILE *myf; int i; myf=fopen(fname,\、A、2

211、下面各语句行中,能正是行赋字符串操作的语句行是 A)char st[4][5]={“ABCDE”}; B)char s[5]={'A','B','C','D','E'}; C)char *s;s=“ABCDE”; D)char *s;scanf(“%S”,S);、C、2

212、下面程序的输出是____ int w=3; main() { int w=10; printf(\fun(int k) { if(k==0) return w; return(fun(k-1)*k); } A)360 B)3600 C)1080 D)1200、B、2

213、下面程序的输出是____ main() { char *a=\

v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf(\v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8、C、2

214、下面程序的输出是 main() { int x=3,y=6,a=0; while(x++!=(y+=o1)) { a+o=1; if(y #include main() { char ss[10]=\ABC B) ABC9 C) 123456ABC D) ABC456789、D、2

215、下面程序的输出是 A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 15 main() { enum team {my,your=4,his,her=his+10}; printf(\、C、2

216、下面程序的输出是 A) 0 B) 1 C) 3 D) 不确定的值 main() { int x=10,y=3; printf(\、C、2

217、下面程序的输出是 A) -1 B) 0 C) 1 D) 不确定的值 main() { int x=100, a=10, b=20, ok1=5, ok2=0; if(a、A、2

218、下面程序的输出是 A) 1 B) 2 C) 7 D) 10 int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); } main() { int a=7, b=5; printf(\、B、2

219、下面程序的输出是 A) 100 B) 160 C) 120 D) 64 main() { char x=040; printf(\、D、2

220、下面程序的输出是 A) 17 B) 18 C) 23 D) 24 main() { int x=023; printf(%d\\n\、B、2

221、下面程序的输出是 A) 23 B) 26 C) 33 D) 36 int aa[3][3]={{2},{4},{6}}; main() { int i, * p=&aa[0][0]; for(i=0; i、A、2

222、下面程序的输出是 A) 3 B) 4 C) 1 D) 2 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(\、A、2

223、下面程序的输出是 A) 3 B) 4 C) 6 D) 9 fun3(int x) static int a=3; a+=x; return(a);} main() { int k=2, m=1, n; n=fun3(k); n=fun3(m); printf(\、C、2

224、下面程序的输出是 A) 60 B) 68 C) 99 D) 108 main() { int

a[3][4]={ 1,3,5,7,9,11,13,15,17,19,21,23}; int ( *p)[4]=a,i,j,k=0; for(i=0; i、A、2

225、下面程序的输出是 A) 741 B) 852 C) 963 D) 875421 main() { int y=9; for( ; y>0; y--) { if(y%3==0) { printf(\、 }、B、2

226、下面程序的输出是 A) ABCD B) A C) D D) ABCD BCD B C ABC CD C B AB D D A A char s[]=\、A、2

238、请读程序: int x=10; int y=x++; printf(\则上面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11、A、2

239、下列程序的运行结果是 A) a=%2,b=%5 B) a=2,b=5 C) a=d, b=d D) a=%d,b=%d #include main() { int a=2,c=5; printf(\、B、2

240、下列程序的输出结果是 main( ) { char ch[2][5]={\for(i=0;i'\\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf(\63825 D) 693825、A、2

241、请读程序: main( ) {printf(\则上面程序的输出结果是____ A:0 B:变量无定义 C:-1 D:1、B、2

242、设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为 A) 出错 B) 42 C) 48 D) 54、C、2

243、设有以下函数: 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、A、2

244、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf(\、3 C) 9、2 D)10、2、D、2

245、设有如下一段程序: int *var,ab; ab=100 var=&ab; ab=*var+10; 执行上面的程序后,ab的值为 A) 120 B) 110 C) 100 D) 90、B、2

246、设有如下的函数 ggg(x) float x; { printf(\则函数的类型 A) 与参数x的类型相同 B) 是void C) 是int D) 无法确定、C、2

247、设有 static char str[ ]=\则执行 printf(\strlen(strcpy(str,\后的输出结果为 A) 5 B) 7 C) 12 D) 14、A、2

248、设 int x=1, y=1; 表达式(!x||y--)的值是 A) 0 B) 1 C) 2 D) -1、B、2

249、若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是 A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]、D、2

250、若有以下说明: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是 A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]、D、2251、若有以下说明和语句,请选出哪个是对c数组元素的正确引用 int c[4][5], (*cp)[5]; cp=c; A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)、D、2

252、若有以下定义和语句: char *s1=\

printf(\则输出结果是 A) 4 B)5 C)9 D)10、A、2

253、若有以下定义和语句: int u=010,v=0x10,w=10; printf(\则输出结果是: A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10、A、2

254、若有以下定义: char s[20]=\则不能代表字符o的表达式是 A) ps+2 B)s[2] C) ps[2] D)ps+=2,*ps、A、2

255、若有以下的说明和语句: main() {int t[3][2], *pt[3],k; for(k=0; k、C、2

256、若有以下定义: float x;int a,b; 则正确的switch 语句是 A)switch(x) B)switch(x) { case1、0:printf(\、0:printf(\C)switch(a+b) D)switch (a+b); { case 1:printf(\、\1+2:printf(\、C、2

257、若有以下程序段,w和k都是整型变量: ┆ w=k; LB: if(w==0) go to LE; w--; printf(\┆ 则不能与上面程序段等价的循环语句是 A)for(w=k;w!=0;w--) printf(\do{ w--;printf(\、C、2

258、若有以下程序片段: char str[]=\上面程序片段的输出结果是 A)3 B)4 C)6 D)12、C、2

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

260、若有说明和语句: int a=5; a++; 此处表达式a++的值是 A) 7 B) 6 C) 5 D) 4、C、2

261、若有下面的程序片段: int a[12]={0}, *p[3], **pp, i; for(i=0; i、C、2

262、若有下面的说明和定义,则sizeof(struct aa) 的值是 struct aa { int r1;double r2; float r3; union uu{char u1[5]; long u2[2]; } ua; } mya; A)30 B)29 C)24 D)22、D、2

263、若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); { case 1、0: printf(\、0: printf(\C) switch(b) D) switch(a+b); { case 1: printf(\case 2: printf(\、D、2

264、若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用上 A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]、D、2

265、若变量a、i已正确定义,且i已正确赋值,合法的语句是 A) a==i B) ++i; C) a=a++=5; D) a=int(i);、B、2

266、若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf(\printf(\输出结果是: A)#### B)&&&& C) ####&&&& D)有语法错误,无输出结果、D、2

267、若x是int型变量,且有下面的程序片段: for(x=3;x、D、2

268、若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是____ A) pb=&x B) pb=x; C) *pb=&x; D) *pb=*x、A、2

269、若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i--) for(j=0;j、A、2

270、请选出以下语句的输出结果 printf(\D) 输出项不合法,无正常输出、A、2

271、请选出正确的程序段 A) int *p; B) int *s, k; scanf(\k; D) int *s, k; char *p, c; char *p, e; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; … *s=1; …、C、2

272、若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b;break; {case 3: case 0:y=a-b; break; case

1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } }、D、2

273、请选出以下程序的输出结果 #include fun(s, n1, n2) int *s, n1, n2; { int i, j, t; i=n1; j=n2; while(i、C、2

274、请读程序片段: #include main() { int a, b; for(a=1;b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {b+=3; continue; } b-=5; } printf(\程序的输出结果是: A) 7 B) 8 C) 9 D) 10 、B、2

275、请选出以下程序的输出结果 #include main() { int a[ ]={ 1,2,3,4 },i; int x=0; for(i=0; i、C、2

276、请选出以下程序的输出结果 #include sub(x,y,z) int x, y, *z; { *z=y-x; } main() { int a, b, c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(\-5,-12,-7 C) -5,-12,-17 D) 5,-2,-7、B、2

277、请选出以下程序段的输出结果 #include main() { char sl[10], s2[10], s3[10], s4[10]; scanf(\

输入数据如下:(此处代表回车符) aaaa bbbb cccc dddd A) aaaa B) aaaa bbbb bbbb cccc cccc dddd dddd C) aaaa D) aaaa bbbb bbbb cccc cccc dddd dddd eeee、A、2

278、请读程序: #include main() { float x,y; scan(\、0)&&(x!=2、0)) y=1、0/(x+2、0); else if (x(表示回车),则上面程序的输出结果是 A) 0、000000 B) 0、250000 C) 0、500000 D) 1、00000、C、2

279、请读程序: #include void fun(float *pl, float *p2, float *s) { s=( float * )calloc( 1, sizeof(float)); *s=*p1+ *(p2++); } main() { float a[2]={1、1, 2、2}, b[2]={10、0, 20、0}, *s=a; fun(a, b, s) printf(\上面程序的输出结果是 A) 11、100000 B) 12、100000 C) 21、100000 D) 1、100000、D、2

280、请读程序: #include #include void fun( char *w, int m) { char s, *p1, *p2; p1=w; p2=w+m-1; while (p1、C、2

281、请读程序: #include #include main() {char *s1=\printf(\输出结果是: A)正数 B)负数 C)零 D)不确定的值、A、2

282、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main( ) { int x; scanf(\和5 B) 6和3 C) 7和4 D) 6和4、A、2

283、能正确表示a和b同时为正或同时为负的逻辑表达式是 A) (a>=0‖b>=0)&&(a<0‖b=0&&b>=0)&&(a<0&&b0)&&(a+b<=0) D) a*b>0、D、2

284、请读程序: #include #include main() { float x,y,z; scan(\while(1) { if(fabs(z)>1、0) { x=y; y=z; z=x/y; } else break } printf(\若运行时从键盘上输入3、6 2、4(表示回车),则输出的结果是 A) 1、500000 B) 1、600000 C) 2、000000 D) 2、400000 、B、2

285、请读程序: #include #include void fun( char *s) { char a[10]; strcpy( a, \s=a; } main() { char *p; fun(p); x=f(a, 3); printf(\上面程序的输出结果是(└┘表示空格) A) STRING└┘└┘└┘└┘ B) STRING C) STRING└┘└┘└┘ D) 不确定的 、D、2

286、请读程序: #include char fun(char *c) {if( *c<='Z' && *c>='A') *c-='A'-'a'; return *c; } main() { char s[81], *p=s; gets(s); while(*p) {*p=fun(p); putchar(*p); p++;} putchar('\\n'); } 若从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE dOOR B) open the door C) OPEN THE DOOR D) Open The Door、B、2

287、请读程序: #include int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i、A、2

288、请读程序: #include main() { int mun=0; while(num<=2) { num++; printf(\输出结果是 A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4 、C、2

289、请读程序: #include main() { int x=1, y=0, a=0, b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++; b++; break; } printf(\b=%d\\n\上面程序的输出结果是 A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 、A、2

290、请读程序: #include void fun( int *s) {static int j=0; do s[j]+=s[j+1]; while(++j、C、2

291、假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 的表达式是 A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1、0/a/b/c、D、2

292、假定x和y为 double型,则表达式x=2,y=x+3/2的值是 A) 3、500000 B) 3 C) 2、000000 D) 3、000000、D、2

293、假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w、D、2

294、合法的数组定义是 A)int a[]=\D)char a[]={0,1,2,3,4,5};、D、2

295、假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do { b-=a; a++; } while (b--、D、2

296、当执行以下程序段时 A 循环体将执行一次 B 循环体将执行两次 C 循环体将执行无限次 D 系统将提示有语法错误 x=-1; do { x=x*x;} while(!x);、A、2

297、当执行下面程序且输入:ABC时,输出的结果是____ #include #include main() { char ss[10]=\ABC456789、A、2

298、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是____ A) c=b=a; B) (a=c) ‖(b=c) ; C) (a=c) &&(b=c); C) a=c=b;、C、2

299、不能把字符串:Hello!赋给数组b的语句是 A) char b[10]={'H','e','l','l','o','!'}; B) char b[10];b=\、B、2

300、t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对、B、2

301、变量a所占内存字节数是 A) 4 B) 5 C) 6 D) 8 union U { char st[4]; int i; long l; }; struct A { int c; union U u; }a;、C、3

302、标准函数 fgets(s, n, f) 的功能是 A) 从文件f中读取长度为n的字符串存入指针s所指的内存 B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C) 从文件f中读取n个字符串存入指针s所指的内存 D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存、B、3

303、rewind函数的作用是________。 A、重新打开文件 B、使文件位置指针重新回到文件末 C、使文件位置指针重新回到文件的开始 D、返回文件长度值、C、3

304、当____,可以不指定数组长度。 (A) 对静态数组赋初值 (B) 对动态数组赋初值 (C) 只给一部分元素赋值 (D) 对全部数组元素赋初值、D、3

305、以下程序的输出结果是____ i=5; i=++i*4+2; A、5 B、6 C、23 D、26、D、3 306、以下程序的输出结果是____ i=5; i=i++*4+2; A、5 B、6 C、23 D、26、C、3 307、以下程序的输出结果是____ main() {int x,y,z; x=y=z=0; ++x||++y||++z; printf(“%d,%d,%d\\n”,x,y,z); } A、1,1,1 B、1,0,0 C、1,1,0 D、1,0,1、B、3

308、C语言中函数能否嵌套调用和递归调用? A、二者均不可 B、前者可,后者不可 C、前者不可,后者可 D、二者均可、D、3

309、C语言联合类型在任何给定时刻_____。 A、 所有成员一直驻留在结构中。 B、 只能有一个成员驻留在结构中。 C、 部分成员驻留在结构中。 D、 没有成员驻留在结构中。 、B、3

310、#include main() { int a,b,c,d; scanf(\printf(\b=b>0?b:-b; c=a*b; if(c==0) return(0); while(a!=b) if(a>b) a-=b; else b-=a; return(c/a); } gys(a,b) int a,b; { if(a*b==0) return(0); a=a>0?a:-a; b=b>0?b:-b; while(a!=b) if(a>b) a-=b;else b-=a; return(a); } 请写出上面程序的运行结果: A、a=30 b=63 gbs=189 gys=9 B、a=27 b=63 gbs=190 gys=10 C、a=27 b=63 gbs=189 gys=9 D、a=27 b=63 gbs=188 gys=10、C、3

311、请读程序: main() { int *p,x; x=10; *p=x; printf(\请判断上面程序____ A、错误:*p=x; printf(\正确:p=&x; printf(\、错误:*p=x;

printf(\正确:p=**x; printf(\、错误:int *p,x; 正确:int *(p),*(x);D、错误:*p=x; 正确:p=&x;、A、3

312、根据下面的定义,能打印出字母M的语句是____ A) printf(\、name); D) printf(\、name[0]); B) printf(\、name[1]); C)

printf(\、name[1]); struct person { char name[9]; int age;}; struct person class[10]={\、D、3

313、假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是 A) free(q); p->next=q->next; B) (*p)、next=(*q)、next; free(q); C) q=(*q)、next; (*p)、next=q; free(q); D) q=q->next; p->next=q; p=p->next; free(p);、B、3

314、假定下列程序的可执行文件名为prg、exe,则在该程序所在的子目录下输入命令行: prg hello good后,程序的输出结果是 A) hello good B) hg C) hel D) hellogood main()(int argc, char *argv[]) { int i; if(argc<-0)return; for(i=1;i、B、3

315、假定以下程序经编译和连接后生成可执行文件PROG、EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL,则输出结果为 A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv[])) { while(--argc>0) printf(\、D、3

316、利用数组写出一个与int *p[4]等价的说明。 A、int &p[4]; B、int p[4]; C、int **p[4]; D、int *(*p[4]);、B、3

317、请选出以下程序段的输出结果 #include #define MIN(x,y) (x)、A、3

318、若a=5,b=3,c=4,逻辑表达式!(a+b)&&!c的值为____ (A) 0 (B) -1 (C) 1 (D) 2、C、3

319、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是____ A) EOF B) -1 C) 非零值 D) NULL、C、3

320、若程序中有下面的说明和定义 struct abc {int x;char y;} struct abc s1,s2; 则会发生的情况是 A) 编译进错 B) 程序将顺利编译`连接`执行 C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错、A、3

321、若想要通过异或运算对变量a进行高4位求反,低四位不变,则b应为____。(二进制表示) A、11110000 B、00001111 C、视a值而定 D、不可能实现、A、3

322、若要打开A盘上user子目录下名为abc、txt的文本文件进行读、写操作,下面符合此要求的函数调用是 A) fopen(\、txt\、txt\C) fopen(\、txt\、txt\、B、3

323、若给定条件表达式(M)?(a++):(a--)则 其中表达式M和________等价。 A、(M==0) B、(M==1) C、(M!=0) D、(M!=0)、C、3

324、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是 A) p+1 B) a+1 C) a++ D) ++p、C、3

325、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元: int *p; p=__________ malloc( sizeof(int)); 则应填入 A)int B)int * C)(*int) D)(int *)、D、3

326、以下程序的输出结果是____ main() {int x,y,z; x=y=z=0; ++x&&++y||++z; printf(“%d,%d,%d\\n”,x,y,z); } A、1,1,1 B、1,0,0 C、1,1,0 D、1,0,1、C、3

327、若以下程序所生成的可执行文件名为filel、exe ; 当打入以下命令行执行该程序时; FILE1 CHINA BEIJING SHANGHA1 程序的输出结果是 A、 XHIN VWIJINF

AHANJHAI B、 FILE1 CHINA BEIJING C、 C B S D、 F C B main(int arge,char * argv []) { char ch [7]={\(\、A、3

328、若有定义和语句: int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf(\则输出结果是: A)10,20 B)10,10 C)20,10 D)20,20、D、3

329、若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是 A) scanf(\scanf(\、A、3

330、若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是 A) i=*p; B) p*=*&j; C) i=&j; D) i=**p;、B、3

331、若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是 A) i= *p; B) *p=*&j; C) i=&j; D) i=* *p;、B、3

332、若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是 A) *p=&a; scanf(\,p); B) p=(long *)malloc(8); scanf(\,p); C) scanf(\,p=&a); D) scanf(\,&a);、A、3

333、若有以下的定义: int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是 A) p+=2, *(p++) B) p+=2,*++p C) p+=3, *kp++ D) p+=2,++*p、A、3

334、若有以下的说明,则对初值中字符'a'的引用方式为___。 static struct { char ch; double x; char a[]; }c[2][2]={{{'a',3、5,'bc'},{'c',4、5,'de'},{'m',8、6,'abc'}}}; A、c、ch B、c[0][0]、ch C、c[1][1]、ch D、a[0]、B、3

本文来源:https://www.bwwdw.com/article/q0w8.html

Top