您的当前位置:首页正文

二级C语言-281_真题-无答案

2023-04-19 来源:榕意旅游网


二级C语言-281 (总分100,考试时间90分钟)

选择题

1. 数据库系统的核心是______。 A. 数据模型 B. 数据库管理系统 C. 数据库 D. 数据库管理员

2. 以下选项中正确的实型常量是______。 A. 0 B. 3.1415 C. 0.329×102 D. 871

3. 为了提高软件的独立性,模块之间最好是______。 A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合 4. 下列叙述中正确的是______。

A. 算法的执行效率与数据存储结构无关

B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上3种描述都不对 5. 有下列二叉树:

进行中序遍历的结果是______。

A. ABCDFEG B. ACBDFGE C. ABDCGEF D. FCADBEG 6. 下列标识符不是关键字的是______。 A. break B. char C. Swithch D. return

7. 下列运算符中优先级最低的算符是______。

A. || B. != C. <= D. +

8. C语言结构体类型变量在程序执行期间,______。 A. 所有成员一直驻留在内存中 B. 没有成员驻留在内存中 C. 部分成员驻留在内存中 D. 只有一个成员驻留在内存中 9. 下列4个关于C语言的结论中错误的是______。

A. 可以用do-while语句实现的循环一定可以用while语句实现 B. 可以用for语句实现的循环一定可以用while语句实现 C. 可以用while语句实现的循环一定可以用for语句实现

D. do-while语句与while语句的区别仅是关键字“while”出现的位置不同 10. 有下列函数定义: int fun(double a, double b) {return a*b;}

若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是______。 A. if(fun(x,y)){……}

B. z=fun(fun(x, y), fun(x, y)); C. z=fun(fun(x, y)x, y); D. fun(x, y);

11. 下列叙述中正确的是______。

A. break语句只能用于switch语句体中

B. continue语句的作用是使程序的执行流程跳出包含它的所有循环 C. break语句只能用在循环体内和switch语句体内

D. 在循环体内使用break语句和continue语句的作用相同

