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

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

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

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

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

    1、二级 C 语言-15-2 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下面不属于软件设计阶段任务的是_。(分数:1.00)A.制订软件确认测试计划B.数据库设计C.软件总体设计D.算法设计2.下面属于黑盒测试方法的是_。(分数:1.00)A.边界值分析B.路径测试C.语句覆盖D.逻辑驱动3.数据字典(DD)所定义的对象都包含于_。(分数:1.00)A.软件结构图B.方框图C.数据流图(DFD 图)D.程序流程图4.以下选项中正确的整型常量是_。(分数:1.00)A.12B.-20C.1,000D.4 5 65.下列运算符中优先级最高的运

    2、算符是_。(分数:1.00)A.!B.%C.-=D. scanf(“%d, %d“, B.p=“0“;C.p=0;D.p=“;20.下列叙述中正确的是_。(分数:1.00)A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是 0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量21.设有定义:int x=0, *p;,立刻执行以下语句,正确的语句是_。(分数:1.00)A.p=x;B.*p=x;C.p=NULL;D.*p=NULL;22.有以下程序: #include stdio.h main() int a=-2, b=0; while(a+

    3、printf(“%d, %d/n“, a, b); 程序运行后的输出结果是_。(分数:1.00)A.1,3B.0,2C.0,3D.1,223.设有定义:int x23;,则以下关于二维数组 x 的叙述错误的是_。(分数:1.00)A.x0可看做是由 3 个整型元素组成的一维数组B.x0和 x1是数组名,分别代表不同的地址常量C.数组 x 包含 6 个元素D.可以用语句 x0=0;为数组所有元素赋初值 024.有以下程序: #includestdio.h int f(int x); main() int a, b=0; for(a=0; a3; a+) b=b+f(a); putchar(“A“

    4、+b); int f(int x) return x*x1; 程序运行后的输出结果是_。(分数:1.00)A.ABEB.BDIC.BCFD.BCD25.有以下程序: #include stdio.h main() char a=“H“; a=(a=“A“ printf(“%c/n“, a); 程序运行后的输出结果是_。(分数:1.00)AABaCHDh26.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的 switch 语句是_。(分数:1.00)A.switch(a+9)case c1: y=a-b;case c2: y=a+b;B.switch a*b case 10:

    5、x=a+b;default: y=a-b;C.switch(a+b)case1: case3: y=a+b; break;case0: case4: y=a-b;D.switch(a*a+b*b)default: break;case 3: y=a+b; break;case 2: y=a-b; break;27.有以下程序: #includestdio.h main() int a=10, 20, 30, 40), *p=a, j; for(i=0; i=3; i+)ai=*p; p+; printf(“%d/n“, a2); 程序运行后的输出结果是_。(分数:1.00)A.30B.40C.

    6、10D.2028.有以下程序: #includestdio.h #define N 3 void fun(int aN, int b) int i, j; for(i=0; iN; i+) bi=ai0; for(j=i; jN; j+) if(biaij) bi=aij; main() 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.2,4,8,B.3,6,9,C.3,5,7,D.1,3

    7、,5,29.以下叙述中错误的是_。(分数:1.00)A.函数的返回值类型不能是结构体类型,只能是简单类型B.函数可以返回指向结构体变量的指针C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员D.只要类型相同,结构体变量之间可以整体赋值30.以下选项中,合法的是_。(分数:1.00)A.char str3=“d“, “e“, “b“, “u“, “g“, “/0“;B.char str4; str4=“hello world“;C.char name10; name=“china“;D.char str15=“pass“, str26; str2=str1;31.有以下程序: #inc

    8、ludestdio.h main() char *s=“234“; int k=0, a=0; while(sk+1!=“/0“) k+; if(k%2=0)a=a+(sk-“0“+1); continue; a=a+(sk-“0“); printf(“k=%d a=%d/n“, k, a); 程序运行后的输出结果是_。(分数:1.00)A.k=6 a=11B.k=3 a=14C.k=4 a=12D.k=5 a=1532.有以下程序: #includestdio.h main() FILE *fp; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2.dat“,

    9、“w+“); for=(i=0; i6; i+) fpintf(fp, “%d/n“, ai); rewind(fp); for(i=0; i6; i+) fscanf(fp, “%d“, fclose(fp); for(i=0; i6; i+) printf(“%d, “, ai); 程序运行后的输出结果是_。(分数:1.00)A.4,5,6,1,2,3,B.1,2,3,3,2,1,C.1,2,3,4,5,6,D.6,5,4,3,2,1,33.有以下程序: #include stdio.h int a=1, b=2; void fun1(int a, int b) printf(“%d%d“

    10、, a, b); void fun2() a=3; b=4; main() fun1(5, 6); fun2(); printf(“%d%d/n“, a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4C.5 6 1 2D.3 4 5 634.有以下程序: #include stdio.h void func(int n) static int num=1; num=num+n; printf(“%d“, num); main() func(3); func(4); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.4 8B.3

    11、4C.3 5D.4 535.有以下程序: #include stdio.h #include stdlio.h void fun(int *p1, int *p2, int *s) s=(int*)malloc(sizeof(int); *s=*p1+*p2; free(s); main() int a=1, b=40, *q= fun( printf(“%d/n“, *q); 程序运行后的输出结果是_。(分数:1.00)A.42B.0C.1D.4136.有以下程序: #include stdio.h struct STUchar name9; char sex; int score2; ;

    12、void f(struct STU a) struct STU b=“Zhao“, “m“, 85, 90; a1=b; main() struct STU c2=“Qian“, “f“, 95, 92, “Sun“, “m“, 98, 99; f(c); printf(“%s, %c, %d, %d, “, c0.name, c0.sex, c0.score0, c0.score1); printf(“%s, %c, %d, %d/n“, c1.name, c1.sex, c1.score0, c1.score1); 程序运行后的输出结果是_。(分数:1.00)A.Zhao, m, 85,

    13、90, Sun, m, 98, 99B.Zhao, m, 85, 90, Qian, f, 95, 92C.Qian, f, 95, 92, Sun, m, 98, 99D.Qian, f, 95, 92, Zhao, m, 85, 9037.以下叙述中错误的是_。(分数:1.00)A.可以用 typedef 说明的新类型名来定义变量B.typedef 说明的新类型名必须使用大写字母,否则会出编译错误C.用 typedef 可以为基本数据类型说明一个新名称D.用 typedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名38.有以下程序(strcpy 为字符串复制函数,strcat

    14、 为字符串连接函数): #includestdio.h #includestring.h main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是_。(分数:1.00)A.a12xyzB.12yzC.a2yzD.bc2yz39.若有定义语句 int b=2;,则表达式(b2)/(3|b)的值是_。(分数:1.00)A.4B.8C.0D.240.有以下程序: #includestdio.h main() char a510=“one“, “two“, “three

    15、“, “four“, “five“; int i, j; char t; for(i=0; i4; i+) for(j=i+1; j5; j+) if(ai0aj0) t=ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是_。(分数:1.00)A.fwoB.fixC.twoD.owo二、程序填空题(总题数:1,分数:18.00)41.请补充 main()函数,该函数的功能是:输入两个正整数 num1 和 num2,求这两个数的最大公约数和最小公倍数。 例如,若输入的两个正整数为 12、4,则它们的最大公约数为 4,最小公倍数为 12。 注意:部分源程序给出如下

    16、。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h void main() int a, b, num1, num2, t; system(“CLS“); printf(“/nInput two numbers: /n“); scanf(“%d, %d“, if(num1num2) a=num2; b=num1; else a=num1; b=num2; while( 1) t= 2 a=b; b=t; printf(“greatest common d

    17、ivisor: %d/n“, a); printf(“least common multiple: %d/n“, 3); (分数:18.00)三、程序改错题(总题数:1,分数:24.00)42.下列给定程序中函数 proc 的功能是:取出长整型变量 s 中偶数位上的数,依次构成一个新数放在 t 中。例如,当 s 中的数为 123456789 时,t 中的数为 2468。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includestdio.h #includeconio.h

    18、/*found* void proc(long s, long t) long s1=10; s/=10; *t=s%10; /*found* while(s0) s=s/100; *t=s%10*s1+*t; s1=s1*10; void main() long s, t; system(“CLS“); printf(“/nPlease enter s: “); scanf(“%ld“, proc(s, printf(“The result is:%ld/n“, t); (分数:24.00)_四、程序设计题(总题数:1,分数:18.00)43.请编写函数 proc(),其功能是:将 str

    19、所指字符串中除下标为偶数、同时 ASCII 码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。例如,若 str 所指字符串中的内容为 ABCDEFG12345,其中字符 B 的 ASCII 码值为偶数,所在元素的下标为奇数,因此必须删除;而字符 A 的 ASCII 码值为奇数,所在数组中的下标为偶数,因此不应当删除。依此类推,最后 t 所指的数组中的内容应是 ACEG。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所写的若干语句。 试题程序: #includestdlib.h #inc

    20、ludeconio.h #includestdio.h #includestring.h void proc(char*str, char t) void main() char str100, t100; system(“CLS“); printf(“/nPlease enter string str: “); scanf(“%s“, str); proc(str, t); printf(“/nThe result is: %s/n“, t); (分数:18.00)_二级 C 语言-15-2 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.

    21、下面不属于软件设计阶段任务的是_。(分数:1.00)A.制订软件确认测试计划 B.数据库设计C.软件总体设计D.算法设计解析:解析 软件设计阶段的主要任务包括两个:一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成;二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。2.下面属于黑盒测试方法的是_。(分数:1.00)A.边界值分析 B.路径测试C.语句覆盖D.逻辑驱动解析:解析 黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。3.数据字典(DD)所定义的对象都包含于_。(分数

    22、:1.00)A.软件结构图B.方框图C.数据流图(DFD 图) D.程序流程图解析:解析 数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。4.以下选项中正确的整型常量是_。(分数:1.00)A.12B.-20 C.1,000D.4 5 6解析:解析 选项 A,为 float 类型;选项 C,中间有逗号不是一个常量;选项 D,中间有空格,是三个连续的整形常量。5.下列运算符中优先级最高的运算符是_。(分数:1.00)A.! B.%C.-=D. scanf(“%d, %d“, B.p=“0“;C.p

    23、=0; D.p=“;解析:解析 在 C 语言中 NULL 等价于数字 0。20.下列叙述中正确的是_。(分数:1.00)A.可以用关系运算符比较字符串的大小B.空字符串不占用内存,其内存空间大小是 0C.两个连续的单引号是合法的字符常量D.两个连续的双引号是合法的字符串常量 解析:解析 比较两个字符串大小用函数 strcomp(s,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。21.设有定义:int x=0, *p;,立刻执行以下语句,正确的语句是_。(分数:1.00)A.p=x;B.*p=x;C.p=NULL; D.*p=NULL;解析:解析 如果没有把 p 指向一个

    24、指定的值,*p 是不能被赋值的。定义指针变量不赋初始值时默认为NULL。22.有以下程序: #include stdio.h main() int a=-2, b=0; while(a+ printf(“%d, %d/n“, a, b); 程序运行后的输出结果是_。(分数:1.00)A.1,3B.0,2C.0,3D.1,2 解析:解析 输出的结果是:-1,1 0,2 1,223.设有定义:int x23;,则以下关于二维数组 x 的叙述错误的是_。(分数:1.00)A.x0可看做是由 3 个整型元素组成的一维数组B.x0和 x1是数组名,分别代表不同的地址常量C.数组 x 包含 6 个元素D.

    25、可以用语句 x0=0;为数组所有元素赋初值 0 解析:解析 x0是不能赋值的。24.有以下程序: #includestdio.h int f(int x); main() int a, b=0; for(a=0; a3; a+) b=b+f(a); putchar(“A“+b); int f(int x) return x*x1; 程序运行后的输出结果是_。(分数:1.00)A.ABEB.BDI C.BCFD.BCD解析:解析 在函数 main()中,第一次执行 for 循环时,b 的值等于 1,此时输出字母 B;第二次执行for 循环时,b 的值等于 3,此时输出字母 D;第三次执行 for

    26、 循环时,b 的值等于 8,此时输出字母 1。25.有以下程序: #include stdio.h main() char a=“H“; a=(a=“A“ printf(“%c/n“, a); 程序运行后的输出结果是_。(分数:1.00)AABaCHDh 解析:解析 多元运算符问号前面表达式为真,所以(a-“A“+“a“)赋值给 a,括号里的运算是把大写字母变成小写字母,所以答案应为选项 D。26.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的 switch 语句是_。(分数:1.00)A.switch(a+9)case c1: y=a-b;case c2: y=a+b;B

    27、.switch a*b case 10: x=a+b;default: y=a-b;C.switch(a+b)case1: case3: y=a+b; break;case0: case4: y=a-b;D.switch(a*a+b*b)default: break;case 3: y=a+b; break;case 2: y=a-b; break; 解析:解析 选项 A,当 c1 和 c2 相等时,不成立;选项 B,a*b 要用括号括起来;选项 C,case 与后面的数字用空格隔开。27.有以下程序: #includestdio.h main() int a=10, 20, 30, 40),

    28、 *p=a, j; for(i=0; i=3; i+)ai=*p; p+; printf(“%d/n“, a2); 程序运行后的输出结果是_。(分数:1.00)A.30 B.40C.10D.20解析:解析 for 循环结束后,数组 a 的值并没有变化,由于数组是由 0 开始的,所以 a2的值是 30。28.有以下程序: #includestdio.h #define N 3 void fun(int aN, int b) int i, j; for(i=0; iN; i+) bi=ai0; for(j=i; jN; j+) if(biaij) bi=aij; main() int xNN=1,

    29、 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.2,4,8,B.3,6,9, C.3,5,7,D.1,3,5,解析:解析 fun 函数功能是把数组 a 的每一行的最大值赋给 b,a 的第一行的最大值是 3,第二行的最大值是 6,第三行的最大值是 9,所以答案是 3,6,9。29.以下叙述中错误的是_。(分数:1.00)A.函数的返回值类型不能是结构体类型,只能是简单类型 B.函数可以返回指向结构体变量的指针C

    30、.可以通过指向结构体变量的指针访问所指结构体变量的任何成员D.只要类型相同,结构体变量之间可以整体赋值解析:解析 函数返回值类型可分为简单类型和结构体类型。30.以下选项中,合法的是_。(分数:1.00)A.char str3=“d“, “e“, “b“, “u“, “g“, “/0“; B.char str4; str4=“hello world“;C.char name10; name=“china“;D.char str15=“pass“, str26; str2=str1;解析:解析 选项 B 不能把一个字符串赋值给一个字符变量,选项 C 和 D 犯了同样的错误是把字符串赋给了数组名。

    31、31.有以下程序: #includestdio.h main() char *s=“234“; int k=0, a=0; while(sk+1!=“/0“) k+; if(k%2=0)a=a+(sk-“0“+1); continue; a=a+(sk-“0“); printf(“k=%d a=%d/n“, k, a); 程序运行后的输出结果是_。(分数:1.00)A.k=6 a=11B.k=3 a=14C.k=4 a=12 D.k=5 a=15解析:解析 输出结果: k=1 a=2 k=2 a=4 k=3 a=7 k=4 a=1232.有以下程序: #includestdio.h main(

    32、) FILE *fp; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2.dat“, “w+“); for=(i=0; i6; i+) fpintf(fp, “%d/n“, ai); rewind(fp); for(i=0; i6; i+) fscanf(fp, “%d“, fclose(fp); for(i=0; i6; i+) printf(“%d, “, ai); 程序运行后的输出结果是_。(分数:1.00)A.4,5,6,1,2,3,B.1,2,3,3,2,1,C.1,2,3,4,5,6,D.6,5,4,3,2,1, 解析:解析 这个是对文件的操作,把数

    33、组的数写到文件里,然后再从文件里倒序读出。所以输出结果为 6,5,4,3,2,1。33.有以下程序: #include stdio.h int a=1, b=2; void fun1(int a, int b) printf(“%d%d“, a, b); void fun2() a=3; b=4; main() fun1(5, 6); fun2(); printf(“%d%d/n“, a,b); 程序运行后的输出结果是_。(分数:1.00)A.1 2 5 6B.5 6 3 4 C.5 6 1 2D.3 4 5 6解析:解析 fun1 是输出局部变量的值,fun2 是把全局变量的值改成 3 和

    34、4,所以输出的结果是 5 6 3 4。34.有以下程序: #include stdio.h void func(int n) static int num=1; num=num+n; printf(“%d“, num); main() func(3); func(4); printf(“n“); 程序运行后的输出结果是_。(分数:1.00)A.4 8 B.3 4C.3 5D.4 5解析:解析 第一次调用 func 函数时输出 4,第二次调用 func 函数时 num 的值并不会释放,仍然是上次修改后的值 4,第二次调用结果为 8,所以输出结果是 4 8。35.有以下程序: #include s

    35、tdio.h #include stdlio.h void fun(int *p1, int *p2, int *s) s=(int*)malloc(sizeof(int); *s=*p1+*p2; free(s); main() int a=1, b=40, *q= fun( printf(“%d/n“, *q); 程序运行后的输出结果是_。(分数:1.00)A.42B.0C.1 D.41解析:解析 fun 函数功能是新开辟内存空间存放 a 和 b 的地址,q 的地址并没有变化,所以应该还是指向地址 a。36.有以下程序: #include stdio.h struct STUchar na

    36、me9; char sex; int score2; ; void f(struct STU a) struct STU b=“Zhao“, “m“, 85, 90; a1=b; main() struct STU c2=“Qian“, “f“, 95, 92, “Sun“, “m“, 98, 99; f(c); printf(“%s, %c, %d, %d, “, c0.name, c0.sex, c0.score0, c0.score1); printf(“%s, %c, %d, %d/n“, c1.name, c1.sex, c1.score0, c1.score1); 程序运行后的输出

    37、结果是_。(分数:1.00)A.Zhao, m, 85, 90, Sun, m, 98, 99B.Zhao, m, 85, 90, Qian, f, 95, 92C.Qian, f, 95, 92, Sun, m, 98, 99D.Qian, f, 95, 92, Zhao, m, 85, 90 解析:解析 f 函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选 D。37.以下叙述中错误的是_。(分数:1.00)A.可以用 typedef 说明的新类型名来定义变量B.typedef 说明的新类型名必须使用大写字母,否则会出编译错误 C.用 typedef 可以为基本数据

    38、类型说明一个新名称D.用 typedef 说明新类型的作用是用一个新的标识符来代表已存在的类型名解析:解析 用 typedef 说明的类型不是必须用大写,而是习惯上用大写。38.有以下程序(strcpy 为字符串复制函数,strcat 为字符串连接函数): #includestdio.h #includestring.h main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是_。(分数:1.00)A.a12xyzB.12yzC.a2yz D.bc2yz解析:解

    39、析 第一次执行字符串的复制函数 a 的值是 a2,第二次执行的是字符串的连接函数,所以运行结果为 a2yz。39.若有定义语句 int b=2;,则表达式(b2)/(3|b)的值是_。(分数:1.00)A.4B.8 C.0D.2解析:解析 2 的二进制数为 010,移两位后的二进制数为 01000,转成十制数为 8,(3|2)为真即1,8/1=8,所以结果为 8。40.有以下程序: #includestdio.h main() char a510=“one“, “two“, “three“, “four“, “five“; int i, j; char t; for(i=0; i4; i+)

    40、for(j=i+1; j5; j+) if(ai0aj0) t=ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是_。(分数:1.00)A.fwo B.fixC.twoD.owo解析:解析 for 循环完成的功能是把二维数组 a 的第一列字母按从小到大排序,其他列的字母不变。二、程序填空题(总题数:1,分数:18.00)41.请补充 main()函数,该函数的功能是:输入两个正整数 num1 和 num2,求这两个数的最大公约数和最小公倍数。 例如,若输入的两个正整数为 12、4,则它们的最大公约数为 4,最小公倍数为 12。 注意:部分源程序给出如下。 请勿

    41、改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h void main() int a, b, num1, num2, t; system(“CLS“); printf(“/nInput two numbers: /n“); scanf(“%d, %d“, if(num1num2) a=num2; b=num1; else a=num1; b=num2; while( 1) t= 2 a=b; b=t; printf(“greatest common divis

    42、or: %d/n“, a); printf(“least common multiple: %d/n“, 3); (分数:18.00)解析:b!=0 a%b num1*num2/a解析 由程序可知,变量 b 中存放两个正整数中较小的那个数,while 循环求两个正整数的公约数。因此第一空填“b!=0”;第二空填“a%b”;第三处是求两个正整数最小公倍数的表达式,因此第三空填“num1*num2/a”。三、程序改错题(总题数:1,分数:24.00)42.下列给定程序中函数 proc 的功能是:取出长整型变量 s 中偶数位上的数,依次构成一个新数放在 t 中。例如,当 s 中的数为 1234567

    43、89 时,t 中的数为 2468。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includestdio.h #includeconio.h /*found* void proc(long s, long t) long s1=10; s/=10; *t=s%10; /*found* while(s0) s=s/100; *t=s%10*s1+*t; s1=s1*10; void main() long s, t; system(“CLS“); printf(“/nPleas

    44、e enter s: “); scanf(“%ld“, proc(s, printf(“The result is:%ld/n“, t); (分数:24.00)_正确答案:()解析:(1)错误:void proc(long s, long t) 正确:void proc(long s, long*t) (2)错误:while(s0) 正确:while(s0) 解析 从主函数中实参可知,形参的第二个变量是长整型的指针变量。因此“void proc(long s, longt)”应改为“void proc(long s, long*t)”;要从低位开始取出长整型变量 s 中偶数位上的数,每次变量

    45、s 要除以 100,然后判断其是否大于 0 来决定是否要继续,因此“while(s0)”应改为“while(s0)”。四、程序设计题(总题数:1,分数:18.00)43.请编写函数 proc(),其功能是:将 str 所指字符串中除下标为偶数、同时 ASCII 码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。例如,若 str 所指字符串中的内容为 ABCDEFG12345,其中字符 B 的 ASCII 码值为偶数,所在元素的下标为奇数,因此必须删除;而字符 A 的 ASCII 码值为奇数,所在数组中的下标为偶数,因此不应当删除。依此类推,最后 t 所指的数组中的内容应是 ACEG。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所写的若干语句。 试题程序: #includestdlib.h #inclu


    注意事项

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




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

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

    收起
    展开