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

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

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

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

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

    1、二级 C 语言-129 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.在 Internet 中,域名服务器的主要功能是实现_的转换。(分数:2.50)A.IP 地址到域名(主机名字)B.域名到 IP 地址C.主机 IP 地址和路由器 IP 地址之间D.路由器 IP 地址之间2.下列选项中不是 C 语句的是_。(分数:2.50)A. int i; i+; printf(“%d/n“, i); B.;C.a=5,c=10D.;3.下列关于定点数与浮点数的叙述中错误的是_。(分数:2.50)A.在实数的浮点表示中,阶码是一个整数B.整数是实数

    2、的特例,也可以用浮点数表示C.实数的补码是其对应的反码在最后一位加 1D.相同长度的浮点数和定点数,前者可表示数的范围要大于后者4.下列选项中,均属于通用软件的是_。(分数:2.50)A.Windows XP、AutoCAD、PowerPointB.Visual FoxPro、Excel、SPSSC.Word、Photoshop、ExcelD.C+、CorelDraw、Firefox 2.05.下列关于信息系统的叙述中,错误的是_。(分数:2.50)A.广播电视是一种双向的、点到多点的信息交互系统B.网络聊天是一种双向的、以信息交互为主要目的的系统C.电话是一种双向的、点对点的、以信息交互为主

    3、要目的的系统D.雷达是一种以感测和识别为主要目的的系统6.若在定义语句:int a,b,c,*p=B.scanf(“%d%d%“, a, b, c);C.scanf(“%d“, p);D.scanf(“%d“, 7.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是_。(分数:2.50)A.均占 4 个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定8.若已定义: int a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中 0i9,则对 a 数组元素的引用不正确的是_。(分数:2.50)

    4、A.ap-aB.*( float y; char name50; scanf(“%2d%f%s“, 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为_。(分数:2.50)A.55566.0B.566.0C.7777.0D.566777.010.若变量已正确定义,有以下程序段 i=0; do printf(“%d, “, i); while(i+); printf(“%d“, i) 其输出结果是_。(分数:2.50)A.0,0B.0,1C.1,1D.程序进入无限循环11.有以下计算公式 (分数:2.50)A.if(x=0) y=sqrt(x);else y=sqrt(-

    5、x);B.y=sqrt(x)if(x0) y=sqrt(-x);C.if(x=0)y=sqrt(x);If(x0)y=sqrt(-x);D.y=sqrt(x=0?x:-x);12.若有定义:int x,*pb;则正确的赋值表达式是_。(分数:2.50)A.pb=,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是_。(分数:2.50)A.isupper(c)B.“A“=c=“Z“C.“A“=c,以下不能计算出一个 char 型数据所占字节数的表达式是_。(分数:2.50)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D

    6、.sizeof(p0)20.有以下函数: int aaa(char *s) char *t=s; while(*t+); t-; return(t-s); 以下关于 aaa 函数的功能叙述正确的是_。(分数:2.50)A.求字符串 s 的长度B.比较两个串的大小C.将串 s 复制到串 tD.求字符串 s 所占字节数21.若有定义语句:int a36;,按在内存中的存放顺序,a 数组的第 10 个元素是_。(分数:2.50)A.a04B.a13C.a03D.a1422.有以下程序: #includestdio.h void fun(char*p) +p; printf(“%s“, “p); ma

    7、in() char*a=“Morning“, “Afternoon“, “Evening“, “Night“; fun(a); 程序的运行结果是_。(分数:2.50)A.AfternoonB.fternoonC.MorningD.orning23.若有定义语句:int a23, *p3;,则以下语句中正确的是_。(分数:2.50)A.p=a;B.p0=a;C.p0=D.p1=24.有以下程序: #includestdio.h void fun(int*a, int n)/*fun 函数的功能是将 a 所指数组元素从大到小排序*/ int t, i, j; for(i=0; in-1; j+)

    8、for(j=i+1; jn; j+) if(aiaj)t=ai; ai=aj; aj=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; fun(c+4, 6); for(i=0; i10; i+) printf(“%d, “, ci); printf(“/n“); 程序运行的结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0,25.有以下程序: #includestdio.h int fun(

    9、char s) int n=0; while(*s=“9“ s+; return(n); main() char s10=“6“, “1“, “*“, “4“, “*“, “9“, “*“, “0“, “*“; printf(“%d“, fun(s); 程序运行的结果是_。(分数:2.50)A.9B.61490C.61D.526.以下程序段给数组所有元素输入数据: #includestdio.hmain() int a10, i=0; while(i10)scanf(“%d“, ); 应在下划线处填入的是_。(分数:2.50)A.a+(i+)B. for(; y0; y-) if(y%3=0)

    10、 printf(“%d“, -y); 程序的运行结果是_。(分数:2.50)A.741B.963C.852D.87542128.有以下程序: #includestdio.h void fun(char*t, char*s) while(*t!=0)t+; while(*t+=*s+)!=0); main() char ss10=“acc“, aa10=“bbxxyy“; fun(ss, aa); printf(“%s, %s“, ss, aa); 程序运行结果是_。(分数:2.50)A.accxyy,bbxxyyB.acc,bbxxyyC.accxxyy,bbxxyyD.accbbxxyy,b

    11、bxxyy29.有以下程序: #includestdio.h #includestring.h void fun(char s10, int n) char t; int i, j; for(i=0; in-1; i+) for(j=i+1, jn; j+) /*比较字符串的首字符大小,并交换字符串的首字符*/ if(s0)sj0t=si0; si0=sj0; sj0=t; main() (char ss510=“bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“ fun(ss, 5); printf(“%s, %s“, ss0, ss4); 程序运行结果是_。(分数:

    12、2.50)A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc30.在一个 C 语言源程序文件中所定义的全局变量,其作用域为_。(分数:2.50)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern 说明来决定范围31.有以下程序: #includestdio.h int a=1; int f(int c) static int a=2; c=c+1; return(a+)+c; main() int i, k=0; for(i=0; i2; i+)int a=3; k+=f(a); k+=a; printf(

    13、“%d/n“, k); 程序运行结果是_。(分数:2.50)A.14B.15C.16D.1732.有以下程序: #includestdio.h int f(int b, int n) int i, r=1; for(i=0; i=n; i+)r=r*bi; return r; main() int x, a=2, 3, 4, 5, 6, 7, 8, 9; x=f(a, 3); printf(“%d/n“, x); 程序的输出结果是_。(分数:2.50)A.720B.120C.24D.633.若程序中有宏定义行:#define N 100,则以下叙述中正确的是_。(分数:2.50)A.宏定义行中

    14、定义了标识符 N 的值为整数 100B.在编译程序对 C 源程序进行预处理时用 100 替换标识符 NC.对 C 源程序进行编译时用 100 替换标识符 ND.在运行时用 100 替换标识符 N34.以下关于 typedef 的叙述错误的是_。(分数:2.50)A.用 typedef 可以增加新类型B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 为类型说明一个新名,通常可以增加程序的可读性35.有以下程序: #includestdio.h Struct tt int x; stru

    15、ct tt *y; *p; struct tt a4=20, a+1, 15, a+2, 30, a+3, 17, a; main() int i; p=a; for(i=1; i=2; i+)printf(“%d, “, p-x); p=p-y; 程序的运行结果是_。(分数:2.50)A.20,30,B.30,17,C.15,30,D.20,15,36.有以下程序: #includestdio.h #includestring.h typedef struct char name9; char sex; float score 2; STU; STU r(STU a) STU b=“Zhao

    16、“, “m“, 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex=b.sex; for(i=0; i2; i+)a.scorei=b.scorei; return a; main() STU c=“Qian“, “f“, 95.0, 92.0, d; d=f(c); printf(“%s, %c, %2.0f, %2.0f“, d.name, d.sex, d.score0, d.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,m,85,90D.Zhao,f,95,92

    17、37.设有以下定义: union data int d1; float d2; demo; 则下面叙述中错误的是_。(分数:2.50)A.变量 demo 与成员 d2 所占的内存字节数相同B.变量 demo 中各成员的地址相同C.变量 demo 和各成员的地址相同D.若给 demo.d1 赋 99 后,demo.d2 中的值是 99.038.若有以下程序: #includestdio.h main() int k=2,m=4,n=6,*pk= printf(“%d/n“, n); 程序的输出结果是_。(分数:2.50)A.4B.6C.8D.1039.读取二进制文件的函数调用形式为:fread(

    18、buffer, size, count, fp);,其中 buffer 代表的是_。(分数:2.50)A.一个文件指针,指向待读取的文件B.一个整型变量,代表侍读取的数据的字节数C.一个内存块的首地址,代表读入数据存放的地址D.一个内存块的字节数40.有以下程序 #includestdio.h main() FILE*fp; int a10=1, 2, 3, 0, 0, i; fp=fopen(“d2.dat, “wb“); fwrite(a, sizeof(int), 5, fp); fwritc(a, sizeof(int), 5, fp); fclose(fp); fp=fopen(“d

    19、2.dat“, “rb“); fread(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i10; i+)printf(“%d“, ai); 程序的运行结果是_。(分数:2.50)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0,二级 C 语言-129 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.在 Internet 中,域名服务器的主要功能是实现_的转换。(分

    20、数:2.50)A.IP 地址到域名(主机名字)B.域名到 IP 地址 C.主机 IP 地址和路由器 IP 地址之间D.路由器 IP 地址之间解析:解析 在 Internet 中,把域名翻译为 IP 地址的软件称为域名系统 DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和 IP 地址的转换。2.下列选项中不是 C 语句的是_。(分数:2.50)A. int i; i+; printf(“%d/n“, i); B.;C.a=5,c=10 D.;解析:解析 C 项缺少分号。因为赋值语句两个标志:赋值(就是“=“)和语句(加上“;“)。3.下列关于定点数与浮点数的叙述

    21、中错误的是_。(分数:2.50)A.在实数的浮点表示中,阶码是一个整数B.整数是实数的特例,也可以用浮点数表示C.实数的补码是其对应的反码在最后一位加 1 D.相同长度的浮点数和定点数,前者可表示数的范围要大于后者解析:解析 正整数的补码与其原码一致;负整数的补码是其对应的反码在最后一位加 1。4.下列选项中,均属于通用软件的是_。(分数:2.50)A.Windows XP、AutoCAD、PowerPointB.Visual FoxPro、Excel、SPSSC.Word、Photoshop、Excel D.C+、CorelDraw、Firefox 2.0解析:解析 软件可以分为系统软件和应

    22、用软件两类,应用软件又可以分为针对具体应用问题而专门开发的订制应用软件和在许多行业与部门中可以广泛使用的通用应用软件。5.下列关于信息系统的叙述中,错误的是_。(分数:2.50)A.广播电视是一种双向的、点到多点的信息交互系统 B.网络聊天是一种双向的、以信息交互为主要目的的系统C.电话是一种双向的、点对点的、以信息交互为主要目的的系统D.雷达是一种以感测和识别为主要目的的系统解析:解析 广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。6.若在定义语句:int a,b,c,*p=B.scanf(“%d%d%“, a, b, c);C.scanf(“%d“, p); D.sc

    23、anf(“%d“, 解析:解析 题中整型指针变量 p 存放的是变量 c 的地址。所以本题答案为 C。7.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是_。(分数:2.50)A.均占 4 个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定 解析:解析 几类整型数所占用的字节数因编译系统或计算机系统的规定不同而有所差异。8.若已定义: int a=0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *p=a, i; 其中 0i9,则对 a 数组元素的引用不正确的是_。(分数:2.50)A.ap-aB.*( floa

    24、t y; char name50; scanf(“%2d%f%s“, 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为_。(分数:2.50)A.55566.0B.566.0 C.7777.0D.566777.0解析:解析 变量 j 只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量 y 中。10.若变量已正确定义,有以下程序段 i=0; do printf(“%d, “, i); while(i+); printf(“%d“, i) 其输出结果是_。(分数:2.50)A.0,0B.0,1 C.1,1D.程序进入无限循环解析:解析 本题中,

    25、变量 i 的初始值等于 0,执行循环体中的语句后,输出 i 的值为 0。while 后面括号中表达式 i+的值为 0,循环结束。此时变量 i 自加 1,所以再次输出“1”。11.有以下计算公式 (分数:2.50)A.if(x=0) y=sqrt(x);else y=sqrt(-x);B.y=sqrt(x)if(x0) y=sqrt(-x); C.if(x=0)y=sqrt(x);If(x0)y=sqrt(-x);D.y=sqrt(x=0?x:-x);解析:解析 选项 A、C、D 分别用一个 if else 语句、两个 if 语句和条件表达式表达了计算公式的含义。12.若有定义:int x,*p

    26、b;则正确的赋值表达式是_。(分数:2.50)A.pb=,程序前面已在命令行中包含 ctype.h 文件,不能用于判断 c 中的字符是否为大写字母的表达式是_。(分数:2.50)A.isupper(c)B.“A“=c=“Z“ C.“A“=c,以下不能计算出一个 char 型数据所占字节数的表达式是_。(分数:2.50)A.sizeof(p) B.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 选项 A 计算的是 p字符数组首地址所占的内存字节数。选项 B、C 和 D 都能计算出一个字符型数据所占的字节数。20.有以下函数: int aaa(char *s)

    27、char *t=s; while(*t+); t-; return(t-s); 以下关于 aaa 函数的功能叙述正确的是_。(分数:2.50)A.求字符串 s 的长度 B.比较两个串的大小C.将串 s 复制到串 tD.求字符串 s 所占字节数解析:解析 在 while 循环开始前,指针 t 和 s 都指向字符串的起始位置。while 循环的判断条件中,判断 t 所指位置是否为字符串的结束标志,同时让 t 右移一位。当 while 循环结束时,t 自减 1,此时 t指向的位置是字符串的结束标志,故 t-s 的值是字符串的长度。21.若有定义语句:int a36;,按在内存中的存放顺序,a 数组的

    28、第 10 个元素是_。(分数:2.50)A.a04B.a13 C.a03D.a14解析:解析 在 C 语言中数组的下标是从 0 开始,且二维数组元素的存储是按行存放的。22.有以下程序: #includestdio.h void fun(char*p) +p; printf(“%s“, “p); main() char*a=“Morning“, “Afternoon“, “Evening“, “Night“; fun(a); 程序的运行结果是_。(分数:2.50)A.Afternoon B.fternoonC.MorningD.orning解析:解析 执行 fun(a)语句时,p 指向的是字符

    29、串数组 a 的第一个字符串“Morning”,p 自加 1 之后,p 指向字符串数组 a 的第 2 个字符串“Afternoon”。23.若有定义语句:int a23, *p3;,则以下语句中正确的是_。(分数:2.50)A.p=a;B.p0=a; C.p0=D.p1=解析:解析 选项 B 表示把整型数组 a0的指针赋给 p0。24.有以下程序: #includestdio.h void fun(int*a, int n)/*fun 函数的功能是将 a 所指数组元素从大到小排序*/ int t, i, j; for(i=0; in-1; j+) for(j=i+1; jn; j+) if(ai

    30、aj)t=ai; ai=aj; aj=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; fun(c+4, 6); for(i=0; i10; i+) printf(“%d, “, ci); printf(“/n“); 程序运行的结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0, 解析:解析 fun()函数的功能是对数组 a的元素从大到小进行排序。25.有以下程序: #includestdio

    31、.h int fun(char s) int n=0; while(*s=“9“ s+; return(n); main() char s10=“6“, “1“, “*“, “4“, “*“, “9“, “*“, “0“, “*“; printf(“%d“, fun(s); 程序运行的结果是_。(分数:2.50)A.9B.61490C.61 D.5解析:解析 在 fun 函数中,while 循环的功能是逐个取字符数组 s 的字符判断其是否是数字。若是则将这些数字组成一个数保存到变量 n 中,并返回变量 n 的值。26.以下程序段给数组所有元素输入数据: #includestdio.hmain(

    32、) int a10, i=0; while(i10)scanf(“%d“, ); 应在下划线处填入的是_。(分数:2.50)A.a+(i+) B. for(; y0; y-) if(y%3=0) printf(“%d“, -y); 程序的运行结果是_。(分数:2.50)A.741B.963C.852 D.875421解析:解析 在 for 循环中,当 y 的值为 9、6 或 3 时,执行输出语句,输出表达式“-y”的值。y 先自减 1,然后再输出 y 的值。28.有以下程序: #includestdio.h void fun(char*t, char*s) while(*t!=0)t+; wh

    33、ile(*t+=*s+)!=0); main() char ss10=“acc“, aa10=“bbxxyy“; fun(ss, aa); printf(“%s, %s“, ss, aa); 程序运行结果是_。(分数:2.50)A.accxyy,bbxxyyB.acc,bbxxyyC.accxxyy,bbxxyyD.accbbxxyy,bbxxyy 解析:解析 主函数中语句 fun(ss,aa)的功能是将字符串 aa 连接到字符串 ss 的末尾。29.有以下程序: #includestdio.h #includestring.h void fun(char s10, int n) char t

    34、; int i, j; for(i=0; in-1; i+) for(j=i+1, jn; j+) /*比较字符串的首字符大小,并交换字符串的首字符*/ if(s0)sj0t=si0; si0=sj0; sj0=t; main() (char ss510=“bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“ fun(ss, 5); printf(“%s, %s“, ss0, ss4); 程序运行结果是_。(分数:2.50)A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc 解析:解析 函数 fun(char s10,int n)比较

    35、二维字符数组 s10的每个字符串的首字符大小,如果前一个字符串首字符大于后一个字符串的首字符,则交换这两个字符串的首字符。30.在一个 C 语言源程序文件中所定义的全局变量,其作用域为_。(分数:2.50)A.所在文件的全部范围B.所在程序的全部范围C.所在函数的全部范围D.由具体定义位置和 extern 说明来决定范围 解析:解析 全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用 extern 对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的

    36、作用域从 extern 说明处起,延伸到该函数末尾。31.有以下程序: #includestdio.h int a=1; int f(int c) static int a=2; c=c+1; return(a+)+c; main() int i, k=0; for(i=0; i2; i+)int a=3; k+=f(a); k+=a; printf(“%d/n“, k); 程序运行结果是_。(分数:2.50)A.14 B.15C.16D.17解析:解析 在主函数中,k 的初值为 0,首先调用函数 f(3),返回值为 6,k 的值变为 6,而函数 int fun(int c)中的局部静态变量

    37、a 等于 3。第二次调用函数 f(3)时,返回值为 7,所以 k=6+7=13。退出循环语句,k 再加上全局变量 a 的值 1,其最终的值为 14。32.有以下程序: #includestdio.h int f(int b, int n) int i, r=1; for(i=0; i=n; i+)r=r*bi; return r; main() int x, a=2, 3, 4, 5, 6, 7, 8, 9; x=f(a, 3); printf(“%d/n“, x); 程序的输出结果是_。(分数:2.50)A.720B.120 C.24D.6解析:解析 调用 x=f(a,3);for 循环 4

    38、 次,将前四个元素相乘,即得 r=2*3*4*5。33.若程序中有宏定义行:#define N 100,则以下叙述中正确的是_。(分数:2.50)A.宏定义行中定义了标识符 N 的值为整数 100B.在编译程序对 C 源程序进行预处理时用 100 替换标识符 N C.对 C 源程序进行编译时用 100 替换标识符 ND.在运行时用 100 替换标识符 N解析:解析 C 语言中,凡是以“#”号开头的行,都称为“编译预处理”。对 C 源程序进行编译前,由编译预处理程序对这些编译预处理命令进行处理。34.以下关于 typedef 的叙述错误的是_。(分数:2.50)A.用 typedef 可以增加新

    39、类型 B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 为类型说明一个新名,通常可以增加程序的可读性解析:解析 Typedef 语句的作用仅仅是用“标识符”来表示巳存在的“类型名”,并未产生新的数据类型。35.有以下程序: #includestdio.h Struct tt int x; struct tt *y; *p; struct tt a4=20, a+1, 15, a+2, 30, a+3, 17, a; main() int i; p=a; for(i=1; i=2; i

    40、+)printf(“%d, “, p-x); p=p-y; 程序的运行结果是_。(分数:2.50)A.20,30,B.30,17,C.15,30,D.20,15, 解析:解析 程序的结构体数组 a 的元素形成了一个单向的循环链表,每个元素的指针成员都指向下一个元素的地址。36.有以下程序: #includestdio.h #includestring.h typedef struct char name9; char sex; float score 2; STU; STU r(STU a) STU b=“Zhao“, “m“, 85.0, 90.0; int i; strcpy(a.name

    41、, b.name); a.sex=b.sex; for(i=0; i2; i+)a.scorei=b.scorei; return a; main() STU c=“Qian“, “f“, 95.0, 92.0, d; d=f(c); printf(“%s, %c, %2.0f, %2.0f“, d.name, d.sex, d.score0, d.score1); 程序的运行结果是_。(分数:2.50)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,m,85,90 D.Zhao,f,95,92解析:解析 f()函数的功能是对形参 a 的各个成员用结构体变量 b 的各个成

    42、员进行赋值后,然后返回变量 a。37.设有以下定义: union data int d1; float d2; demo; 则下面叙述中错误的是_。(分数:2.50)A.变量 demo 与成员 d2 所占的内存字节数相同B.变量 demo 中各成员的地址相同C.变量 demo 和各成员的地址相同D.若给 demo.d1 赋 99 后,demo.d2 中的值是 99.0 解析:解析 共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。38.若有以下程序: #includestdio.h main()

    43、 int k=2,m=4,n=6,*pk= printf(“%d/n“, n); 程序的输出结果是_。(分数:2.50)A.4B.6C.8 D.10解析:解析 p=,其中 buffer 代表的是_。(分数:2.50)A.一个文件指针,指向待读取的文件B.一个整型变量,代表侍读取的数据的字节数C.一个内存块的首地址,代表读入数据存放的地址 D.一个内存块的字节数解析:解析 fread 函数中的参数 buffer 是内存块的首地址,输入的数据存入此内存块中。40.有以下程序 #includestdio.h main() FILE*fp; int a10=1, 2, 3, 0, 0, i; fp=f

    44、open(“d2.dat, “wb“); fwrite(a, sizeof(int), 5, fp); fwritc(a, sizeof(int), 5, fp); fclose(fp); fp=fopen(“d2.dat“, “rb“); fread(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i10; i+)printf(“%d“, ai); 程序的运行结果是_。(分数:2.50)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0, 解析:解析 本题程序首先用函数 fopen()以“wb”的方式开打文件“d2.dat”,然后调用两次 fwrite函数将数组 a 的 5 个元素,依次输出到文件 fp 中,共 10 个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用 fread 函数从文件印中读取这 10 个字节的数据到数组 a 中。


    注意事项

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




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

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

    收起
    展开