c语言数组在编译前不确定元素个数可以,2012年二级C语言笔试标准预测试卷五

单项选择题

1. 按照“先进后出”原则组织数据的结构是(    )。

A.队列

B.栈

C.双向链表

D.二叉树

2. 下列选项中不属于软件生命周期开发阶段任务的是(    )。

A.软件测试

B.概要设计

C.软件维护

D.详细设计

3. 设在C语言中,float类型数据占4个字节,则double类型数据占(    )个字节。

A.1

B.2

C.8

D.4

4. 如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是(    )。

A.e3、e1、e4、e2

B.e2、e4、e3、e1

C.e3、e4、e2

D.任意顺序

5. 数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为(    )。

A.C

B.Basic

C.DDL

D.DML

6. 以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是(    )。

A.概念数据库

B.用户数据库

C.物理数据库

D.逻辑数据库

7. 一些重要的程序设计语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用(    )。

A.栈

B.堆

C.数组

D.链表

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

A.软件测试应该由程序开发者来完成

B.程序经调试后一般不需要测试

C.软件维护只包括对程序代码的维护

D.以上三种说法都不对

9. 有下列程序:

main()

{  int y=10;

do{y--; )while(--y);

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

}

当执行程序时,输出的结果是(    )。

A.-1

B.1

C.4

D.0

10. 表达式'5'-'1'的值是(    )。

A.整数4

B.字符4

C.表达式不合法

D.字符6

11. 下列函数的类型是(    )。

fun(double x)

{  float y;

y=3*x=4;

return  y;

}

A.int

B.不确定

C.void

D.float

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

int y=5, x=14;

y=((x=3*y, x+1), x=1);

printf("x=%d, y=%d", x, y);

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

13. 若有下列定义和语句:

int u=011,v=0x11,w=11;

printf("%0, %x, %d\n", u, v, w);

则输出结果是(  )。

A.9,17,11

B.9,11,11

C.11,11,11

D.11,17,11

14. 若有下列定义(设int类型变量占2个字节):

int i=8, j=9;

则下列语句:

printf("i=%%d, j=%%d\n", i, j);

输出的结果是(  )。

A.i=8, j=9

B.i=%d, i=%d

C.i=%8, j=%9

D.8,9

15. 下列程序的输出的结果是(    )。

main()

{double d=3.2; int x, Y;

x=1.2; y=(x+3.8)/5.0;

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

}

A.3

B.3.2

C.0

D.3.07

16. 设“int x=2, y=1;”,则表达式(!x ‖ y--)的值是(    )。

A.0

B.1

C.2

D.-1

17. 设有以下语句:

int a=1, b=2, c;

c=a^(b<<2);

执行后,c的值为(  )。

A.6

B.7

C.8

D.9

18. 下列程序执行后的输出结果是(    )。

void func(int *a, int b[])

{b[0]=*a+b; )

main()

{int a,b[s];

a=0; b[0]=3;

func(&a, b); printf("%d\n", b[0]);

}

A.6

B.7

C.8

D.9

19. 有以下程序:

main()

{int i, j, x=0;

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

{ x++;

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

{if(j=0; j<=3; j++)

x++;

}

x++;

}

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

}

程序执行后的输出结果是(    )。

A.x=4

B.x=8

C.x=6

D.x=12

20. 若有以下程序段,w和k都是整型变量:

w=k;

LB: if(w==0)go to LE;

W--;

printf("*")

goto LB;

LE:

则不能与上面程序段等价的循环语句是(    )。

A.for(w=k; w!=0; w--)printf("*");

B.for(w=k; w; --w)printf("*");

C.w=k;

while(W--! =0)printf("*");

D.w=k;

w++; do{w--; printf("*"); )while(w!=0);

21. 下列程序执行后的输出结果是(    )。

main()

{char x=0xFFFF; printf("%d\n", x--); }

A.-32767

B.FFFE

C.-1

D.-32768

22. 下面的函数调用语句中func函数的实参个数是(    )。

func((f2v1, v2), (v3, v4, v5), (v6, max(v7, v8)))

A.3

B.4

C.5

D.8

23. 语句“printf("a\bre"\'hi\'y\\\bou\n")”;的输出结果是(  )。

A.a\bre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

24. 下面程序的输出是(    )。

main()

{  int t=1; fun(fun(t)); }

fun(int h)

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

int k;

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

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

printf("\n");

return(a[h]); }

A.1,2,3,

1,5,9,

B.1,3,5,

1,3,5,

C.1,3,5,

0,4,8,

D.1,3,5,

-1,3,7,

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

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

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

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

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

26. 为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与(    )配对。

A.缩排位置相同if

B.其前面最近的if

C.其后面最近的if

D.同一行上的if

27. 设有下列程序段:

char str[]="HelloWorld";

char *ptr;

ptr=str;

执行上面的程序段后,*(ptr+10)的值为(    )。

A.'\0'

B.'0'

C.不确定的值

D.'0'的地址

28. 有以下程序:

void swap(char *x, char *y)

