[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 156及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)所谓算法就是计算方法 ( B)程序可以作为算法的一种描述方法 ( C)算法设计只需考虑得到的计算结果 ( D)算法设计可以忽略算法的运算时间 2 程序流程图中带有箭头的线段表示的是 ( )。 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 3 深度为 5的完全二叉树的结点数不可能是 ( )。 ( A) 15 ( B) 16 ( C) 17 ( D) 18 4 下列选 项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)
2、逐步求精 5 下列关于栈的叙述中正确的是 ( )。 ( A)栈按 “先进先出 ”组织数据 ( B)栈按 “先进后出 ”组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 6 下列描述中不属于软件特点的是 ( )。 ( A)软件是一种逻辑实体,具有抽象性 ( B)软件在使用中不存在磨损、老化问题 ( C)软件复杂性高 ( D)软件使用不涉及知识产权 7 计算机软件的构成是 ( )。 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 8 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( )。 ( A)下画线 ( B)大写字母 ( C)数字
3、字符 ( D)连接符 9 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 10 有两个 关系 R和 T如下: 则由关系 R得到关系 T的操作是 ( )。 ( A)投影 ( B)交 ( C)选择 ( D)并 11 以下叙述中正确的是 ( )。 ( A)不同函数的形式参数不能使用相同名称的标识符 ( B)用户自己定义的函数只能调用库函数 ( C)实用的 C语言源程序总是由一个或多个函数
4、组成 ( D)在 C语言的函数内部,可以定义局部嵌套函数 12 以下叙述中错误的是 ( )。 ( A) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( B) C语言中的每条可执行语句和非执行 语句最终都将被转换成二进制的机器指令 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D) C语言源程序经编译后生成后缀为 obj的目标程序 13 设有两行定义语句: int scanf: float case; 则以下叙述中正确的是 ( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)
5、两行定义语句都不合法 14 以下各项中,能正确表述算式 sin(2r+30)的 C语言表达式是 ( )。 ( A) sin(2*r+30) ( B) sin(2*3 14*r+30) ( C) sin(2*3 14*r+3 14*30 180 0) ( D) sin(2*3 14*r+30*3 14 360 0) 15 若有定义: int a, b, c;,则以下选项中的赋值语句正确的是 ( )。 ( A) a=(b=c)=1; ( B) (a=b)=c=1; ( C) a=(b=c)+1; ( D) a+b=c; 16 有以下程序: #include stdio h main() print
6、f(“ d n“, NULL); 程序运行后的输出结果是 ( )。 ( A) 1 ( B)变量无定义,输出不确定 ( C) -1 ( D) 0 17 设有定义: double x=2 12;,则以下各项中不能完整输出变量 x值的语句是( )。 ( A) printf(“x= 5 of n“, x); ( B) printf(“x= f n“, x); ( C) printf(“x= lf n“, x); ( D) printf(“x= O 5f n“, x); 18 若有定义: char c; int d;,程序运行时输入: c=1d=2回车,能把字 符 1输入给变量 c、把整数 2输入给变量
7、 d的输入语句是 ( )。 ( A) scanf(“c= c d= d“, &c, &d); ( B) scanf(“c= cd= d“, &c, &d); ( C) scanf(“c= d d= d“, &c, &d); ( D) scanf(“c= dd= d“, &c, &d); 19 若有定义 int x, y;并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x+):(y+)中的条件表达式 (x-y)等价的是 ( )。 ( A) (x-y 0x-y 0) ( B) (x-y 0) ( C) (x-y 0) ( D) (x-y=0) 20 有以下程序: #include stdi
8、o h main() char a=H; a=(a =A&a =Z)? (a+32): a; printf(“ c n“, a); 程序运行后的输出结果是 ( )。 ( A) h ( B) H ( C) A ( D) a 21 关于 “while(条件表达式 )循环体 ”,以下叙述中正确的是 ( )。 ( A)循环体的执行次数总是比条件表达式的执行次数多一次 ( B)条件表达式的执行次 数总是比循环体的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式的执行次数与循环体的执行次数无关 22 有以下程序: #include stdio h #define f(
9、x)x*x*x main() int a=3, s, t; s=f(a+1); t=f(a+1); printf(“ d, d n“, s, t); 程序运行后的输出结果是 ( )。 ( A) 10, 64 ( B) 10, 10 ( C) 64, 10 ( D) 64 64 23 在一个 C源程序文 件中所定义的全局变量,其作用域为 ( )。 ( A)所在文件的全部范围 ( B)所在程序的全部范围 ( C)所在函数的全部范围 ( D)由具体定义位置和 extem说明来决定范围 24 有以下程序: #include stdio h void main() char a, b, c, d; sc
10、anf(“ c c“, &a, &b); C=getchar(); d=getchar(); printf(“ c c c c n“, a, b, c, d); 当执行程序时,按下列方式输入数据 (从第一列开始, CR 代表回车,注意:回车是一个字符 ): 12 CR 34 CR 则输出结果是 ( )。 ( A) 12 CR 34 ( B) 12 ( C) 12 CR 3 ( D) 123 CR 4 25 有以下程序: #include stdio h void fun(int x) if(x 2 1)fun(x 2); printf(“ d“, x); void main() fun(7);
11、 printf(“ n“); 程序运行后的结果是 ( )。 ( A) 137 ( B) 731 ( C) 73 ( D) 37 26 有以下程序: #include stdio h int b=2; int fun(int*k) b=*k+b; return(b); void main() int a10=1, 2, 3, 4, 5, 6, 7, 8, i; for(i=2; i 4; i+) b=fun(&ai)+b; printf(“ d“, b); printf(“ n“); 程序运行后的输出结果是 ( )。 ( A) 1012 ( B) 810 ( C) 1028 ( D) 1016
12、27 以 下语句中存在语法错误的是 ( )。 ( A) char ss620; ss1=“right?“; ( B) char ss20=“right?“; ( C) char*ss6; ss1=“right?“; ( D) char*ss=“right?“; 28 有以下程序: #include stdio h int f(int x, int y) return(y-x)*x); void main() int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c); printf(“ d n“, d); 程序运行后的输出结果是 ( )。 ( A) 9 ( B) 10
13、 ( C) 8 ( D) 7 29 以下叙述中正确的是 ( )。 ( A)函数调用时,不必区分函数名称的大小写 ( B)调用函数时,函数名必须与被调用的函数名完全一致 ( C)函数名允许用数字开头 ( D)在函数体中只能出现一次 return语句 30 以下叙述中正确的是 ( )。 ( A)当对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 ( B)打开一个已存在的文 件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( D) C语言中的文件是流式文件,因此只能顺序存取数据 31
14、 有以下程序: #include stdio h int m1(int x, int y) returnx =y?x: y; int m2(int x, int y) returnx =y?y: x; im fun(int a, int b) return a+b; main() int x=2, y=3, z=1; printf(“ d n“, fun(m1(x, y), m2(y, z); 程序的运行结果是 ( )。 ( A) 5 ( B) 6 ( C) 4 ( D) 3 32 有以下程序 (strcpy为字符串复制函数, strcat为字符串连接函数 ): #include stdio
15、h #include string h void main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( )。 ( A) a12xyz ( B) 12yz ( C) a2yz ( D) bc2yz 33 以下叙述中正确的是 ( )。 ( A)如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息 ( B)即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同 ( C)设变量 p是一个指针变量,则语句 p=0;是非法的,应该使用 p
16、=NULL; ( D)指针变量之间不能用关系运算符进行比较 34 以下叙述中正确的是 ( )。 ( A)如 果 p是指针变量,则 &p是不合法的表达式 ( B)如果 p是指针变量,则 *p表示变量 p的地址值 ( C)在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度 ( D)如果 p是指针变量,则 *p+1和 *(p+1)的效果是一样的 35 有以下程序: #include stdio h #include stdlib h void fun(int*s, int x23) *s=*(x1+1); void main() int a23=1, 2, 3, 4, 5, 6, *p;
17、 p=(int*)malloc(sizeof(int); fun(&p, a); printf(“ d n“, *p); 程序的运行结果是 ( )。 ( A) 5 ( B) 2 ( C) 6 ( D) 3 36 有以下程序: #include stdio h main() int a=2, 3, 5, 4, i; for(i=0; i 4; i+) switch(i 2) case0: switch(ai 2) case0: ai+; break; case1: ai-; break; case1: ai=0; for(i=0; i 4; i+) printf(“ d“, ai); print
18、f(“ n“); 程序运行后的输出结果是 ( )。 ( A) 3344 ( B) 2050 ( C) 3040 ( D) 0304 37 有如下程序: #include stdio h void main() int x=0x13; if(x=0x18)printf(“T“); printf(“F n“); 程序运行后的结果是 ( )。 ( A) TF ( B) T ( C) F ( D) TFT 38 下面结构体的定义语句中,错误的是 ( )。 ( A) struct ordint x; int y; int z; street ord a; ( B) struct ordint x; in
19、t y; int z; ; struct ord a; ( C) struct ordint x; int y; int z; a; ( D) streetint x; int y; int z; a; 39 有以下程序: #include stdio h void fun(int n) static int x3=1, 2, 3; int k; for(k=0; k 3; k+) xk+=xk-n; for(k=0; k 3; k+) printf(“ d, “, xk); main() fun(0); fun(1); 程序运行后的输出结果是 ( )。 ( A) 1, 2, 3, 0, 2,
20、 4, ( B) 2, 4, 6, 3, 7, 11, ( C) 2, 4, 6, 1, 3, 5, ( D) 1, 2, 3, 4, 5, 6, 40 有以下程序: #include stdio h void main() unsigned char a=8, c; c=a 3: printf(“ d n“, c); 程序运行后的输出结果是 ( )。 ( A) 32 ( B) 16 ( C) 1 ( D) 0 二、程序填空题 41 给定程序中,函数 fun的功能是:把形参 s所指字符串中最右边的 n个字符复制到形参 t所指字符数组中,形成一个新串。若 S所指字符串的长度小于 n,则将整个字符
21、串复制到形参 t所指字符数组中。 例如,形参 s所指的字符串为: abcdefgh, n的值为 5,程序执行后 t所指字符数组中的字符串应为: defgh。 请在程序的 下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h #defin 三、程序修改题 42 下列给定程序中,函数 fun的功能是:将长整型数中各位上为偶数的数依次取出,构成一个新数放在 t中。高位仍在高位,低位仍在低位。 例如,当 s中的数为 87653142时, t中的数为 8642。 请改
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 156 答案 解析 DOC
