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

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

1、二级 C 语言笔试 55 及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.以下选项中可作为 C 语言合法常量的是(分数:1.00)A.-80.0B.-080C.-8e1.0D.-80.0e2.设有如下说明 typedef struct ST long a;int b;char c2;NEW; 则下面叙述中正确的是(分数:1.00)A.以上的说明形式非法B.ST 是一个结构体类型C.NEW 是一个结构体类型D.NEW 是一个结构体变量3.有以下程序 #define P3 void F(int x)return(P*x*x); main()

2、 printf(“%d/n“,F(3+5); 程序运行后的输出结果是(分数:1.00)A.192B.29C.25D.编译出错4.有以下程序 main() int i=1,j=2,k=3; if(i+=1i+) for(j=0;j=i;j+) printf(“%4c“,“); for(j=_;j4;j+) printf(“%4d“,numij); prrintf(“/n“); 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是(分数:1.00)A.i-1B.iC.i+1D.4-i8.有以下程序 void f(int*x,int *y) in

3、t t; t= *x;*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=p+;q-; for(i=0;i8;i+)printf(“%d,“,ai); 程序运行后的输出结果是(分数:1.00)A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,19.下列对于软件测试的描述中正确的是(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合

4、结构化原则10.有以下程序 main() int m,n,p; scanf(“m=%dn=%dp=%d“,char c10;,则正确的输入语句是(分数:1.00)A.scanf(“%d%s“, struct node*next;*p,*q,*r; (分数:1.00)A.p-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next;17.数字字符 0 的 ASCII 值为 48,若有以下程序 main() char a=1,b=2; printf(“%c,“,b+); printf(“%d/n“,b-A) ; 程序运行后的输出结果是(分数:1.

5、00)A.3,2B.50,2C.2,2D.2,5018.算法具有五个特性,以下选项中不属于算法特性的是(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性19.以下叙述中正确的是(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间20.数据独立性是数据库技术的重要特点之一,所谓数据独立性是指(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对21.有以下函数 fun(char*a,char*b) while(

6、*a!=/0)b+; return(*a-*b); 该函数的功能是(分数:1.00)A.计算 a 和 b 所指字符串的长度之差B.将 b 所指字符串连接到 a 所指字符串中C.将 b 所指字符串连接到 a 所指字符串后面D.比较 a 和 b 所指字符串的大小22.以下选项中不能作为合法常量的是(分数:1.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e023.有以下程序 point(char*p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是(分数:1.00

7、)A.aB.bC.cD.d24.有以下程序 main() int a=1,2,3,4,5,6,7,8,9,0,*P; for(p=a;pa+10;p+)printf(“%d,“,*p); 程序运行后的输出结果是(分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,25.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长

8、度D.上述说法都不对26.有以下程序 main() char s=“159“,*p; p=s; printf(“%c“,*p+);printf(“%c“,*p+); 程序运行后的输出结果是(分数:1.00)A.15B.16C.12D.5927.有以下程序 main() int a=1,b; for(b=1;b10;b+) if(a8)break; if(a%2=1)a+=5;continue; a-=3; printf(“%d/n“,b); 程序运行后的输出结果是(分数:1.00)A.3B.4C.5D.628.以下语句或语句组中,能正确进行字符串赋值的是(分数:1.00)A.char*sp;*

9、sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.char*sp=:right!“;29.有以下程序 main() char a7=“a0/0a0/0“;int i,j; i=sizeof(a);j=strlen(a); printf(“%d%d/n“,i,j); 程序运行后的输出结果是(分数:1.00)A.2 2B.7 6C.7 2D.6 230.有以下程序 main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7)if(pi%2)j+=pi; printf(“%d/n

10、“,j); 程序运行后的输出结果是(分数:1.00)A.42B.45C.56D.6031.有以下程序 int f1(int x,int y)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b) ,f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是(分数:1.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,732.以下对结构体类型变

11、量 td 的定义中,错误的是(分数:1.00)A.typedef struct aa int n; float m; AA; AA td;B.struct aa int n; float m; td; struct aa td;C.struct int n; float m; aa; struct aa td;D.struct int n; float m; td;33.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是(分数:1.00)A.1B.2C.3D.434.用树形结构表示实体之间联系的模型是(分数:1.00)A.关系模型B.网状模型

12、C.层次模型D.以上三个都是35.有以下程序 main() int a32=0,(*ptr)2,i,j; for(i=0;i2;i+) ptr=a+i; scanf(“%d“,ptr); ptr+; for(i=0;i3;i+) for(j=0;j2;j+)printf(“%2d“,aij); printf(“/n“); 若运行时输入:1 2 3回车,则输出结果是(分数:1.00)A.产生错误信息B.1 0 2 0 0 0C.1 2 3 0 0 0D.1 0 2 0 3 036.有以下程序 #define N20 fun(int a,int n,int m) int i,j; for(i=m;

13、i=n;i-)ai+1=ai; main() int i,aN=1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i5;i+)printf(“%d“,ai); 程序运行后的输出结果是(分数:1.00)A.10234B.12344C.12334D.1223437.若有以下说明和定义 union dt int a;char b;double c;data; 以下叙述中错误的是(分数:1.00)A.data 的每个成员起始地址都相同B.变量 data 所占的内存字节数与成员 c 所占字节数相等C.程序段:data=5;printf(“%f/n“,dat;输出结果为

14、5.000000D.data 可以作为函数的实参38.有以下程序 main() int a33,*p,i; p=i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是(分数:1.00)A.012B.123C.234D.34539.以下与函数 fseek(fp,OL,SEEK_SET)有相同作用的是(分数:1.00)A.feof(fB.ftell(fC.fgetc(fD.rewind(f40.有以下程序 main() int a,b,d=25; a=d/10%9; b=a printf(“%d,%d/n“,a,b); 程序运行后的输出结果是

15、(分数:1.00)A.6,1B.2,1C.6,0D.2,042.有以下程序 main() int c=35;printf(“%d/n“,cin;i+)mi+; main() int a=1,2,3,4,5,i; prt(a,5); for(i=0;i5;i+) printf(“%d,“,ai); 程序运行后的输出结果是(分数:1.00)A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,二、B填空题/B(总题数:18,分数:36.00)51.某二叉树中度为 2 的结点有 18 个,则该二叉树中有U 【1】 /U个叶子结点。(分数:2.00)填空项 1

16、:_52.在面向对象方法中,类的实例称为U 【2】 /U。(分数:2.00)填空项 1:_53.诊断和改正程序中错误的工作通常称为U 【3】 /U。(分数:2.00)填空项 1:_54.在关系数据库中,把数据表示成二维表,每一个二维表称为U 【4】 /U。(分数:2.00)填空项 1:_55.问题处理方案的正确而完整的描述称为U 【5】 /U。(分数:2.00)填空项 1:_56.以下程序运行时,若从键盘输入:10 20 30回车,输出的结果是U 【6】 /U。 #includestdioh main() int i=0,j=0,k=0; scanf(“%d%*d%d“,c1c2;c1+,c2

17、-) printf(“%c%c“,c1,c2); printf(“/n“); (分数:2.00)填空项 1:_61.已知字符 A 的 ASCII 代码值为 65,以下程序运行时若从键盘输入:B33回车,则输出结果是 U 【11】 /U。 #include stdioh main() char a,b; a=getchar();scanf(“%d“,b=b*2; printf(“%c%c/n“,a,b); (分数:2.00)填空项 1:_62.以下程序中,fun 函数的功能是求 3 行 4 列二维数组每行元素中的最大值。请填空。 void fun(int,int,int(*)4,int*); m

18、ain() int a34=12,41,36,28,19,33,15,27,3,27,19,1,b3,i; fun(3,4,a,b); for(i=0;i3;i+)printf(“%4d“,bi); printf(“/n“); void fun(int m,int n,int ar4,int *br) int i,j,x; for(i=0;im;i+) x=ari0; for(j=0;jn;j+)if(xarij)x=arij; U 【12】 /U=x; (分数:2.00)填空项 1:_63.以下程序运行后的输出结果是U 【13】 /U。 void swap(int x,int y) int

19、t; t=x;x=Y;Y=t;printf(“%d%d“,x,y); main() int a=3,b=4; swap(a,b);printf(“%d%d“,a,b); (分数:2.00)填空项 1:_64.以下程序运行后的输出结果是U 【14】 /U。 #includestringh void fun(char*s,int p,int k) int i; for(i=p;ik-1;i+)si=si+2; main() char s=“abcdefg“; fun(s,3,strlen(s);puts(s); (分数:2.00)填空项 1:_65.以下程序运行后的输出结果是U 【15】 /U。

20、#includestringh main() char ch=“abc“,x34;int i; for(i=0;i3;i+)strcpy(xi,ch); for(i=0;i3;i+)printf(“%s“,c+; return(a+b+c) ; main() int i,a=5; for(i=0;i3;i+)printf(“%d%d“,i,fun(a) );prind(“/n“); (分数:2.00)填空项 1:_67.以下程序运行后的输出结果是U 【17】 /U。 struct NODE int k; struct NODE*link; ;main() struct NODE m5,*p=m

21、,*q=m+4; int i=0; while(p!=q) p-k=+i;p+; q-k=i+;q-; q-k=i; for(i=0;i5;i+)printf(“%d“,mi.k); printf(“/n“); (分数:2.00)填空项 1:_68.以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #includestring.h char *huiwen(char*str) char*p1,*P2;int i,t=0; P1=st

22、r;p2=U 【18】 /U; for(i=0;istrlen(str)/2;i+) if(*p1+!=*p2-)t=1;break; if(U 【19】 /U)return(“yes!“); else return(“no!“); main() char str50; printf(“Input:“);scanf(“%s“,str); printf(“%s/n“,U 【20】 /U); (分数:2.00)填空项 1:_二级 C 语言笔试 55 答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.以下选项中可作为 C 语言合法常量的是(分数:

23、1.00)A.-80.0 B.-080C.-8e1.0D.-80.0e解析:解析选项 B 中,以 0 开头表示是一个八进制数,而八进制数的取值范围是 07,所以-080 是不合法的;选项 C 和 D 中,e 后面的指数必须是整数,所以也不合法。2.设有如下说明 typedef struct ST long a;int b;char c2;NEW; 则下面叙述中正确的是(分数:1.00)A.以上的说明形式非法B.ST 是一个结构体类型C.NEW 是一个结构体类型 D.NEW 是一个结构体变量解析:解析用 typedef 定义结构体类型,ST 为结构体名称,NEW 为结构体类型。3.有以下程序 #

24、define P3 void F(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是(分数:1.00)A.192B.29C.25D.编译出错 解析:解析定义函数 F(x)为 void 型,即没有返回值,而函数体中又有 return 语句,编译时会出错。4.有以下程序 main() int i=1,j=2,k=3; if(i+=1i+) for(j=0;j=i;j+) printf(“%4c“,“); for(j=_;j4;j+) printf(“%4d“,numij); prrintf(“/n“); 若要按以下形式输出数组

25、右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是(分数:1.00)A.i-1B.i C.i+1D.4-i解析:解析本题考查循环嵌套,外层循环控制每一行的输出,内层循环的第一个 for 循环控制空格的输出,第二个 for 循环控制的输出。而在第 i 行,输出的第一个元素是 numii,所以下划线处应填i。8.有以下程序 void f(int*x,int *y) int t; t= *x;*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=p+;q-; for(i=0;i8;i+)printf(“%d

26、,“,ai); 程序运行后的输出结果是(分数:1.00)A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1 解析:解析本题考查循环和指针做函数参数,程序的功能是将 a0和 a7对换,a1和 a6对换,a2和 a5对换,a3和 a4对换,最后输出。9.下列对于软件测试的描述中正确的是(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析软件测试是为了发现错误而执行程序的过

27、程。10.有以下程序 main() int m,n,p; scanf(“m=%dn=%dp=%d“,char c10;,则正确的输入语句是(分数:1.00)A.scanf(“%d%s“, struct node*next;*p,*q,*r; (分数:1.00)A.p-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next; 解析:解析本题考查链表结点的删除。q-next 中存放的是 r 所指结点的首地址,将 r 所指结点的首地址存于 p-next 中,则实现删除 q 所指结点的功能,并保持链表连续,p 所指结点与 r 所指结点相连。17.数

28、字字符 0 的 ASCII 值为 48,若有以下程序 main() char a=1,b=2; printf(“%c,“,b+); printf(“%d/n“,b-A) ; 程序运行后的输出结果是(分数:1.00)A.3,2B.50,2C.2,2 D.2,50解析:解析自增运算符“+”,放在变量之前表示在使用变量之前,先使变量的值加 1;放在变量之后表示在使用变量之后,再使变量的值加 1。第一条输出语句先输出字符 b,此时 b=2,再使 b 自加1,b=3,第二条输出语句输出的是 b-a=3-1=2。18.算法具有五个特性,以下选项中不属于算法特性的是(分数:1.00)A.有穷性B.简洁性 C

29、.可行性D.确定性解析:解析算法具有的 5 个特性是:有穷性;确定性;可行性;有 0 个或多个输入;有一个或多个输出。19.以下叙述中正确的是(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间 解析:解析选项 A 预处理命令行通常位于源文件的开头,但不是必须的;选项 B 在源文件的一行上只能有一条预处理命令;选项 C 宏名一般习惯用大写字母表示,以与变量名相区别,但不是必须的;选项 D 宏替换不占用程序的运行时间,只占编译时间。20.数据独立性是数据库技术的重要特点之一,所谓数据独立性是指(分数

30、:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。数据的独立性一般分为物理独立性与逻辑独立性两级。21.有以下函数 fun(char*a,char*b) while(*a!=/0)b+; return(*a-*b); 该函数的功能是(分数:1.00)A.计算 a 和 b 所指字符串的长度之差B.将 b 所指字符串连接到 a 所指字符串中C.将 b 所指字符串连接到 a 所指字符串后面D.比较 a 和 b 所指字符串的大

31、小 解析:解析该函数的功能是比较 a 和 b 所指字符串的大小,当 a 所指定字符串大于 b 所指时,函数返回正数,当 a 所指字符串小于 b 所指时,函数返回负数,当 a 所指字符串等于 b 所指时,函数返回零。22.以下选项中不能作为合法常量的是(分数:1.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:解析C 语言的语法规定,字母 e(E)之前必须有数字,且 e(E)后面的指数必须是整数,而选项 B中,e(E)后面的指数是小数,所以不合法。23.有以下程序 point(char*p)p+=3; main() char b4=a,b,c,d,*

32、p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是(分数:1.00)A.a B.bC.cD.d解析:解析虽然函数的参数是一个指针,但函数体只对指针 p 进行了操作,并不会影响主函数中的指针p,因为传递的参数是 p,而不是 p 的地址,所以输出的字符是 b0,即为 a。24.有以下程序 main() int a=1,2,3,4,5,6,7,8,9,0,*P; for(p=a;pa+10;p+)printf(“%d,“,*p); 程序运行后的输出结果是(分数:1.00)A.1,2,3,4,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1,

33、C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,解析:解析本指针访问数组元素,在 for 循环中,首先指针 p 指向 a0的地址,输出语句即输出 a0的值,然后指针 p 依次后移一位,依次指向数组 a 中各元素的地址,所以程序依次输出数组 a 的各元素值。25.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度 D.上述说法都不对解析:解析a 数组存放的是字符串,系统会自动在字符串的最后加上一个“/0”,所以 a 数

34、组的长度为4,而 b 数组的长度为 3,故 a 数组长度大于 b 数组长度。26.有以下程序 main() char s=“159“,*p; p=s; printf(“%c“,*p+);printf(“%c“,*p+); 程序运行后的输出结果是(分数:1.00)A.15 B.16C.12D.59解析:解析自增运算符“+”放在变量之前表示在使用变量之前,先使变量的值加 1;放在变量之后表示在使用变量之后,再使变量的值加 1。语句 p=s;使指针 p 指向字符串 s 的首地址,第一次输出语句先输出字符1,指针 p 再往后移一位,指向字符5的地址,第二个输出语句,同样先输出字符5,指针p 再往后移一

35、位,指向字符9的地址。27.有以下程序 main() int a=1,b; for(b=1;b10;b+) if(a8)break; if(a%2=1)a+=5;continue; a-=3; printf(“%d/n“,b); 程序运行后的输出结果是(分数:1.00)A.3B.4 C.5D.6解析:解析本 break 语句和 continue 语句的区别:break 语句使程序跳出本层循环,而 continue 语句使程序跳出本次循环,进入下一次循环,第一次循环,b=1,a=1;则执行第二个 if 语句,a 为满足条件,a=a+5=6,退出本次循环;第二次循环,b=2,a=3;第三次循环,b

36、=3,a 为奇数满足第二个 if 语句的条件,a=a+5=8,退出本次循环,第四次循环,b=4,a=8,满足第一个 if 语句的条件,跳出 for 循环,最后输出 b=4。28.以下语句或语句组中,能正确进行字符串赋值的是(分数:1.00)A.char*sp;*sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.char*sp=:right!“; 解析:解析C 语言中不允许通过赋值语句给字符数组赋值,所以选项 A、B、C 都不对。29.有以下程序 main() char a7=“a0/0a0/0“;int i,j; i=size

37、of(a);j=strlen(a); printf(“%d%d/n“,i,j); 程序运行后的输出结果是(分数:1.00)A.2 2B.7 6C.7 2 D.6 2解析:解析函数 sizeof()和 strlen()的区别,sizeof(a) 求出字符串 a 中的字符占用存储空间的大小,由于定义了字符数组 a 的长度为 7,所以 i=7;而 strlen(a) 求出字符串 a 的长度,以/0为字符串结束标记,所以 j=2。30.有以下程序 main() int p8=11,12,13,14,15,16,17,18,i=0,j=0; while(i+7)if(pi%2)j+=pi; printf

38、(“%d/n“,j); 程序运行后的输出结果是(分数:1.00)A.42 B.45C.56D.60解析:解析本题考查 while 语句和 if 语句的嵌套,程序段实现的功能是将 p1至 p7中的奇数相加求和并输出,j=13+15+17=45。31.有以下程序 int f1(int x,int y)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b) ,f2(c,d); g=a+b+c+d-e-f; printf(“%

39、d,%d,%d/n“,e,f,g); 程序运行后的输出结果是(分数:1.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析:解析函数 f1(x,y)的功能返回 x,y 中较大的一个,而函数 f2(x,y)的功能是返回 x,y 中较小的一个,所以 f1(a,b)=4,f1(c,d)=3,f2(c,d)=2,故 e=f2(4,5),f= (3,2)=3,g=4+3+5+2-4-3=7。32.以下对结构体类型变量 td 的定义中,错误的是(分数:1.00)A.typedef struct aa int n; float m; AA; AA td;B.struct aa int n;

40、 float m; td; struct aa td;C.struct int n; float m; aa; struct aa td; D.struct int n; float m; td;解析:解析选项 t 中,aa 为结构体变量,而不是结构体名称,不能再用来定义 td。33.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是(分数:1.00)A.1 B.2C.3D.4解析:解析本题考查条件表达式的嵌套,因为 A=1,b=4,所以 Ab 成立,则条件表达式的值即 a 的值为 1。34.用树形结构表示实体之间联系的模型是(分数:1.00

41、)A.关系模型B.网状模型C.层次模型 D.以上三个都是解析:解析层次模型是最早发展起来的数据库模型,层次模型的基本结构是树形结构。35.有以下程序 main() int a32=0,(*ptr)2,i,j; for(i=0;i2;i+) ptr=a+i; scanf(“%d“,ptr); ptr+; for(i=0;i3;i+) for(j=0;j2;j+)printf(“%2d“,aij); printf(“/n“); 若运行时输入:1 2 3回车,则输出结果是(分数:1.00)A.产生错误信息B.1 0 2 0 0 0 C.1 2 3 0 0 0D.1 0 2 0 3 0解析:解析二维数

42、组指针第一个 for 循环中,第一次循环 ptr 指向 a00的首地址,所以经过输入语句,a00=1;第二次循环 ptr 指向 a10的首地址,所以经过输入语句,a10=2。此时,除了这两个元素,其他元素没有改变,等于初值 0。36.有以下程序 #define N20 fun(int a,int n,int m) int i,j; for(i=m;i=n;i-)ai+1=ai; main() int i,aN=1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i5;i+)printf(“%d“,ai); 程序运行后的输出结果是(分数:1.00)A.10234B

43、.12344 C.12334D.12234解析:解析因为宏定义 N=20,所以数组 a 中的后 10 个元素均为 0,函数 fun(a ,n,m)的功能是从an+1(mn),依次将值赋给后一个元素。所以 fun(a,2,9);执行后,数组 a 中的元素为 aN=1,2,3,4,4,5,6,7,8,9,10。37.若有以下说明和定义 union dt int a;char b;double c;data; 以下叙述中错误的是(分数:1.00)A.data 的每个成员起始地址都相同B.变量 data 所占的内存字节数与成员 c 所占字节数相等C.程序段:data=5;printf(“%f/n“,d

44、at;输出结果为 5.000000D.data 可以作为函数的实参 解析:解析选项 A 共用体的每个成员的起始地址都相同;选项 B 共用体变量所占的内存长度等于最长的成员的长度;选项 C 因为每个成员的起始地址相同,所以整型数 5 以浮点型输出时为 5.000000;选项D,C 语言规定,不能把共用体变量作为函数的参数。38.有以下程序 main() int a33,*p,i; p=i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是(分数:1.00)A.012B.123C.234D.345 解析:解析本题考查二维数组和指针,首先使指针

45、 p 指向二维数组的首地址,通过第一个 for 循环对一维数组 p 赋值,其实也就是给二维数组 a 赋值,a00a22分别赋以 08,所以 a10,a11,a12分别为 3,4,5。39.以下与函数 fseek(fp,OL,SEEK_SET)有相同作用的是(分数:1.00)A.feof(fB.ftell(fC.fgetc(fD.rewind(f 解析:解析fseek(fp,OL,SEEK_SET)的作用是使位置指针移到文件头。feof(fp)用来判断文件是否结束。ftell(fp)的作用是得到流式文件中的当前位置。fgete(fp)的作用是从文件 fp 读入一个字符。rewind(fp)的作用是使位置指针返回文件头。40.有以下程序 main() int a,b,d=25; a=d/10%9; b=a printf(“%d,%d/n“,a,b); 程序运行后的输出结果是(分数:1.00)A.6,1B.2,1 C.6,0D.2,0解析:解析本题考查算术运算符“/”、“%”,逻辑运算符“printf(“%d/n“,cin;i+)mi+; main() int a=1,2,3,4,5,i; prt

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

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

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