【计算机类职业资格】二级C语言笔试-274及答案解析.doc

上传人:hopesteam270 文档编号:1326076 上传时间:2019-10-17 格式:DOC 页数:28 大小:91.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-274及答案解析.doc_第1页
第1页 / 共28页
【计算机类职业资格】二级C语言笔试-274及答案解析.doc_第2页
第2页 / 共28页
【计算机类职业资格】二级C语言笔试-274及答案解析.doc_第3页
第3页 / 共28页
【计算机类职业资格】二级C语言笔试-274及答案解析.doc_第4页
第4页 / 共28页
【计算机类职业资格】二级C语言笔试-274及答案解析.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、二级 C 语言笔试-274 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.能正确表示逻辑关系“(分数:1.00)A.10 或 a0”的 C 语言表达式是( )。A) a =10 or a=0B) a =0|a=10C)2.下面程序段的输出结果是( )。char str=“ABC“,*p=str;Printf(“%d/n“,*(p+3);(分数:1.00)A.67B.0C.字符C的地址D.字符C3.以下程序段的输出结果是( )。int a=1234;printf(“%2d/n“,(分数:1.00)A.;A) 12B) 34C) 1234D)

2、提示出错,4.若 fp 是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是( )。(分数:1.00)A.EOFB.-1C.1D.NULL5.若有说明:int *p,m=5,n;以下正确的程序段是( )。(分数:1.00)A.p= i200;i+)if(i-2)%4=0)if(! (i-3)%7)if(_) printf(“%d“,i);(分数:1.00)A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9= =010.下面四个选项中,均是不合法的用户标识符的选项是( )。(分数:1.00)A.A P_0 doB.float la0_AC.b-a go

3、to intD._123 temp int11.下列程序的输出结果是( )。#inelude stdiohmain()int a5=2,4,6,8,10,*p,*k;p=a; k=j=i; k=+i;p=f(j,k);printf(“%d“,p);int f(int a,int b)int c;if(ab)c=1;else if(a= =b) c=0;else c=-1;return(c);(分数:1.00)A.-1B.1C.2D.编译出错,无法运行30.下面程序段的运行结果是( )。char*p=“abcdefgh“;p+ =3;printf(“%d/n“,stfien(strcpy(p,“

4、ABCD“);(分数:1.00)A.8B.12C.4D.731.有如下程序:#include stdiohmain()int x=23;doPrintf(“%d“,x-);while(! x);该程序的执行结果是( )。(分数:1.00)A.321B.23C.不输出任何内容D.陷入死循环32.在 int (*prt)3;定义中,标识符 prt( )。(分数:1.00)A.定义不合法B.是一个指针数组名,每个元素都是一个指向整型变量的指针C.是一个指针,它指向一个具有三个元素的一维数组D.是一个指向整型变量的指针33.若有以下语句,则对数组 a 元素的引用不正确的是(0i9)( )。int a1

