[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc

上传人:fatcommittee260 文档编号:502895 上传时间:2018-11-29 格式:DOC 页数:27 大小:68.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]国家二级(C语言)机试模拟试卷156及答案与解析.doc_第5页
第5页 / 共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。 请改

22、正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h void fun(long s, long*t) int d; long s1=1; *t=0; while(s 0) d=s 10; *found* if 四、程序设计题 43 请编写函数 fun,该函数的功能是:将 s所指字符串中 ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在 t所指的数组中。 例如,若 s所指字符串中的内容为 “ABCDEFG12345“,其中字符 B的 ASCII码值为偶数,字符 2的 ASCII码值为偶 数,都应当删除,

23、其他依此类推。最后 t所指的数组中的内容应是 “ACEG135“。 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include stdio h #include string h 国家二级( C语言)机试模拟试卷 156答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 算法是一组有穷指令集,是解题方案的准确而完整的描述。通俗地说,算法就是计算机解题的过程,重在解题方案的设计,并且不等于计算方法,故 A和 C选 项不正确。程序的编制不可能优于算法的设计,但算法的描述可以用程序、伪代码、流程图来描述,故 B选项正确。

24、算法要求执行过程中所需要的基本运算次数和时间最少,即时间复杂度最低,所以 D选项不正确。正确答案为B。 2 【正确答案】 C 【试题解析】 在程序流程图中: 标有名字的带箭头线段表示控制流; 矩形表示加工步骤; 菱形表示逻辑条件。 3 【正确答案】 A 【试题解析】 对于满二叉树,叶子结点的数目等于 2n-1, n为深度,这里就是24=16。 4 【正确答案】 A 【试题解析】 结构化程 序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A。 5 【正确答案】 B 【试题解析】 栈是只允许在栈顶进行插入和删除运算的线性表,按 “先进后出 ”组织数据。 6 【正确答

25、案】 D 【试题解析】 软件不像硬件一样具有实物的特性,而是一种逻辑实体,具有抽象性;开发复杂性高,成本昂贵;在运行、使用期间不存在磨损、老化问题。故A、 B和 C选项正确。由于软件是一种知识产品,受知识产权法的保护,所以 D选项不正确。 7 【正确答案】 D 【试题解析】 计算机软件是 计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。答案选 D。 8 【正确答案】 D 【试题解析】 C语言中标识符由字母、下画线或数字组成,且开头必须是字母或下画线。 9 【正确答案】 C 【试题解析】 学号是学生表 S的主键,课号是课程表 C的主键,因此选课表 SC的关键字应该与前

26、两个表能够直接联系且能唯一定义元组,学号和课号的组合满足条件。 10 【正确答案】 A 【试题解析】 从表图中可以看出,关系 T是从关系 R中选取一部分字段 (A和 C)及其值构成新的关系 ,是一种纵向操作产生新列,属于投影,正确选项为 A。 11 【正确答案】 C 【试题解析】 函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项 A错误;除了 main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项 B错误;一个 C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项 C正确;函数体内部只可以调用,但是不可以定义其他函数,选项 D错误

27、。故答案选 C。 12 【正确答案】 B 【试题解析】 C语言程序编译时将每条可执行语句转换为二进 制的机器指令,但非执行语句 (如注释语句 )不被编译。所以选项 B错误。 13 【正确答案】 A 【试题解析】 本题考查用户标识符,用户自己定义的标识符不能与关键字相同,并且尽量避免和预定义标识符相同。本题中 scanf为预定义标识符,可以作为用户标识符; case为关键字,不能作为用户标识符,故而答案选 A。 14 【正确答案】 C 【试题解析】 考查算术表达式的写法,选项 C中没有, ,需要用数值 3 14代替, sin函数的参数为弧度,角度 30转成弧度应为 3 14*30 180。故应选

28、 C。 15 【正确答案】 C 【试题解析】 赋值运算符的左侧必须为变量而不能是表达式,所以答案选 C。 16 【正确答案】 D 【试题解析】 NULL为一个符号常量,对应的 ASCII码值为 0,答案选 D。 17 【正确答案】 A 【试题解析】 本题考查 printf函数的格式输出, “格式控制字符串 ”部分为 “ f”表示按照浮点型输出,选项 B正确;加入长度格式符 1即 “ 1”表示按照双精度浮点型输出,选项 C正确;若要控制输出精度,则需以 “ ”开头,后跟十进制整数,如 “ 2f”或 “ O 2f”,选项 D正 确;控制输出宽度则是用整数表示,如“ 5f”,选项 A中 “ 5 Of

