1、二级 C语言笔试-72 及答案解析(总分:101.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.设有下列二叉树:(分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA2.设变量 a, b, c, d和 y都已正确定义并赋值。若有以下 if语句if (ab)if(c=d) y=0;else y=1;(分数:1.00)A.B.C.D.3.以下程序企图把从终端输入的字符输出到名为 abc.txt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include stdio.hmain()FILE *fout; char ch
2、;fout=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,fout);ch =fgetc(stdin);fclose(fout);出错的原因是(分数:1.00)A.函数 fopen调用形式有误B.输入文件没有关闭C.函数 fgetc调用形式有误D.文件指针 stdin没有定义4.以下能正确定义且赋初值的语句是(分数:1.00)A.int n1=n2=10:B.char c=32;C.float f=f+1.1D.double x=12.3E2.5:5.有以下程序#include stdio.hvoid WriteStr(char *
3、fn, char *str)FILE *fp;fp=fopen(fn,“w“); fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是(分数:1.00)A.startB.endC.startendD.endrt6.有以下程序struet STUchar name10;int num;int Score;main()struct STU s5-“YangSan“,20041,703,(“LiSiGuo“,20042,580,“WangYin“,
4、20043,680,“SunDan“,20044,550,“Penghua“,20045,537,*p5,*t;int i,j;for(i=0;i5;i+) pi-for(i 0;i4;i+)for(j-i+1;j5;j+)if(pi Scorepj Score)t=pi;pi=pj;pj-t;printf(“%d %dkn“,s1.Score,p1-Score);执行后输出结果是(分数:1.00)A.550 550B.680 680C.580 550D.580 6807.若有一些定义和语句#include stdio.hint a=4, b=3, *p,*q,*w;p= q= w=q; q=
5、NULL;则以下选项中错误的语句是(分数:1.00)A.*q=0;B.w=p;C.*p=a;D.*p=*w;8.有以下程序main()int m=12,n=34;printf(“%d%d“,m+,+n);printf(“%d%d/n“,n+,+m);)程序运行后的输出结果是(分数:1.00)A.12353514B.12353513C.12343514D.123435139.在一个 C语言程序中(分数:1.00)A.main函数必须出现在所有函数之前B.main函数可以在任何地方出现C.main函数必须出现在所有函数之后D.main函数必须出现在固定位置10.有一函数 (分数:1.00)A.if
6、(x0) y=1;else if(x=0) y=0;else y=-1;B.B ) y=0;if(x0) y=1;else if(x0) y=-l;C.y=0;if(x=0);if(x0) y=1;else y=-1;D.if(x=0)if(x0) y=1;else y=0;else y=-l;11.下列叙述中正确的是(分数:1.00)A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类别D.C语言中既没有逻辑类型也没有集合类型12.下列描述中正确的是(分数:1.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产
7、率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题13.以下关于函数的叙述中正确的是(分数:1.00)A.每个函数都可以被其他函数调用(包括 main函数)B.每个函数都可以被单独编译C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数14.若指针 p已正确定义,要使 p指向两个连续的整型动态存储单元,不正确的语句是(分数:1.00)A.p=2*(int*)malloc(sizeof(int);B.p=(int*)mall0c(2*sizeof(int);C.p=(int*)malloc(2*2);D.p=(int*)call
8、oc(2,sizeof(int);15.有以下程序main()int i=1, j=l,k=2;if( (j+|k+)执行后输出的结果是(分数:1.00)A.1,1,2B.2,2,1C.2,2,2D.2,2,316.需求分析最终结果是产生(分数:1.00)A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告17.以下选项中,不能作为合法常量的是(分数:1.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e018.有以下程序段int k=0, a=1, b=2, c=3;k=ab ? b:a; k=kc ? c:k;执行该程序段后,k 的值是(分数
9、:1.00)A.3B.2C.1D.019.以下不能正确进行字符串赋初值的语句是(分数:1.00)A.char str5=“good!“;B.char str=“good!“;C.char*srt=“good!“;D.char str5= g, o, o, d;20.有以下程序main ( )char str =“xyz“, *ps=str;while (*ps) ps+:for (ps- ;ps-str=0 ;ps-) puts(ps);执行后输出结果是(分数:1.00)A.yzxyzB.zyzC.zyzxyzD.xxyxyz21.有以下程序main() int m=3 n=4,X;X=-m+
10、;x=x+8/+n;printf(“%d/n“,x);程序运行后的输山结果是(分数:1.00)A.3B.5C.-1D.-222.以下程序中函数 sort的功能足对 a所指数组中的数据进行由大到小的排序void sort(int a,int n)int i,j,t;for(i=0;in-1;i+)for(j=i+l,jn;j+)if(aiaj) t=ai;ai=aj;aj=t; main()int aa10=1,2,3,4,5,6,7,8,9,10,i;sort(for(i=0;i10;i+) print(“%d, “,aai);printf(/n“);程序运行后输出的结果是(分数:1.00)A
11、.1,2,3,4,5,6,7,8,9,10B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10D.1,2,10,9,8,7,6,5,4,3,23.以下叙述中正确的是(分数:1.00)A.调用 printf函数时,必须要有输出项B.使用 putchar函数时,必须在之前包含头文件 stdio.hC.在 C语言中,整数可以以十二进制、八进制或十六进制的形式输出D.调用 getchar函数读入字符时,可以从键盘上输入字符所对应的 ASCII码24.设有如下关系表:(分数:1.00)A.T=RSB.T=RSC.T=RSD.T=R/S25.有以下程序void fun
12、(int *a,int i,int j)int t;if (ij)t=ai; ai=aj; aj=t;i+; j-;fun(a,i, j);)main ( )int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4;i+) printf(“%2d“,xi);printf(“/“n);程序运行后的输出结果是(分数:1.00)A.1 2 6 8B.8 6 2 1C.8 1 6 2D.8 6 1 226.有以下程序void f(int x,int y)int t;if(xy) t=x; x=y; y=t;main()int a=4,b=3,c=5;f(a,b); f(a,c); f
13、(b,c);printf(“%d,%d,%d/n“,a,b,c);执行后输出的结果是(分数:1.00)A.3,4,5B.5,3,4C.5,4,3D.4,3,527.以下程序的输出结果是f(int b ,int m, int n)int i,s=0;for (i=m; in; i=i+2) s=s+b i;return s;main ( )int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf ( “%d/n“, x);(分数:1.00)A.10B.18C.8D.1528.一个算法应该具有“确定性”等 5个特性,下面对另外 4个特性的描述中错误的是(分数:1.00
14、)A.有零个或多个输入B.有零个或多个输出C.有穷性D.可行性29.若以下选项中的变量已正确定义,则正确的赋值语句足(分数:1.00)A.x1=26.8%3;B.1+2=x2C.x3=0x12;D.x4=1+2=3;30.已有定义: int i,a10,*p;, 则合法的赋值语句是(分数:1.00)A.p=100;B.p=a5C.p=a2+2D.p=a+2;31.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(分数:1.00)A.调用语句B.命令C.口令D.消息32.结构化程序设计的一种基本方法是(分数:1.00)A.筛选法B.递归法C.归纳法D.逐步求精法33.下列叙述中正确
15、的是(分数:1.00)A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率34.设 char型变量 x中的值为 10100111, 则表达(2+x)(3)的值是(分数:1.00)A.10101001B.10101000C.11111101D.0101010135.有以下程序#include stdlib.hmain()char *p,*q;p=(char*)malloc(sizeof(char)*20); q=
16、p;scanf(“%s %s“,p,q); printf(“%s %s/n“,p,q);若从键盘输入:abc def回车, 则输出结果是(分数:1.00)A.def defB.abc delC.abc dD.d d36.有以下程序struc t STUchar name 10int num;void f1(struct STU c)struct STU b=“LiSiGuo“,2042;c=b;void f2(struct STU *c)struct STU b=“SunDan“,2044);*c=b;main ( )struct STU a=“YangSan“,2041,b=“WangYin
17、“,2043;f1 ((分数:1.00)A.; f2 (printf ( “%d37.下列叙述中正确的是(分数:1.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试38.以下语句或语句组中,能正确进行字符串赋值的是(分数:1.00)A.char *sp; *sp=“right!“;B.char s10; s=“right!“;C.char s10; *s=“right!“;D.char *sp=“right!“;39.若有以下程序#include stdio.hvoid f(int n);main()( vo
18、id f(int n);f(5);void f(int n)printf(“%d/n“,n); 则以下叙述中不正确的是(分数:1.00)A.若只在主函数中对函数 f进行说明,则只能在土函数中正确调用函数 fB.若在主函数前对函数 f进行说明,则在主函数和其后的其他函数中都可以正碗调用函数 fC.对于以上程序,编译时系统会提示出错信息:提示对 f函数重复况明D.函数 f无返回值,所以可用 void将其类型定义为无值型40.以下程序的功能是进行位运算main ( )unsigned char a, b;a=73; b=4printf (,%d %d/n“ ,a,b);程序运行后的输出结果是(分数:
19、1.00)A.4 3B.7 3C.7 0D.4 041.设有定义:longx-123456L;,则以下能够正确输出变量 x值的语句是(分数:1.00)A.printf(“x=%d/n“,x);B.printf(“x=%1d/n“,x);C.printf(“x=%8dL/n“,x);D.printf(“x=%LD/n“,x);42.有以下程序void funint *a,int i,int j)int t;if (ij)t=ai ;ai=aj ;aj=t;fun(a, +i, -j);main ( )int a=1,2,3,4,5,6,i;fun(a,0,5);for (i=0; i6; i+
20、)printf (“%d“ , a i );执行后输出结果是(分数:1.00)A.6 5 4 3 2 1B.4 3 2 1 5 6C.4 5 6 1 2 3D.1 2 3 4 5 643.程序中头文件 typel.h的内容是#define N 5#define M1 N*3#define “typel .h“#define M2 N*2main ( )int i;i=M1+M2;printf (“%d/n“, i );程序编译后运行的输出结果是(分数:1.00)A.10B.20C.25D.3044.结构化程序由三种基本结构组成,三种基本的结构组成的算法(分数:1.00)A.可以完成任何复杂的任
21、务B.只能完成部分复杂的任务C.只能完成符合结构化的任务D.只能完成些简单的仟务45.有以下程序main()int p8=11,12,13,14,15,16,17,18, i=0,j=0;while(i+7) if(pi%2) j+=pi;prizltf(“%d/n“, j);程序运行后的输出结果是(分数:1.00)A.42B.45C.56D.6046.以下与函数 fseek(fp,0L,SEEK_SET)有相同作用的是(分数:1.00)A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)47.有以下程序void swapl(int c0,int c1int
22、 t;t=c00;c00=c10;c10=t;void swap2 (int *c0,int *c1)int t;t-*c0;*c0=*c1;*c1=t;main()int a2=3,5, b2=3,5swapl(a,a+1);swap2(printf(“%d %d %d %d/n“,a0,a1,b0,b1);程序运行后的输出结果是(分数:1.00)A.3 5 5 3B.5 3 3 5C.3 5 3 5D.5 3 5 348.有以下程序#include stdlib.hgtruet NODEint num; struct NODE *next; ;main()struct NODE *p,*q
23、,*r;p=(struct NODE*)malloc(sizeof (struct NODE);q=(struct NODE*)malloc(sizeof (struct NODE);r=(struct NODE*)malloc(sizeef (struct NODE);p-num=10; q-num=20; r-num=30;p-next=q; q-next-r;printf(“%d/n“,p-num+q-next-num);程序运行后的输出结果是(分数:1.00)A.10B.20C.30D.5049.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(分数:1.00)A.函数调用
24、可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参50.有以下程序main()int i;for(i=0;i3;i+)switch(i)case 0: prinft(“%d“,i);case 2: prinft(“%d“,i);default:prinft(“%d“,i);程序运行后的输出结果是(分数:1.00)A.022111B.021021C.000122D.012二、填空题(总题数:17,分数:51.00)51.算法的复杂度主要包括 1 复杂度和空间复杂度。(分数:3.00)填空项 1:_52.在一棵二叉树上第 6层的
25、结点个数最多是 1 个。(分数:3.00)填空项 1:_53.若按功能划分,软件测试的方法通常分为 1 测试方法和黑盒测试方法。(分数:3.00)填空项 1:_54.在数据库理论中,数据物理结构的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不引起应用程序的变化,称为 1。(分数:3.00)填空项 1:_55.问题处理方案的正确而完整的描述称为 1。(分数:3.00)填空项 1:_56.以下程序运行时若从键盘输入: 10 20 30回车。输出结果是_。#include stdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“
26、,printf(“%d %d %d/n“,i,j,k);(分数:3.00)填空项 1:_57.以下程序的输出结果是_。main()int a=177;printf(“%o/n“,a);(分数:3.00)填空项 1:_58.有以下程序main()int t=1,i=5;for( ; i=0; i-) t*=i;printf(“%d/n“,t);执行后输出结果是_。(分数:3.00)填空项 1:_59.以下程序运行后的输出结果是_。main()int x=15;while(x10 if(x/3)x+;break;else continue;printf(“%d/n“,x);(分数:3.00)填空项
27、 1:_60.若有以下程序main ( )int a4 4=1,2;-3,-4,0,-12,-13,14 , 21,23,0,-24,-31,32,-33;0;int i,j,s=0;for(i=0;i4;i+)for(j=0;j4;j+)if(aij0) continue;if(aij=0) break;s+=aij;printf(“%d/n“,s);执行后输出结果是_。(分数:3.00)填空项 1:_61.已知字符 A的 ASCII代码值为 65,以下程序运行时若从键盘输入: B33回车。则输出结果是_。#include stdio,hmain()char a,b;a=geCchar();
28、 scanf(“%d“, a=a-A+0; b=b*2;printf(%c %c/n“ ,a,b);(分数:3.00)填空项 1:_62.有以下程序int sub(int n)retnrn(n/10+n%10);main()int x,y;scanf(“%d“,y=sub(sub(sub(x);printf(“%d/n“,y);若运行时输入:1234回车,程序的输出结果是_。(分数:3.00)填空项 1:_63.fun函数的功能是:首先对 a所指的 N行 N列的矩阵,找出各行中的最大数,再求这 N 个最大值中的最小的那个数作为函数值返回。请填空_。#include stdio.h#define
29、 N 100int fun(int(*a)N)int row, col,max,min;for(row=0;rowN;row+)for(max=arow0,col=1; colN;col+)if( ) max=arowcol;if(row=0) min=max;else if( ) min=max;return min;(分数:3.00)填空项 1:_64.设有如下定义#define MYSWAP(z,x,y) z=x; x=y; y=z;float a=5,b=16,c;MYSWAP(_,a,b);(分数:3.00)填空项 1:_65.以下程序运行后的输出结果是_。fun(int a)int
30、 b=0; static int c=3;b+; c+;return(a+b+c);main()int i,a=5;for(i=0;i3;i+) printf(“%d %d“,i,fun(a);printf(“/n“);(分数:3.00)填空项 1:_66.以下程序运行后的输出结果是_。struct NODEint k;struct NODE *link;main()struct NODE m5,*p=m,*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(“/
31、n“);(分数:3.00)填空项 1:_67.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数数返回字符串:yes!否则函数返回这符串:no!并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。请填空#include string.hchar*huiwen(char *str)char *p1,*p2; int i,t=0;pl=str; p2=_;for(i=0;i=strlen(str)/2;i+*)if(*p1+!=*p2-)t=1;break;if(_) return(“yes!“);else return(*no!“);main
32、()char str50;printf(“Input:“); scanf(“%s“,str);printf(“%s/n“,_);(分数:3.00)填空项 1:_二级 C语言笔试-72 答案解析(总分:101.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.设有下列二叉树:(分数:1.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA 解析:解析 二叉树的遍历分为先序、中序、后序三种不同方式。本题要求后序遍历,其遍历顺序应该为:后序遍历左子树-,后序遍历右子树-,访问根结点。按照定义,后序遍历序列是 DEBFCA,故答案为 D。2.设变量 a, b
33、, c, d和 y都已正确定义并赋值。若有以下 if语句if (ab)if(c=d) y=0;else y=1;(分数:1.00)A.B.C. D.解析:解析 本题考查的是 if语句的嵌套。解此类题目只需记住 else子句总是与前面最近的不带 else的 if相结合,切不可轻信试卷上的缩进格式。另外,花括号括起来部分相当于一条语句,外部 else不可与内部的 if结合,应把整个花括号部分看成一条普通语句所以题目中的嵌套讧语句的意思是“在 ab的前提下,如果 c=d就让 y=0,如果 c!=d就让 y=1。”所以应该选择 C。3.以下程序企图把从终端输入的字符输出到名为 abc.txt 的文件中
34、,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include stdio.hmain()FILE *fout; char ch;fout=fopen(abc.txt,w);ch=fgetc(stdin);while(ch!=#)fputc(ch,fout);ch =fgetc(stdin);fclose(fout);出错的原因是(分数:1.00)A.函数 fopen调用形式有误 B.输入文件没有关闭C.函数 fgetc调用形式有误D.文件指针 stdin没有定义解析:解析 本题考核的知识点是文件的简单应用。stdin 是标准输入设备的文件指针,不需定义直接可以使用,它随系统的启动
35、而打开,随系统的关闭而关闭,fgetc()函数的作用是从某个文件中读取一个数据,其参数为要读取文件的文件指针,所以本题中的调用形式是正确的。fopen()函数有两个参数,第一个参数是打开的文件名,第二个参数是文件打开模式,两个参数都是字符串,本例中“fout=fopen(abc.txt,w);”语句的 fopen()函数参数是错误的,应该用双引号“,正确的应改为 fout=fopen(“abc.txt”,“w”);。所以,A 选项为所选。4.以下能正确定义且赋初值的语句是(分数:1.00)A.int n1=n2=10:B.char c=32; C.float f=f+1.1D.double x
36、=12.3E2.5:解析:解析 本题考查的知识点是变量赋初值选项 A中的语句只能起定义 n1的作用,而 n2=10是 n1的初始值表达式,但因前面没有定义过 n2,所以编译会报错“n2 未定义”,故不正确。选项 B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的 ASCII码值)。选项 C定义的初始值表达式中出现了它自身,某些编译器能通过编译,但 f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项 D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的 2.5非法。5.有以下程序#include stdio.hv
37、oid WriteStr(char *fn, char *str)FILE *fp;fp=fopen(fn,“w“); fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是(分数:1.00)A.startB.end C.startendD.endrt解析:解析 本题主要考查的是打开文件函数 fopen()题目开始定义了一个函数,该函数有两个字符指针型参数,其作用分别用来传入文件名和文件内容。函数首先定义一个文件指针印,然后使用 fopen()
38、函数打开参数 fn所指定的文件。本题的关键就在于 fopen()函数的第 2个参数,这个参数指定了文件打开的方式。“w“表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原有文件。接下来函数使用 fputs()函数将参数 str中的内容写入文件,最后调用 fclose()函数关闭文件。在主函数中两次调用该函数,但写入的是同一个文件,故只有最后一次写入有效。所以应该选择 B。6.有以下程序struet STUchar name10;int num;int Score;main()struct STU s5-“YangSan“,20041,703,(“LiSiGuo“,2004
39、2,580,“WangYin“,20043,680,“SunDan“,20044,550,“Penghua“,20045,537,*p5,*t;int i,j;for(i=0;i5;i+) pi-for(i 0;i4;i+)for(j-i+1;j5;j+)if(pi Scorepj Score)t=pi;pi=pj;pj-t;printf(“%d %dkn“,s1.Score,p1-Score);执行后输出结果是(分数:1.00)A.550 550B.680 680C.580 550 D.580 680解析:解析 本题考核的知识点是结构体类型的定义、初始化以及结构体数组中元素的引用方法。本题中
40、首先定义了结构体类型 STU,该结构体由一个长度为 10的字符数组、两个整型变量 hum和 Score组成在主函数中,定义了一个长度为 5的结构体数组 s并赋初值,一个指针数组 p和一个指针变量 t,接着将数组 s中各元素的地址依次赋给指针数组 p中的各成员。然后通过两个 for循环将数组 p按 Score的值从小到大的顺序排列。因此最后输出的 p1-Seore 的值为 550,而数组 s1。Score 的值为 580,所以,4 个选项中选项 C符合题意。7.若有一些定义和语句#include stdio.hint a=4, b=3, *p,*q,*w;p= q= w=q; q=NULL;则以
41、下选项中错误的语句是(分数:1.00)A.*q=0; B.w=p;C.*p=a;D.*p=*w;解析:解析 本题考核的知识点是指针变量的使用与空指针(NULL)基本概念本题中定义了 3个指向整型的指针变量 p、q、w,并让 p指向 a,让 q指向 b,通过将 q的值赋给 w,使 w也指向 b,最后将 NULL赋值给 q。由整形变量指针的定义可知,可以给整型指针指向的变量赋一个常数值(表达式),故选项 C和选项 D是正确的;可以给指针变量赋一个同种类型的指针变量(或地址值),故选项 B也是正确的;选项 A错误,因为 q不指向任何变量,给一个空指针指向的单元赋值是错误的。所以,A 选项为所选。8.
42、有以下程序main()int m=12,n=34;printf(“%d%d“,m+,+n);printf(“%d%d/n“,n+,+m);)程序运行后的输出结果是(分数:1.00)A.12353514 B.12353513C.12343514D.12343513解析:解析 本题考查的是自加运算符的运用。自加运算符有前缀和后缀两种不同的形式,对于变量本身来说,无论是前缀还是后缀其作用的效果都是相同的,使变量值增 1。但作为表达式来说却有着不同的值,前缀时自增表达式的值是变量增 1,后的值,而后缀时自增表达式的值是变量增 1前的值。本题程序开始定义了两个整型变量 m和 n,并分别初始化为 12和
43、34第一条输出语句是按整型格式输出表达式m+和+n 的值,根据前面所述,表达式 m+的值为 12,+n 的值为 35,所以第一次输出的字符串是“1235“,执行完后 m和 n的值都自增 1,分别是 13和 35接下来第二条输出语句也是按整型格式输出表达式 n+和+m 的值,分别是 35和 14,故最终的输出应该为“12353514”,所以,4 个选项中选项 A符合题意。9.在一个 C语言程序中(分数:1.00)A.main函数必须出现在所有函数之前B.main函数可以在任何地方出现 C.main函数必须出现在所有函数之后D.main函数必须出现在固定位置解析:解析 本题考核的知识点是 main
44、()函数的位置。一个完整的 C语言程序有且仅有一个主函数 main()函数)程序总从 main()函数的第一条语句开始执行,到 main()函数的最后一条语句结束,其他函数都是在执行 main()函数时,通过函数调用或嵌套调用而得以执行的。C 语言规定, main()函数在程序中的位置是任意的,故选项 A、选项 C和选项 D均不正确。所以,B 选项为所选。10.有一函数 (分数:1.00)A.if(x0) y=1;else if(x=0) y=0;else y=-1;B.B ) y=0;if(x0) y=1;else if(x0) y=-l;C.y=0;if(x=0);if(x0) y=1;e
45、lse y=-1; D.if(x=0)if(x0) y=1;else y=0;else y=-l;解析:解析 本题考查的知识点是 if 语句的嵌套使用首先检查订与 else的配对,然后再分析各分支实现的功能选项 A描述的意思是:在 x=O 情况下,则 y为 1,否则;在 x=O时,y 为 0,剩下的 x0时,y 为-1,满足本题中函数的要求;选项 B描述的意思时:初始化 y的值为 0,在 x0 时,给 y重新赋值为 1,否则,在 x0 时,给 y重新赋值为-1,满足本题中函数的要求;选项 C描述的意思是:在 x0情况下,如果 x0,则 y为 1,否则即“c=0”时,y 为-1:剩下的 x0 时
46、,y 为 0可见答案 C实现的结果不是给定的表达式。选项 D中描述的意思是:在 x=0 的情况下,如果 x=0,就给 y赋值为 1,否则就给 y赋值为 0,在不是 x=0 的其他情况下,就给 y赋值为-1,满足本题中函数的要求所以 4个选项中 C为所选。11.下列叙述中正确的是(分数:1.00)A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类别D.C语言中既没有逻辑类型也没有集合类型 解析:解析 本题考核的知识点是 c 语言数据类型在 C语言中没有逻辑类型,逻辑类型用整型来表示,故选项 A和选项 C不正确;C 语言中没有集合类型,故选项
47、 B不正确。所以,D 选项为所选。12.下列描述中正确的是(分数:1.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发中的技术问题解析:解析 软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。由此可见,选项 A、B 和 D的说法均不正确,选项 C正确。13.以下关于函数的叙述中正确的是(分数:1.00)A.每个函数都可以被其他函数调用(包括 main函数)B.每个函数都可以被单独编译 C.每个函数都可以单独运行D.在一个函数内部可以定义另一个函数解析:解析 本题考