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

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

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

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

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

    1、二级 C 语言分类模拟题 552 及答案解析(总分:63.50,做题时间:90 分钟)一、选择题(总题数:40,分数:63.50)1.若有以下程序: #include stdio.h main( ) int y=9; for( ; y0; y-) if(y%3= =0) printf(“%d“, -y); 则程序的运行结果是_。(分数:2.50)A.852B.963C.741D.8754212.一名雇员就职于一家公司,一个公司有多名雇员,则实体公司和实体雇员之间的联系是_。(分数:1.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系3.设有表示学生选课的三张表,学生 S(

    2、学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩4.下列叙述中正确的是_。(分数:2.00)A.在 C 语言中,预处理命令行都以“#”开头B.预处理命令行必须位于 C 源程序的起始位置C.#includestdio.h必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能5.以下数组定义中错误的是_。(分数:1.00)A.int x3=1,2,3,4,5,6;B.int x3=0;C.int x23=1,2,3,4,

    3、5,6;D.int x23=1,2,3,4,5,6;6.下列叙述中正确的是_。(分数:2.50)A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若 a 和 b 类型相同,在执行赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D.在 C 程序中,求取余运算符“%”两边的类型相同时才能进行运算7.有以下程序 #includestdio.h main() int i,j,m=1; for(i=1;i3;i+) for(j=3;j0;j-) if(i*j3)break; m*=i*j; printf(“m=%d/n“,m); 程序运行后的输

    4、出结果是_。(分数:1.00)A.m=4B.m=2C.m=6D.m=58.有以下程序: #include stdio.h #define N 2 #define M N+1 #define NUM (M+1) * M/2 main( ) printf(“%d/n“,NuM); 程序运行后的输出结果是_。(分数:5.00)A.4B.8C.9D.69.设有定义:“char*c;”,以下选项中能够使字符型指针 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“; c=str;B.scanf(%s, c);C.c=getchar();D.*c=“string“;10

    5、.若有定义语句:int a23, *p3;,则以下语句中正确的是_。(分数:2.50)A.p=a;B.p0=a;C.p0=D.p1=11.以下叙述中正确的是_。(分数:2.00)A.break 语句不能用于提前结束 for 语句的本层循环B.使用 break 语句可以使流程跳出 switch 语句体C.continue 语句使得整个循环终止D.在 for 语句中,continue 与 break 的效果是一样的,可以互换12.有以下程序 #includestdio.h main() int a5=2,4,6,8,10,*p,*k; p=a;k=p; printf(“%d“,*(p+); pri

    6、ntf(“%d/n“,*k); 程序运行后的输出结果是_。(分数:2.00)A.2 4B.4 4C.2 2D.4 613.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:2.00)A.getc()B.gets()C.getchar()D.scanf()14.设变量已正确定义并赋值,以下正确的表达式是_。(分数:2.50)A.x=y+z+5,+yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.015.有以下定义:int a;long b;double x,y;,则以下选项中正确的表达式是(分数:1.00)A.a%(int)(x-y)B.a=x!=yC.(a*y)%bD.

    7、y=x+y=x16.以下选项中正确的语句组是_。(分数:1.00)A.char*s;s=“BOOK!“;B.char*s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;17.支持子程序调用的数据结构是_。(分数:2.50)A栈B树C.队列D.二叉树18.有以下程序: #include stdio.h #define N 3 void fun(int aN,int b) int i,j; for(i=0;iN;i+) bi=ai0; for(j=1;jN;j+ +) if (biaij )bi=aij; main( ) int xNN=1,2

    8、,3,4,5,6,7,8,9,yN,i; fun(x,y); for(i=0;iN;i+) printf(“%d,“,yi); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.3,5,7B.1,3,5,C.2,4,8,D.3,6,9,19.以下叙述中错误的是_。(分数:2.00)A.使用三种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环三种基本结构组成C.C 语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法20.以下针对全局变量的叙述错误的是_。(分数:1.00)A.全局变量的作用域是从定义位置开始至源文件结束B.全局变量是在函

    9、数外部任意位置上定义的变量C.用 extern 说明符可以限制全局变量的作用域D.全局变量的生存期贯穿于整个程序的运行期间21.负责数据库中查询操作的数据库语言是_。(分数:1.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言22.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“/x2d“;B.char a=“/n“;C.char a=“a“;D.char a=“aa“;23.有以下程序: void change(int k)k0=k5;) main() int x10=1,2,3,4,5,6,7,8,9,10,n=0; while(n=

    10、4)(change(xn);n+; for(n=0;n5;n+)printf(“%d“,xn); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 524.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系25.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是_。(分数:2.50)A.3.

    11、500000B.3C.2.000000D.3.00000026.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构27.在 C 语言中,函数调用时_。(分数:2.00)A.实参和形参各占独立的存储单元B.实参和形参共用存储单元C.由系统自动确定实参和形参是否共用存储单元D.由用户指定实参和形参是否共用存储单元28.可在 C 程序中用作用户标识符的一组标识符是_。(分数:2.50)A.voiddefineWORDB.as_b3_123IfC.For_abccaseD.2cDOSIG29.有以下

    12、程序: #includestdio.h main() union short i2; long k; char c4; r, *s= s-i0=0x39; s-i1=0x38; printf(“%x/n“, s-c0); 已知字符 0 的 ASCII 码值的十进制数是 48,且数组的第 0 个元素在低位。以上程序的运行结果是(分数:2.00)A.39B.9C.38D.830.设有定义: char str=“Hello“; 则语句 printf(“%d%d“,sizeof(str),strlen(str);的输出结果是_。(分数:1.00)A.5 5B.6 6C.6 5D.5 631.有以下程序

    13、: #includestdio.h #define S(x)x*x/x main() int k=6,j=3; printf(“%d,%d/n“,S(k+j+2),S(j+k+2); 程序运行后的输出结果是_。(分数:1.00)A.11,11B.29,29C.26,29D.121,12132.若有定义 char a; int b; float c; double d; ,则表达式 a+b+c-d 的结果为_型。(分数:1.00)A.doubleB.intC.floatD.char33.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能

    14、在栈底插入数据D.不能删除数据34.算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是_。(分数:1.00)A.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 a+b 得 r1,最后执行 r1+r3 得表达式最后结果B.先执行 a+b 得 r1,再执行(d+e)得 r2,再执行 c*r2 得 r3,最后执行 r1+r3 得表达式最后结果C.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 b+r3 得 14,最后执行 a+r4 得表达式最后结果D.先执行 a+b 得 r1,再执行 r1+c 得 r5,再执行(d+e

    15、)得 r2,最后执行 r5*r2 得表达式最后结果35.若有下列说明语句 int(* p)(); 则标识符 p 代表的是 _(分数:1.00)A.一个用于指向函数的指针变量,函数返回值的类型为 int 型B.一个带回值类型为整型的函数名C.一个用于指向整型数据的指针变量D.一个带回值类型为指针类型的函数名36.以下选项中可用作 C 程序合法实数的是_。(分数:1.00)A1e0B.3.0e0.2CE9D.9.12E37.若有定义语句:double x, y, *px, *py;执行了 px= py=之后,正确的输入语句是_。(分数:1.00)A.scanf(“%f%“, x, y);B.sca

    16、nf(“%f%f“C.scanf(“%lf%lf“, px, py);D.scanf(“%lf%lf“, x, y);38.设有以下函数: void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确的是_。(分数:1.00)A.void (*pf)(int,char*); pf=fun;B.void *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char); pf=39.算法具有五个特性,以下选项中不属于算法特性的是 _。(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性40.若有定义语句:“int a

    17、=3, b=2, c=1;”,以下选项中错误的赋值表达式是_。(分数:1.00)A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);二级 C 语言分类模拟题 552 答案解析(总分:63.50,做题时间:90 分钟)一、选择题(总题数:40,分数:63.50)1.若有以下程序: #include stdio.h main( ) int y=9; for( ; y0; y-) if(y%3= =0) printf(“%d“, -y); 则程序的运行结果是_。(分数:2.50)A.852 B.963C.741D.875421解析:解析 第一次 for 循

    18、环,y 的值为 9,y%3 的值为 0,满足条件,打印-y,即先减 1 后打印,所以打印 8;第二次 for 循环,y 的值为 7,y%3 的值为 1,不执行打印语句;第三次 for 循环,y 的值为 6,y%3的值为 0,满足条件,打印-y,打印 5;第四次 fof 循环,y 的值为 4,不满足 if 条件,不执行打印语句;第五次 for 循环,y 的值为 3,满足 if 条件,打印 2;第六次 for 循环,y 的值为 1,不满足条件,不执行打印语句。2.一名雇员就职于一家公司,一个公司有多名雇员,则实体公司和实体雇员之间的联系是_。(分数:1.00)A.1:1 联系B.1:m 联系 C.

    19、m:1 联系D.m:n 联系解析:解析 一般来说,实体集之间必须通过联系来建立连接关系,分为 3 类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。一个公司与多个雇员的关系为 1:m 联系,故 B 选项正确。3.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:1.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 学号是学生表 S 的主键,课号是课程表 C 的主键,因此选课表 SC 的关键字就应该是与前两个表能够直接联系且

    20、能唯一定义的学号和课号,故本题答案为 C。4.下列叙述中正确的是_。(分数:2.00)A.在 C 语言中,预处理命令行都以“#”开头 B.预处理命令行必须位于 C 源程序的起始位置C.#includestdio.h必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能解析:解析 预处理命令是以“#”号开头的命令,它们不是 C 语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以 B、C 选项错误。C 语言的预处理能够实现宏定义和条件编译等功能,所以 D 选项错误。5.以下数组定义中错误的是_。(分数:1.00)A.int x

    21、3=1,2,3,4,5,6;B.int x3=0;C.int x23=1,2,3,4,5,6; D.int x23=1,2,3,4,5,6;解析:解析 C 选项中 x23定义的是一个 2 行 3 列的二维数组,而在给数组元素赋值时却赋成了 3 行,因此错误。6.下列叙述中正确的是_。(分数:2.50)A.在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B.实型变量中允许存放整型数C.若 a 和 b 类型相同,在执行赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D.在 C 程序中,求取余运算符“%”两边的类型相同时才能进行运算 解析:解析 选项 A,在赋值表达式中,赋

    22、值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式,右边也不得出现表达式;选项 B 中,整型变量中只能存放整型数,但实型变量中能存放实型数,也能存放整型数;选项 C,表达式 a=b 的意思是把变量 b 的值赋给变量 a,从而覆盖 a 中原来值;选项 D,要求取余运算符“%“两边的类型相同。7.有以下程序 #includestdio.h main() int i,j,m=1; for(i=1;i3;i+) for(j=3;j0;j-) if(i*j3)break; m*=i*j; printf(“m=%d/n“,m); 程序运行后的输出结果是_。(分数:1.00)A.m=4B.

    23、m=2C.m=6 D.m=5解析:解析 第一次外循环 i 的值为 1,第一次内循环 j 的值为 3,不满足条件,则执行 m*=i*j,即 m的值为 3;第二次泊勺值为 2,不满足条件,则执行 m*=i*j,即 m 的值为 6;第三次 j 的值为 1,不满足条件,则执行 m*=i*j,即 m 的值仍为 6。第二次外循环 i 的值为 2,j 的值为 3,满足条件,执行 break语句,跳出循环。故本题答案为 C。8.有以下程序: #include stdio.h #define N 2 #define M N+1 #define NUM (M+1) * M/2 main( ) printf(“%d

    24、/n“,NuM); 程序运行后的输出结果是_。(分数:5.00)A.4B.8 C.9D.6解析:解析 本题考查宏定义。宏定义只是做简单的替换,执行语句 NUM=(N+1+1)*N+1/2=8,故选项 B正确。9.设有定义:“char*c;”,以下选项中能够使字符型指针 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“; c=str; B.scanf(%s, c);C.c=getchar();D.*c=“string“;解析:解析 选项 B 是从键盘上输入字符串,选项 C 是接收字符,选项 D 不正确。10.若有定义语句:int a23, *p3;,则以下语

    25、句中正确的是_。(分数:2.50)A.p=a;B.p0=a; C.p0=D.p1=解析:解析 选项 B 表示把整型数组 a0的指针赋给 p0。11.以下叙述中正确的是_。(分数:2.00)A.break 语句不能用于提前结束 for 语句的本层循环B.使用 break 语句可以使流程跳出 switch 语句体 C.continue 语句使得整个循环终止D.在 for 语句中,continue 与 break 的效果是一样的,可以互换解析:解析 break 跳出 switch 语句或循环语句,contiune 结束本次循环,继续进行剩余的循环。所以答案选择 B。12.有以下程序 #include

    26、stdio.h main() int a5=2,4,6,8,10,*p,*k; p=a;k=p; printf(“%d“,*(p+); printf(“%d/n“,*k); 程序运行后的输出结果是_。(分数:2.00)A.2 4 B.4 4C.2 2D.4 6解析:解析 *(p+),表达式为 a0的值,为 2,执行后 p 指向 a1,*k 为*p 实际为 a1,输出 4,所以选择 A。13.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:2.00)A.getc()B.gets() C.getchar()D.scanf()解析:解析 scanf()语句用“空格”区别不同的字符串;getc

    27、()与 getchar()语句不能用于字符串的读入。14.设变量已正确定义并赋值,以下正确的表达式是_。(分数:2.50)A.x=y+z+5,+y B.int(15.8%5)C.x=y*5=x+zD.x=25%5.0解析:解析 B 与 D 选项中取模运算符%的左右两个操作数均应为整数,因此 B、D 选项错误。C 选项中不能将 x+z 的值赋给表达式 y*5,因此 C 选项错误。故本题答案为 A。15.有以下定义:int a;long b;double x,y;,则以下选项中正确的表达式是(分数:1.00)A.a%(int)(x-y)B.a=x!=y C.(a*y)%bD.y=x+y=x解析:解

    28、析 A 选项中,除数可能为 0,所以选项 A 错误。C 语言中,“%”求余运算符要求两个运算量都必须是整型数据,而选项 C 中“a*y”是实型数据,所以选项 C 错误。选项 D 中出现了“x+y=x”错误表示,C 语言中只能对变量赋值,不能对表达式进行赋值,所以选项 D 错误。选项 B 为正确答案。16.以下选项中正确的语句组是_。(分数:1.00)A.char*s;s=“BOOK!“; B.char*s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;解析:解析 字符指针可以用字符串直接赋值,字符数组不可以。所以选择 A。17.支持子程序调

    29、用的数据结构是_。(分数:2.50)A栈 B树C.队列D.二叉树解析:解析 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,然后继续向下执行,这种调用方式符合栈的特点,因此本题的答案为 A。18.有以下程序: #include stdio.h #define N 3 void fun(int aN,int b) int i,j; for(i=0;iN;i+) bi=ai0; for(j=1;jN;j+ +) if (biaij )bi=aij; main( )

    30、int xNN=1,2,3,4,5,6,7,8,9,yN,i; fun(x,y); for(i=0;iN;i+) printf(“%d,“,yi); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.3,5,7B.1,3,5,C.2,4,8,D.3,6,9, 解析:解析 函数 fun()的作用是求出二维数组 aN中每一行中的最大元素,所以在 main( )函数中执行完 fun(x,y)后,数组 y 中的元素为二维数组 xNN每一行的最大元素。因此 D 选项正确。19.以下叙述中错误的是_。(分数:2.00)A.使用三种基本结构构成的程序只能解决简单问题 B.结构化程序

    31、由顺序、分支、循环三种基本结构组成C.C 语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法解析:解析 使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以 A 选项错误。20.以下针对全局变量的叙述错误的是_。(分数:1.00)A.全局变量的作用域是从定义位置开始至源文件结束B.全局变量是在函数外部任意位置上定义的变量C.用 extern 说明符可以限制全局变量的作用域 D.全局变量的生存期贯穿于整个程序的运行期间解析:解析 在不同编译单位内用 extern 说明符来扩展全局变量的作用域,extern 可以将全局变量作用域扩展到其他文

    32、件,而不是限制全局变量的作用域,答案为 C 选项。21.负责数据库中查询操作的数据库语言是_。(分数:1.00)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。22.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“/x2d“;B.char a=“/n“;C.char a=“a“;D.char a=“aa“; 解析:解析 D 选项中将字符串常量“

    33、aa”赋给字符变量 a 是错误的。23.有以下程序: 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“); 程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10 B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 5解析:解析 本题主要考查数组元素的地址作为实参,当 n=0 时,把 x0的地址传递给被调函数change(),即把形参 k 和实参 x

    34、 指向同一个存储单元,执行被调函数后 k0=6,即 x0=6;当 n=1 时,执行被调函数后 x1=7,以此类推,最后得到 x 数组的值为 6,7,8,9,10。24.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:1.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:解析 数据库系统由如下 5 个部分组成:数据库(DB)、数据库管理系统(DBMS)、数据库管理员(人员)、系统平台之一硬件平台(硬件)、系统平台之二软件平台(软件)。其中 DB(DataBase)即数据库,

    35、是统一管理的相关数据的集合;DBMS 即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问 DB 的方法。由以上可知,选项 C 为正确答案。25.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是_。(分数:2.50)A.3.500000B.3C.2.000000D.3.000000 解析:解析 在 x=2,y=x+3/2 中,3/2=1,2+1=3,因此表达式的值为 3,因为 x、y 为 double 型变量,故选择 D 选项。26.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结

    36、构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:解析 逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。27.在 C 语言中,函数调用时_。(分数:2.00)A.实参和形参各占独立的存储单元 B.实参和形参共用存储单元C.由系统自动确定实参和形参是否共用存储单元D.由用户指定实参和形参是否共用存储单元解析:28.可在 C 程序中用作用户标识符的一组标识符是_。(分数:2.50)A.voiddefineWORDB.as_b3_123If C.For_abccaseD.2cDOSIG解析:解析 C 语言中用

    37、户标识符不能与 c 编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。选项 A,define,void 为关键字;选项 C,for,case 为关键字;选项 D,DO 为关键字。29.有以下程序: #includestdio.h main() union short i2; long k; char c4; r, *s= s-i0=0x39; s-i1=0x38; printf(“%x/n“, s-c0); 已知字符 0 的 ASCII 码值的十进制数是 48,且数组的第 0 个元素在低位。以上程序的运行结果是(分数:2.00)A.39 B.9C.38D.8解析:30.设有定义:

    38、 char str=“Hello“; 则语句 printf(“%d%d“,sizeof(str),strlen(str);的输出结果是_。(分数:1.00)A.5 5B.6 6C.6 5 D.5 6解析:解析 本题考查 sizeof 和 strlen 对字符串的处理不同之处。sizeof 求出字符串的字符个数,包括结尾符;Strlen 求出字符串的实际字符,不包括结尾符。所以答案为 6 5,C 选项正确。31.有以下程序: #includestdio.h #define S(x)x*x/x main() int k=6,j=3; printf(“%d,%d/n“,S(k+j+2),S(j+k+

    39、2); 程序运行后的输出结果是_。(分数:1.00)A.11,11B.29,29 C.26,29D.121,121解析:解析 #define 命令是 C 语言中的一个宏定义命令,标识符一般使用大写,为了区分其他标识符,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。s(k+j+2)=k+j+2*k+j+2/k+j+2,经计算可得 29,S(j+k+2)=j+k+2*k+j+2/i+k+2,经计算可得 29。因此输出为 29,29。答案为 B 选项。32.若有定义 char a; int b; float c; dou

    40、ble d; ,则表达式 a+b+c-d 的结果为_型。(分数:1.00)A.double B.intC.floatD.char解析:33.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。34.算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是_。(分数:1.00)A.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 a+b 得 r1,

    41、最后执行 r1+r3 得表达式最后结果B.先执行 a+b 得 r1,再执行(d+e)得 r2,再执行 c*r2 得 r3,最后执行 r1+r3 得表达式最后结果 C.先执行(d+e)得 r2,再执行 c*r2 得 r3,再执行 b+r3 得 14,最后执行 a+r4 得表达式最后结果D.先执行 a+b 得 r1,再执行 r1+c 得 r5,再执行(d+e)得 r2,最后执行 r5*r2 得表达式最后结果解析:解析 题意表达式中,圆括号的优先级最高,乘法运算符次之,加法运算符最低,同优先级中,加法运算符的结合性从左向右结合,所以题意中的表达式执行顺序是:先执行 a+b 得 r1,再执行(d+e)

    42、得r2,再执行 c*r2 得 r3,最后执行 r1+r3 得表达式最后结果,本题答案为 B。35.若有下列说明语句 int(* p)(); 则标识符 p 代表的是 _(分数:1.00)A.一个用于指向函数的指针变量,函数返回值的类型为 int 型 B.一个带回值类型为整型的函数名C.一个用于指向整型数据的指针变量D.一个带回值类型为指针类型的函数名解析:36.以下选项中可用作 C 程序合法实数的是_。(分数:1.00)A1e0 B.3.0e0.2CE9D.9.12E解析:解析 C 语言中实数的指数计数表示格式为字母 e 或者 E 之前必须有数字,且 e 或 E 后面的指数必须为整数。所以选项

    43、A 正确。37.若有定义语句:double x, y, *px, *py;执行了 px= py=之后,正确的输入语句是_。(分数:1.00)A.scanf(“%f%“, x, y);B.scanf(“%f%f“C.scanf(“%lf%lf“, px, py); D.scanf(“%lf%lf“, x, y);解析:解析 本题考查 scanf 函数,其格式为:scanf(控制格式,地址表列),其中地址表列中应为要赋值变量的地址。本题要为变量 x 和 y 赋值,并定义了两个指针分别指向 x 和 y,因此取得变量 x 和 y 的地址的方法有两种。一种是使用取地址符号“ pf=fun; B.void

    44、 *pf(); pf=fun;C.void *pf(); *pf=fun;D.void (*pf)(int,char); pf=解析:解析 赋值给函数指针,需要函数的参数一致,返回值一致,才可以赋值。选项 A 正确。39.算法具有五个特性,以下选项中不属于算法特性的是 _。(分数:1.00)A.有穷性B.简洁性 C.可行性D.确定性解析:解析 有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。40.若有定义语句:“int a=3, b=2, c=1;”,以下选项中错误的赋值表达式是_。(分数:1.00)A.a=(b=4)=3; B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);解析:解析 由等式的规则可知,A 选项错误。先对括号的 b 进行等式运算,得出 b=4,然后计算得出a=4=3,所以会导致错误。答案选择 A。


    注意事项

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




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

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

    收起
    展开