29、表示输出宽度为 5,右对齐,小数点后保留位数为0,所以结果输出为 2,不能完整输出 x,答案选 A。 18 【正确答案】 A 【试题解析】 在 sanf()函数中格式字符串的形式必须与地址格式保持一致,所以B、 D选项不正确。 C选项中 c= d是以数值格式存入 c变量。故只有 A选项正确。 19 【正确答案】 A 【试题解析】 条件表达式: x=表达式 1?表达式 2:表达式 3,其含义是先求解表达式 1,若其值为非 0(真 ),则求解表达式 2,将表 达式 2的值赋给 x;若表达式 1的值为 0(假 ),则求解表达式 3,将表达式 3的值赋给 x。与表达式 (x-y)等价的是(x-y 0x

30、-y 0)。 20 【正确答案】 A 【试题解析】 考查条件运算符。条件表达式的形式为:表达式 1?表达式 2:表达式 3,计算 “表达式 1”的值,若为 “真 ”,取 “表达式 2”的值作为整个条件表达式的值;若为 “假 ”,取 “表达式 3”的值作为整个条件表达式的值。字符参与运算时一般计算其 ASCII码,并且一个字母的小写 -大写 =32(ASCII码 ),该程序将大写字母转成对应的小写字母,答案选 A。 21 【正确答案】 B 【试题解析】 考查 while循环的执行过程。先计算括号内表达式的值,若不为 0则执行循环体语句,若为 0则跳出 wlaile循环,所以条件表达式的执行次数总

31、是比循环体的执行次数多一次答案选 B。 22 【正确答案】 A 【试题解析】 C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。所以 s=f(a+1)=a+1*a+1*a+1, t=f(a+1)=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。 23 【正确答案】 D 【试题解析】 全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。 24 【正确答案】 C 【试题解析】 scanf()函数的一般调用形式为: scanf(格式控制,输入地址列表 )。其中,格式控制是用双引号括起来的字符串,包括格式字符和普

32、通字符,格式是是由 “ ”和格式字符组成。 getchar()函数的功能是从标准输入设备上读入一个字符。根据程序中的格式控制可知,接收输入时分别把 1赋给了 a, 2赋给了 b,然后 getchar()函数提取一个换行符赋给 c,再提取一个字符 3赋给 d。所以程序的输出结果为: 12 CR 3。 25 【正确答案】 D 【试题解析】 函数 fun是递归函数,递归终止条件是 x小于等于 2,当大于 2时递归调用 fun(x 2)。第一次循环 x 2=3,调用 fun(3), x 2=1,跳出 if循环,执行输出 x=3,然后回到第一次循环,执行 if循环的语句,输出 x=7。 26 【正确答案

