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

上传人:outsidejudge265 文档编号:1326115 上传时间:2019-10-17 格式:DOC 页数:34 大小:106.50KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-30及答案解析.doc_第1页
第1页 / 共34页
【计算机类职业资格】二级C语言笔试-30及答案解析.doc_第2页
第2页 / 共34页
【计算机类职业资格】二级C语言笔试-30及答案解析.doc_第3页
第3页 / 共34页
【计算机类职业资格】二级C语言笔试-30及答案解析.doc_第4页
第4页 / 共34页
【计算机类职业资格】二级C语言笔试-30及答案解析.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、二级 C 语言笔试-30 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下程序的输出结果是_。fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,(分数:2.00)A.;2.有以下程序:void sum(int *(分数:2.00)A.a0=a1;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=1;i0;i-)sum(main()int a=3,b=6,*x=(分数:2.00)A.6 3B.3 6C.编译出错D.005.当执行下面的程序时,如

2、果输入 ABC,则输出结果是_。#include “stdio.h“#include “string.h“main()char ss10=“12345“;gets(ss);strcat(ss,“6789“);printf(“%s/n“,ss);(分数:2.00)A.ABC6789B.ABC67C.12345ABC6D.ABC4567896.假设 a 和 b 为 int 型变量,则执行以下语句后,b 的值为_。a=1;b=10;dob-=a;a+;while(b-0);(分数:2.00)A.9B.-2C.-1D.87.希尔排序法属于_类型的排序法。(分数:2.00)A.交换类排序法B.插入类排序

3、法C.选择类排序法D.建堆排序法8.假定建立了以下链表结构,指针 p、q 分别指向如图所示的结点,则以下可以将 q 所指结点从链表中删除并释放该结点的语句组是_。(分数:2.00)A.B.C.D.9.若有定义 int*p3;,则以下叙述中正确的是_。(分数:2.00)A.定义了一个基类型为 int 的指针变量 p,该变量有三个指针B.定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D.定义了一个可指向二维数组的指针变量 p,所指一维数组应具有三个 int 类型元素10.在 C 语言中,引用数组元

4、素时,其数组下标的数据类型允许是_。(分数:2.00)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式11.软件调试的目的是_。(分数:1.00)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能12.在结构化方法中,软件功能分解属于软件开发中的_阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计D.编程调试13.对长度为 N 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:1.00)A.N+1B.NC.(N+1)/2D.N/214.有以下程序:main()int x8=8,7,6,5,0,0,*s;s=x+3;printf(“%d/n

5、“,s2);程序运行后的输出结果是_。(分数:1.00)A.随机值B.0C.5D.615.有以下程序:void swap1(int *a,int *b) int *c=a;s=b,b=c;void swap2(int *aint *b) int c=*a;*a=*b,*b=c;main()int a=10, b=15;swap 1(a=10,b=15;swap2(printf(“%d,%d“,a,b) ;其输出结果为_。(分数:1.00)A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,1016.有以下程序:main()int a;char c

6、=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(“%d%d%3.1f%3.1f/n“,a,c,f,x);程序运行后的输出结果是_。(分数:1.00)A.1 65 1 6.5B.1 65 1.5 6.5C.1 65 1.0 6.5D.2 65 1.5 6.517.以下程序试图把从终端输入的字符输出到名为 abctxt 的文件中,直到从终端读入字符串#号时结束输入和输出操作,但程序有错#includestdiohmain()FILE*fout;char ch;fout=fopen(abctxt,w);ch=fgetc(stdin);while(c

7、h!=#)fputc(ch,four);ch=fgetc(stdin);fclose(fout);出错的原因是_。(分数:1.00)A.函数 fopen 调用形式错误B.输入文件没有关闭C.函数 fgetc 调用形式错误D.文件指针 stdin 没有定义18.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是_。(分数:1.00)A.if(ab) printf(“/n“);假定以上程序经编译和连接后生成可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS 提示符下键入 PROG ABCDEFGHIJKL (分数:1.00)A.B.C.D.21.下列程序的输出结果是_。

8、main()char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(“%d“,*-p);(分数:1.00)A.非法B.a4的地址C.5D.322.下列叙述中正确的是_。(分数:1.00)A.C 语言编译时不检查语法B.C 语言的子程序有过程和函数两种C.C 语言的函数可以嵌套定义D.C 语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数23.对于下面的程序#includestdio.h#includestring.hchar *scmp(char*s1,char*s2)if(strcmp(s1,s2)0)return(s1);else return(

9、s2);main()int i:char string20,sb320;for(i=0;i3;i+)gets(stri);strcpy(string,scmp(str0,str1);strcpy(string,scmp(string,str21);printf(“%s/n“,string);若运行时依次输入 abcd、abba 和 abc 三个字符串,则输出结果为_。(分数:1.00)A.abcdB.abbaC.abcD.abca24.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表25.设有

10、以下声明语句struct exint x;float y;char z;example;则下面的叙述中不正确的是_。(分数:1.00)A.struct 是结构体类型的关键字B.example 是结构体类型名C.x,y,z 都是结构体成员名D.struct ex 是结构体类型26.当执行下面的程序时,其输出结果为_。union stint a;char b;main()union st s;char *p=(char*)(分数:1.00)A.1B.2C.3D.不确定27.以下程序的输出结果是_。main()int i,k,a10,p3k=5;for(i=0;i10;i+)ai=ifor(i=0;

11、i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(“%d/n“,k);(分数:1.00)A.20B.21C.22D.2328.下面程序运行后的输出结果是_。fut(int,*s,int P23)*s=p11;main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fut( (分数:1.00)A.0B.1C.2D.332.设 char 型变量 x 中的值为 10100111,则表达式(2+x)(3)的值为_。(分数:1.00)A.10101001B.10101000C.11111101D.01

12、01010133.若变量 c 为 char 类型,能正确判断出 c 为小写字母的表达式是_。(分数:1.00)A.a=c=zB.(c=a)|(c=z)C.(a=c) and(z=c)D.(c=a)(分数:1.00)A.15B.14C.不确定D.035.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是_。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考36.下列程序段的输出结果是_。void fun(int *x,int

13、 *y)printf(“%d%d“,*x,*y);*x=3;*y=4;main()int x=1,y=2;fun(printf(“%d%d“,x,y);(分数:1.00)A.2 1 4 3B.1 2 1 2C.1 2 3 4D.2 1 1 237.以下程序的输出结果是_。long fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);relum s;main()printf(“%ld/nt“,fun(3);(分数:1.00)A.1B.2C.3D.438. (分数:1.00)A.B.C.D.39.若 a 为 int 类型,且其值为 3,则执行完表达式

14、 a+=a-=a*a 后,a 的值是_。(分数:1.00)A.-3B.9C.-12D.640.若执行以下程序时从键盘上输入 9,则输出结果是_。main()int n;scanf(“%d:“,(分数:1.00)A.11B.10C.9D.841.对下面的程序进行编译与连接生成可执行文件 c.exe,并在 DOS 命令提示符下输入:cI said“I love China“!程序代码如下:main(int argc,char*argv)printf(“%d“,argC) ;其输出结果为_。(分数:1.00)A.4B.5C.6D.742.下面的程序输出结果是_。#define r 16#if r=1

15、6void p(int(分数:1.00)A.43.有以下程序段:int x=3;doprintf(“%d“,x-=2);while(!(-x);其输出结果是_。(分数:1.00)A.1B.3 0C.1 -2D.死循环44.在下列选项中,_不是一个算法一般应该具有的基本特征。(分数:1.00)A.确定性B.可行性C.无穷性D.拥有足够的情报45.以下所列的各函数首部中,正确的是_。(分数:1.00)A.void play(var a:Integer,var b:Integer)B.void play(int a,b)C.void play(int a,intb)D.Sub play(a as i

16、nteger,b as integer)46.以下程序的输出结果是_。#define SQR(X) X*Xmain()int a=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“%d/n“,(分数:1.00)A.;48.以下只有在使用时才为该类型变量分配内存的存储类说明是_。(分数:1.00)A.auto 和 staticB.auto 和 registerC.register 和 staticD.extern 和 register49.信息隐蔽的概念与下述_概念直接相关。(分数:1.00)A.软件结构定义B.模块独立性C.模块类型划分D.模拟耦合度50.有以下程

17、序段:int k=0;while(k=1)k+;while 循环执行的次数是_。(分数:1.00)A.无限次B.有语法错,不能执行C.一次也不执行D.执行 1 次二、填空题(总题数:18,分数:36.00)51.栈的基本运算有三种:入栈、退栈和 【1】 。(分数:2.00)填空项 1:_52.在面向对象方法中,信息隐蔽是通过对象的 【2】 性来实现的。(分数:2.00)填空项 1:_53.数据流的类型有 【3】 和事务型。(分数:2.00)填空项 1:_54.数据库系统中实现各种数据管理功能的核心软件称为 【4】 。(分数:2.00)填空项 1:_55.关系模型的数据操纵即是建立在关系上的数据

18、操纵,一般有 【5】 、增加、删除和修改四种操作。(分数:2.00)填空项 1:_56.下列程序的输出结果是 【6】 。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;prrintf(“%d,%d/n“,a,b) ;(分数:2.00)填空项 1:_57.下列程序的输出结果是 1600,请填空:main()int a=9,b=2;float x= 【7】 ,y=11,z;z=a/2+b*x/y+1/2;printf(“%5.2f/n“,z);(分数:2.00)填空项 1:_58.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请

19、填空。st=(char*) 【8】 ;(分数:2.00)填空项 1:_59.下列程序段的输出结果是 【9】 。main()char b=“Hello,you“;b5=0;printf(“%s/n“,B) ;(分数:2.00)填空项 1:_60.下列程序段的输出结果是 【10】 。int n=c;switch(n+)default:printf(“error“);break;case a:case A:case b:case B:printf(“good“);break;case c:caseC:printf(“pass“);case d:caseD:printf(“warn“);(分数:2.0

20、0)填空项 1:_61.以下程序通过函数指针 p 调用函数 fun,请在填空栏内写出定义变量 p 的语句。void fun(int*x,int*y)main()int a=10,b=20;【11】 :p=fun; p((分数:2.00)填空项 1:_63.下列程序的输出结果是 【13】 。void fun(int *n)while(*n)-);printf(“%d“,+(*n);main()int a=100;fun((分数:2.00)填空项 1:_65.以下程序运行后的输出结果是 【15】 。main()char a=“Language“,b=“Programe“;char,p1,*p2;i

21、nt k;p1=a,p2=b;for(k=0;k=7;k+)if*(p1+k)=*(p2+k)printf(“%c“,*(p1+k);(分数:2.00)填空项 1:_66.下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为 bidat 的新文件中,请填空。#include “stdioh“FILE *fp;main()char ch;if(fp=fopen( 【16】 )=NULL)exit(0);while(ch=getchar()!=)fputc(ch,fp);fclose(fp);(分数:2.00)填空项 1:_67.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计

22、算它们的和。请填空。main()int i,a20,sum,count;sum=count= 【17】 ;for(i=0;i20;i+)scanf(“%d“, 【18】 );for(i=0;i20;i+)if(ai0)count+:sum+= 【19】 ;printf(“sum=%d,count=%d/n“,sum.count);(分数:2.00)填空项 1:_68.若变量 n 中的值为 24,则 prnt 函数共输出 【20】 行。void prnt(int n,int aa)int i;for(i=1;i=n;i+)printf(“%6d“,aai);if!(i%5)printf(“/n“

23、);printf(“/n“);(分数:2.00)填空项 1:_二级 C 语言笔试-30 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下程序的输出结果是_。fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,(分数:2.00)A.;解析:评析 本题中,a 的值并没有改变,因为传递到函数中的是变量值。2.有以下程序:void sum(int *(分数:2.00)A.a0=a1;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=1;i0;i-)sum

24、(main()int a=3,b=6,*x=(分数:2.00)A.6 3B.3 6 C.编译出错D.00解析:评析 本题中主函数里的 x、y,fun 函数里的 a、b、k,这些都是指针,fun 函数中只是将 a、b这两个指针交换了位置,而并没有改变主函数中变量 a、b 的值。5.当执行下面的程序时,如果输入 ABC,则输出结果是_。#include “stdio.h“#include “string.h“main()char ss10=“12345“;gets(ss);strcat(ss,“6789“);printf(“%s/n“,ss);(分数:2.00)A.ABC6789 B.ABC67C

25、.12345ABC6D.ABC456789解析:评析 sdtrcat(str1,str2)合并字符串函数的作用是把 str2 所指字符串的内容连接到 str1 字符串的后面,自动删去 str1 原来串中的/0。为了进行这项操作,要求 str1 所指的字符串后面有足够的空间来容纳 str2 所指字符串中的内容。函数值为 str1 所指第一个字符的地址。6.假设 a 和 b 为 int 型变量,则执行以下语句后,b 的值为_。a=1;b=10;dob-=a;a+;while(b-0);(分数:2.00)A.9B.-2C.-1D.8 解析:评析 本题程序第一轮循环后 b 的值为 9,在进行循环条件测

26、试时,先取 b 的现值 9 与 0 比较,然后再将 b 减 1。由于 90 不成立,因此循环结束,这时 b 的值已变成 8,本题正确答案为 D。7.希尔排序法属于_类型的排序法。(分数:2.00)A.交换类排序法B.插入类排序法 C.选择类排序法D.建堆排序法解析:评析 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进。8.假定建立了以下链表结构,指针 p、q 分别指向如图所示的结点,则以下可以将 q 所指结点从链表中删除并释放该结点的语句组是_。(分数:2.00)A.B. C.D.解析:评析 选项 A

27、的错误在于,先已经把 q 结点给释放,无法再进行余下语句了:选项 C 和 D 的错误在于因为有了 q=(*q).next 做了赋值,则 free(q)释放了原来 q 后面的一个结点。9.若有定义 int*p3;,则以下叙述中正确的是_。(分数:2.00)A.定义了一个基类型为 int 的指针变量 p,该变量有三个指针B.定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针 C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D.定义了一个可指向二维数组的指针变量 p,所指一维数组应具有三个 int 类型元素解析:评析 由于运算符优先级比*高,int*

28、p3;相当于 int*(p3);,表示数组 p 的三个元素都是指针变量,且每个元素都是基类型为 int 的指针。10.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_。(分数:2.00)A.整型常量B.整型表达式C.整型常量或整型表达式 D.任何类型的表达式解析:评析 C 语言规定只能逐个引用数组元素而不能一次引用整个数组,数据元素的表示形式为数组名下标,下标可以是整型常量或整型表达式。11.软件调试的目的是_。(分数:1.00)A.发现错误B.改正错误 C.改善软件的性能D.挖掘软件的潜能解析:评析 由程序调试的概念可知:程序调试活动由两部分组成,其一是根据错误的迹象确定程序中错

29、误的确切性质、原因和位置。其二,对程序进行修改,排除这个错误。所以程序调试的目的就是诊断和改正程序中的错误。12.在结构化方法中,软件功能分解属于软件开发中的_阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计 D.编程调试解析:评析 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。13.对长度为 N 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:1.00)A.N+1B.N C.(N+1)/2D.N/2解析:评析 在进行顺序查找过程中,如果被查的元素是线性表中的最

30、后个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。14.有以下程序:main()int x8=8,7,6,5,0,0,*s;s=x+3;printf(“%d/n“,s2);程序运行后的输出结果是_。(分数:1.00)A.随机值B.0 C.5D.6解析:评析 本题定义了数组 x8和指针变量 s,由 C 语言规定,指针加 1 的含义是使指针指向数组的下一个元素,而不是指针值简单的加 1,因此通过 s=x+3;使 s 指向数组元素 x3。由于指向数据的指针变量可以带下标表示,如 si与*(s+i)等价。因此题目要求输出 s2的值,即*(s+

31、2)的值,也就是 x5的值,为 0。15.有以下程序:void swap1(int *a,int *b) int *c=a;s=b,b=c;void swap2(int *aint *b) int c=*a;*a=*b,*b=c;main()int a=10, b=15;swap 1(a=10,b=15;swap2(printf(“%d,%d“,a,b) ;其输出结果为_。(分数:1.00)A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,10 解析:评析 C 语言规定,实参变量对形参变量的数据传递是“值传递”,只由实参传给形参,而不能由形参传

32、回来给实参。在内函数调用结束后,形参单元被释放,实参单元仍保留并维持原值。本题中swap1()函数中,虽然改变了形参指针的值,但实参指针的值并没有改变,所以执行第一个 printf 后应输出 10,15,swap2()函数实现了交换两个变量 a 和 b 的值,因此执行第二个 printf 后输出交换后的值15,10,所以本题答案为 D。16.有以下程序:main()int a;char c=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(“%d%d%3.1f%3.1f/n“,a,c,f,x);程序运行后的输出结果是_。(分数:1.00)A.1

33、65 1 6.5B.1 65 1.5 6.5 C.1 65 1.0 6.5D.2 65 1.5 6.5解析:评析 本题求解步骤如下:先进行“c*=(x=6.5)“的运算,由于 x=6.5,表达式相当于c=c*6.5=10*6.5=65。再进行“f/=65“的运算,相当于 f=f/65=100.0/65,由于 f 为单精度实型变量,因此f 的值约为 1.538462。然后进行“a=f“的运算,由于 a 为整型变量,因此 a=1。最后将各个变量的值按照printf 中的格式要求输出到屏幕,注意变量 f,x 按照“%3.1f“格式输出,即只输出一位小数。17.以下程序试图把从终端输入的字符输出到名为

34、 abctxt 的文件中,直到从终端读入字符串#号时结束输入和输出操作,但程序有错#includestdiohmain()FILE*fout;char ch;fout=fopen(abctxt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,four);ch=fgetc(stdin);fclose(fout);出错的原因是_。(分数:1.00)A.函数 fopen 调用形式错误 B.输入文件没有关闭C.函数 fgetc 调用形式错误D.文件指针 stdin 没有定义解析:评析 本题考查的是文件的打开函数 fopen(),其调用方式通常为 FLIE*fp;fp=f

35、open(文件名,使用文件方式);,如: fp=fopen(“abctxt“,“w“);表示要打开名字为 abctxt 的文件,使用文件方式写入。fopen 函数带回指向 abc.txt 文件的指针并赋给 fp,即 fp 指向文件 abctxt。18.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是_。(分数:1.00)A.if(ab) else k=0;。19.设 x、y、t 均为 int 型变量,则执行语句 x=y=3;t=+x|+y;后,y 的值为_。(分数:1.00)A.不定值B.4C.3 D.1解析:评析 C 语言中在做逻辑或运算时,自左向右判断各个参加或运算的表达式

36、,一旦运算到某式的值为非零时,表明整个表达式一定为真,余下的语句则不再进行运算。本题中,+x 的值为真,则+y 并没有进行运算,所以 y 值不变。20.main(int argc,char*argv)while(-argc0)printf(“%s“,argvargc);printf(“/n“);假定以上程序经编译和连接后生成可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS 提示符下键入 PROG ABCDEFGHIJKL (分数:1.00)A.B.C. D.解析:评析 本题主函数带有两个参数,一个 int 型变量 argc,另一个是 char 型的一维一级指针数组argv。当主

37、函数被执行时,系统自动将根据命令行的情况,分别给主函数的两个参数赋值。Argc 中存放命令行中命令字和参数的总和的个数,argv 用来存放命令行中命令字和所有参数的字符串的,并规定avgv0存放命令字字符串,argv1用来存放第一个参数的字符串,argv2用来存放第 2 个参数的字符串,依此类推。题中 argc 的值是 2,执行完-argc 后为 1,输出 argv1,此数组存在第一个参数的字符串 ABCDEFGHIJKL。21.下列程序的输出结果是_。main()char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(“%d“,*-p);(分数:1.00)A.非

38、法B.a4的地址C.5 D.3解析:评析 本题中 char*p=a+5;即相当于 p=main()int i:char string20,sb320;for(i=0;i3;i+)gets(stri);strcpy(string,scmp(str0,str1);strcpy(string,scmp(string,str21);printf(“%s/n“,string);若运行时依次输入 abcd、abba 和 abc 三个字符串,则输出结果为_。(分数:1.00)A.abcdB.abba C.abcD.abca解析:评析 本题自定义函数 scrnp()的作用是比较字符串 s1 和 s2 的大小,

39、如果 s1s2,函数返回 s1的值,否则返回 s2 的值。若运行时依次输入 abcd、abba 和 abc 三个字符串,执打strcpy(string,scmp(str0,str1);后,string 的值为 abba,再执行 strcpy(string,scmp(string,str2);,由于 scmp(string,str2)返回 string 的值 abba,再拷贝到字符串数组 string 中,所以本题输出 abba。24.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:评析

40、 队列是指允许在一端进行插入、而在另一端进行删除的线性表。它又称为“先进先出”或“后进后出”的线性表,体现了“先来先服务”的原则。25.设有以下声明语句struct exint x;float y;char z;example;则下面的叙述中不正确的是_。(分数:1.00)A.struct 是结构体类型的关键字B.example 是结构体类型名 C.x,y,z 都是结构体成员名D.struct ex 是结构体类型解析:评析 example 是结构体变量名。26.当执行下面的程序时,其输出结果为_。union stint a;char b;main()union st s;char *p=(ch

41、ar*)(分数:1.00)A.1B.2C.3 D.不确定解析:评析 共用体类型结构的特点是使几个不同的变量共占同一段内存,但在每一瞬时只能存放其中一种,而不是同时存放几种,共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。因此本题起作用的是成员 b 的值,所以程序打印输出 3。27.以下程序的输出结果是_。main()int i,k,a10,p3k=5;for(i=0;i10;i+)ai=ifor(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(“%d/n“,k);(分数:1.00)A.20B.21 C

42、.22D.23解析:评析 按照程序的流程走一遍,可以得到 p0=0,p1=2,p3=6:执行三次 k+=pi*2,相当于 k=5+0*2+2*2+6*2=21。28.下面程序运行后的输出结果是_。fut(int,*s,int P23)*s=p11;main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fut( (分数:1.00)A.0B.1 C.2D.3解析:评析 “(分数:1.00)A.15B.14C.不确定 D.0解析:评析 变量 sum 在使用时未赋初值,所以无法确定 sum 最终的值。35.面向对象的设计方法与传统的面向过程

43、的方法有本质不同,它的基本原理是_。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考解析:评析 面向对象的设计方法基本原理:使用现实世界的概念抽象地思考问题从而自然地解决问题。强凋模拟现实世界中的概念而不强调算法,鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。36.下列程序段的输出结果是_。void fun(int *x,int *y)printf(“%d%d“,*x,*y);*x=3;*y=4;main()int x=1

44、,y=2;fun(printf(“%d%d“,x,y);(分数:1.00)A.2 1 4 3 B.1 2 1 2C.1 2 3 4D.2 1 1 2解析:评析 本题中函数传递的是变量的地址,如果形参在函数中发生改变,相对应的实参也就有了改变。37.以下程序的输出结果是_。long fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);relum s;main()printf(“%ld/nt“,fun(3);(分数:1.00)A.1 B.2C.3D.4解析:评析 这是一个递归函数。递归的结束条件是,n=1 或者 n=2。按照程用顷序,即可得出本题结果

45、为 1。38. (分数:1.00)A.B.C. D.解析:评析 选择运算是一个一元运算,关系 R 通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由 R 中那些满足逻辑条件的元组所组成;如果关系的逻辑条件为 f,则 R 满足 f的选择运算可以写成 f(R)。39.若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是_。(分数:1.00)A.-3B.9C.-12 D.6解析:评析 C 语言中对赋值运算的运算顺序是自右向左。本题中,计算 a*a 之后,a 的值依然为 3,表达式 a*a 的值为 9;a-=9, a=3-9=-6;a+=-

46、6,a=(-6)+(-6)=-12。40.若执行以下程序时从键盘上输入 9,则输出结果是_。main()int n;scanf(“%d:“,(分数:1.00)A.11B.10 C.9D.8解析:评析 n+是在语句结束后再加 1,因此,if 语句中相当于判断的是 910,当然是执行 if 语句后面的 printf 语句,而这时,因为 if 语句被执行,n 的值也被加 1,所以在打印时,n 值为 10,而 n-是在 printf 语句执行完毕后再减 1 的。41.对下面的程序进行编译与连接生成可执行文件 c.exe,并在 DOS 命令提示符下输入:cI said“I love China“!程序代码如下:main(int argc,char*argv)printf(“%d“,argC) ;其输出结果为_。(分数:1.00)A.4B.5 C.6D.7解析:评析 带参数的 main()函数常用形式为:main(int argc,char*argv)其中,参数的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试资料 > 职业资格

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