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

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

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

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

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

    1、二级 C 语言分类模拟题 551 及答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.A45D78B.ABC678C.34CD78D.34AB782.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储

    2、顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上 3 种说法都不对3.以下叙述错误的是_。(分数:2.00)A.C 语言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来D.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示4.有两个关系 R 和 T 如下: R A B C a 1 2 b 4 4 c 2 3 d 3 2 T A C a 2 b 4 c 3 d 2 则由关系 R 得到关系 T 的操

    3、作是_。(分数:1.00)A.选择B交C.投影D并5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转C.选择(分支)结构D.重复(循环)结构6.C 源程序中不能表示的数制是_。(分数:2.00)A.十六进制B.八进制C.十进制D.二进制7.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84B.“CPP“C.“/1.0D.2MB8.设二叉树共有 150 个结点,其中度为 1 的结点有 10 个,则该二叉树中的叶子结点数为_。(分数:1.00)A.71B.70C.69D.不可能有这样的二叉树9.下列选项中,能正确定义数组的语句是_。(分数:

    4、1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;10.下列程序的输出结果是_。 #includestdio.h main() int i, s=0; for(i=1; i10; i+) if(!(i%2) printf(“%d/n“, s); (分数:2.50)A.4B.39C.45D.611.以下语句的输出结果是_。 printf(“%d/n“,strlen(“/t“/065/xff/n“);(分数:1.00)A.5B.8C.14D.输出项不合法,无正常输出12.下列叙述中正确的是_。(

    5、分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化13.若用数组名作为实参,则传递给形参的是_。(分数:1.00)A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数14.有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i6;i+) fprint

    6、f(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“); rewind(fp); fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。(分数:1.00)A.0 0B.123 45C.1 4D.1 215.以下叙述中正确的是_。(分数:2.50)A.数组下标的下限是 1B.数组下标的下限由数组中第一个非零元素的位置决定C.数组下标的下限由数组中第一个被赋值元素的位置决定D.char c1, c2, *c3,c440;是合法的变量定义语句16.有以下程序 #include int fun(

    7、char s)int n=0;while(*s=“9“s+;return(n);main()char s10=“6“,“1“,“*“,“4“,“*“,“9“,“*“,“0“,“*“;printf(“%d/n“,fun(s);程序的运行结果是_。 A.61490 B.61 C.9 D.5A B C D B解析 f 函数将数组字符串转换为对应的整数,遇见不是数字字符停止,所以答案选择 B。(分数:1.00)A.61490B.61C.9D.517.下面程序段的运行结果是 char a =“lanuage“,*p; p=a; while(*p!=“u“)printf(“%c“,*p-32);p+;(分

    8、数:2.00)A.LANGUAGEB.languageC.LAND.langUAGE18.有以下程序 #includestdio.h typedef structint b,p;A; void f(A c) /* 注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(A); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,2C.1,4D.2,319.已定义以下函数: int fun(int *p) return *p; fun 函数返回值是_。(分数:2.50

    9、)A.一个整数B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值20.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中 buffer 代表的是_。(分数:2.00)A.一个内存块的字节数B.一个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.一个内存块的首地址,代表读入数据存放的地址21.在位运算中,操作数每右移两位,其结果相当于 _ 。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 422.以下叙述中正确的是_。(分数:1.00)A.a 是实型变量,C 允许进行赋值 a=1

    10、0,但不可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 323.以下选项中,能够正确利用随机函数 rand(),产生一个英文字母的表达式是_。(分数:1.00)A.rand()%2=0?rand()%“A“:rand()%“a“B.rand()%26+“A“|rand()%26+“a“C.rand()%26+“A“

    11、B.double int_;C.char For;D.float US$;31.以下程序的输出结果是_。 #includestdjo.h struct st int x;int*y;*p; int dt4=1,2,3,4); struct st aa41=2, main() p=aa; printf(“%d/n“,+(p-x); (分数:2.00)A.1B.2C.3D.432.有以下程序: #includestdio.h #define N 4 main() int aNN=0, i, j, k; for(i=0; iN/2; i+) for(j=i; jN-i; j+) aij=aN-i-1

    12、j=i+1; for(k=i+1; kN-i-1; k+) aki=akN-i-1=i+1; for(j=0; jN; j+) printf(“%2d“, a1j); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.1 2 2 1B.1 1 1 1C.2 1 1 2D.2 2 2 233.设有定义:“int a; float b;”,执行“scanf(“%2d%f“, ”语句时,若从键盘输入876543.0回车,a 和 b 的值分别是_。(分数:2.50)A.876 和 543.000000B.87 和 6.000000C.87 和 543.000000D.76 和 5

    13、43.00000034.以下选项中叙述错误的是_。(分数:1.00)A.C 程序函数中定义的赋有初值的静态变量,每调用一次函数赋一次初值B.在 C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量35.有以下函数: int aaa(char *s) char *t=s; while(*t+ +); t-; return(t-s); 以下关于 aaa 函数功能叙述正确的是_。(分数:2.50)A.将串 s 复制到串 tB.比较两个串的大小C.求字符串 s 的长度D.

    14、求字符串 s 所占字节数36.有以下程序 #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in;i+) sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.50B.60C.45D.5537.设有以下程序段 int X=0,s=0; while(!X!=0)S+=+X; printf(“%d“,s); 则(分数:2.00)A.

    15、运行程序段后输出 0B.运行程序段后输出 1C.程序段中的控制表达式是非法的D.程序段执行无限次38.以下对 C 语言中联合类型数据的正确叙述是_。(分数:2.00)A.定义了联合变量后,即可引用该变量或该变量中的任意成员B.一个联合变量中可以同时存放其所有成员C.联合中的各个成员使用共同的存储区域D.在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变39.有以下定义和语句: struct workers int num; char name20; char c; struct int day; int month; int year; s; ; struct workers w, *

    16、pw; pw= 能给 w 中 year 成员赋 1980 的语句是_。(分数:1.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980D.s.year=1980;40.有以下程序: #include stdio.h #define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+ +) bi = aii; main( ) int xN=1,2,3,4,5,6,7,8,9,10,yN,i; fun(x, y); for(i=0;iN;i+ +) printf(“%d,“, yi); printf(“/n“); 程

    17、序的运行结果是_。(分数:2.50)A.1,0,7,0,B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,二级 C 语言分类模拟题 551 答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.A45D78 B.ABC678C.34CD78D.3

    18、4AB78解析:解析 putchar 函数是向标准输出设备上输出一个字符。字符在内存中以 AScII 码方式存储,可以与整数进行加减运算,但是要保证计算结果在 0255 之间。本题执行过程为:i=0,i%3=0,if 条件不成立执行 else 函数体,输出字符 A;i=1,i%3=1,if 条件成立输出字符 4;i=2,i%3=2,if 条件成立输出字符 5;i=3,if 条件不成立,输出字符 D;i=4 和 i=5 时,分别输出字符 7 与 8;i=6 退出 for 循环。所以程序运行后输出结果为 A45D78,故 A 选项正确。2.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A

    19、.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素 D.以上 3 种说法都不对解析:解析 线性链表中各个数据节点的存储空间可以不连续,其存储顺序与逻辑顺序也可以不一致,所以 A 和 B 选项错误。线性链表在插入和删除数据时只需要修改指针的指向,即可不需要移动表中的元素。3.以下叙述错误的是_。(分数:2.00)A.C 语言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来 D

    20、.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示解析:4.有两个关系 R 和 T 如下: R A B C a 1 2 b 4 4 c 2 3 d 3 2 T A C a 2 b 4 c 3 d 2 则由关系 R 得到关系 T 的操作是_。(分数:1.00)A.选择B交C.投影 D并解析:解析 关系 T 是由关系 R 的第 1、3 列的元组组成,这是对关系 R 进行投影运算的结果。可以简单理解为:选择运算是对行的操作,投影运算是对列的操作。5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转 C.选择(分支)结构D.重复(循环)结构解析:解析

    21、 1966 年 Boehm 和 Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。6.C 源程序中不能表示的数制是_。(分数:2.00)A.十六进制B.八进制C.十进制D.二进制 解析:解析 在 C 语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择 D。7.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84 B.“CPP“C.“/1.0D.2MB解析:解析 21.84 是典型的浮点型数据,故 A 选项正确;字符常量是单引号括起来的一个字符,字符串常量是双引号括起来的字符序列

    22、,B、C 选项错误;C 语言常量不能直接用未加引号的字母、数字组合,故 D 选项错误。8.设二叉树共有 150 个结点,其中度为 1 的结点有 10 个,则该二叉树中的叶子结点数为_。(分数:1.00)A.71B.70C.69D.不可能有这样的二叉树 解析:解析 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为 0 的结点总是比度为 2 的结点多一个。如果有一棵二叉树,结点总数为150,假设度为 0 的结点个数为 n,则有 n+10+n-1=150,n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择 D 选项。9

    23、.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN; 解析:解析 C 语言不允许定义动态数组,定义数组的大小必须为常量表达式。A 选项错误,C 语言中数组没有此类型的定义方法;B 选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C 选项错误,N 为变量,不能用来定义数组大小。因此 D 选项正确。10.下列程序的输出结果是_。 #includestdio.h main() int i, s=0; for(i=1; i10;

    24、 i+) if(!(i%2) printf(“%d/n“, s); (分数:2.50)A.4B.39C.45D.6 解析:解析 if 语句的条件是当 i 既是 3 的倍数又是 2 的倍数时成立,所以此程序实现的功能是将 10以内既是 3 的倍数又是 2 的倍数的数相加。11.以下语句的输出结果是_。 printf(“%d/n“,strlen(“/t“/065/xff/n“);(分数:1.00)A.5 B.8C.14D.输出项不合法,无正常输出解析:解析 由一对双引号括起来的一串字符为字符串。字符常量是用一对单引号括起来的单个字符,还有一些特殊字符常量,即以“/”开头的转义字符。“/”后可以为某

    25、些单个字符也可以为八进制或十六进制数字。/t“/065/xff/n共 5 个字符,故 A 选项正确。12.下列叙述中正确的是_。(分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化解析:解析 栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案为 C。13.若用数组名作为实参,则传递给形参的是_。(分数:1.00)A.数组的首地址

    26、B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数解析:解析 用数组名作为实参,调用函数只是把数组的首地址传送给形参指针。14.有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i6;i+) fprintf(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“); rewind(fp); fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。(分数:1.00

    27、)A.0 0B.123 45C.1 4D.1 2 解析:解析 程序首先定义了一个文件指针 fp,并使用 fopen()函数以“w+”方式新建一个可读写文件“data.dat”。然后使用一个 for 循环,循环变量 i 从 1 递增到 5,在循环体中每次写入循环变量 i 的值和 4 个空格,当 i 能被 3 整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为: 1 2 3 4 5 接下来程序使用 rewind()函数,将文件的读写指针调回起始位置。并调用 fscanf()函数从文件中读取两个整数到变量 k 和 n。所以最终输出应该为:1 2。故本题选 D。15.以下叙述中正确的是_。(

    28、分数:2.50)A.数组下标的下限是 1B.数组下标的下限由数组中第一个非零元素的位置决定C.数组下标的下限由数组中第一个被赋值元素的位置决定D.char c1, c2, *c3,c440;是合法的变量定义语句 解析:解析 C 语言规定,数组下标值的下限一律为 0,对于一维数组 amax(max 是一个编译时可知的值)来说,它的第一个和最后一个元素分别是 a0和 amax-1。所以,数组下标值的下限与数组中元素的位置无关,故 A、B、C 选项错误。16.有以下程序 #include int fun(char s)int n=0;while(*s=“9“s+;return(n);main()ch

    29、ar s10=“6“,“1“,“*“,“4“,“*“,“9“,“*“,“0“,“*“;printf(“%d/n“,fun(s);程序的运行结果是_。 A.61490 B.61 C.9 D.5A B C D B解析 f 函数将数组字符串转换为对应的整数,遇见不是数字字符停止,所以答案选择 B。(分数:1.00)A.61490B.61 C.9D.5解析:解析 f 函数将数组字符串转换为对应的整数,遇见不是数字字符停止,所以答案选择 B。17.下面程序段的运行结果是 char a =“lanuage“,*p; p=a; while(*p!=“u“)printf(“%c“,*p-32);p+;(分数:

    30、2.00)A.LANGUAGEB.languageC.LAN D.langUAGE解析:解析 本段程序的作用是输出字符串“lanuage”中字母 u 之前的字符,并将其转化为大写字母。 注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最长字符多一个元素,以存放,/0,。18.有以下程序 #includestdio.h typedef structint b,p;A; void f(A c) /* 注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(A); printf(“%

    31、d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,2 C.1,4D.2,3解析:解析 结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实现传值调用,实参将复制的副本传递给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。因此本题选择 B。19.已定义以下函数: int fun(int *p) return *p; fun 函数返回值是_。(分数:2.50)A.一个整数 B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值解析:解析 返回值

    32、为指针变量指向的数据,该数据已被定义为整型。因此 A 选项正确。20.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中 buffer 代表的是_。(分数:2.00)A.一个内存块的字节数B.一个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.一个内存块的首地址,代表读入数据存放的地址 解析:解析 函数:fread(void * buffer, size t size,size t count, FILE * stream);的功能是从一个文件流中读数据,读取 count 个元素,每个元素 size 字节,如果调用成功则返回

    33、count。其中,buffer 用于接收数据的内存地址,大小至少是 size * count 字节;size 表示单个元素的大小,单位是字节;count 表示元素的个数,每个元素是 size 字节;stream 表示输入流。21.在位运算中,操作数每右移两位,其结果相当于 _ 。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4 D.操作数乘以 4解析:解析 在位运算中,操作数每右移两位,相当于在操作数的左侧添 0,最右面的两位被移出,即操作数除以 4。22.以下叙述中正确的是_。(分数:1.00)A.a 是实型变量,C 允许进行赋值 a=10,但不可以这样说:实型变量中

    34、允许存放整型值 B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 3解析:解析 C 语言中语法上规定实型变量是不能存放整型类的数据的,整型数据也不能存放实型数据。这是为了避免类型转换之间可能会发生错误。23.以下选项中,能够正确利用随机函数 rand(),产生一个英文字母的表达式是_。(分数:1.00)A.rand()%2=0?rand()%“A“:r

    35、and()%“a“B.rand()%26+“A“|rand()%26+“a“C.rand()%26+“A“B.double int_;C.char For;D.float US$; 解析:解析 C 语言中用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,C 语言规定标识符能由字母、数字和下划线三种字符组成,且第个字符必须为字母或下划线。选项 D 中含有“$”,故不符合标识符的定义。31.以下程序的输出结果是_。 #includestdjo.h struct st int x;int*y;*p; int dt4=1,2,3,4); struct st aa41=

    36、2, main() p=aa; printf(“%d/n“,+(p-x); (分数:2.00)A.1B.2C.3 D.4解析:32.有以下程序: #includestdio.h #define N 4 main() int aNN=0, i, j, k; for(i=0; iN/2; i+) for(j=i; jN-i; j+) aij=aN-i-1j=i+1; for(k=i+1; kN-i-1; k+) aki=akN-i-1=i+1; for(j=0; jN; j+) printf(“%2d“, a1j); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.1 2

    37、2 1 B.1 1 1 1C.2 1 1 2D.2 2 2 2解析:解析 本题程序需要输出二维数组 a 中第二行的各个元素值,即 a1这个一维数组的元素值。分析程序可知只有在两种情况下才会对 a1中的元素赋值:外层 for 循环中 i=0,内层第二个 for 循环的k 取值为 1,aki=a10=1,akN-i-1=a13=1;外层 for 循环中 i=1,内层第一个 for 循环的 j 取值为 1、2,aij=a1j=2,即 a11=2,a12=2。除了这两种情况,其他情况均不会修改 a1中的值,所以最终 a1各个元素的值为:1、2、2、1,故答案选 A 选项。33.设有定义:“int a;

    38、 float b;”,执行“scanf(“%2d%f“, ”语句时,若从键盘输入876543.0回车,a 和 b 的值分别是_。(分数:2.50)A.876 和 543.000000B.87 和 6.000000 C.87 和 543.000000D.76 和 543.000000解析:解析 本题考查 scanf 函数,输入格式符%2d%f 表示只接收了字符,其中 a 输入的值为 2 位的十进制整数,即 87,然后将紧接着的 6 赋给 b,因为 b 的值为单精度数 6,即 6.000000,故选择 B 选项。34.以下选项中叙述错误的是_。(分数:1.00)A.C 程序函数中定义的赋有初值的静

    39、态变量,每调用一次函数赋一次初值B.在 C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量解析:解析 静态变量只赋值一次,下一次调用,还是使用上次遗留的值。答案选择 B。35.有以下函数: int aaa(char *s) char *t=s; while(*t+ +); t-; return(t-s); 以下关于 aaa 函数功能叙述正确的是_。(分数:2.50)A.将串 s 复制到串 tB.比较两个串的大小C.求字符串 s 的长度 D.求字符串 s 所占字

    40、节数解析:解析 本题重点考查的知识点 while 循环语句的应用。aaa()函数中,首先定义了一个字符指针 t指向形参 s,然后通过一个 while 循环让指针 t 不断递增,直到 t 指向字符串结束标识处。当 t 指向结束标识处时,由于后缀+运算符的原因,它还会被再递增 1,所以接下来的 t-;语句让它回到结束标识处。最后返回 t-s,s 还是指向字符串第 1 个字符处,而 t 指向了字符串结尾,故返回值为字符串的长度值。因此 C 选项正确。36.有以下程序 #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in

    41、;i+) sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.50B.60 C.45D.55解析:解析 函数 fun 的功能是求数组的 n 个元素之和。fun(a,5)=15。由于 sum 是静态局部变量,所以保持 15 不变,fun(b,4)=45,所以 s=fun(a,5)+fun(b,4)=60。37.设有以下程序段 int X=0,s=0; while(!X!=0)S+=+X; printf(“%

    42、d“,s); 则(分数:2.00)A.运行程序段后输出 0B.运行程序段后输出 1 C.程序段中的控制表达式是非法的D.程序段执行无限次解析:解析 本题中,“!”表示逻辑非运算符,“! =”表示不等于运算符,逻辑非运算符比不等于运算符的优先级高。38.以下对 C 语言中联合类型数据的正确叙述是_。(分数:2.00)A.定义了联合变量后,即可引用该变量或该变量中的任意成员B.一个联合变量中可以同时存放其所有成员C.联合中的各个成员使用共同的存储区域 D.在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变解析:39.有以下定义和语句: struct workers int num; cha

    43、r name20; char c; struct int day; int month; int year; s; ; struct workers w, *pw; pw= 能给 w 中 year 成员赋 1980 的语句是_。(分数:1.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980D.s.year=1980; 解析:解析 结构 workers 中的成员 s 是一个嵌套的结构类型定义,因此在给 year 赋值时,要用“.”运算在深入一层访问到最基本的成员 year,只有 D 项反映出了这一点。40.有以下程序: #include stdio.h #

    44、define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+ +) bi = aii; main( ) int xN=1,2,3,4,5,6,7,8,9,10,yN,i; fun(x, y); for(i=0;iN;i+ +) printf(“%d,“, yi); printf(“/n“); 程序的运行结果是_。(分数:2.50)A.1,0,7,0, B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,解析:解析 该程序首先在定义变量时,对二维数组 xN进行赋值操作;调用函数 fun,函数 fun 的功能是将=维数组中的 a0 儿 0、a11、a22和 a33赋值给一维数组。最后将输出一维数组1,0,7,0,。


    注意事项

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




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

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

    收起
    展开