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

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

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

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

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

    1、二级 C 语言分类模拟题 581 及答案解析(总分:49.50,做题时间:90 分钟)一、选择题(总题数:30,分数:49.50)1.已知“int a44;”,则不能等价表示数组元素 a33的是_。(分数:2.00)A.*(a3+3)B.*(*(a+3)+3)C.* X=xy;y=xy;x=xy; printf(“%d,%d/n“,x,y); 程序运行后的输出结果是_。(分数:1.00)A.3,5B.5,3C.35,35D.8,83.有以下结构体说明、变量定义和赋值语句: struct STDchar name10;int age;char sex;s5,*ps;ps= 则下列 scanf 函

    2、数调用语句有错误的是_。(分数:2.00)A.scanf(“%s“,s0.name);B.scanf(“%d“,C.scanf(“%c“,D.scanf(“%d“,ps-age);4.对两个数组 a 和 b 进行以下初始化: char a=“ABCDEF“; char b=“A“, “B“, “C“, “D“, “E“, “F“; 则以下叙述正确的是_。(分数:1.00)A.数组 a 与数组 b 完全相同B.数组 a 与数组 b 长度相同C.数组 a 与数组 b 中都存放字符串D.数组 a 比数组 b 长度长5.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结

    3、构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间6.下列程序的输出结果是_。 main() int a, b, d=25; a=d/10%9; b=a printf(“%d, %d/n“, a, b); (分数:2.50)A.6,1B.2,1C.6,0D.2,07.要求 tan(60)的值,调用的库函数格式为_。(分数:2.00)A.tan(60)B.tan(pi/3)C.tan(60.0)D.tan(double)60)8.以下选项中有语法错误的是_。(分数

    4、:1.00)A.char*str=“guest“;B.char str10=“guest“;C.char*str3; strt=“guest“;D.char str310; str1=“guest“;9.以下不是 C 语言字符型或字符串常量的是_。(分数:1.00)A.“It“s“B.“0“C.“a=0“D.“/010“10.若有以下语句: typedef struct S int g; char h; T; 以下叙述中正确的是_。(分数:1.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量C.S 是 struct 类型的变量D.T 是 struct S 类型的变量11.有两个关

    5、系 R,S 如下: (分数:1.00)A.选择B.投影C.插入D.连接12.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统D.汇编程序13.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字母B.下划线C.数字字符D.连接符14.有以下程序: main() int a=0,b=0; a=10; /*给 a 赋值 b=20; /*给 b 赋值*/ printf(“a+b=%d/n”,a+b);/*输出计算结果*/ 程序运行后的输出结果是 _ 。(分数:1.

    6、00)A.a+b=10B.a+b=30C.30D.出错15.下面结构体的定义语句中,错误的是_。(分数:1.00)A.struet ord int x; int y; int z; struct ord a;B.struet ord int x; int y; int z; struct ord a;C.stmct ord int x; int y; int z;a;D.struct int x; int y; int z; a;16.若有以下定义和语句: int u=011,v=0x11,w=11; printf(“%o,%x,%d/n“,u,v,w); 则输出结果是_。(分数:2.00)A

    7、.9,17,11B.9,11,11C.11,11,11D.11,17,1117.以下叙述中不正确的是_。(分数:2.00)A.预处理命令行都必须以“#”号开始,结尾不加分号B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C 程序在执行过程中对预处理命令进行处理D.预处理命令可以放在程序中的任何位置18.有以下程序: #include stdio.h main( ) int y=10; while(y- -); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.50)A.y=0B.y=-1C.y=1D.while 构成无限循研19.C 语言规定,在一个源程序

    8、中,main()函数的位置_。(分数:1.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后20.下列条件语句中,输出结果与其他语句不同的是_。(分数:2.50)A.if(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);B.if(a=0)printf(“%d/n“,y); else printf(“%d/n“,x);C.if(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a)printf(“%d/n“,x); else printf(“%d/n“,y);21.设有以下定义

    9、: union data int d1; float d2; demo; 则下面叙述中错误的是 _ 。(分数:1.00)A.变量 demo 与成员 d2 所占的内存字节数相同B.变量 demo 中各成员的地址相同C.变量 demo 和各成员的地址相同D.若给 demo.d1 赋 99 后,demo.d2 中的值是 99.022.有以下程序: #includestdio.h main() int x; scanf (“%d“, char gender; int score; STU; void f(STU a,STU * b) a = * b; printf(“%s,%13,%d,“,a.nam

    10、e,a.gender,a.score); main( ) STU a = “Zhao“,“m“,290, b = “Qian“,“f“,350; f(a, printf(“%s,%c,%d/n“,a.name,a.gender,a.score); 程序运行后的输出结果是_。(分数:1.00)A.Qian,f,350,Qian,f,350B.Zhao,m,290,Qian,f,350C.Qian,f,350,Zhao,m,290D.Zhao,m,290,Zhao,m,29024.下列二维数组初始化语句中,正确且与语句 int a3=1,2,3,4,5等价的是_。(分数:2.50)A.int a2

    11、=1,2,3,4,5;B.int a3=1,2,3,4,5,0;C.int a3=1,0,2,0,3,0;D.int a2=1,2,3),4,5,6;25.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是_。(分数:2.00)A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);26.有以下程序: main() unsigned int a; int b=-1; a=b; printf(“%u“,a); 程序运行后的输出结果是( )。(分数:1.00)A.-1B.65535C.32767D.-3276827.有以下程序:

    12、#include stdio.h #include string.h main() char s=“Beijing“; printf(“%d/n“,strlen(strcpy(s,“China“); 程序运行后的输出结果是_。(分数:1.00)A.5B.7C.12D.1428.以下程序的输出结果是_。 void prt(int*m, int n) int i; for(i=0; in; i+)mi+; main() int a=1, 2, 3, 4, 5, i; prt(a, 5); for(i=0; i5; i+) printf(“%d, “, ai); (分数:2.50)A.1,2,3,4

    13、,5B.2,3,4,5,6C.3,4,5,6,7D.2,3,4,5,129.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对一D.多对多30.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是_。(分数:2.50)A.char*s=“AAA“,“BBB“,“CCC“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“;二级 C 语言分类模拟题 581 答案解析(总分:49.50,做题时间:9

    14、0 分钟)一、选择题(总题数:30,分数:49.50)1.已知“int a44;”,则不能等价表示数组元素 a33的是_。(分数:2.00)A.*(a3+3)B.*(*(a+3)+3)C.* X=xy;y=xy;x=xy; printf(“%d,%d/n“,x,y); 程序运行后的输出结果是_。(分数:1.00)A.3,5B.5,3 C.35,35D.8,8解析:解析 运算符为按位异或运算符,即 01=1,10=1,11=0,00=0;经计算可得x=xy,y=xy,x=xy,作用是交换 x,y 的值。因此答案为 B 选项。3.有以下结构体说明、变量定义和赋值语句: struct STDchar

    15、 name10;int age;char sex;s5,*ps;ps= 则下列 scanf 函数调用语句有错误的是_。(分数:2.00)A.scanf(“%s“,s0.name);B.scanf(“%d“,C.scanf(“%c“,D.scanf(“%d“,ps-age); 解析:解析 本题考查结构体的相关知识。题目中需要输入一个变量,scanf 要求参数为指针,而 D 选项中 ps-age 为一个变量,不是指针,所以错误。4.对两个数组 a 和 b 进行以下初始化: char a=“ABCDEF“; char b=“A“, “B“, “C“, “D“, “E“, “F“; 则以下叙述正确的是

    16、_。(分数:1.00)A.数组 a 与数组 b 完全相同B.数组 a 与数组 b 长度相同C.数组 a 与数组 b 中都存放字符串D.数组 a 比数组 b 长度长 解析:5.下列叙述中正确的是(分数:2.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:解析 顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。其优点是占用最少的存储空间。所以选项 D

    17、错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项 B 错误。链式存储结构也可以存储线性表,所以选项 C 错误。6.下列程序的输出结果是_。 main() int a, b, d=25; a=d/10%9; b=a printf(“%d, %d/n“, a, b); (分数:2.50)A.6,1B.2,1 C.6,0D.2,0解析:解析 当逻辑运算符“B.char str10=“guest“;C.char*str3; strt=“guest“;D.char str310; str1=“guest“; 解析:解析 在 D 选项中,首先定义了一个二维数组 str,str1=“guest“

    18、,在赋值时使用一个字符串进行赋值是错误的,所以答案选择 D。9.以下不是 C 语言字符型或字符串常量的是_。(分数:1.00)A.“It“s“B.“0“C.“a=0“ D.“/010“解析:解析 C 项是一个赋值表达式。AB 两项是字符串常量,D 项是字符常量。10.若有以下语句: typedef struct S int g; char h; T; 以下叙述中正确的是_。(分数:1.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量 C.S 是 struct 类型的变量D.T 是 struct S 类型的变量解析:解析 语句 typedef struct Sint g; char

    19、 h; T 的作用是用工作为 struct Sint g; char h; 的简写,所以选 B。11.有两个关系 R,S 如下: (分数:1.00)A.选择B.投影 C.插入D.连接解析:解析 投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。本题中,S 是在原有关系 R 的内部进行的,是由 R 中原有的那些域的列所组成的关系,因此选择 B。12.软件按功能可以分为:应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析 编译程序、操作系统、汇编程序都

    20、属于系统软件,只有教务管理系统才是应用软件,因此本题答案为 C。13.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字母B.下划线C.数字字符D.连接符 解析:解析 C 语言中的标识符由字母、下划线、数字组成,且开头必须是字母或下划线,所以 D 选项中的连接符不合法。14.有以下程序: main() int a=0,b=0; a=10; /*给 a 赋值 b=20; /*给 b 赋值*/ printf(“a+b=%d/n”,a+b);/*输出计算结果*/ 程序运行后的输出结果是 _ 。(分数:1.00)A.a+b=10 B.a+b=30C.30D.

    21、出错解析:解析 本题是一道陷阱题,主要考查的是注释的格式。在 C 程序中,使用/*/表示注释,注释只是给人看的,对编泽和运行不起作用。在本题程序中,从第 3 行右边的/*开始到第 4 行末尾的*/结束都属于注释部分,故 b=20;语句不起作用。所以程序运行后的输出结果是 a+b=10,应该选择 A)。15.下面结构体的定义语句中,错误的是_。(分数:1.00)A.struet ord int x; int y; int z; struct ord a; B.struet ord int x; int y; int z; struct ord a;C.stmct ord int x; int y

    22、; int z;a;D.struct int x; int y; int z; a;解析:解析 定义一个结构体的一般形式为: struet 结构名成员列表; 说明结构变量有 3 种方法: 1先定义结构体,再说明结构变量 struct 结构名 成员列表; struct 结构名变量名 1、变量名 2; 故选项 B 正确。 2在定义结构类型的同时说明结构变量 struct 结构名 成员列表 变量名列表; 故选项 C 正确。 3直接说明结构变量 struct 成员列表 变量名列表; 故选项 D 正确。 使用方法 1 定义结构体时,在右括号的后面不能省略分号,故选项 A 错误。16.若有以下定义和语句:

    23、 int u=011,v=0x11,w=11; printf(“%o,%x,%d/n“,u,v,w); 则输出结果是_。(分数:2.00)A.9,17,11B.9,11,11C.11,11,11 D.11,17,11解析:17.以下叙述中不正确的是_。(分数:2.00)A.预处理命令行都必须以“#”号开始,结尾不加分号B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C 程序在执行过程中对预处理命令进行处理 D.预处理命令可以放在程序中的任何位置解析:18.有以下程序: #include stdio.h main( ) int y=10; while(y- -); printf(“y=

    24、%d/n“,y); 程序执行后的输出结果是_。(分数:2.50)A.y=0B.y=-1 C.y=1D.while 构成无限循研解析:解析 执行 y-直到值为 0,由于 y-是先用再减,所以退出循环时,y 的值为-1。19.C 语言规定,在一个源程序中,main()函数的位置_。(分数:1.00)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意 D.必须在最后解析:解析 程序中可以把 main()函数放在任何位置,但程序是从 main()函数开始执行的。20.下列条件语句中,输出结果与其他语句不同的是_。(分数:2.50)A.if(a=0)printf(“%d/n“,x); else

    25、 printf(“%d/n“,y); B.if(a=0)printf(“%d/n“,y); else printf(“%d/n“,x);C.if(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a)printf(“%d/n“,x); else printf(“%d/n“,y);解析:解析 若 a 为 0,A 选项输出 x,其他输出 y,所以选择 A。21.设有以下定义: union data int d1; float d2; demo; 则下面叙述中错误的是 _ 。(分数:1.00)A.变量 demo 与成员 d2 所占的内存字节数相同B.

    26、变量 demo 中各成员的地址相同C.变量 demo 和各成员的地址相同D.若给 demo.d1 赋 99 后,demo.d2 中的值是 99.0 解析:解析 本题中 float 所占内存字节数为 4,而 int 类型在 VC 6.0 中占 4 字节,所以 demo 就与成员 d2 所占字节数是相同的,选项 A 的说法正确。联合体的所有成员的首地址都是相同的,和联合体变量的地址一致。故选项 B 和 C 都是正确的。由于 int 类型数据和 float 类型数据在内存中的存放格式是不一样的,所以给 d1 赋 99 后,d2 中不会得到 99.0 这个值。故选项 D 不正确,答案应该选择 D。22

    27、.有以下程序: #includestdio.h main() int x; scanf (“%d“, char gender; int score; STU; void f(STU a,STU * b) a = * b; printf(“%s,%13,%d,“,a.name,a.gender,a.score); main( ) STU a = “Zhao“,“m“,290, b = “Qian“,“f“,350; f(a, printf(“%s,%c,%d/n“,a.name,a.gender,a.score); 程序运行后的输出结果是_。(分数:1.00)A.Qian,f,350,Qian,

    28、f,350B.Zhao,m,290,Qian,f,350C.Qian,f,350,Zhao,m,290 D.Zhao,m,290,Zhao,m,290解析:解析 main 函数中,首先定义两个结构体 STU 类型的变量 a,b,并对 a,b 初始化,f 函数的功能是:用形参结构体指针 b 指向的结构体对形参 a 赋值,此时形参结构体 a 的值为指针 b 指向的值,输出a 即输出指针 b 指向的结构体,返回到 main 函数后,在输出实参 a 的值,答案为 C 选项,注:形参 a,b不要和实参 a,b 混淆。24.下列二维数组初始化语句中,正确且与语句 int a3=1,2,3,4,5等价的是_

    29、。(分数:2.50)A.int a2=1,2,3,4,5;B.int a3=1,2,3,4,5,0; C.int a3=1,0,2,0,3,0;D.int a2=1,2,3),4,5,6;解析:25.若有定义语句: int a=3,b=2,c=1; 以下选项中错误的赋值表达式是_。(分数:2.00)A.a=(b=4)=3; B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);解析:解析 不能将变量或常量赋给一个表达式,所以 A 选项中(b=4)=3 是错误的。26.有以下程序: main() unsigned int a; int b=-1; a=b; printf(“%u

    30、“,a); 程序运行后的输出结果是( )。(分数:1.00)A.-1B.65535 C.32767D.-32768解析:解析 程序中定义了一个无符号整型变量 a 和一个整型变量 b,并且给它赋初值为-1,整型在计算机中都以二进制表示,-1 在内存中表示为 1111111111111111,所以当表示为无符号整数时转换为十进制数 65535,故最后输出的无符号型 a 的值为 65535。所以,4 个选项中选项 B 符合题意。27.有以下程序: #include stdio.h #include string.h main() char s=“Beijing“; printf(“%d/n“,str

    31、len(strcpy(s,“China“); 程序运行后的输出结果是_。(分数:1.00)A.5 B.7C.12D.14解析:解析 字符串常量是用一对双引号括起来的零个或多个字符的序列。在存储字符串常量时,由系统在字符串的末尾自动加一个“/0”作为字符串的结束标志。strcpy 函数将“China”复制给字符数组s,其在数组位置内存存储情况为“China/0g/0”。strlen 函数统计字符串长度时,遇到“/0”结束,s数组长度为 5,故 A 选项正确。28.以下程序的输出结果是_。 void prt(int*m, int n) int i; for(i=0; in; i+)mi+; mai

    32、n() int a=1, 2, 3, 4, 5, i; prt(a, 5); for(i=0; i5; i+) printf(“%d, “, ai); (分数:2.50)A.1,2,3,4,5B.2,3,4,5,6 C.3,4,5,6,7D.2,3,4,5,1解析:解析 函数调用时,prt 函数的作用是为使 m 数组中的数自增 1,因此数组下标从 0 开始,每个元素都自加 1。29.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是_。(分数:1.00)A.一对一B.一对多 C.多对一D.多对多解析:解析 因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。所以选择 B 选项。30.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是_。(分数:2.50)A.char*s=“AAA“,“BBB“,“CCC“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“; 解析:解析 二维字符数组在定义时可省略第一维的维数,根据初始化有 3 个字符串,所以选项 D 中数组有 3 行,与已知说明语句等价。


    注意事项

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




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

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

    收起
    展开