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

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

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

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

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

    1、二级 C语言笔试-288 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain()int a,k=3;a=+SQR(k+1);printf(“%d/n“,(分数:2.00)A.;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:2.00)A.正数B.负数C.零D.不确定的值4.下面程序的输出结果是_。unsigned fun(unsigned num)unsignedk-I;dok*=num%10

    2、;num/=10;while(num);retum(k);main()unsigned n=26;printf(“%d/n“,fun(n);(分数:2.00)A.0B.4C.12D.无限次循环5.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.struct v2;v2.x=10D.struct example v2=10;6.若一个外部变量的定义形式为 static int x;,那么,其中 static的作用应该是_。(分数:2.00)A.将变量存储在静态

    3、存储区B.使变量 x可以由系统自动初始化C.使 x只能在本文件内引用D.使 x的值可以永久保留7.已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是_。main()unsigned int a=32,b=66;printf(“%c/n“, b|b);(分数:2.00)A.66B.98C.bD.B8.下列程序执行后输出的结束是_。int d=1;fun(int p)int d=5;d+=p+;printf(“%d,“,d) ;main()int a=3;fun((分数:2.00)A.;case 3:case 4:break;default:print

    4、f(“OK“);(分数:1.00)A.0B.3C.OKD.没有任何输出15.下列程序执行后的输出结果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0;i3;i+)printf(“%d“,mki);(分数:1.00)A.456B.258C.369D.78916.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。(分数:1.00)A.2B.3C.4D.517.请读程序段:char str=“ABCD“,*p=str,printf(“%d/n“,*(p+4);程序段的输

    5、出结果是_。(分数:1.00)A.68B.0C.字符D的地址D.不确定的值18.下列程序的执行结果是_。#include stdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;printf(“/n%d“,x.i)(分数:1.00)A.266B.11C.265D.13819.以下程序段的输出结果是_。main()char s110,s210,s310;scanf(“%s“,s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);输入数据如下:(此处CR代表回车符)aaaCRbb

    6、bCR(分数:1.00)A.aaa bbbB.aaa bbbC.aaa/0bbb/0D.aaabbb20.若有如下说明,则_的叙述是正确的。struct stint a;int b2;a;(分数:1.00)A.结构体变量 a与结构体成员 a同名,定义是非法的B.程序只在执行到该定义时才为结构体 st分配存储单元C.程序运行时为结构体 st分配 6个字节存储单元D.类型名 struct st可以通过 extern关键字提前引用(即引用在前,说明在后)21.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填_。struct linkchar data;_;node;(分数:1.00)A

    7、.B.C.D.22.设已定义 i和 k为 int类型变量,则以下 for循环语句_。for(i=0;k=-1,k=1; i+, k+)printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环C.循环一次也不执行D.循环只执行一次23.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序D.编辑程序24.可以在 C语言中用做用户标识符的是_。(分数:1.00)A.void defineWORDB.as_b3_123IfC.for -abccasD.2cDoSIG25.若有定义:int a410;,则以下选项中对数组元素

    8、aij引用错误的是_。 (0i4,0j10)(分数:1.00)A.*(int i;for(i=3;i=0;i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:1.00)A.SOB.SPC.SPOPKD.SHOB29.下述程序向文件输出的结果是_。#includestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%d%5.0f%c%d“,58,76273.0,_,2278);fclose(fp);(分数:1.00)A.5876273-2278B.5876273.000000-2278C.5876273-2

    9、278D.因文件为二进制文件而不可读30.以下程序的输出结果是_。#includestdio.hvoid prt(int.*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40,c=20;main()prt(prt((分数:1.00)A.11,42,31 12,22,41B.11,41,2012,42,20C.11,21,4011,21,41D.11,41,2112,42,2231.下列程序的输出结果是_。#define A100main()int i=0,sum=0;do if(i=(i/2)*2)continue;sum

    10、+=i;while(+i(分数:1.00)A.;printf(“%d/n“,sum);A) 2500B.2050C.4D.032.以下程序(程序左边的数字为附加的行号)_。1#includestr.h2#includestdio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1行有错C.第 6行有错D.第 7行有错33.main()float x=123.456;printf(“%-5.2f/n“,x);以上程序输出的结果是_。(分数:1.00)A.123.4

    11、B.123.5C.123.45D.123.4634.下面程序的输出是_。char s=“ABCD“;main()char *p;for(p=s;ps+4;p+)printf(“%s/n“,p);(分数:1.00)A.ABCD BCD CD DB.A B C DC.D C B AD.ABCDABCABA35.关系代数运算是以_为基础的运算。(分数:1.00)A.关系运算B.谓词运算C.集合运算D.代数运算36.设有以下语句:char str1=“string“,str28,*str3,*str4=“str4=“string“;则_不是对库函数的正确调用。(分数:1.00)A.strcpy(str

    12、1,“HELLO1“);B.strcpy(str2“HELLO2“);C.strcpy(str3“HELLO3“);D.strcpy(str4“HELLO4“);37.定义 int*swap()指的是_。(分数:1.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap()C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错38.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构39.以下程序输出的结果为_。main()char*alpha

    13、6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“;char*p;int i;p=alpha;for(i+0;i4;i+)printf(“%s“,pi);(分数:1.00)A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM40.是构成 C语言程序的基本单位。(分数:1.00)A.函数B.过程C.子程序D.子例程41.已知字母 A的 ASCII码值是 65,字母 a的 ASCII码值是 97,以下程序_。main()char a=A;int b=20;printf(“%d,%0“,(a=a+a,a+b,b) ,a+a-A,

    14、b);(分数:1.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141D.输出结果为 20,141,2042.已知下面的程序段,正确的判断是_。#define A3#define B((分数:1.00)A.(A+1)*a) int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数43.下列程序的输出结果是_。main()int i;for(i=1; i+1; i+)if(i4)printf(“%d“,i+);break;printf(“%d“,i+);(分数:1.00)A.

    15、55B.56C.程序错误,没有输出D.循环条件永远为真,死循环44.数据的完整性是指数据的正确性、有效性和_。(分数:1.00)A.可维护性B.独立性C.安全性D.相容性45.数据存储和数据流都是_,仅仅是所处的状态不同。(分数:1.00)A.分析结果B.事件C.动作D.数据46.若有以下类型说明语句:char w;int x;float y, z;则表达式 w*x+z-y的结果为_类型。(分数:1.00)A.floatB.charC.intD.double47.下面语句的输出结果是_。printf(“%d/n“,strlen(“/t/“065/xff/n“);(分数:1.00)A.14B.8

    16、C.5D.输出项不合法,无正常输出48.模块本身的内聚是模块独立性的重要性度量因素之一。在 7类内聚中,具有最强内聚的一类是 _。(分数:1.00)A.顺序性内聚B.过程性内聚C.逻辑性内聚D.功能性内聚49.下面是对宏定义的描述,不正确的是_。(分数:1.00)A.宏不存在类型问题,宏名无类型,它的参数也无类型B.宏替换不占用运行时间C.宏替换时先求出实参表达式的值,然后代入形参运算求值D.宏替换只不过是字符替代而已50.下列程序的输出结果是_。main()int a=0, b=0, c=0;if(+a0|+b0)+c;printf(“/na=%d,b=%d,c=%d“,a,b,c) ;(分

    17、数:1.00)A.a=0,b=0,c=0B.a=1,b=1,c=1C.a=1,b=0,c=1D.a=0,b=1,c=1二、填空题(总题数:17,分数:40.00)51.对于长度为 n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为 【1】 。(分数:2.00)填空项 1:_52.注释说明了程序的功能,它分为 【2】 注释和功能性注释。(分数:2.00)填空项 1:_53.软件测试中路径覆盖测试是整个测试的基础,它是对软件 【3】 进行测试。(分数:2.00)填空项 1:_54.数据库技术的主要特点为数据的集成性、数据的高 【4】 和低冗余性、数据独立性和数据统一管理与控制

    18、。(分数:2.00)填空项 1:_55.数据元素之间 【5】 的整体称为逻辑结构。(分数:2.00)填空项 1:_56.若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y后,y 的值为 【6】 。(分数:2.00)填空项 1:_57.若 x和 y都是 double型变量,且 x的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为 【7】 。(分数:2.00)填空项 1:_58.设有 char a,b;,若要通过 ac=a+c+return(C) ;main()int a=2,i,k;for(i=0;i2;i+)k=f(a+)printf(“%d/

    19、n“,k);(分数:2.00)填空项 1:_60.下面程序执行后输出的结果是 【10】 。int m=13;int fun(int x,int y)int m=3;return(x*y-m);main()int a=7,b=5;printf(“%d/n“,fun(a,B) /m);(分数:2.00)填空项 1:_61.下列程序执行后输出的结果是 【11】 。main()int arr10,i,k=0;for(i=0;i10;i+)arri=i;for(i=1; i4;i+) k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_62.下列程序执行后输出的结果是

    20、【12】 。struct sint x,y; data2=10,100,20,200;main()struct s*p=data;printf(“%d/n“,+(p-x);(分数:2.00)填空项 1:_63.下面程序有两个 printf语句,如果第一个 printf语句输出的是 194,则第二个 printf语句的输出结果是【13】 。main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=aprintf(“%x/n“,p);printf(“%x/n“,p+9);(分数:2.00)填空项 1:_64.以下函数的功能是计算 s=1+1/2!+1/3!+1/n!,请填空。d

    21、ouble run(int n)double s=0.0,fac=1.0;int i,k=1;for(i=1;i=n;i+)【14】 ;fac=fac/k;s=s+fac;(分数:2.00)填空项 1:_65.下面程序的运行结果是 【15】 。main()unsigned a=0112,x;x=a3;printf(“x=%o“,x);(分数:2.00)填空项 1:_66.函数 delete(s,i,n)是作用是从字符串 s中删除从第 i个字符开始的 n个字符,请填空。void delete(char s, int i,int n)int j,k,length=0;while(slength)【

    22、16】 ;-i;j=i;if( 【17】 )k=i+n;if(i+n=length)while(klength)sj+=sk+;sj/0;(分数:4.00)填空项 1:_67.下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。int word(char*s)int num=0,flag=0;while (*s)if( 【18】 =)flag=0;else if( 【19】 )flag=1;num+return 【20】 ;(分数:6.00)填空项 1:_二级 C语言笔试-288 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.

    23、00)1.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain()int a,k=3;a=+SQR(k+1);printf(“%d/n“,(分数:2.00)A.;s1+;s2+;printf(“%d/n“,strcmp(s1,s2);上面程序的输出结果是_。(分数:2.00)A.正数 B.负数C.零D.不确定的值解析:评析 函数 strcmp的功能是比较字符串 s1和 s2,如果 s1s2, 则返回个正数:如果 s1s2,则返回负数,否则返回零。由于本题中小写字母 b的 ASCII码值大于大写字母 B,故 s1s2,所以函数的值为正数。4.下面程序的

    24、输出结果是_。unsigned fun(unsigned num)unsignedk-I;dok*=num%10;num/=10;while(num);retum(k);main()unsigned n=26;printf(“%d/n“,fun(n);(分数:2.00)A.0B.4C.12 D.无限次循环解析:评析 本题定义了一个 fun函数,用于 num求和,具体执行过程如下:num=26:k=k*(num%10)=1*(26%10),所以 k=6,num=num/10=2;num=2:k=k*(num%10)=6*(2%10),所以 k=12;num=num/10=0:num=0:whil

    25、e 条件不成立,所以返回 k的值 12。5.若有以下结构体定义,则_是正确的引用或定义。struct exampleint x;int y;v1;(分数:2.00)A.example.x=10B.example v2.x=10C.struct v2;v2.x=10D.struct example v2=10; 解析:评析 在定义结构体变量时,不能只用结构体名 example或关键字 struct进行定义,必需要用结构体类型名 struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。6.若一个外部变量的定义形式为 static int x;,那么,其中 s

    26、tatic的作用应该是_。(分数:2.00)A.将变量存储在静态存储区B.使变量 x可以由系统自动初始化C.使 x只能在本文件内引用 D.使 x的值可以永久保留解析:评析 事实上,无论有无 static修饰,外部变量都具有 A、B 和 C三种特性。作为一种修饰,static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。7.已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是_。main()unsigned int a=32,b=66;printf(“%c/n“, b|b);(分数:2.00)A.66B.98C.b D.B解析:评析

    27、位运算符“|”的作用是按位或,即两个二进制数的相应位中只要一个为 1,该位的结果值为 1。最后以字符型输出,98 对应的字符“b”。8.下列程序执行后输出的结束是_。int d=1;fun(int p)int d=5;d+=p+;printf(“%d,“,d) ;main()int a=3;fun((分数:2.00)A.;case 3:case 4:break;default:printf(“OK“);(分数:1.00)A.0B.3C.OKD.没有任何输出 解析:评析 在题中,i 的值为 3,由于“case 3:”后面没有 break语句,所以继续向下执行“case 4:”后面的语句,由于“c

    28、ase 4:”后面的语句为 break强行迟出 switch语句,所以,本题没有任何输出。15.下列程序执行后的输出结果是_。main()int m3=1,4,7,2,5,8,3,6,9;int i,k=2;for(i=0;i3;i+)printf(“%d“,mki);(分数:1.00)A.456B.258C.369 D.789解析:评析 根据二维数组的定义得出:m00=1,m01=4,m02=7,m10=2,m11=5,m12=8,m20=3,m21=6, m22=9,所以本题的输出是第 3行的值 m20,m21,m22,即 369。16.在顺序表(3,6,8,10,12,15,16,18,

    29、21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为_。(分数:1.00)A.2B.3C.4 D.5解析:评析 二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 11比较的关键码分别为 15,8,10,12 四个。17.请读程序段:char str=“ABCD“,*p=str,printf(“%d/n“,*(p+4);程序段的输出结果是_。(分数:1.00)A.68B.0 C.字符D的地址D.不确定的值解析:评析 在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“/0

    30、”,故指向字符数组的指针 p的*(p+4)的值为“/0”。由于“/0”的编码值就是 0,所以本题输出为 0。18.下列程序的执行结果是_。#include stdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;printf(“/n%d“,x.i)(分数:1.00)A.266 B.11C.265D.138解析:评析 由于本题定义的是共用体,所以成员表列中的整型变量 x与字符数组 c共占用同一个存储单元,且此存储单元为 2个字节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。19.以下程序段的输出结果

    31、是_。main()char s110,s210,s310;scanf(“%s“,s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);输入数据如下:(此处CR代表回车符)aaaCRbbbCR(分数:1.00)A.aaa bbbB.aaa bbb C.aaa/0bbb/0D.aaabbb解析:评析 scanf 是标准输入函数,在输入字符串 aaa时,实际的内容为“aaa/0”,“0”是由系统自动加入的:gets 的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以“/0”代替换行符。20.若有如下说明,则_的叙述是正确的。struct st

    32、int a;int b2;a;(分数:1.00)A.结构体变量 a与结构体成员 a同名,定义是非法的B.程序只在执行到该定义时才为结构体 st分配存储单元C.程序运行时为结构体 st分配 6个字节存储单元D.类型名 struct st可以通过 extern关键字提前引用(即引用在前,说明在后) 解析:评析 结构体变量 a与结构体成员 a同名是合法的定义,引用成员 a的方法是 aa,变量 a处于不同的“层次”上,系统完全能够分清。st 是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量 a分配 6个字节的存储单元,故选项 B和选项 C错误。21.已知形成链表的存储结构如下图所

    33、示,则下述类型描述中的空白处应填_。struct linkchar data;_;node;(分数:1.00)A.B.C.D. 解析:评析 在单向链表中,由于每个结点需要存储下一个结点的地址,且下一个结点的数据类型与前一个结点的数据类型完全相同,故应为 struct link *next。22.设已定义 i和 k为 int类型变量,则以下 for循环语句_。for(i=0;k=-1,k=1; i+, k+)printf(“*/n“);(分数:1.00)A.判断循环结束的条件不合法B.是无限循环 C.循环一次也不执行D.循环只执行一次解析:评析 本题定义了一个 for循环,循环变量是 i,但由于

    34、本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环。23.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序 D.编辑程序解析:评析 用高级语言编写的程序为“源程序”,而计算机只能识别和执行由 0和 1组成的二进制指令,所以高级语言必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。24.可以在 C语言中用做用户标识符的是_。(分数:1.00)A.void defineWORDB.as_b3_123If C.for -abccasD.2cDoSIG解析:评析 C 语言规定,标识符只能由字母、数字和下划线三种

    35、符号组成,而且第一个字符必须是字母或下划线。另外还需要注意的是关键字不能作标识符。选项 A中 void,C 中 for都为关键字,D 中 2c以字母开头。25.若有定义:int a410;,则以下选项中对数组元素 aij引用错误的是_。 (0i4,0j10)(分数:1.00)A.*(int i;for(i=3;i=0;i-,i-)printf(“%c“,*pi);printf(“/n“);(分数:1.00)A.SO B.SPC.SPOPKD.SHOB解析:评析 p0存放的是“BOOL/0”的首地址;p1存放的是“OPK/0”的首址等。在 printf语句中输出的*pi表示 pi字符串的第一个字

    36、符。在 for循环中,i 的初值为 3,那么输出的第一个字符为“S”,接着两次 i-,则输出的值为*p1,即字符“0”,所以本题的输出为 SO。29.下述程序向文件输出的结果是_。#includestdio.hvoid main()FILE*fp=fopen(“TEST“,“wb“);fprintf(fp,“%d%5.0f%c%d“,58,76273.0,_,2278);fclose(fp);(分数:1.00)A.5876273-2278B.5876273.000000-2278C.5876273-2278 D.因文件为二进制文件而不可读解析:评析 fprintf 函数工作时,多个数据间不会自

    37、动加分隔符,选项 A错误:浮点数的输出格式是“%5.0f”表明其小数部分输出 0位,即没有输出,所以选项 B也是错误的。30.以下程序的输出结果是_。#includestdio.hvoid prt(int.*x,int*y,int*z)printf(“%d,%d,%d/n“,+*x,+*y,*(z+);int a=10,b=40,c=20;main()prt(prt((分数:1.00)A.11,42,31 12,22,41B.11,41,2012,42,20 C.11,21,4011,21,41D.11,41,2112,42,22解析:评析 由于实参传送的是变量的地址,所以对形参指针所指向的单

    38、元内容的改变,即对实参内容的改变。31.下列程序的输出结果是_。#define A100main()int i=0,sum=0;do if(i=(i/2)*2)continue;sum+=i;while(+i(分数:1.00)A.;printf(“%d/n“,sum);A) 2500 B.2050C.4D.0解析:评析 本题程序的功能是求 1到 99之间(包括 1和 99)所有奇数之和。程序中的 while循环的终止条件为+i=100,在 while 循环体内,如果 i是偶数,则执行 continue,跳过这一次循环,执行下一次循环,否则求和。最后输出的值是 1到 99 之间(包括 1和 99

    39、)所有奇数之和(1+99)*50/2=2500。32.以下程序(程序左边的数字为附加的行号)_。1#includestr.h2#includestdio.h3main()4 char s=“string“;5puts(s);6strcpy(s,“hello“);7printf(“%3s/n“,s);(分数:1.00)A.没有错B.第 1行有错 C.第 6行有错D.第 7行有错解析:评析 字符串复制函数 strcpy包含在头文件 string.h中,因此,程序中的第 1行文件包含命令是错误的。33.main()float x=123.456;printf(“%-5.2f/n“,x);以上程序输出

    40、的结果是_。(分数:1.00)A.123.4B.123.5C.123.45D.123.46 解析:评析 f 格式符,用来输出实数,以小数形式输出。“%-m.nf”的含义是:输出数据共占 m列,其中 n位小数,如果输出位数小于 m,则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。34.下面程序的输出是_。char s=“ABCD“;main()char *p;for(p=s;ps+4;p+)printf(“%s/n“,p);(分数:1.00)A.ABCD BCD CD D B.A B C DC.D C B AD.ABCDABCABA解析:评析 在第一次执行 for循环时,字符数组的首

    41、地址赋给了指针变量 p,使得指针变量 p指向了s的首地址,输出 p所指向的字符串;第二次执行 for循环时,p 值增加 1,p 指向了 s的第二个元素输出BCD;第三次输出 CD;第四次输出 D;直到 p指向字符串的结束字符“/0”,for 循环终止执行。35.关系代数运算是以_为基础的运算。(分数:1.00)A.关系运算B.谓词运算C.集合运算 D.代数运算解析:评析 关系代数运算是以关系代数作为运算对象的一组高级运算的集合。它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投影)、水平分割(选择)、关系的结合(连接)等。36.设有以下语句:char str1=“string“,str2

    42、8,*str3,*str4=“str4=“string“;则_不是对库函数的正确调用。(分数:1.00)A.strcpy(str1,“HELLO1“);B.strcpy(str2“HELLO2“);C.strcpy(str3“HELLO3“); D.strcpy(str4“HELLO4“);解析:评析 C 语言中:strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C中的日的串指针 str3没有指向具体有效的存储单元,故是错误的调用。37.定义 int*swap()指的是_。(分数:1.00)A.一个返回整型值的函数 swap()B.一个返回指向整型值指针的函数 swap

    43、() C.一个指向函数 swap()的指针,函数返回一个整型值D.以上说法均错解析:评析 一个函数可以带回个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是一个返回整型指针的函数。38.在数据结构中,从逻辑上可以把数据结构分为_。(分数:1.00)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构解析:评析 逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。39.以下程序输出的结果为_。main()char*al

    44、pha6=“ABCD“,“EFGH“,“IJKL“,“MNOP“,“QRST“,“UVWX“;char*p;int i;p=alpha;for(i+0;i4;i+)printf(“%s“,pi);(分数:1.00)A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOP D.AEIM解析:评析 alpha0指向“ABCD”的首地址;alpha1指向“EFGH”的首地址;alpha2指向“IJKL”的首地址,依此类推。当执行 p=alpha后,p 指向指针数组 alpha的首地址。for 循环中输出了4个字符串。40.是构成 C语言程序的基本单位。(分数:1.00)A.函数

    45、B.过程C.子程序D.子例程解析:评析 C 程序是由函数构成的。一个 C源程序至少包含一个 main函数,也可以包含一个 main函数和若干个其他函数,因此,函数是 C程序的基本单位。41.已知字母 A的 ASCII码值是 65,字母 a的 ASCII码值是 97,以下程序_。main()char a=A;int b=20;printf(“%d,%0“,(a=a+a,a+b,b) ,a+a-A,b);(分数:1.00)A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141 D.输出结果为 20,141,20解析:评析 本题中首先输出逗号表达式“a=a

    46、+a,a+b,b”的值,即 20。然后以八进制的形式输出a+a-A的值为 97对应的八进制数 141,由于最后一个表达式 b没有对应输出格式的输出项表列就不会输出。42.已知下面的程序段,正确的判断是_。#define A3#define B((分数:1.00)A.(A+1)*a) int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义B.X=93C.X=81 D.程序错误,宏定义不允许有参数解析:评析 本题的宏定义是合法的,宏定义展开为 3*(3+(A+1)*a) )=3*(3+(7+1)*3)=81。43.下列程序的输出结果是_。main()int i;for(i=1; i+1; i+)if(i4)printf(“%d“,i+);break;printf(“%d“,i+);(分数:1.00)A.55B.56 C.程序错误,没有输出D.循环条件永远为真,死循环解


    注意事项

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




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

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

    收起
    展开