5、0=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:1.00)A.ap-aB.*(36.下面程序段的输出结果是( )。char a=“lanuage“,*p;p=a;while(*P! =u) printf(“%c“,*p-32); P+;(分数:1.00)A.LANGUAGEB.languageC.LAND.langUAGE37.C 语言规定,在一个源程序中,main 函数的位置( )。(分数:1.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后38.执行语句 for(i=1; i+4;);后变量 i 的值是( )。(分数:1.00)A.3B.4C.

6、5D.不定39.下列数据中,不合法的 C 语言实型数据的是( )。(分数:1.00)A.0.123B.123e3C.2.1e3.5D.789.040.以下叙述中不正确的是( )。(分数:1.00)A.预处理命令行都必须以#号开始B.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.定义#define PI 3.1415926;是正确的41.有如下程序:#define N 2#define M N+1#define NUM 2*M+1main()int i;for(i=1; i=NUM;i+)printf(“%d/n“,i);该程序中的 for 循环执行的次

7、数是( )。(分数:2.00)A.5B.6C.7D.842.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是( )。(分数:2.00)A.数据库系统B.文件系统C.人工管理D.数据项管理43.以下正确的说法是( )。(分数:2.00)A.用户若需调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,若重新定义,该函数将失去原有含义C.系统根本不允许用户重新定义标准库函数D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动调用44.函数 fun 的返回值是( )。fun(char *

8、a,char *b)int num=0,n=0;while( * (a+num)! =/0) num+;while(bn) *(a+num)=bn;num+;n+;return num;(分数:2.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和45.当说明一个结构体变量时,系统分配给它的内存是( )。(分数:2.00)A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量46.设以下变量均为 int 类型,表达式的值不为 7 的是( )。(分数:2.00)

9、A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6, x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)47.若有以下结构体,则正确的定义或引用的是( )。struct Testint x;int y;vl;(分数:2.00)A.Test.x=10;B.Test v2;v2.x=10;C.struet v2;v2.x=10;D.struct Test v2=10;48.若调用 fputc 函数输出字符成功,则其返回值是( )。(分数:2.00)A.EOFB.1C.0D.输出的字符49.在位运算中,操作数左移一位,其结果相当于( )。(分数:2.00)A

10、.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 450.检查软件产品是否符合需求定义的过程称为( )。(分数:2.00)A.确认测试B.集成测试C.验证测试D.验收测试二、填空题(总题数:18,分数:36.00)51.在树形结构中,树根结点没有 【1】 。(分数:2.00)填空项 1:_52.Jackson 结构化程序设计方法是英国的 MJackson 提出的,它是一种面向 【2】 的设计方法。(分数:2.00)填空项 1:_53.面向对象的模型中,最基本的概念是对象和 【3】 。(分数:2.00)填空项 1:_54.软件设计模块化的目的是 【4】 。(分数:2.00)填空

11、项 1:_55.数据模型按不同应用层次分成三种类型,它们是概念数据模型、 【5】 和物理数据模型。(分数:2.00)填空项 1:_56.以下程序的输出结果是 【6】 。#include stdiohmain()int a=2,b=3,c=4;a* =16+(b+) -(+c);Printf(“%d“,a);(分数:2.00)填空项 1:_57.若变量 n 的值为 24,则 print 函数共输出 【7】 行,最后一行有 【8】 个数。void print(int n,int aa)int i;for(i=1;in;i+)printf(“%6d“,aai);if(!(i%5) printf(“/

12、n“);printf(“/n“);(分数:2.00)填空项 1:_58.调用 C 语言标准库函数时要求用 【9】 命令。(分数:2.00)填空项 1:_59.strcat 函数的作用是 【10】 。(分数:2.00)填空项 1:_60.C 语言程序的注释可以出现在程序中的任何地方,一个注释以 【11】 分别作为开始和结束。(分数:2.00)填空项 1:_61.设二进制数 A 是 00101101,若想通过异或运算 AB 使 A 的高 4 位取反,低 4 位不变,则二进制数 B 应是 【12】 。(分数:2.00)填空项 1:_62.若已知 a=10,b=20,则表达式! ab 的值为 【13】

13、 。(分数:2.00)填空项 1:_63.设 i,j,k 均为 int 型变量,则执行完下面的 for 语句后,k 的值为 【14】 。for(i=0,j=10;i=j;i+,j-) k=i+j;(分数:2.00)填空项 1:_64.下面程序中函数 fun 的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x 是数组名,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。请填空。#include stdlibh#include sldiohvoid fun(int a,int n, in

14、t * max,int *d)int i;*max=a0; *d=0;for(i=0; 【15】 ;i+)if(*max 【16】 )*max=ai;*d=i;main()int i, x20, max, index, n=10;randomize();for(i=0;in;i+)xi=rand()%50;printf(“%4d“,xi);printf(“/n“);fun(x,n,cc4;cc+)fun();printf(“/n“);(分数:2.00)填空项 1:_66.以下程序的输出结果是 【18】 。#include stdioh#define MAX(x,y)(x),(y)?(x):(y

