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

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

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

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

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

    1、二级 C 语言-4-2 及答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:54.00)1.下列选项中不属于软件生命周期开发阶段任务的是U /U。 A. 软件测试 B. 概要设计 C. 软件维护 D. 详细设计(分数:2.00)A.B.C.D.2.以下函数返回 a 所指数组中最大值所在的下标值,在下画线处应填入的内容是fun(int *a,int n) int i,j=0,p;p=j;for(i=j;in;i+)if(aiap)_;return(p); A. i=p B. ap=ai C. p=j D. p=i(分数:2.00)A.B.C.D.3.在 C

    2、语言中,函数的隐含存储类别是 ( ) A.auto B.static C.extern D.无存储类别 (分数:1.00)A.B.C.D.4.有三个关系 R、S 和 T 如下:(分数:1.00)A.B.C.D.5.已知 a 的 ASC码为 97,执行下面两个语句后,输出的结果为_。char c1=97;c2=98;printf(“%d%c“,c1,c2); A. 97 98 B. 97 b C. a 98 D. a b(分数:1.00)A.B.C.D.6.下列选项中,能正确定义数组的语句是 A. int num02008; B. int num; C. int N=2008; int numN

    3、; D. #define N 2008 int numN;(分数:2.00)A.B.C.D.7.下列定义不正确的有_。 A. #define PI 3.141592 B. #define S 345; C. int max(x, y); int x,y; D. int max(int,int);(分数:1.00)A.B.C.D.8.有以下程序:#includestdio.hvoid fun(char*c, int d) *c=*c+1; d=d+1; printf(“%c, %c, “, *c, d); main() char b=a,a=A; fun(b, a); printf(“%c, %

    4、c/n“, b, a); 程序运行后的输出结果是 A. b, B, b, A B. b, B, B, A C. a, B, B, a D. a, B, a, B(分数:2.00)A.B.C.D.9.以下叙述中正确的是( )。 A. 调用 printf 函数时,必须要有输出项 B. 使用 putchar 函数时,必须在之前包含头文件 stdio.h C. 在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出 D. 调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码(分数:1.00)A.B.C.D.10.以下程序的输出结果是#includestdio.hi

    5、nt a33=1, 3, 5, 7, 9, 11, 13, 15, 17, , *p; main() p=(int *)malloc(sizeof(int); f(p, a); printf(“%d/n“, *p); free(p); f(int *s, int p3) *s=p11; A. 1 B. 7 C. 9 D. 13(分数:2.00)A.B.C.D.11.设有 int x=11;则表达式(x+*1/3)的值是_。 A. 3 B. 4 C. 11 D. 12(分数:1.00)A.B.C.D.12.若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(“%X/n“

    6、.m);执行后输出结果是 A. 0X0 B. 0x0 C. 0 D. 0XABC(分数:1.00)A.B.C.D.13.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。 A.(E0|E0) B.(E=0) C.(!E=0) D.(E!=0)(分数:1.00)A.B.C.D.14.有以下程序#includestdio.hvoid fun(int*s,int n1,int n2)int i,j,t;i=n1;j=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main()int a10=1,2,3,4,5,6,7,8,9,0),k;fun(a,0,3);

    7、fun(a,4,9);fun(a,0,9);for(k=0;k10;k+)printf(“%d“,ak);printf(“/n“);程序运行的结果是U /U。 A.0987654321 B.4321098765 C.5678901234 D.0987651234(分数:1.00)A.B.C.D.15.以下语句或语句组中,能正确进行字符串赋值的是_。 A. char *sp;*sp=“right!“; B. char s10;s=“right!“; C. char s10;*s=“right!“; D. char *sp=“right!“;(分数:2.00)A.B.C.D.16.有以下程序: #

    8、includestdio.h main() FILE *pf; char*s1=“China“,*s2=“Beijing“: pf=fopen(“abc.dat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat 文件的内容是U /U。 A. China B. Chinang C. ChinaBeijing D. BeijingChina(分数:2.00)A.B.C.D.17.下列叙述中正确的是_。 A.循环队列有队头和队尾两个指针,因此,

    9、循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定的(分数:4.00)A.B.C.D.18.有以下程序:void change(int k)k0=k5;)main()int x10=1,2,3,4,5,6,7,8,9,10,n=0;while(n=4)(change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。 A. 6 7 8 9 10 B. 1 3 5

    10、7 9 C. 1 2 3 4 5 D. 6 2 3 4 5(分数:2.00)A.B.C.D.19.设有定义:intk1,m2;noat f7;则下列选项中错误的表达式是U /U。 A. kkk B. -k+ C. k%int(f) D. kfm(分数:1.00)A.B.C.D.20.以下选项中,不能正确赋值的是_。 A. char s110; s1=“chest“; B. char s2=C,t,e,s,t; C. char s320=“Chest“; D. char*s4=“Ctest/n“(分数:1.00)A.B.C.D.21.下列叙述中正确的是U /U。 A. 算法的执行效率与数据的存储

    11、结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上 3 种描述都不对(分数:2.00)A.B.C.D.22.下列叙述中不正确的是U /U。 A. 在 C 语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. 在 C 的函数中,最好使用全局变量 C. 外部变量可以在函数之间传递数据 D. 自动变量实质上是一个函数内部的局部变量(分数:2.00)A.B.C.D.23.以下有 4 组用户标识符,其中合法的一组是 _。 A. For -sub Case B. 4d DO Size C. f2_G3

    12、 IF abc D. WORD void define(分数:2.00)A.B.C.D.24.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是 A. 快速排序 B. 冒泡排序 C. 直接插入排序 D. 堆排序(分数:2.00)A.B.C.D.25.有下列函数:int fun(char*s)char*t=s;while(*t+);return(t-s);该函数的功能是U /U。 A. 比较两个字符串的大小 B. 计算 s 所指字符串占用内存字节的个数 C. 计算 s 所指字符串的长度 D. 将 s 所指字符串复制到字符串 t 中(分数:2.00)A.B.C.

    13、D.26.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是 A. 数组 a 和 b 的长度相同 B. a 数组长度小于 b 数组长度 C. a 数组长度大于 b 数组长度 D. 上述说法都不对(分数:1.00)A.B.C.D.27.在关系数据库模型中,通常可以把( )称为属性,其值称为属性值。 A. 记录 B. 基本表 C. 模式 D. 字段(分数:1.00)A.B.C.D.28.执行以下程序时输入 1234567CR,则输出结果是#include stdio.hmain() int a=1,b;scanf(“%3d%2d“,printf(“%d%d/n“,a,b);

    14、A. 12367 B. 12346 C. 12312 D. 12345(分数:1.00)A.B.C.D.29.以下能正确定义的数组并正确赋初值的语句是 A. int N=5,bNN; B.int a12=1,3 ; C. int c2=1,2,3,4; D. int d32=1,2,3,4;(分数:1.00)A.B.C.D.30.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 U /U A. PAD 图 B. N-S 图 C. 结构图 D. 数据流图(分数:1.00)A.B.C.D.31.若有语句:char *line5;,以下叙述中正确的是U

    15、 /U。 A. 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B. 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C. 定义 line 是一个指针数组,语句中的*号称为间址运算符 D. 定义 line 是一个指向字符型函数的指针(分数:2.00)A.B.C.D.32.下列叙述中正确的是 A. 在面向对象的程序设计中,各个对象之间具有密切的联系 B. 在面向对象的程序设计中,各个对象都是公用的 C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D. 上述三种说法都不对(分数:2.00)A.B.C.D.33.在数据库设计

    16、中,将 E-R 图转换为关系模式的过程属于U /U。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段(分数:1.00)A.B.C.D.34.有以下程序main() int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0; i3 ; i+)for(j=2; j=i ; j-)if(xj+1xj) k=xj; xj=xj+1; xj+1=k; for(i=0; i3; i+)for(j=4; j7-i; j+)if(xjxj+1)k=xj; xj=xj+1; xj+1=k; for(i=0; i8; i+)printf(“%d“,xi);printf

    17、(“/n“);程序运行后的输出结果是_。 A. 75310246 B. 01234567 C. 76310462 D. 13570246(分数:1.00)A.B.C.D.35.有以下函数:fun(char * a,char * b) while(*a!=/0) static int c=3; b+;c+; return(a+b+c); main() int i,a=5; for(i=0;j3;i+)printf(“%d %d“,i,fun(a); printf(“/n“); (分数:2.00)填空项 1:_40.以下程序从名为 filea.dat 的文本文件中逐个读入字符并显示在屏幕上。请填空

    18、: #includestdio.h main() FILE*fp;char ch; fp=fopen(_); ch=fgetc(fp); whlie(!feof(fp)putchar(ch);ch=fgetc(fp);) putchar(/n);felose(fp); (分数:4.00)填空项 1:_41.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:2.00)填空项 1:_42.若从键盘输入 58,则以下程序的输出结果是U U /U /U。 main() int a; scanf(“%d”,(y!=19)x+);(分数:2.00)填空项 1:_44.以下程序用来输出结构体变量

    19、 ex 所占存储单元的字节数,请填空。 struct st char name20;double score; main() struct st ex; pfintf(“exsize:%d/n“,sizeof(_);(分数:2.00)填空项 1:_45.下面程序的运行结果是_ #indude stdio.h main() int Y,a; y=2, a=1; while(y-!=-1) doa*=y; a+; while(y-); printf(“%d, %d“, a, y);(分数:2.00)填空项 1:_46.关系表达式 xyz,用 C 语言的表达式为U U /U /U。(分数:1.00)

    20、填空项 1:_47.执行以下程序时输入 1234567CR,则输出结果是_。 #include stdioh main() int a=1,b; scanf(“%2d%2d“, prinff(“%d %dhn“,a,b); 填空项 1:_48.以下程序运行后的输出结果是_。 struct NODE int k; struct NODE*link; ; main() struct NODE m5,*p=m,*q=m+4; int i=0; while(p!=q) p-k=+i;p+; q-k=i+;q-; q-k=i; for(i=0;i5;i+)printf(“%d“,mi.k); print

    21、f(“/n“); (分数:2.00)填空项 1:_49.语句 printf(“f/n“,13.0*(1/5);的输出结果为U U /U /U。(分数:1.00)填空项 1:_50.以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别(sex)为 M 的记录的个数,存入变量 n 中,并作为函数值返回。请填空: #includestdio.h #define N 3 typedef struct int mum,char name10;char sex;SS; int fun(SS person) int i,n=0; for(i=0;iN;i+) if(_=M)n+;

    22、return n; main() SS WN=1,AA,F,2,BB,M,3,CC,M;int n; n=fun(W);printf(“n=%d/n“,n); (分数:2.00)填空项 1:_二级 C 语言-4-2 答案解析(总分:79.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:54.00)1.下列选项中不属于软件生命周期开发阶段任务的是U /U。 A. 软件测试 B. 概要设计 C. 软件维护 D. 详细设计(分数:2.00)A.B.C. D.解析:解析 软件的生命周期可分为软件定义、软件开发及软件运行维护 3 个阶段。其中软件定义阶段的主要工作有可行性研究与计划制定

    23、和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运行维护阶段的主要工作是软件的运行及后期的维护等。2.以下函数返回 a 所指数组中最大值所在的下标值,在下画线处应填入的内容是fun(int *a,int n) int i,j=0,p;p=j;for(i=j;in;i+)if(aiap)_;return(p); A. i=p B. ap=ai C. p=j D. p=i(分数:2.00)A.B.C.D. 解析:解析 该题目要求的是最大数的位置(下标)。程序通过对 a 所指数组中的元素进行逐个比较,记录最大数的下标 i,并把该下标记录在变量 p 中,所以,如果 aiap关系成

    24、立,则应该把 i 的值赋给p,这样才满足题目的要求。3.在 C 语言中,函数的隐含存储类别是 ( ) A.auto B.static C.extern D.无存储类别 (分数:1.00)A. B.C.D.解析:4.有三个关系 R、S 和 T 如下:(分数:1.00)A.B.C.D. 解析:解析 在关系运算中,交的定义如下:设 R1 和 R2 为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则为交运算,结果仍为度等于 n 的关系,其中,交运算的结果既属于 R1,又属于 R2。5.已知 a 的 ASC码为 97,执行下面两个语句后,输出的结果为_。char c1=97;c2

    25、=98;printf(“%d%c“,c1,c2); A. 97 98 B. 97 b C. a 98 D. a b(分数:1.00)A.B. C.D.解析:解析 整型数据和字符数据可以通用,变量 c1 和 c2 被定义为字符型,语句 c1=97 和 c2=98 的作用相当于执行 c1=a和 c2=b两语句。在输出语句中,%d%c 是输出格式符,要求在相应位置上分别输出一个整数和一个字符。6.下列选项中,能正确定义数组的语句是 A. int num02008; B. int num; C. int N=2008; int numN; D. #define N 2008 int numN;(分数:

    26、2.00)A.B.C.D. 解析:解析 定义数组时,数组大小只能是常量。选项 C 中是变量,选项 B 中没有指定数组大小,所以选项 C 和 B 错误的。选项 A 的表示方法显然是错误的。选项 D 中的 N 是符号常量,满足数组定义的语法要求。7.下列定义不正确的有_。 A. #define PI 3.141592 B. #define S 345; C. int max(x, y); int x,y; D. int max(int,int);(分数:1.00)A.B.C. D.解析:解析 定义函数时,函数头后不能加分号。8.有以下程序:#includestdio.hvoid fun(char*

    27、c, int d) *c=*c+1; d=d+1; printf(“%c, %c, “, *c, d); main() char b=a,a=A; fun(b, a); printf(“%c, %c/n“, b, a); 程序运行后的输出结果是 A. b, B, b, A B. b, B, B, A C. a, B, B, a D. a, B, a, B(分数:2.00)A. B.C.D.解析:解析 函数 fun 的第一个参数传指针,可以将更改后的值传回调用函数,第二个参数传值,不能将更改后的值传回调用函数,故选 A)。9.以下叙述中正确的是( )。 A. 调用 printf 函数时,必须要有

    28、输出项 B. 使用 putchar 函数时,必须在之前包含头文件 stdio.h C. 在 C 语言中,整数可以以十二进制、八进制或十六进制的形式输出 D. 调用 getchar 函数读入字符时,可以从键盘上输入字符所对应的 ASCII 码(分数:1.00)A.B. C.D.解析:解析 本题考查了 C 语言的一些基本概念。printf()函数可以只有控制项而没有输出项,例如,printf(“Hello!“); ,所以选项 A)不正确。C 语言中不支持整数以十二进制输出,因此选项 C)不正确。getchar()函数从键盘读入一个字符,而不管该字符为数字还是字母,因此输入 ASCII 码的话,只能

    29、读到第 1 个数字字符,所以选项 D)不正确。故应该选择 B),putchar 是 C 语言中的库函数,使用时必须包含stdio.h。10.以下程序的输出结果是#includestdio.hint a33=1, 3, 5, 7, 9, 11, 13, 15, 17, , *p; main() p=(int *)malloc(sizeof(int); f(p, a); printf(“%d/n“, *p); free(p); f(int *s, int p3) *s=p11; A. 1 B. 7 C. 9 D. 13(分数:2.00)A.B.C. D.解析:解析 本题考查了二维数组元素引用的方法

    30、。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向这段内存,函数 f()中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 9,所以输出结果为 9。11.设有 int x=11;则表达式(x+*1/3)的值是_。 A. 3 B. 4 C. 11 D. 12(分数:1.00)A.B. C.D.解析:12.若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(“%X/n“.m);执行后输出结果是 A. 0X0 B. 0x0 C. 0 D. 0XABC(分数:1.00)A.B.C. D

    31、.解析:解析 本题考核的知识点是 C 语言中的自反赋值运算符。 “m-=n”相当于“m=m-n”,两个相等的数相减,其值为 0。所以, C 选项为所选。13.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。 A.(E0|E0) B.(E=0) C.(!E=0) D.(E!=0)(分数:1.00)A.B. C.D.解析:解析 while 语句中条件表达式 E 的值不为 0 即为真,认为满足条件,所以与 B 选项中表达式的含义正好相反,选择 B 选项。14.有以下程序#includestdio.hvoid fun(int*s,int n1,int n2)int i,j,t;

    32、i=n1;j=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main()int a10=1,2,3,4,5,6,7,8,9,0),k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k10;k+)printf(“%d“,ak);printf(“/n“);程序运行的结果是U /U。 A.0987654321 B.4321098765 C.5678901234 D.0987651234(分数:1.00)A.B.C. D.解析:解析 fun()函数的功能为使数组中的元素逆序。15.以下语句或语句组中,能正确进行字符串赋值的是_。 A. char

    33、 *sp;*sp=“right!“; B. char s10;s=“right!“; C. char s10;*s=“right!“; D. char *sp=“right!“;(分数:2.00)A.B.C.D. 解析:16.有以下程序: #includestdio.h main() FILE *pf; char*s1=“China“,*s2=“Beijing“: pf=fopen(“abc.dat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 ab

    34、c.dat 文件的内容是U /U。 A. China B. Chinang C. ChinaBeijing D. BeijingChina(分数:2.00)A.B. C.D.解析:解析 本题考查函数 fwrite 的使用。函数 fwrite 的调用形式为:int fwrita(char*pt,unsigned n,FILE*fp);其功能是把 pt 所指向的 n*size 个字节输出到 fp 所指文件中,第二次调用该函数时,从文件的第一个位置开始写入,之前已有的会被覆盖掉,如果第二次写入的长度没有第一次的长,则后面短出的部分保留原样。17.下列叙述中正确的是_。 A.循环队列有队头和队尾两个指

    35、针,因此,循环队列是非线性结构 B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D.循环队列中元素的个数是由队头指针和队尾指针共同决定的(分数:4.00)A.B.C.D. 解析:解析 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以 A 错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以 B 与 C 错误。18.有以下程序:void change(int k)k0=k5;)main()int x10=1,2,3,4,5,6,7,8,9,10,n=0;while(

    36、n=4)(change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。 A. 6 7 8 9 10 B. 1 3 5 7 9 C. 1 2 3 4 5 D. 6 2 3 4 5(分数:2.00)A. B.C.D.解析:解析 本题主要考查数组元素的地址作为实参,当 n=0 时,把 x0的地址传递给被调函数change(),即把形参 k 和实参 x 指向同一个存储单元,执行被调函数后 k0=6,即 x0=6;当 n=1 时,执行被调函数后 x1=7,以此类推,最后得到 x 数组的值为 6,7,8,9,10。19.设有定

    37、义:intk1,m2;noat f7;则下列选项中错误的表达式是U /U。 A. kkk B. -k+ C. k%int(f) D. kfm(分数:1.00)A.B.C. D.解析:解析 在 C 语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量 f 进行强制类型转换,正确的写法为 k%(int)f。在 C 语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、 s1=“chest“; B. char s2=C,t,e,s,t; C. char s320=“Chest“; D. char*s4=“Ctes

    38、t/n“(分数:1.00)A. B.C.D.解析:解析 语言中不能将字符串常量直接赋给数组。但在赋初值时可以。21.下列叙述中正确的是U /U。 A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上 3 种描述都不对(分数:2.00)A.B.C. D.解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。22.下列叙述中不正确的是U /U。 A. 在 C 语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. 在

    39、C 的函数中,最好使用全局变量 C. 外部变量可以在函数之间传递数据 D. 自动变量实质上是一个函数内部的局部变量(分数:2.00)A.B. C.D.解析:解析 编译时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。23.以下有 4 组用户标识符,其中合法的一组是 _。 A. For -sub Case B. 4d DO Size C. f2_G3 IF abc D. WORD v

    40、oid define(分数:2.00)A.B.C. D.解析:解析 选项 A 中有非法标识符-sub,选项 B 中有非法标识符 4d,选项 D 中有 C 语言保留字 void。24.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是 A. 快速排序 B. 冒泡排序 C. 直接插入排序 D. 堆排序(分数:2.00)A.B.C.D. 解析:解析 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为 n(n-1)/2,堆排序需要的比较次数为 nlog2n。25.有下列函数:int fun(char*s)char*t=s;while(*t+);retu

    41、rn(t-s);该函数的功能是U /U。 A. 比较两个字符串的大小 B. 计算 s 所指字符串占用内存字节的个数 C. 计算 s 所指字符串的长度 D. 将 s 所指字符串复制到字符串 t 中(分数:2.00)A.B.C. D.解析:解析 在函数 fun(char*s)中,首先用字符指针变量 t 指向 s,而循环语句 while(*t+);的功能是使指针变量 t 指向字符串变量 s 的末尾,这时退出循环,因而语句 return(t-s);返回的就是字符串 s所指字符串的长度。26.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是 A. 数组 a 和 b 的长度相同 B

    42、. a 数组长度小于 b 数组长度 C. a 数组长度大于 b 数组长度 D. 上述说法都不对(分数:1.00)A.B.C. D.解析:解析 a 数组存放的是字符串,系统会自动在字符串的最后加上一个“/0”,所以 a 数组的长度为 4,而 b 数组的长度为 3,故 a 数组长度大于 b 数组长度。27.在关系数据库模型中,通常可以把( )称为属性,其值称为属性值。 A. 记录 B. 基本表 C. 模式 D. 字段(分数:1.00)A.B.C.D. 解析:解析 数据库表中字段转化为属性,把记录的类型转化为关系模式。28.执行以下程序时输入 1234567CR,则输出结果是#include std

    43、io.hmain() int a=1,b;scanf(“%3d%2d“,printf(“%d%d/n“,a,b); A. 12367 B. 12346 C. 12312 D. 12345(分数:1.00)A.B.C.D. 解析:解析 scanf 函数中的格式控制说明为“%3d%2d”,分别选中输入中的 3 位和 2 位,因此a=123,b=45。因此正确答案为 D)。29.以下能正确定义的数组并正确赋初值的语句是 A. int N=5,bNN; B.int a12=1,3 ; C. int c2=1,2,3,4; D. int d32=1,2,3,4;(分数:1.00)A.B.C.D. 解析:

    44、解析 本题考核的知识点是二维数组的定义以及数组元素初始化。选项 A 中,数组的长度使用了变量 N,而在 c 中是不能用变量来定义数组的的长度的,故选项 A 错误。在 c 语言中,给二维数组赋初值时,行数不能超过定义的行数,每行的初值个数不能超过定义时的列数,故选项 B 错误。选项 C 数组的第二维下标缺省,而在 C 中,数组的第二维下标不能缺省,故选项 C 错误。所以,D 选项为所选。30.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 U /U A. PAD 图 B. N-S 图 C. 结构图 D. 数据流图(分数:1.00)A.B. C.D.解析:31.若有语句:char *line5;,以下叙述中正确的是U /U。 A. 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变


    注意事项

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




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

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

    收起
    展开