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

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

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

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

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

    1、二级 C 语言分类模拟题 530 及答案解析(总分:48.50,做题时间:90 分钟)一、选择题(总题数:35,分数:48.50)1.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系2.数据库设计中反映用户对数据要求的模式是_。(分数:1.00)A.内模式B.概念模式C.外模式D.设计模式3.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf

    2、(“*%d“,i);break;) i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.*7B.*3*5C.*5D.*2*64.以下 fun 函数的功能是将形参 s 所指字符串内容颠倒过来: void fun(char*s) int i,j,k; for(i=0,j=strlen(s)_; ij;i+,j-) k=si;si=sj;sj=k; 在横线处应填入的内容是_。(分数:1.00)A.+1B.-1C.+0D.,k=05.有如下程序: #includestdio.h main() int a=0,b=1; if(+a=b+) printf

    3、(“T“); else printf(“F“); printf(“a=%d,b=%d/n“,a,b); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2D.Fa=0,b=26.设有如下程序段: int a8 = 0; int b = 0; char c2 = “ A“,“B“; char d=“AB“; 以下叙述正确的是_。(分数:1.00)A.只有 a,b,c 的定义是合法的B.a,b,c,d 的定义都是合法的C.只有 a,b 的定义是合法的D.只有 c 的定义是合法的7.以下各选项企图说明一种新的类型名,其

    4、中正确的是 _。(分数:1.00)A.typedef vl int;B.typedef v2=intC.typedef int v3;D.typedef v4:int8.有以下程序: #includestdio.h void 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);fun(a,4,9);fun(a,0,9); for(k=0;k10;k+) printf(“%d“,ak); pr

    5、intf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.4321098765B.5678901234C.0987654321D.09876512349.若有以下程序 #includestdio.h typedef struct stu char name10, gender; int score; STU; void f(STU a, STU b) b=a; printf(“%s, %c, %d,“, b.name, b.gender, b.score); main() STU a=“Zhao“, “m“, 290, b=“Qian“, “f“, 350; f(a, b); p

    6、rintf(“%s, %c, %d/n“, b.name, b.gender, b.score); 则程序的输出结果是_。(分数:2.00)A.Zhao, m, 290, Qian, f, 350B.Zhao, m, 290, Zhao, m, 290C.Qian, f, 350, Qian, f, 350D.Zhao, m, 290, Zhao, d, 35010.以下程序的功能是计算: (分数:1.00)A.s=1.0;B.for(n=10;n1;n-)C.s=s+1/n;D.printf(“%6.4f/n“,s);11.以下选项中非法的字符常量是_。(分数:1.00)A.“/101“B.

    7、“/65“C.“/xff“D.“/019“12.有以下程序: #include stdio.h #define N 4 void fun(int aN) int bNN,i,j; for(i=0; iN; i+) for(j=0; jN; j+) bij=aN-1-ji; for(i=0; iN; i+) for(j=0; jN; j+) aij = bij; main() int xNN=1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16 ,i; fun(x); fun(x); for(i=0; iN; i+) printf(“%d,“,xii); print

    8、f(“/n“); 程序的运行结果是_。(分数:1.00)A.16,11,6,1,B.1,6,11,16,C.4,7,10,13,D.13,10,7,4,13.有以下程序: # include stdio.h main() int a=2,b; b=a2; printf(“%d/n“,b); 程序运行后的输出结果是_。(分数:1.00)A.2B.4C.6D.814.以下选项中,能用做数据常量的是_。(分数:2.00)A.115LB.0118C.1.5e1.5D.o11515.已定义以下函数 int fun(int *p) return *p; fun 函数返回值是_。(分数:2.00)A.一个整

    9、数B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值16.函数 rewind(fp)的作用是_。(分数:2.50)A.使 fp 指定的文件的位置指针重新定位到文件的开始位置B.将 fp 指定的文件的位置指针指向文件中所要求的特定位置C.使 fp 指定的文件的位置指针向文件的末尾D.使 fp 指定的文件的位置指针自动移至下一个字符位置17.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值B.“/0“C.0D.NULL18.以下程序的输出结果是 #include int a33=1,2,3,4,5,6,7,8,

    10、9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11; A.1 B.4 C.7 D.5A B C D D解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向了这段内存,函数 f( )中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 5,所以输出结果为 5。(分数:2.00)A.1B.4C.7D.519.下列选项中,能正确定义

    11、数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;20.有以下程序: #includestdio.h main() char c1=“1“, c2=“2“; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当程序运行时输入 a回车后,下列叙述中正确的是_。(分数:2.50)A.变量 c1 被赋予字符 a,c2 被赋予回车符B.程序将等待用户输入第 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符

    12、 2D.变量 c1 被赋予字符 a,c2 中将无确定值21.以下能够实现计算 5!的程序段是_。(分数:1.00)A.int fac=1,k=0;dok+;fac*=k; while(k5);B.int fac=0,k=1;dofac*=k;k+; while(k5);C.int fac=1,k=1;dok+;fac*=k; while(k=5);D.int fac=1,k=0;dofac*=k;k+; while(k5);22.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合23.软件设计中模块划分应遵循的准则是_。(分数

    13、:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合24.执行程序段“int x=1,y=2;x=xy;y=yx;x=xy;”后,x 和 y 的值分别是_。(分数:1.00)A.1 和 2B.2 和 2C.2 和 1D.1 和 125.使用 fgets(str,n,p)函数从文件中读入一个字符串,以下叙述错误的是_。(分数:2.00)A.字符串读入后会自动加入“/0“B.fp 是指向该文件的文件型指针C.fgets 函数将从文件中最多读入 n-1 个字符D.fgets 函数将从文件中最多读入 n 个字符26.有以下程序: #includestdio.h main() i

    14、nt i, j; for(i=1; i4; i+) for(j=i; j4; j+)printf(“%d*%d=%d“, i, j, i*j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=927.若变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示 x/yz 的 C 语言表

    15、达式是_。(分数:1.00)A.x/y*zB.x*(1/(y*z)C.x/y*1/zD.x/y/z28.有以下程序段: int k, j, s; for(k=2; k6; k+, k+) s=1; for(j=k; j6; j+)s+=j; printf(“%d/n“, s); 以上程序段的输出结果是_。(分数:2.50)A.9B.1C.11D.1029.有下列程序: main() int i, j, x=0; for(i=0, i2; i+) x+; for(j=0; j=3; j+) if(j%2)continue; x+; x+; printf(“x=%d/n“, x); 程序执行后的输

    16、出结果是_。(分数:1.00)A.x=4B.x=8C.x=6D.x=1230.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;31.若有“double a;”,则正确的输入语句是_。(分数:2.50)A.scanf(“%lf“,a);B.scanf(“%f“,C.scanf(“%lf“,32.有以下程序 #include stdio.h void fun(char *c,int d) *c=*c+1; d=d+1; printf(“%c,%c,

    17、“,*c,d); main() char b=“a“,a=“A“; fun( printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(分数:1.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B33.下列说法不正确的是 _ 。(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致34.有以下程序 #includestdio.h main() int k=5; while(-k)printf(“%d“,k

    18、-=3); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.死循环B.2C.4D.135.以下程序段的输出结果是_。 #includestdio.h main() char p4=“ABC“,“DEF“,“GHI“; int i; for(i=0;i3;i+) puts(pi); (分数:2.50)A.ABCB.ADGC.ABCDEFGHID.ABC二级 C 语言分类模拟题 530 答案解析(总分:48.50,做题时间:90 分钟)一、选择题(总题数:35,分数:48.50)1.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00

    19、)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:解析 数据库系统由如下 5 个部分组成:数据库(DB)、数据库管理系统(DBMS)、数据库管理员(人员)、系统平台之一硬件平台(硬件)、系统平台之二软件平台(软件)。其中 DB(DataBase)即数据库,是统一管理的相关数据的集合;DBMS 即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问 DB 的方法。由以上可知,选项 C 为正确答案。2.数据库设计中反映用户对数据要求的模式是_。(分数:1.00)A.内模式B.概念模

    20、式C.外模式 D.设计模式解析:解析 数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,因此选择 C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取的方法。3.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf(“*%d“,i);break;) i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.*7

    21、B.*3*5C.*5D.*2*6解析:解析 本题考查的是 break 语句。dowhile 循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量 i 为 5,然后进入 dowhile 循环体,首先判断(i%3=1),因为 5%3=2,所以 if 条件不满足,跳过下面的 if 语句,执行 i+,i 变为 6。第 1 遍循环结束,判断(i!=0)为真,继续循环。现在 i%3=6%3=0,所以 i 语句还是不被执行,继续 i+,i 变为 7,仍然满足(i!=0),继续循环。第 3 遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2 成立,即输出

    22、*7,然后执行hreak 语句跳出循环。4.以下 fun 函数的功能是将形参 s 所指字符串内容颠倒过来: void fun(char*s) int i,j,k; for(i=0,j=strlen(s)_; ij;i+,j-) k=si;si=sj;sj=k; 在横线处应填入的内容是_。(分数:1.00)A.+1B.-1 C.+0D.,k=0解析:解析 本题考查字符串处理函数 strlen。strlen 计算一个字符串的长度,包含结尾符,所以本题中 j 的初始化应该是从最后一个字符开始,所以应该将得到的字符串长度减 1,选项 B 正确。5.有如下程序: #includestdio.h main

    23、() int a=0,b=1; if(+a=b+) printf(“T“); else printf(“F“); printf(“a=%d,b=%d/n“,a,b); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2 D.Fa=0,b=2解析:解析 程序执行过程为:判断+a=b+是否成立,+a 前缀运算先加 1,则 a=1,b+后缀运算先取值,则 b=1,1=1 成立,输出 T,之后 b=2,输出 a=1,b=2。6.设有如下程序段: int a8 = 0; int b = 0; char c2 = “ A“,

    24、“B“; char d=“AB“; 以下叙述正确的是_。(分数:1.00)A.只有 a,b,c 的定义是合法的B.a,b,c,d 的定义都是合法的C.只有 a,b 的定义是合法的 D.只有 c 的定义是合法的解析:解析 在对数组进行初始化时应该注意,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么 C 语言将自动对余下的元素赋初值。定义整型数组 a,长度为 8,并且其每个元素赋初值 0,a 定义是合法的。定义整型数组 b,没有指定长

    25、度,但为 1 个元素赋值 0,所以自动指定数组长度为 1,b 定义是合法的。定义字符型数组 c,长度为 2,应对其元素赋值字符型常量,而“A”与“B”均为字符串,c 定义不合法。定义字符 d,赋初值字符串“A B”,这是不合法的定义,若要定义数组,必须要有“”,下标运算符。可知,ab 定义合法,cd 定义不合法,故 C 选项正确。7.以下各选项企图说明一种新的类型名,其中正确的是 _。(分数:1.00)A.typedef vl int;B.typedef v2=intC.typedef int v3; D.typedef v4:int解析:解析 C 语言中可以使用 typedef 来重新定义已

    26、有的数据类型,相当于为数据类型取个别名。8.有以下程序: #includestdio.h void 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);fun(a,4,9);fun(a,0,9); for(k=0;k10;k+) printf(“%d“,ak); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.4321098765B.5678901234 C.09

    27、87654321D.0987651234解析:解析 该程序首先给一维数组赋值,然后三次调用 fun 函数,其中 fun(a,0,3);功能是将一维数组中第 1 个元素和第 4 个元素互换、第 2 个元素和第 3 个元素互换;其中 fun(a,4,9);功能是将一维数组中第 5 个元素和第 10 个元素互换、第 6 个和第 9 个元素互换、第 7 个元素和第 8 个元素互换;其中fun(a,0,9);功能是将将一维数组中第 1 个元素和第 10 个元素互换、第 2 个元素和第 9 个元素互换依此类推。因此 B 选项正确。9.若有以下程序 #includestdio.h typedef struc

    28、t stu char name10, gender; int score; STU; void f(STU a, STU b) b=a; printf(“%s, %c, %d,“, b.name, b.gender, b.score); main() STU a=“Zhao“, “m“, 290, b=“Qian“, “f“, 350; f(a, b); printf(“%s, %c, %d/n“, b.name, b.gender, b.score); 则程序的输出结果是_。(分数:2.00)A.Zhao, m, 290, Qian, f, 350 B.Zhao, m, 290, Zhao,

    29、 m, 290C.Qian, f, 350, Qian, f, 350D.Zhao, m, 290, Zhao, d, 350解析:解析 f 函数将结构体 a 赋值给 b,然后输出,注意这是值传递,不会改变 main 中结构体 b 值,所以答案选择 A。10.以下程序的功能是计算: (分数:1.00)A.s=1.0;B.for(n=10;n1;n-)C.s=s+1/n; D.printf(“%6.4f/n“,s);解析:解析 该程序的运行结果是 1.0000,算法错误。在 s=s+1/n 中,因为 n 为整型,所以循环中 1/n始终为 0。这就是本题算法错误的原因。应把 s=s+1/n 改为

    30、s=s+1.0/n。11.以下选项中非法的字符常量是_。(分数:1.00)A.“/101“B.“/65“C.“/xff“D.“/019“ 解析:解析 在选项中,“/019“,以 0 开头的数都为八进制数,而八进制的表示数字是 07,所以答案选择 D。12.有以下程序: #include stdio.h #define N 4 void fun(int aN) int bNN,i,j; for(i=0; iN; i+) for(j=0; jN; j+) bij=aN-1-ji; for(i=0; iN; i+) for(j=0; jN; j+) aij = bij; main() int xNN

    31、=1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16 ,i; fun(x); fun(x); for(i=0; iN; i+) printf(“%d,“,xii); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.16,11,6,1, B.1,6,11,16,C.4,7,10,13,D.13,10,7,4,解析:解析 程序的执行过程为:调用函数 fun,将二维数组 x 地址传入函数,此函数实现将矩阵转置,然后将每一列首尾倒置,调用结果为 xNN=13,9,5,1,14,10,6,2,15,11,7,3,16,12,8,4。再次调用函数 f,

    32、调用结果为 xNN=16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1。输出结果为 16,11,6,1,故 A 选项正确。13.有以下程序: # include stdio.h main() int a=2,b; b=a2; printf(“%d/n“,b); 程序运行后的输出结果是_。(分数:1.00)A.2B.4C.6D.8 解析:解析 本题考查运算符“”,b=a2,是左移 2 位,a=2,即 b=2*2*2=8。14.以下选项中,能用做数据常量的是_。(分数:2.00)A.115L B.0118C.1.5e1.5D.o115解析:解析 A 选项中 115L 表示

    33、 115 是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字 8,所以 B 错误。C 选项中 e 后面应该是整数不能是小数 1.5,所以 C 错误。D 选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。15.已定义以下函数 int fun(int *p) return *p; fun 函数返回值是_。(分数:2.00)A.一个整数 B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值解析:16.函数 rewind(fp)的作用是_。(分数:2.50)A.使 fp 指定的文件的位置指针重新定位到文件的开始位置 B.将 fp 指定的文件的位置指针指向文

    34、件中所要求的特定位置C.使 fp 指定的文件的位置指针向文件的末尾D.使 fp 指定的文件的位置指针自动移至下一个字符位置解析:解析 位置指针重返文件头函数 rewind()的调用形式为:rewind(fp)。其中,“fp”是指向文件的文件型指针。 rewind(fp)的功能是:使 fp 指定的文件的位置指针重新定位到文件的开始位置。17.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:1.00)A.非 0 值 B.“/0“C.0D.NULL解析:解析 本题考查的是文件指针 feof 的运用。当文件读到结尾时,feof(fp)为非零值,否则

    35、为 0。18.以下程序的输出结果是 #include int a33=1,2,3,4,5,6,7,8,9,*p;main( ) p=(int *)malloc(sized(int);f(p,a) ;printf(“%d/n“,*p);free(p);f(int *s,int p 3) *s=p11; A.1 B.4 C.7 D.5A B C D D解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向了这段内存,函数 f( )中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a

    36、的元素 5,所以输出结果为 5。(分数:2.00)A.1B.4C.7D.5 解析:解析 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数据长度大小的内存,然后指针 p 指向了这段内存,函数 f( )中对 p 所指向的数据进行了赋值,p11为二维数组第二行第二列的元素,对应于实参 a 的元素 5,所以输出结果为 5。19.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN; 解析:解析 C 语言不允许定

    37、义动态数组,定义数组的大小必须为常量表达式。A 选项错误,C 语言中数组没有此类型的定义方法;B 选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C 选项错误,N 为变量,不能用来定义数组大小。因此 D 选项正确。20.有以下程序: #includestdio.h main() char c1=“1“, c2=“2“; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当程序运行时输入 a回车后,下列叙述中正确的是_。(分数:2.50)A.变量 c1 被赋予字符 a,c2 被赋予回车符 B.程序将等待用户输入第

    38、 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符 2D.变量 c1 被赋予字符 a,c2 中将无确定值解析:解析 本题考查 getchar()函数,从终端读入一个字符作为函数值。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。所以当输入 a回车后,变量 c1被赋予字符 a,而变量 c2 被赋予回车符。21.以下能够实现计算 5!的程序段是_。(分数:1.00)A.int fac=1,k=0;dok+;fac*=k; while(k5); B.int fac=0,k=1;dofac*=k;k+; while(k5);C.int fac=1,k=

    39、1;dok+;fac*=k; while(k=5);D.int fac=1,k=0;dofac*=k;k+; while(k5);解析:解析 dowhile 循环语句一般形式为:do循环体while(表达式),执行过程为:首先执行循环体,之后判断表达式,成立(非 0)则再一次执行循环体,不成立(0)则退出循环。A 选项:k=1,fac=1 * 1,判断 k5,条件成立进行下一次循环,直到 k=5,fac=1*2*3*4*5,k5 不成立退出循环,实现计算5!,A 选项正确。B 选项:fac 从 0 开始,做乘法一直都是 0,无法实现 5!,错误。C 选项:k=2,fac=1*2,循环条件成立,

    40、直到 k=6,fac=1*2*3*4*5*6 才因循环条件不成立退出循环,实现 6!,错误。D 选项:k=0,fac=1*0=0,之后做乘法一直为 0,无法实现 5!,错误。故选择 A 选项。22.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 软件设计中,模块划分应遵循的准则是高内聚低耦合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的准则,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性高,易于理解和维护。模块之间的耦合应尽可能地低,模块的内聚应尽可能地高,因此本题答案为 B

    41、。23.软件设计中模块划分应遵循的准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能低,模块的内聚度应尽可能高。24.执行程序段“int x=1,y=2;x=xy;y=yx;x=xy;”后,x 和 y 的值分别是_。(分数:1.00)A.1 和 2B.2 和 2C.2 和 1 D.1 和 1解析:25.使用 fgets(s

    42、tr,n,p)函数从文件中读入一个字符串,以下叙述错误的是_。(分数:2.00)A.字符串读入后会自动加入“/0“B.fp 是指向该文件的文件型指针C.fgets 函数将从文件中最多读入 n-1 个字符D.fgets 函数将从文件中最多读入 n 个字符 解析:26.有以下程序: #includestdio.h main() int i, j; for(i=1; i4; i+) for(j=i; j4; j+)printf(“%d*%d=%d“, i, j, i*j); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*

    43、3=63*3=9 B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9解析:解析 外循环第一次 i 的值为 1,内循环第一次 j 的值为 1,打印 1*1=1;内循环第二次 j 的值为2,打印 1*2=2;内循环第三次 j 的值为 3,打印 1*3=3,打印回车换行,退出内循环。外循环第二次 i 的值为 2,内循环第一次 j 的初值为 2,打印 2*2=4;内循环第二次 j 的值为 3,打印 2*3=6,打印回车换行,退出内循环。外循环第

    44、三次 i 的值为 3,内循环第一次 j 的初值为 3,打印 3*3=9,打印回车换行,退出内循环。外循环第 4 次 i 的值为 4,条件不成立,程序结束。所以选择 A 选项。27.若变量 x、y、z 均为 double 类型且已正确赋值,不能正确表示 x/yz 的 C 语言表达式是_。(分数:1.00)A.x/y*z B.x*(1/(y*z)C.x/y*1/zD.x/y/z解析:28.有以下程序段: int k, j, s; for(k=2; k6; k+, k+) s=1; for(j=k; j6; j+)s+=j; printf(“%d/n“, s); 以上程序段的输出结果是_。(分数:2

    45、.50)A.9B.1C.11D.10 解析:解析 因为首先 k=2,然后你进行一次循环后,k 自增两次,变成 4,所以这时候 s 又成 1 了。然后当 k=4 的时候,s=1,j=4,然后执行内层循环,s=1+4,然后 j 自增等于 5,s=5+5,然后 j 再自增为6,跳出内层循环。k 自增两次后等于 6,不成立,跳出外层循环。然后输出 s 的值,即为 10。因此正确选项为 D。29.有下列程序: main() int i, j, x=0; for(i=0, i2; i+) x+; for(j=0; j=3; j+) if(j%2)continue; x+; x+; printf(“x=%d

    46、/n“, x); 程序执行后的输出结果是_。(分数:1.00)A.x=4B.x=8 C.x=6D.x=12解析:解析 在第 1 次外层 for 循环中,首先 x+得到 x=1。进入到内层 for 循环,只有循环 j 的值为奇数时,变量 x 的值才自加 1,所以在内层 for 循环执行过程中,变量 x 的值自加两次,当退出内层 for 循环时,x=3,然后执行 x+,得到 x=4。在进入执行第 2 次外层 for 循环中,首先 x+得到 x=5。进入到内层 for 循环,只有循环变量 j 的值为奇数时,变量 x 的值才自加 1,所以在内层 for 循环执行过程中,变量 x 的值自加 1 两次,当退出内层 for 循环时,x=7,然后执行 x+,得到 x=8,所以打印输出变量 x 的值为 8。30.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN


    注意事项

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




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

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

    收起
    展开