12. 已知大写字母A的ASCII码是65,小写字母a的ACSII码是97。下列能将变量c中的大写字母转换为对应小写字母的语句是______。 A. c=(c-\"A\")%26+\"A\" B. c=c+32 C. c=c-\"A\"+\"A\" D. c=(\"A\"+C)%26-\"a\" 13. 下列叙述中正确的是______。

A. 在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式 B. 实型变量中允许存放整型数

C. 若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变 D. 在C程序中,求取余运算符“%”两边的类型相同时才能进行运算

14. 若有说明“char s1[30]=\"abc\s2[]=\"defghi\"; \",则在使用函数stcat(s1,s2)后,结果是______。

A. s1的内容更新为abcdefghi B. s1的内容更新为defghi\\0 C. s1的内容更新为defghiabc\\0 D. s1的内容更新为abcdefghi\\0

15. 在16位编译系统上,若有定义“int a[]={10, 20, 30}, *p=&a;”,当执行“p++;”后,下列说法错误的是______。

A. p向高地址移了一个字节 B. p向高地址移了一个存储单元 C. p向高地址移了两个字节 D. p与a+1等价 16. 下列程序的执行结果是______。 #include<stdio.h>

main()

{ int a, b, c; a=b=2, c=1;

c=(a++)-1; printf(\"%d, %d\

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

A. 3,14,1 B. 3,14,2 C. 2,04,1 D. 2,14,1

17. 若有定义“double a;”,则正确的输入语句是______。 A. scanf(\"%1f\B. scanf(\"%f\C. scanf(\"%1f\D. scanf(\"%1e\18. 若有以下程序: #include<stdio.h> void fun(float*a, float*b) { float w;

*a=*a+*a; w=*a; *a=*b; *b=w; }

main()

{ float x=2..0, y=3.0, *px=&x, *py=&y; fun(px, py); printf(\"%2.0f, %2.0f\\n\ }

程序的输出结果是______。 A. 4,3 B. 2,3 C. 3,4 D. 3,2 19. 有以下程序: main()

{ int a=0, b=10, c=0, d=0; if(a=1) b=1; c=2; else d=3;

printf(\"%d, %d.%d, %d\\n\ }

程序输f¨______。 A. 0,1,2,0 B. 0,0,0,3 C. 1,1,2,0 D. 编译有错 20. 若有以下程序: #include<stdio.h>

void sub(int x, int y, int*z) { *z=y-x; } main()

{ int a, b, c;

sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c); printf(\"%d, %d, %d\\n\

}

程序的输出结果是______。 A. 5,2,3 B. -5,-12,-7 C. -5,-12,-17 D. 5,-2,-7 21. 以下程序的输出结果是______。 void prt(int*m, int n) { int i;

for(i=0; i<n; i++)m[i]++; } main()

{int a[]={1, 2, 3, 4, 5}, i; prt(a, 5);

for(i=0; i<5; i++) printf(\"%d, \A. 1,2,3,4,5 B. 2,3,4,5,6 C. 3,4,5,6,7 D. 2,3,4,5,1 22. 有以下程序: void fun1(char *p) {char *q; q=p;

while(*q!=\"\\0\") {(*q)++; q++; } }

main()

(char a[]={\"Program\"), *p; p=&a[3]; fun1(p); printf(\"%s\\n\ }

程序执行后的输出结果是______。 A. Prohsbn B. Prphsbn C. Progsbn D. Program

23. 若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是______。 int t[3][3], *pt[3], k; for(k=0; k<3; k++)pt[k]=&t[k][0]; A. t[2][0] B. t[2][2] C. t[1][2] D. t[2][1] 24. 有以下程序: main() { union {char ch[2]; int d; }s;

s.d=0x4321;

printf(\"%x, %x\\n\ }

在16位编译系统上,程序执行后的输出结果是______。

A. 21,43 B. 43,21 C. 43,00 D. 21,00

25. 以下四个程序中不能对两个整型值进行交换的是______。

A. #include<stdio.h>void swap(int *p, int *q){ int*t, a;t=&a; *t=*p; *p=*q; *q=*t;}main(){ int a=10, b=20;swap(&a, &b); printf(\"%d%d\\n\

B. #include<stdio.h>void swap(int *p, int *q){ int t;t=*p; *p=*q; *q=t;}main(){ int a=10, b=20;swap(&a, &b); printf(\"%d%d\\n\

C. #include<stdio.h>void swap(int*p, int*q){ int t;t=*p; *p=*q; *q=t;}main(){ int*a, *b;*a=10, *b=20;swap(a, b); printf(\"%d%d\\n\

D. #include<stdio.h>void swap(int*p, int*q){ int t;t=*p; *p=*q; *q=t;}main(){int a=10, b=20, *x=&a, *y=&h;swap(x,y); printf(\"%d%d\\n\26. 有以下程序: main()

{int num[4][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12, }, {13, 14, 15, 16}}, i, j; for(i=0; i<74; i++)

{for(j=0; j<i; j++)printf(\"%4c\

for(j=______; j<4; j++)printf(\"%4d\ printf(\"n\"); }}

若要按以下形式输出数组有上半三角 1 2 3 4 6 7 8 11 12 16

则在程序下划线处应填入的是______。 A. i-1 B. .i C. i+1 D. 4-i

27. 设有以下定义和语句: char str[20]=”Program”, *p; p=str;

则以下叙述中正确的是______。 A. *p与str[0]的值相等 B. str与p的类型完全相同

C. str数组长度和p所指向的字符串长度相等

D. 数组str中存放的内容和指针变量p中存放的内容相同 28. 有下列程序: #include<stdio.h> main() { int x=0; int y=0;

while(x<77&&++y) { y--; x++;}

printf(\"%d, %d\ }

程序的输出结果是______。 A. 0,7 B. 7,7 C. 0,6 D. 1,6 29. 有以下程序: #include<stdio.h> main()

{int a[]={2, 4, 6, 8, 10}, y=1, x, *p; p=&a[1];

for(x=0; x<3; x++)y+=*(p+x); printf(\"%d\\n\ }

程序的输fH结果是______。 A. 17 B. 18 C. 19 D. 20

30. #define能做简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为______。

A. #define f(x) 5*x*x+5*x+5 B. #define f5*x*x+5*x+5 C. #define f(a) (5*a*a+5*a+5) D. #define(5*x*x+5*x+5) f(x)

31. 函数调用strcat(strcpy(str1, str2), str3)的功能是______。

A. 将字符串str1复制到字符串str2中后再连接到字符串str3之后 B. 将字符串str1连接到字符串str2之后再复制到字符串str3之后

C. 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后 D. 将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中 32. 有以下程序: main()

{int a=0, b=0; a=10; /*给a赋值 b=20; 给b赋值 */

printf(\"a+b=%d\\n\输出计算机结果 }

程序运行后的输出结果是______。 A. a+b=10 B. a+b=30 C. 30 D. 出错

33. 若希望下列的程序运行后输出25,程序空白处的正确选项是______。 main()

{int i, j=50, a[]={7, 4, 10, 5, 8}; for______ j+=a[i];

printf(\"%d\ }

A. i=1;i<4;++i B. i=1;i<3;++i C. i=4;i>2;i-- D. i=2;i<4;++i

34. 下列程序的输出结果是______。 #include<stdio.h> main()

{ int a=0, i;

for(i=1; i<5; i++) { switch(i) { case 0: case 3: a+=1; case 1:

case 2: a=2; default: a+=3; } }

printf(\"%d\ }

A. 19 B. 18 C. 6 D. 8 35. 有以下程序: #include<stdio.h> main()

{int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p=a+5; *q=NULL; *q=*(p+5); printf(\"%d%d\\n\ }

程序运行后的输出结果是______。 A. 运行后报错 B. 6 6 C. 6 11 D. 5 10

36. 下列程序的输出结果是______。 main()

{ int a=6, b=3, c; if(a<b)

{c=a*b; printf(\"%d%d, %d\\n\ else

{c=b/a; printf(\"%d, %d, %d\\n\ }

A. 3,6,18 B. 3,6,2 C. 6,3,18 D. 6,3,2 37. 若有定义和语句: int**pp, *p, a=20, b=10;

pp=&p; p=&a; p=&b; printf(\"%d, %d\\n\ 则输出结果是______。 A. 20,10 B. 20,20 C. 10,20 D. 10,10

38. 下列程序的运行结果是______。

#include<stdio.h> void fun(int*s, int*p) { static int t=3; *p=s[t]; t--; }

void main()

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

for(k=0, k<4, k++) {fun(a, &x); printf(\"%d,\ } }

A. 5,4,3,2 B. 2,3,4,5 C. 2,2,2,2 D. 5,5,5,5 39. 下面程序段的输出结果是______。 int i=32770; printf(\"%d\\n\A. 32769 B. 32767 C. -32766 D. 输出不确定数

40. 标准库函数fgets(s, n, file)的功能是______。

A. 从文件file中读取长度为n的字符串存入字符数组s中

B. 从文件file中读取长度不超过n-1个字符的字符串放到字符数组s中 C. 从文件file中读到n个字符串存入字符数组s中

D. 从文件file中读取长度为n-1个字符的字符串存入字符数组s中

因篇幅问题不能全部显示,请点此查看更多更全内容