15、)main()int a=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(“%d/n“,t);(分数:2.00)填空项 1:_67.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请填空。st=(char*) 【19】 ;(分数:2.00)填空项 1:_68.以下程序段打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。FILE * myf;long f1;myf= 【20】 (“test.t“,“rb“);fseek(

16、myf,0,SEEK END) ;f1=ftell(myf);fclose(myf);printf(“%d/n“,f1);(分数:2.00)填空项 1:_二级 C 语言笔试-274 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.能正确表示逻辑关系“(分数:1.00)A.10 或 a0”的 C 语言表达式是( )。A) a =10 or a=0B) a =0|a=10C)解析:解析 本题考查 C 语言的逻辑表达式及逻辑或(“|”)运算符的用法。“|”表示或的意思,“|”是按位或的意思,“ i200;i+)if(i-2)%4=0)if(! (i-

17、3)%7)if(_) printf(“%d“,i);(分数:1.00)A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9= =0 解析:解析 本题中需要填空的是第三个条件,即“若分成 9 个零件一组,则多 5 个零件”,当总零件数减去 5 后,并与 9 取余为 0 即可满足本题的条件。10.下面四个选项中,均是不合法的用户标识符的选项是( )。(分数:1.00)A.A P_0 doB.float la0_AC.b-a goto int D._123 temp int解析:解析 C 语言规定的标识符只能由字母、数字和下划线三种字符组成,第一个字符必须为字母或下划线,并且不能

18、使用 C 语言中的关键字作为标识符。选项 C) 中 goto 和 int 是关键字,b-a 中的“-“不是组成标识符的三种字符之一,所以,均是不合法用户标识符的选项是 C) 。11.下列程序的输出结果是( )。#inelude stdiohmain()int a5=2,4,6,8,10,*p,*k;p=a; k=j=i; k=+i;p=f(j,k);printf(“%d“,p);int f(int a,int b)int c;if(ab)c=1;else if(a= =b) c=0;else c=-1;return(c);(分数:1.00)A.-1 B.1C.2D.编译出错,无法运行解析:解析

19、 函数调用相当于 f(2,3),程序运算结果为-1。30.下面程序段的运行结果是( )。char*p=“abcdefgh“;p+ =3;printf(“%d/n“,stfien(strcpy(p,“ABCD“);(分数:1.00)A.8B.12C.4 D.7解析:解析 p+=3 使指针 p 指向字符“d“,函数 strcpy 的功能是把后面的字符串复制到 p 指针指向的空间;strlen 函数的功能是求字符串的长度,并返回字符个数,不计最后的“/0“。本题结果为 4,即字符串“ABCD”的长度。31.有如下程序:#include stdiohmain()int x=23;doPrintf(“%

20、d“,x-);while(! x);该程序的执行结果是( )。(分数:1.00)A.321B.23 C.不输出任何内容D.陷入死循环解析:解析 do-while 语句的执行过程中要先执行一次循环体语句,本题中执行 x-后判断 while 中的表达式,表达式的值!x 为假,程序结束循环。32.在 int (*prt)3;定义中,标识符 prt( )。(分数:1.00)A.定义不合法B.是一个指针数组名,每个元素都是一个指向整型变量的指针C.是一个指针,它指向一个具有三个元素的一维数组 D.是一个指向整型变量的指针解析:解析 此题的关键是要分清指针数组与指向一维数组指针之间的不同,题中的说明语句定

21、义了一个指针变量 prt,它指向包含三个整数元素的一维数组。要注意:*prt 两侧的圆括号不能缺少,如果写成*ptr3,则 ptr 与3先结合,是数组,然后再与前面的。号结合,则*ptr3将是一个指针数组。33.若有以下语句,则对数组 a 元素的引用不正确的是(0i9)( )。int a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:1.00)A.ap-aB.*(解析:解析 在一维数组中要注意的是下标常量表达式的值必须是大于等于零,并且小于自身元素的个数,选项 B) 的下标不是整数,所以错误。36.下面程序段的输出结果是( )。char a=“lanuage“,*p;p=a;w

