欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言模拟642及答案解析.doc

    • 资源ID:1325906       资源大小:89KB        全文页数:23页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言模拟642及答案解析.doc

    1、二级 C语言模拟 642及答案解析(总分:167.50,做题时间:90 分钟)一、选择题(总题数:40,分数:57.50)1.有以下程序: #includestdio.h struct S int n;int a20; void f(struct S*p) int i,j,t; for(i=0;ip-n-1;i+) for(j=i+1;jp-n;j+) if(p-aip-aj) t=p-ai; p-ai=p-aj; p-aj=t; main() int i; struct S s=10,2,3,1,6,8,7,5,4,10,9; f( for(i=0;is.n;i+) printf(“%d,“

    2、,s.ai); 程序的运行结果是_。(分数:2.00)A.2,3,1,6,8,7,5,4,10,9,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,4,5,6,7,8,9,10,D.10,9,8,7,6,1,2,3,4,5,2.若有定义:int a; float b; double c;,程序运行时输入:a=1,b=2,c=3回车,能把值 1输入给变量 a、值 2输入给变量 b、值 3输入给变量 c的输入语句是_。(分数:1.00)A.scanf(“a=%d,b=%f,c=%lf“,B.scanf(“%d%f%lf“,C.scanf(“a=% d,b=% lf,c=%lf“,D.

    3、scanf(“a=%d,b=% f,c=%f“,3.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。(分数:1.00)A.属性B.关系C键D域4.有以下程序: #include stdio.h main( ) int c,d; c = (131) 1; d = (131)11; printf(“%d,%d/n“, c, d); 程序运行后的输出结果是_。(分数:1.00)A.6,1B.1,1C.7,1D.7,25.表达式 3.6-5/2+1.2+5%2的值是_。(分数:1.00)A.4.3B.4.8C.3.3D.3.86.计算机软件的构成是_。(分数:1.00)A.源代码B.程序和

    4、数据C.程序和文档D.程序、数据及相关文档7.有以下程序: #includestdio.h main() int sum,pad,pAd; sum=pad=5; pAd=+sum,pAd+,+pad; printf(“%d/n“,pad); 程序运行后的输出结果是_。(分数:1.00)A.5B.6C.7D.88.在下列模式中,能够给出数据库物理存储与物理存取方法的是_。(分数:1.00)A.外模式B.内模式C.概念模式D.逻辑模式9.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是_。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提

    5、高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度10.以下程序段中,与语句: k=ab?(bc?1:0):0; 功能相同的是_。(分数:2.00)A.if(ab)else k=0;B.if(ab)|(bc)k=1;else k=0;C.if(a=b) k=0;else if(b=c)k=1;D.if(ab)k=1;else if(bc)k=1;else k=0;11.有以下程序 #includestdio.h #includestdlib.h int fun(int n) int *p; p=(int*)malloc(sizeof(in

    6、t); *p=n;return*p; main() int a; a=fun(10);printf(“%d/n“,a+fun(10); 程序的运行结果是_。(分数:1.00)A.20B.10C.0D.出错12.以下叙述中不正确的是_。(分数:2.50)A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效13.有以下程序 #include stdio.h int f(int x) int y; if(x=0x=1) return(3); y=x*x-f(x-2); retur

    7、n y; main() int z; z=f(3); printf(“%d/n“,z); 程序的运行结果是_。(分数:1.00)A.6B.9C.0D.814.以下选项中表示一个合法的常量是(说明:符号口表示空格)_。(分数:1.00)A.999B.0XabC.123E0.2D.2.7e15.以下叙述中正确的是_。(分数:1.00)A.逻辑“或”(即运算符“|”)的运算级别比算术运算符要高B.C语言的关系表达式:0x10 完全等价于:(0x) int a,b,c; a=(-x=y+)?x:+y; b=+x;c=y;(分数:2.00)A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,

    8、b=6,c=5D.a=1,b=5,c=617.以下选项中,不正确的实型常量是_。(分数:1.00)A.123B.1e4C.3.640E-1D.0.3518.以下程序段中,与语句: k=ab?(bc?1:0):0; 功能相同的是_。(分数:2.50)A.if(ab)(hc)k=1;else k=0;B.if(ab)|(bc)k=1;else k=0;C.if(a=b)k=0;else if(b=c)k=1;D.if(ab)k=1;else if(bc)k=1;else k=0;19.下面选项中关于位运算的叙述正确的是_。(分数:1.00)A.位运算的对象只能是整型或字符型数据B.位运算符都需要两

    9、个操作数C.左移运算的结果总是原操作数据 2倍D.右移运算时,高位总是补 020.有下列程序: #includestdio.h void fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag(aiaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,1); fun(c,5,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)

    10、A.5,4,3,2,1,6,7,8,9,10,B.6,7,8,9,10,5,4,3,2,1,C.6,7,8,9,10,1,2,3,4,5,D.10,9,8,7,6,1,2,3,4,5,21.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2 main( ) printf(“%d/n“, sub(3.2,4.1); 程序运行后的输出结果是_。(分数:1.00)A.-2B.1.7C.-3D.2.023.不正确的指针概念是_。(分数:2.00)A.一个指针变量只能指向同一类型的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能存放在指向该类

    11、型变量的指针变量之中D.指针变量可以赋任意整数,但不能赋浮点数24.若有定义语句: int a23,*p3; 则以下语句中正确的是_。(分数:1.00)A.p0=a12;B.p0=a;C.p=a;D.p1=a;25.若有函数首部 int fun(double x10,int*n),则下列针对此函数的函数声明语句中正确的是_。(分数:2.00)A.int fun(double,int);B.int fun(double *,int *);C.int fun(double*x,int n);D.int fun(double x,int*n);26.下列定义变量的语句中错误的是_。 Aint_int

    12、; Bdouble int_; Cchar For; D (分数:1.00)A.B.C.D.27.冒泡排序在最坏情况下的比较次数是 _ 。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/228.若有以下程序段: int r=8; printf(“%d/n“,r1); 则输出结果是_。(分数:2.00)A.16B.8C.4D.1229.有以下不完整函数 int fun(char*p) char*t=p; while(*t+); return(_); 该函数的功能是:计算 p所指字符串占用内存单元的个数,作为函数值返回。return 语句下划线处应填入的是_。(分

    13、数:1.00)A.t-pB.*tC.*t-*pDt30.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%d%d“,a,b); void fun2() a=3;b=4; main() fun1(5,6);fun2(); printf(“%d%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4C.5 6 1 2D.3 4 5 631.有以下程序: #includestdio.h main() int a,b; for(a=1,b=1;a=100;a+) i

    14、f(b=20)break; if(b%3=1)b=b+3;continue; b=b-5; printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.10B.9C.8D.732.有以下程序: #includestdio.h main() int y=9; for(;y0;y-) if(y%3=0) printf(“%d“,-y); 程序的运行结果是_。(分数:2.50)A.852B.963C.741D.87542133.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据34.有以

    15、下程序: #includestdio.h void fun(int p) int d=2; p=d+; printf(“%d“, p); main() int a=1; fun(a); printf(“%d/n“, a); 程序运行后的输出结果是(分数:2.00)A.32B.12C.21D.2235.有以下程序段: int x=3: do printf(“%d“,x-=2); while(!(-x); 其输出结果是 _ 。(分数:1.00)A.1B.3 0C.1-2D.死循环36.有以下结构体说明、变量定义和赋值语句: struct STD char name10; int age; char

    16、 sex; s5,*ps; ps=s0; 则以下 scanf函数调用语句有错误的是_。(分数:1.00)A.scanf(“%s“,s0.name);B.scallf(“%d“,s0.age);C.scanf(“%c“,(ps-sex);D.scanf(“%d“,ps-age);37.有如下程序: #include stdio.h int sum(int a,int b) return a+b-2; main() int i; for(i=0; i5; i+) printf(“%d“,sum(i,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.54321B.0

    17、1234C.45678D.1234538.若有以下程序: #include stdio.h main( ) int x=8; for( ;x0; x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 则程序的运行结果是_。(分数:2.00)A.7,4,2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,39.在一个 C语言源程序文件中所定义的全局变量,其作用域为_。(分数:2.50)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern说明来决定范围40.有以下函数: voi

    18、d fun(char *p, chat *q) while(*p+ =*q+) !=“/0“); 该函数的功能是_。(分数:1.00)A.计算字符串的长度B.计算字符串所占字节数C.将字符串逆序存放D.实现字符串的复制二、程序填空题(总题数:1,分数:30.00)41.下列给定程序中,函数 fun的功能是:把形参 a所指数组中的奇数按原顺序依次存放到 a0、a1、a2.中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若 a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后 a所指数组中的数据为:9,1,3,5,7,返回值为 5。 请在下划线处填入正确的内容并将下

    19、划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #defineN 9 int fun(int a,int n) int i,j; j=0; for(i=0;in;i+) /*found*/ if(ai%2= 1) /*found*/ aj=ai; 2; /*found*/ return 3; main() int bN=9,1,4,2,3,6,5,8,7,i,n; printf(“/nThe original data:/n“); for(i=0;iN;i+) printf(“%4d“,bi);

    20、printf(“/n“); n=fun(b,N); printf(“/nThe number of odd:%d/n“,n); printf(“/nThe odd number:/n“); for(i=0;in;i+) printf(“%4d“,bi); printf(“/n“); (分数:30.00)三、程序修改题(总题数:1,分数:40.00)42.下列给定的程序中,函数 proc()的功能是:用选择法对数组中的 n个元素按从大到小的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includ

    21、estdio.h #define M 20 void proc(int a, int n) int i, j, t, p; for(j=0; jn-1; j+) /*found* p=j for(j=j; in; i+) if(aiap) /*found* p=j; t=ap; ap=aj; aj=t; void main() int arrM=9, 6, 8, 3, -1, i, m=5; printf(“排序前的数据:“); for(i=0; im; i+)printf(“%d“, arri); printf(“/n“); proc(arr, m); printf(“排序后的顺序:“);

    22、for(i=0; im; i+)printf(“%d“, arri); printf(“/n“); (分数:40.00)_四、程序设计题(总题数:1,分数:40.00)43.编写函数 fun,其功能是:根据以下公式求 P的值,结果由函数值带回。m 与 n为两个正整数且要求mn。 (分数:40.00)_二级 C语言模拟 642答案解析(总分:167.50,做题时间:90 分钟)一、选择题(总题数:40,分数:57.50)1.有以下程序: #includestdio.h struct S int n;int a20; void f(struct S*p) int i,j,t; for(i=0;ip

    23、-n-1;i+) for(j=i+1;jp-n;j+) if(p-aip-aj) t=p-ai; p-ai=p-aj; p-aj=t; main() int i; struct S s=10,2,3,1,6,8,7,5,4,10,9; f( for(i=0;is.n;i+) printf(“%d,“,s.ai); 程序的运行结果是_。(分数:2.00)A.2,3,1,6,8,7,5,4,10,9,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,4,5,6,7,8,9,10, D.10,9,8,7,6,1,2,3,4,5,解析:解析 本题中子函数 f的功能是对结构体变量 s中第二个

    24、成员数组中的所有数据进行从小到大的冒泡排序,所以结果是 C选项。2.若有定义:int a; float b; double c;,程序运行时输入:a=1,b=2,c=3回车,能把值 1输入给变量 a、值 2输入给变量 b、值 3输入给变量 c的输入语句是_。(分数:1.00)A.scanf(“a=%d,b=%f,c=%lf“, B.scanf(“%d%f%lf“,C.scanf(“a=% d,b=% lf,c=%lf“,D.scanf(“a=%d,b=% f,c=%f“,解析:解析 格式字符 d,输入十进制整数;格式字符 f,输入浮点数;格式字符 lf,输入双精度浮点数。除了格式说明字符和附加

    25、格式字符外,如果还有其他字符,则在输入数据时要求按照这些字符在一一对应的位置原样输入。程序运行时输入:a=1,b=2,c=3,则 scanf函数格式控制串应该是“a=%d,b=%f,c=%lf”。3.将 E-R图转换到关系模式时,实体与联系都可以表示成( )。(分数:1.00)A.属性B.关系 C键D域解析:解析 把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。4.有以下程序: #include stdio.h main( ) int c,d; c = (131) 1; d = (131)11; printf(“%d,

    26、%d/n“, c, d); 程序运行后的输出结果是_。(分数:1.00)A.6,1B.1,1C.7,1 D.7,2解析:解析 表达式 c=(131)1 中,是右移符号,数字 13换算成二进制后右移 1位,再和 1进行按位或运算,结果为 7;表达式 d=(131)1 中,首先判断 13是否大于 1,此时条件成立返回 1后,再和 1进行或运算,结果为 1,因此答案为 C选项。5.表达式 3.6-5/2+1.2+5%2的值是_。(分数:1.00)A.4.3B.4.8C.3.3D.3.8 解析:6.计算机软件的构成是_。(分数:1.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档

    27、解析:解析 计算机软件是程序、数据及相关文档的完整集合。7.有以下程序: #includestdio.h main() int sum,pad,pAd; sum=pad=5; pAd=+sum,pAd+,+pad; printf(“%d/n“,pad); 程序运行后的输出结果是_。(分数:1.00)A.5B.6 C.7D.8解析:解析 C 语言区分大小写,pad 与 pAd是两个不同的变量。首先将 5赋值给两个变量,由于赋值运算符的优先级高于逗号运算符,所以计算 pAd=+ +sum,此时 pAd为 6,sum 也为 6,然后计算 pAd+ +,pAd 的值变为 7,+ +pad,pad 的值

    28、变为 6,所以选择 B选项。8.在下列模式中,能够给出数据库物理存储与物理存取方法的是_。(分数:1.00)A.外模式B.内模式 C.概念模式D.逻辑模式解析:解析 数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。9.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是_。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性 C.耦合性是指一个模块内部各个元

    29、素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度解析:解析 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以 A选项错误,B 选项正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以 C、D 选项错误。所以选择 B选项。10.以下程序段中,与语句: k=ab?(bc?1:0):0; 功能相同的是_。(分数:2.00)A.if(ab)else k=0; B.if(ab)|(bc

    30、)k=1;else k=0;C.if(a=b) k=0;else if(b=c)k=1;D.if(ab)k=1;else if(bc)k=1;else k=0;解析:解析 k=ab?(bc?1:0):0;ab 并且 bc,k 为 1,其他情况 k为 0,答案 A。11.有以下程序 #includestdio.h #includestdlib.h int fun(int n) int *p; p=(int*)malloc(sizeof(int); *p=n;return*p; main() int a; a=fun(10);printf(“%d/n“,a+fun(10); 程序的运行结果是_。(

    31、分数:1.00)A.20 B.10C.0D.出错解析:解析 malloc(sizeof(int)的作用是开辟一个长度为 sizeof(int)的存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了一个整型的指针变量 p。然后执行语句*p=n,使得*p 的值为 10,并通过 return返回此值,即 a的值为 10。然后在主函数中输出 a+fun(10)=10+10=20。故本题答案为 A。12.以下叙述中不正确的是_。(分数:2.50)A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定

    32、义的变量在本函数范围内有效 解析:解析 此题考查的是变量的作用范围。选项 D中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。13.有以下程序 #include stdio.h int f(int x) int y; if(x=0x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%d/n“,z); 程序的运行结果是_。(分数:1.00)A.6 B.9C.0D.8解析:解析 本题主要考查的是递归函数。题目中的 f()函数直接调用了自身,是一个递归函数

    33、。主函数中调用 f()函数时传入的参数是 3,所以会跳过 if语句,执行“y=x*x-f(x-2);”,也就是“y=3*3-f1;”,再次调用 f()函数,传入参数 1,此时满足 if语句的条件,返回 3。所以前面的“y=3*3-f1;”就等价于“y=3*3-3;”,结果是 6,所以返回给主函数的结果是 6。故本题应该选择 A。14.以下选项中表示一个合法的常量是(说明:符号口表示空格)_。(分数:1.00)A.999B.0Xab C.123E0.2D.2.7e解析:解析 当用指数形式表示浮点数据时,E 的前后都要有数据,并且 E的后面数要为整数。15.以下叙述中正确的是_。(分数:1.00)

    34、A.逻辑“或”(即运算符“|”)的运算级别比算术运算符要高B.C语言的关系表达式:0x10 完全等价于:(0x) int a,b,c; a=(-x=y+)?x:+y; b=+x;c=y;(分数:2.00)A.a=5,b=5,c=5B.a=4,b=5,c=5 C.a=5,b=6,c=5D.a=1,b=5,c=6解析:17.以下选项中,不正确的实型常量是_。(分数:1.00)A.123 B.1e4C.3.640E-1D.0.35解析:18.以下程序段中,与语句: k=ab?(bc?1:0):0; 功能相同的是_。(分数:2.50)A.if(ab)(hc)k=1;else k=0; B.if(ab)

    35、|(bc)k=1;else k=0;C.if(a=b)k=0;else if(b=c)k=1;D.if(ab)k=1;else if(bc)k=1;else k=0;解析:解析 k=ab?(bc ? 1 : 0) : 0; ab 并且 bc,k 为 1,其他情况 k为 0,答案 A。19.下面选项中关于位运算的叙述正确的是_。(分数:1.00)A.位运算的对象只能是整型或字符型数据 B.位运算符都需要两个操作数C.左移运算的结果总是原操作数据 2倍D.右移运算时,高位总是补 0解析:解析 位运算是以字节作为基本位进行的,操作的对象只能是整型或字符型数据,答案选择 A。20.有下列程序: #in

    36、cludestdio.h void fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag(aiaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun(c,10,1); fun(c,5,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)A.5,4,3,2,1,6,7,8,9,10,B.6,7,8,9,10,5,4,3,2,1, C.6,

    37、7,8,9,10,1,2,3,4,5,D.10,9,8,7,6,1,2,3,4,5,解析:解析 在本题中,fun()函数接收数组 a,数组元素个数 n以及整型变量 flag,然后通过 for循环遍历数组 a的 n个元素,若 flag为 1,则将数组元素降序排列;若 flag为 0,则将数组元素升序排列。main()函数定义整型数组 c,它包含 10个元素,首先将数组 c、元素个数 10和 1传给 fun()函数,将 c中 10个元素逆序排列,结果为:10,9,8,7,6,5,4,3,2,1;然后再次调用 fun()函数,将数组c、元素个数 5和 0传给 fun()函数,将 c中前 5个元素升序

    38、排列,结果为:6,7,8,9,10,5,4,3,2,1。故本题答案为 B选项。21.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:2.50)A.(c=2 main( ) printf(“%d/n“, sub(3.2,4.1); 程序运行后的输出结果是_。(分数:1.00)A.-2 B.1.7C.-3D.2.0解析:解析 sub()函数输出(int)(a-b-1.3)将结果强制转化为整型,因此可以排除 B、D 选项,(a-b-1.3)=-2.2,(int)(-2.2)=-2,sub)(32,41)=-2,故答案为 A选项。23.不正确的指针概念是_。(分数:2.00)A.

    39、一个指针变量只能指向同一类型的变量B.一个变量的地址称为该变量的指针C.只有同一类型变量的地址才能存放在指向该类型变量的指针变量之中 D.指针变量可以赋任意整数,但不能赋浮点数解析:24.若有定义语句: int a23,*p3; 则以下语句中正确的是_。(分数:1.00)A.p0=a12; B.p0=a;C.p=a;D.p1=a;解析:解析 本题考查的知识点是:二维数组和指针数组。无论一个数组有多少维或者是否含指针类型,该数组最终都可以被看做一个比较特殊的一维数组。例如本题中的 int a23可以看作元素为 int3(即包含 3个 int型元素的一维数组),包含 2个这样元素的一维数组;而 i

    40、nt *p3则可以看作元素为int*,包含 3个这样元素的一维数组。选项 C中,p 为数组名,其值是不能被改变的,故非法;选项 B中,p0的类型是 int*,而 a是二维数组名(类型为 int3),两者无法赋值,故非法;选项 A中,p0为int型指针,a12为元素 a12的地址,所以选项 A符合题意。25.若有函数首部 int fun(double x10,int*n),则下列针对此函数的函数声明语句中正确的是_。(分数:2.00)A.int fun(double,int);B.int fun(double *,int *); C.int fun(double*x,int n);D.int f

    41、un(double x,int*n);解析:解析 函数声明的一般形式为:类型说明符被调函数名(类型形参,类型形参);或为类型说明符被调函数名(类型,类型)。由于函数首部为 int fun(double x10,int*n),因此 B选项正确。26.下列定义变量的语句中错误的是_。 Aint_int; Bdouble int_; Cchar For; D (分数:1.00)A.B.C.D. 解析:解析 C 语言规定,变量命名必须符合标识符的命名规则。D 选项中包含了非法字符“$”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字

    42、符被认为是两个不同的字符,所以 For不是关键字 for。27.冒泡排序在最坏情况下的比较次数是 _ 。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2 D.n/2解析:解析 冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其它值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有 n个数据的序列,共需 n-1趟排序,第 i趟对从 1到 n-i个数据进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第 1趟比较 n-1次,第 2趟比较 n-2次,依此类推,最后一趟比较 1次,一共进

    43、行 n-1趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+1,结果为n(n-1)/2。28.若有以下程序段: int r=8; printf(“%d/n“,r1); 则输出结果是_。(分数:2.00)A.16B.8C.4 D.12解析:解析 本题考查位运算,属于基础知识。题目中将整型变量 8二进制表达为 00001000,右移一位为 00000100,即 4,故选项 C正确。29.有以下不完整函数 int fun(char*p) char*t=p; while(*t+); return(_); 该函数的功能是:计算 p所指字符串占用内存单元的个数,作为函数值返回。retu

    44、rn 语句下划线处应填入的是_。(分数:1.00)A.t-p B.*tC.*t-*pDt解析:解析 fun()函数参数是字符串的首地址 p,函数首先将首地址 p赋给 t,然后通过 while循环遍历指针 t,直到 t指向字符串结束标志符“/0“,此时循环结束,t 指向“/0“,p 指向首地址,所以 p指向的字符串所占存储单元个数就是:t-p,本题答案为 A。30.有以下程序: # include stdio.h int a=1,b=2; void funl(int a,int b) printf(“%d%d“,a,b); void fun2() a=3;b=4; main() fun1(5,6

    45、);fun2(); printf(“%d%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4 C.5 6 1 2D.3 4 5 6解析:解析 fun1 是输出局部变量的值,fun2 是把全局变量的值改成 3和 4,所以输出的结果是 5 6 3 4。31.有以下程序: #includestdio.h main() int a,b; for(a=1,b=1;a=100;a+) if(b=20)break; if(b%3=1)b=b+3;continue; b=b-5; printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.10B.9C.8 D.7解析:解析 首先注意 for循环的控制条件,当 b=20 或者 a100 则跳出 for循环,也即 b20 且a=100 时执行 for循环。第一次进入循环 a=1,b=1 均满足


    注意事项

    本文(【计算机类职业资格】二级C语言模拟642及答案解析.doc)为本站会员(brainfellow396)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开