{char t;

t= *x; *x *y; *y=t;

}

main()

{ char *s1="abc", *s2="123";

swap(s1, s2);

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

}

程序执行后的输出结果是(    )。

A.123,abc

B.abc,123

C.1bc,a23

D.321,cba

29. 下列程序的运行结果是(    )。

#include<stdio.h>

main()

{  static char a[]="Languagef",b[]="programe";

char *p1, *p2; int k;

p1=a; p2=b;

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

if(*(p1+k)==*(p2+k))

printf("%c", *(p1+k));

}

A.gae

B.ang

C.program

D.有语法错

30. 下列程序的运行结果为(    )。

#define MAX(x, y)  (x)>(y)?(x):(y)

main()

{int a=2, b=3, c=1, d=3, t;

printf("%d\n", (MAX(a+b, c+d))*100);

}

A.500

B.5

C.4

D.400

31. 下列说法正确的是(    )。

A.在C语言中,可以使用动态内存分配技术,定义元素个数可变的数组

B.在C语言中,数组元素的个数可以不确定,允许随机变动

C.在C语言中,数组元素的数据类型可以不一致

D.在C语言中,定义一个数组后,就确定了它所容纳的元素的个数

32. 表达式“~0x11”的值是(  )。

A.0xFFEE

B.0x71

C.Ox0071

D.OxFFEl

33. 下列程序的输出结果是(    )。

main()

{int p[8]={11, 12, 13, 14, 15, 16, 17, 18}, i=0, j=0;

while(i++<7)

if(p[i]%2)j+=p[i];

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

}

A.42

B.45

C.56

D.60

34. 下列程序的输出结果是(    )。

#include<stdio.h>

#include<string.h>

void fun(int b[])

{  static int i=0;

do

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

}while(++i<2);

main()

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

fun(a);

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

}

A.13579

B.48579

C.48549

D.48999

35. 有以下程序:

main()

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

int *p1=&a, *p2=&b, *p3=&c;

*p= *p1*(*p2);

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

}

执行后的输出结果是(    )。

A.1

B.2

C.3

D.4

36. 有以下程序:

fun(int x)

{  int p;

if(x==0‖x==1)return(3);

p=x-fun(x-2);

return p;

}

main()

{  printf("%d\n", fun(7)); }

程序执行后的输出结果是(    )。

A.7

B.3

C.2

D.0

37. 下述程序的运行结果是(    )。

#include<stdio.h>

#include<string.h>

main()

{  char*s1="abDuj";

char*s2="ABdUG";

int t;

t=strcmp(s1, s2);

printf("%d", t);

}

正数

B.负数

C.零

D.不确定的值

38. 下列程序中C的二进制值是(    )。

char a=2, b=4, c;

c=a^b>>2;

A.00000011

B.00010100

C.00011100

D.00011000

39. 函数fseek()的正确调用形式是(    )。

A.fseek(位移量,起始点,文件类型指针);

B.fseek(文件类型指针,位移量,起始点);

C.fseek(文件类型指针,起始点,位移量);

D.fseek(起始点,位移量,文件类型指针);

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

A.C语言中的文件是流式文件,因此只能顺序存取数据

B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

填空题

1. 长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动的元素的平均个数为______。

2. 软件设计模块化的目的是______程序设计的复杂性。

3. 在算法的4个特性中,算法必须能执行有限个步骤之后终止指的是算法的______特性。

4. 设一棵完全二叉树共有500个结点,则在该二又树中有______个叶子结点。

5. 下列表达式用于判断y是否为闰年。闰年的判断条件是:年号能被4整除但不能被100整除或年号能被400整除,请填空——。

6. 若有定义:“int a=10, b=9, c=8;”接着顺序执行下列语句后,变量b中的值是______。

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

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

7. 用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*)______。

8. 表达式por(2.8,sqrt(float(x)))值的数据类型为______型。

9. 下列程序段的输出结果是______。

int n='c';

switch(n++)

{default: printf("error"); break;

case'a': case'A': case'b': case'B': printf("good"); break;

case'c': case'c': printf("pass");

case'd': case'D': printf("warn");

}

10. 以下程序的输出结果是______。

main()

{int a=1, b=2;

a=a+b; b=a=b; a=a=b;

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

}

11. 要求使下列程序输出5个整数,请填空。

for(i=0; i<=______; printf("%d\n", i+=2); );

12. 在宏定义#define PI  3.14159中,用宏名PI代替一个______。

13. 下列程序的输出结果是______。

#include<stdio.h>

sb(int s[], int b)

{  static int n=3;

b=s[n];

n--;

return(b);

}

main()

{  int s[]={1, 5, 6, 8};

int i, x=0;

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

{  x=sb(s, x);

printf("%d", x);

}

printf("\n");

}

14. 下面rotate函数的功能是:将n行n列的矩阵A转置A',例如

当请填空。

#define    N 4

void rotate(int a[][N])

{int i, j, t;

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

for(j=0; ______; j++)

{ t=a[i][j];

______;

a[j][i]=t;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值