22、hile(*P! =u) printf(“%c“,*p-32); P+;(分数:1.00)A.LANGUAGEB.languageC.LAN D.langUAGE解析:解析 本段程序的作用是输出字符串“lanuage“中字母 u 之前的字符,并将其转化为大写字母。37.C 语言规定,在一个源程序中,main 函数的位置( )。(分数:1.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意 D.必须在最后解析:解析 C 程序总是从 main 函数开始执行,但 main 函数在程序中的位置可以是任意的。38.执行语句 for(i=1; i+4;);后变量 i 的值是( )。(分数:

23、1.00)A.3B.4C.5 D.不定解析:解析 for 语句的循环体语句为空语句,循环结束时 i 值为 5。39.下列数据中,不合法的 C 语言实型数据的是( )。(分数:1.00)A.0.123B.123e3C.2.1e3.5 D.789.0解析:解析 在 C 语言中,实数有两种表示形式。即十进制数形式和指数形式,在指数形式中,字母 e的前面必须有数字,且 e 的后面必须是整数。e3,2.1e3.5,e3,e 等都是不合法的指数形式,而 123e3或 123E3 都代表 123 乘以 10 的 3 次方。40.以下叙述中不正确的是( )。(分数:1.00)A.预处理命令行都必须以#号开始B

24、.在程序中凡是以#号开始的语句行都是预处理命令行C.宏替换不占用运行时间,只占编译时间D.定义#define PI 3.1415926;是正确的 解析:解析 带参数的宏定义如下:#define 宏名(参数)字符串。本题中,宏定义的作用是指定用标识符 PI 来代替“3.1415926”这个字符串,但宏定义不是 C 语句,行末不加分号。41.有如下程序:#define N 2#define M N+1#define NUM 2*M+1main()int i;for(i=1; i=NUM;i+)printf(“%d/n“,i);该程序中的 for 循环执行的次数是( )。(分数:2.00)A.5B.

25、6 C.7D.8解析:解析 该题关键要注意在不带参数的宏中对 2*M+1 进行宏替换时,要将宏名 M 原封不动地代进去,得到 NUM 的形式为 2*N+1+1(千万不要随意给 N+1 加上括号,使 NUM 变为 2*(N+1)+1,这就是宏名和变量名之间的区别),再将 N 代进去,得到 NUM 的值为 6。42.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段,其中数据独立性最高的阶段是( )。(分数:2.00)A.数据库系统 B.文件系统C.人工管理D.数据项管理解析:解析 人工管理阶段是在 20 世纪 50 年代中期以前出现的,数据不独立,完全依赖于程序;文件系

26、统阶段是数据库系统发展的初级阶段,数据独立性差;数据库系统阶段数据具有高度的物理独立性和一定的逻辑独立性。43.以下正确的说法是( )。(分数:2.00)A.用户若需调用标准库函数,调用前必须重新定义B.用户可以重新定义标准库函数,若重新定义,该函数将失去原有含义 C.系统根本不允许用户重新定义标准库函数D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动调用解析:解析 用户调用标准库函数前不必重新定义,而只需使用预编译命令将该函数所在文件包括到用户源文件中即可。而且,系统允许用户重新定义标准库函数,但此时该函数将失去原有含义。因此,正确答案为选项

27、 B) 。44.函数 fun 的返回值是( )。fun(char *a,char *b)int num=0,n=0;while( * (a+num)! =/0) num+;while(bn) *(a+num)=bn;num+;n+;return num;(分数:2.00)A.字符串 a 的长度B.字符串 b 的长度C.字符串 a 和 b 的长度之差D.字符串 a 和 b 的长度之和 解析:解析 本题首先通过第一个 while 循环计算字符串 a 的长度,再通过第二个循环,将字符串 b 连接到字符 a 的后面,最后返回连接后的总长度。45.当说明一个结构体变量时,系统分配给它的内存是( )。(分

28、数:2.00)A.各成员所需内存量的总和 B.结构中第一个成员所需内存量C.成员中占内存量最大者所需的容量D.结构中最后一个成员所需内存量解析:解析 结构体变量所占内存长度是各成员所占内存长度之和,每个成员分别占有自己的内存单元,而共用体变量所占的内存长度等于最长的成员的长度。46.设以下变量均为 int 类型,表达式的值不为 7 的是( )。(分数:2.00)A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6, x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)解析:解析 本题考查逗号表达式的用法。C 语言中逗号“,”也是一种运算符,称为逗号运算符

29、。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:表达式 1,表达式 2,表达式 3,表达式 n,其值为表达式 n 的值。47.若有以下结构体,则正确的定义或引用的是( )。struct Testint x;int y;vl;(分数:2.00)A.Test.x=10;B.Test v2;v2.x=10;C.struet v2;v2.x=10;D.struct Test v2=10; 解析:解析 此题考查结构体的定义和引用。选项 A) 的错误是通过结构体名引用结构体成员;选项 B) 的错误是将结构体名作为类型名使用;选项 C) 的错误是将关键字 struct