33、】 C 【试题解析】 因为 b是全局变量,所以它的值在整个程序结束才会消失。 for循环中,第一次循环, i=2, a2=3,所以 fun(&ai=3+2=5, b=5,所以b=fun(&ai)+b=5+5=10;第二次循环, b=10,然后 fun(&ai)代入 a3=4,这时fun(&ai=10+4=14,所以 b=fun(&ai)+b=14+14=28。 27 【正确答案】 A 【试题解析】 A项错误,数组定义后,不能对数组整体赋值, ss是二维数组,ss1是一维字符数组,即字符串,字符串赋值可以使用 “strcpy(ss1, ”right”); ”的形式,但不能使用赋值的形式。 B、

34、D两项正确,在定义时对数组同时进行初始化; C项 正确,将常量字符串在内存中的首地址赋给指针数组的一个元素。 28 【正确答案】 A 【试题解析】 考查函数的返回值。 d=f(f(a, b), f(a, c)=f(b-a)*a, (c-a)*a)=f(3, 6)=(6-3)*3=9,所以答案选 A。 29 【正确答案】 B 【试题解析】 调用函数的时候只有保证调用语句的函数名和被调函数的函数名、参数列表一致才能保证调用的正确性,选项 B正确。 C语言对大小写敏感,选项A错。用户自定义的函数名需要遵循用户标识符的命名规则,由字母、数字、下画线组成并且第 一个字符不能为数字,选项 C错。一个函数每

35、次只能使用一个return语句,但是该函数体中可以有多个返回点,也就是有多条 return语句,每次只从其中一点返回,选项 D错。答案选 B。 30 【正确答案】 A 【试题解析】 A选项正确, C语言通过文件缓冲区对文件进行操作,如果操作完成后不进行关闭文件,可能导致文件缓冲区中的数据丢失。 B选项错误,打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等; C选项错误,在一个程序中当对文件进行了写操作后,用 fSeek()函数进行重新定位就能够读到第 1个数据; D选项错误, C语言中的文件可以进行随机读写。 31 【正确答案】 A 【试题解

36、析】 函数 m1()返回两个参数中较小的数值,函数 m2()返回两个参数中较大的数值,函数 fun()返回两个参数之和,所以 fun(m1(x, y), m2(y,z)=fun(m1(2, 3), m2(3, 1)=fun(2, 3)=5,答案选 A。 32 【正确答案】 C 【试题解析】 先执行 strcpy,将 b2中的 2复制到 a1中的 b及之后的存储空间中,即此时数组 a中值为 a2, 再执行 strcat连接函数,将 c1所指的 y及之后的 z与 a连接,即为 a2yz。 33 【正确答案】 A 【试题解析】 空指针意味着该指针没有指向任何具体的变量,所以不能访问一个存储单元,选项

37、 A正确。指针的赋值运算只能在同一数据类型之间进行,故选项B错。语句 p=0和 p=NULL是一样的,都是把一个空指针赋给指针变量 p,故选项 C错。指针之间能进行关系运算,比较的是地址值的大小,选项 D错。答案选A。 34 【正确答案】 C 【试题解析】 考查指针的用法。指针进行算术运算的时候,数字 “1”不再 代表十进制整数 “1”,而是指一个存储单元长度,选项 c正确。指针变量存储的是其指向的变量的地址,其本身的地址仍用取地址运算符 “&“求得,木 p表示的是 p指向的变量的值,选项 A、 B错。 *p+1表示的是指针 p指向的变量值 +1,而 *(p+1)则是取得了下一个变量的值,两者

38、不同,选项 D错。答案选 C。 35 【正确答案】 A 【试题解析】 *s=*(x1+1);的作用是将 a数组的 5的地址赋给了 p,故正确答案为 A。 36 【正确答案】 C 【试题解析】 main函数的函数体是一个 for循环语句, for循环中包含一个switch语句,如果判断条件为 0,则进入第二个 switch语句,如果判断语句为 1,则执行 “ai=0”,最后将数组按顺序输出。所以程序功能是将数组的偶数项设为O,奇数项如果为奇数则减 1,为偶数就加 1,最后得到结果。 37 【正确答案】 A 【试题解析】 x=1x18为赋值表达式,十六进制数 0x18非 0, if条件成立输出T,

39、之后再输出 F与回车符。程序运行后的输出结果是 TF。 38 【正确答案】 A 【试题解析】 分号代表该结构体定义语句的结束,选项 A的结构体没有定义完全就用该结构体另外定义变量,用法有误,所以答案选 A。 39 【正确答案】 B 【试题解析】 第一次调用 fun()函数,此时 n=0,数组 x是静态的,因此,只在第一次时初始化,由 xk+=xk-n计算可知, x=2, 4, 6,第二次调用 fun(),此时 n=1, x=2, 4, 6,经计算得 x=3, 7, 11,故输出结果为 2, 4, 6,3, 7, 11,。 40 【正确答案】 C 【试题解析】 字符常量与其 ASCII码值一一对

40、应,在计算的时候,可以使用该字符的 ASCII码参与运算, 输出时会根据格式控制符输出对应的字符或者 ASCII码。右移运算符 “ ”的运算规则是把左边运算数的各二进制位全部右移 n位, n取决于 “ ”右边的数值。字符 a的 ASCII码值为 8,对应二进制为 1000,所以a 3=1,输出的字符 c的 ASCII码值为 1,答案选 C。 二、程序填空题 41 【正确答案】 (1)t, s (2)si (3)0或 0 【试题解析】 本题考查:在矩阵中找出在行上最大、在列上最小的那个元素。 填空 1:当给定的长度 n大于该字符串 s的长度,那么把该字符串直接复制到 t就可以了 ,所以应填 t,

41、 s。 填空 2:使用 for循环语句,把最右边 n个字符依次添加到 t中,所以应填 si。 填空 3:字符串操作结束,需要给 t加一个字符串结束符,所以应填 0或 0。 三、程序修改题 42 【正确答案】 (1)if(d 2=0) (2)s =10; 【试题解析】 本题考查: if语句条件表达式,注意 “=”和 “=”的区别;除法运算符 “ ”。 (1)分析程序,在 if的条件表达式中,不应该出现赋值运算符 “=”,应使用 “=”运算符。 (2)这里是一个运算符的错误,表示除法的运算符是 “ ”。 四、程序设计题 43 【正确答案】 void fun(char*s, char t) int

42、i=0; for(; *s!= 0; s+) *找出 ASCII值为奇数的字符依次存入数组 t中 * if(*s 2=1) ti+=*s; ti= 0; *在字符串的末尾加上串结束符 * 【试题解析】 本题要求将 s所指字符串中 ASCII码值为偶数的字符删除,因此本题要求采用一个 for循环来找出 ASCII码值为奇数的字符依次存入数组 t中,并使用 if条件句来判断 s所指字符串中 ASCII码值是否为奇数。用 0加在字符串的末尾来表示字符串的结束。 要删除 ASCII码值为偶数的字符,也就是要留下 ASCII码值为奇数的字符。由于最终是要求出剩余字符 (即 ASCII码值为奇数 )形成的新串,所以本题程序的算法是对原字符串从头到尾扫描,找出 ASCII码值为奇数的字符并将其依次存入数组 t中。此外,还要注意数组 t的下标变化

展开阅读全文
相关资源
猜你喜欢
  • ASTM C1259-2001 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶瓷动态杨氏模量、剪切模量和泊.pdf ASTM C1259-2001 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶瓷动态杨氏模量、剪切模量和泊.pdf
  • ASTM C1259-2008 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration.pdf ASTM C1259-2008 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration.pdf
  • ASTM C1259-2008e1 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶瓷动态杨氏模量、剪切模量.pdf ASTM C1259-2008e1 Standard Test Method for Dynamic Youngs Modulus Shear Modulus and Poissons Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶瓷动态杨氏模量、剪切模量.pdf
  • ASTM C1259-2014 Standard Test Method for Dynamic Young&rsquo s Modulus Shear Modulus and Poisson&rsquo s Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶.pdf ASTM C1259-2014 Standard Test Method for Dynamic Young&rsquo s Modulus Shear Modulus and Poisson&rsquo s Ratio for Advanced Ceramics by Impulse Excitation of Vibration《用振动脉冲激励法的高级陶.pdf
  • ASTM C1259-2015 Standard Test Method for Dynamic Young&rsquo s Modulus Shear Modulus and Poisson&rsquo s Ratio for Advanced Ceramics by Impulse Excitation of Vibration《采用脉冲激振法的先进陶瓷.pdf ASTM C1259-2015 Standard Test Method for Dynamic Young&rsquo s Modulus Shear Modulus and Poisson&rsquo s Ratio for Advanced Ceramics by Impulse Excitation of Vibration《采用脉冲激振法的先进陶瓷.pdf
  • ASTM C126-1999(2005) Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《上釉陶瓷结构粘土面砖、饰面瓷砖和实心砌块标准规范》.pdf ASTM C126-1999(2005) Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《上釉陶瓷结构粘土面砖、饰面瓷砖和实心砌块标准规范》.pdf
  • ASTM C126-2009 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units.pdf ASTM C126-2009 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units.pdf
  • ASTM C126-2010 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《陶瓷上釉结构用饰面砖、面砖以及实心砖石砌块标准规范》.pdf ASTM C126-2010 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《陶瓷上釉结构用饰面砖、面砖以及实心砖石砌块标准规范》.pdf
  • ASTM C126-2011 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《上釉陶瓷结构用饰面瓷砖 面砖和实心砌块的标准规范》.pdf ASTM C126-2011 Standard Specification for Ceramic Glazed Structural Clay Facing Tile Facing Brick and Solid Masonry Units《上釉陶瓷结构用饰面瓷砖 面砖和实心砌块的标准规范》.pdf
  • 相关搜索

    当前位置:首页 > 考试资料 > 职业资格

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1