30、作为类型名使用;选项 D) 是定义变量 v2 并对其初始化的语句,初始值只有前一部分,这是允许的。48.若调用 fputc 函数输出字符成功,则其返回值是( )。(分数:2.00)A.EOFB.1C.0D.输出的字符 解析:解析 fputc 函数的一般调用形式为 fputc(ch,fp),其中 ch 是要输出的字符,它可以是一个字符常量,也可以是一个字符变量;fp 是文件指针变量。函数 fputc 的作用是将字符(ch 的值)输出到 fp 所指向的文件中去。fputc 函数也带回一个值:如果输出成功,则返回值就是输出的字符;如果输出失败,则返回 EOF(-1)。49.在位运算中,操作数左移一位

31、,其结果相当于( )。(分数:2.00)A.操作数乘以 2 B.操作数除以 2C.操作数除以 4D.操作数乘以 4解析:解析 左移运算符“”是双目运算符,其功能是把“”左边运算数的二进制位全部左移若干位,移动的位数由“”右边数指定,高位丢弃,低位补 0。例如:a=00000011(十进制数 3),左移 4 位后为 00110000(十进制数 48)。50.检查软件产品是否符合需求定义的过程称为( )。(分数:2.00)A.确认测试 B.集成测试C.验证测试D.验收测试解析:解析 确认测试的任务是验证软件的功能、性能以及其他特性是否满足需求规格说明定义的各种需求;集成测试的主要目的是发现与接口有

32、关的错误。二、填空题(总题数:18,分数:36.00)51.在树形结构中,树根结点没有 【1】 。(分数:2.00)填空项 1:_ (正确答案:前件)解析:解析 在树形结构中,每一个结点只有一个前件,称为父结点;没有前件的结点只有一个,称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点;没有后件的结点称为叶子结点。52.Jackson 结构化程序设计方法是英国的 MJackson 提出的,它是一种面向 【2】 的设计方法。(分数:2.00)填空项 1:_ (正确答案:数据结构)解析:解析 结构化分析方法主要包括:面向数据流的结构化分析方法,面向数据结构的 Jackson 方法和

33、面向数据结构的结构化数据系统开发方法。53.面向对象的模型中,最基本的概念是对象和 【3】 。(分数:2.00)填空项 1:_ (正确答案:类)解析:解析 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。54.软件设计模块化的目的是 【4】 。(分数:2.00)填空项 1:_ (正确答案:降低复杂性)解析:解析 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程,由此分解来降低复杂性。55.数据模型按不同应用层次分成三种类型,它们是概念数据模型、 【5】 和物理数据模型。(分数:2.00)填空项

34、 1:_ (正确答案:逻辑数据模型)解析:解析 数据模型按不同的应用层次分成三种类型,它们是概念数据模型、逻辑数据模型、物理数据模型。56.以下程序的输出结果是 【6】 。#include stdiohmain()int a=2,b=3,c=4;a* =16+(b+) -(+c);Printf(“%d“,a);(分数:2.00)填空项 1:_ (正确答案:28)解析:解析 a*=16+(b+)-(+c)等价于 a=a*(16+(b+)-(+c),b+的值为 3,+c 的值为 5,这里要注意前缀+和后缀+的用法。57.若变量 n 的值为 24,则 print 函数共输出 【7】 行,最后一行有

35、【8】 个数。void print(int n,int aa)int i;for(i=1;in;i+)printf(“%6d“,aai);if(!(i%5) printf(“/n“);printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:5 4)解析:解析 语句 if(!(i%5)printf(“/n“);实现每 5 个数输出一行,因为 n 的值为 24,所以共输出 5行,最后一行有 4 个数。58.调用 C 语言标准库函数时要求用 【9】 命令。(分数:2.00)填空项 1:_ (正确答案:include)解析:解析 include 命令可调用标准的 C 语言库函数,可以用

36、一对尖括号或一对双引号将“.h”文件括起来,在 include 前面要加“#”。59.strcat 函数的作用是 【10】 。(分数:2.00)填空项 1:_ (正确答案:连接两个字符数组中的字符)解析:解析 函数 strcat 的功能是连接两个字符数组中的字符串。60.C 语言程序的注释可以出现在程序中的任何地方,一个注释以 【11】 分别作为开始和结束。(分数:2.00)填空项 1:_ (正确答案:/* */)解析:解析 C 语言程序的注释可以出现在程序基本单词之间的任何地方,C 语言程序的注释以“/*”作为开始标记,并以“*/”作为结束标记。61.设二进制数 A 是 00101101,若

37、想通过异或运算 AB 使 A 的高 4 位取反,低 4 位不变,则二进制数 B 应是 【12】 。(分数:2.00)填空项 1:_ (正确答案:11110000)解析:解析 按位异或运算的一个重要应用是让某个整型变量的二进制位取反,0 变成 1,而 1 变成 0。这只要设计这样一个位串信息,让要变反的位为 1,不要改变的位为 0,用这个位串信息与整型变量按位加就能得到希望的结果。要使字节的高 4 位取反,低 4 位不变,则需要位串信息是 11110000。62.若已知 a=10,b=20,则表达式! ab 的值为 【13】 。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 计算表

38、达式!ab,先计算!a,因 a 的值为 10,!a 的值为 0,而关系表达式 020 为真,所以表达式!ab 的值为 1。63.设 i,j,k 均为 int 型变量,则执行完下面的 for 语句后,k 的值为 【14】 。for(i=0,j=10;i=j;i+,j-) k=i+j;(分数:2.00)填空项 1:_ (正确答案:10)解析:解析 该 for 语句以 i 为 0,j 为 10 作为初始值,循环条件是 i=j,每次循环后 i 增 1、j 减 1,循环体是将 i 与 j 的和赋给 k,这样变量 k 将保存的是最后一次赋给它的值。一次循环后 i 为 1、j为 9,二次循环后 i 为 2、

39、j 为 8,五次循环后 i 为 5、j 为 5,第六次循环,将 i 与 j 的和 10 赋给k 后,i 为 6、j 为 4,循环结束,k 值为 10。64.下面程序中函数 fun 的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x 是数组名,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。请填空。#include stdlibh#include sldiohvoid fun(int a,int n, int * max,int *d)int i;*max=a0; *d=0;for(

40、i=0; 【15】 ;i+)if(*max 【16】 )*max=ai;*d=i;main()int i, x20, max, index, n=10;randomize();for(i=0;in;i+)xi=rand()%50;printf(“%4d“,xi);printf(“/n“);fun(x,n,cc4;cc+)fun();printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:246)解析:解析 本题考查静态(static)局部变量的使用。fun 函数中的静态局部变量 a 所占用的存储单元在程序运行过程中始终不释放,即当下一次调用该函数时,该变量仍然保留上一次函数调用

41、结束时已有的值,3 次调用 fun 函数分别得到 2,4,6。66.以下程序的输出结果是 【18】 。#include stdioh#define MAX(x,y)(x),(y)?(x):(y)main()int a=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(“%d/n“,t);(分数:2.00)填空项 1:_ (正确答案:7)解析:解析 本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:表达式 1?表达式 2:表达式 3。“?:”运算符的含义是:先求表达式 1 的值,如果为真,则求表达式 2 的值,并把它作为整个表达式的值;如果表

42、达式 1 的值为假,则求表达式 3 的值,并把它作为整个表达式的值。注意,在本题中宏替换时可采用逐步求解,最终为 76? 7:6*10,即 t=76? 7:60,其值为 t=7。67.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请填空。st=(char*) 【19】 ;(分数:2.00)填空项 1:_ (正确答案:malloc(11)或 malloc(11*sizeof(char))解析:解析 malloc 函数的参数可以是一个具体的常数,也可以是一个表达式。本题可以是 malloc(11),也可以用 sizeof 运算符来表示。68.以下程序段

43、打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。FILE * myf;long f1;myf= 【20】 (“test.t“,“rb“);fseek(myf,0,SEEK END) ;f1=ftell(myf);fclose(myf);printf(“%d/n“,f1);(分数:2.00)填空项 1:_ (正确答案:fopen)解析:解析 函数 fopen 的原型为 FILE *fopen(char * filename,char * mode),功能为以 mode 指定的方式打开名为 filename 的文件;函数 fseek 的原型为 int fseek(FILE *fp,long offset,int base),功能为将 fp 所指向的文件的位置指针移到以 base 所指出的位置为基准,offset 为位移量的位置;函数ftell 的原型为 long ftell(FILE*fp),功能为返回 fp 所指向的文件中当前的读写位置;函数 fclose 的原型为 int fclose(FILE *fp),功能为关闭 fp 所指的文件,释放文件缓冲区。

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

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