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

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

1、二级 C 语言-120 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误2.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式3.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍4.软件按功能可以分为应用软件、

2、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.若变量已正确定义为 int 型,要给 a、b、c 输入数据,正确的输入语句是_。(分数:1.00)A.read(a, b, c);B.scanf(“%d%d%d“, a, b, c);C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, 6.某系统总体结构图如下图所示: (分数:1.00)A.7B.6C.3D.27.下列关于数据库设计的叙述中,正确的是_。(分数:1.00)A.在需求分析阶段建立数据字典B.在概念设计阶

3、段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上 3 种说法都不对9.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上 3 种说法都不对10.不合法的十六进制数是_。(分数:1.00)A.oxffB.0XabcC.0x11D.0x19

4、11.以下叙述中错误的是_。(分数:1.00)A.C 语言编写的函数源程序,其文件名后缀可以是 CB.C 语言编写的函数都可以作为一个独立的源程序文件C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个 C 语言程序只能有一个主函数12.若有定义语句:“int k1=10, k2=20;”,执行表达式(k1=k1k2) double b=3.14;”,则表达式“A“+a+b 值的类型是_。(分数:1.00)A.charB.intC.dotlbleD.float15.若有定义语句:“int x=12, y=8, z;”,在其后执行语句“z=0.9+x/y;”,则 z 的值为_。(分数:1

5、.00)A.1.9B.1C.2D.2.416.若有定义:“int a, b;”,通过语句“scanf(“%d; %d“, ”,能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。(分数:1.00)A.3 5B.3,5C.3;5D.3517.以下选项中关于程序模块化的叙述错误的是_。(分数:1.00)A.把程序分成若干相对独立的模块,可便于编码和调试B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18.若有定义语句:double

6、a, *p=,以下叙述中错误的是_。(分数:1.00)A.定义语句中的*号是一个间址运算符B.定义语句中的*号只是一个说明符C.定义语句中的 p 只能存放 double 类型变量的地址D.定义语句中,*p= k=fun(a); (分数:1.00)A.double fun(double a15)B.double fun(double *a)C.double fun(double a)D.double fun(double a)20.有以下程序: #includestdio.h main() int a=7; while(a-); printf(“%d/n“, a); 程序运行后的输出结果是_。(

7、分数:1.00)A.-1B.0C.1D.721.以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)_。(分数:1.00)A.printf(“%c/n“, “a“-32);B.printf(“%d/n“, “A“);C.printf(“%c/n“, 65);D.printf(“%c/n“, “B“-1);22.有以下程序(注:字符 a 的 ASCII 码值为 97) #includestdio.h main() char*s=“abc“ do printf(“%d“, *s%10“); +s; while(*s); 程序运行后的输

8、出结果是_。(分数:1.00)A.abcB.789C.7890D.97989923.有以下程序: #includestdio.h main() int a=1, b=0; if(-a)b+; else if(a=0) b+=2; else b+=3; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.2D.324.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0; i30; i+=10) a+=f(double)i); printf(“%5.0

9、f/n“, a); double f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.503B.401C.500D.140425.有以下程序: #includestdio.h #includestring.h void fun(char*w, int m) char s, *p1, *p2; p1=w; p2=w+m-; while(p1p2)s=*p1; *p1=*p2; *p2=s; p1+; p2-; main() char a=“123456“; fun(a, strlen(a); puts(a); 程序运行后的输出结果是_。(分数:1.

10、00)A.654321B.116611C.161616D.12345626.以下定义数组的语句错误的是_。(分数:1.00)A.int num=1, 2, 3, 4, 5, 6;B.int num3=1, 2, 3, 4, 5, 6;C.int num24=1, 2, 3, 4, 5, 6;D.int num4=1, 2, 3, 4, 5, 6;27.有以下程序: #include stdio.h void fun(int *p) printf(“%d/n“, p5); main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10; fun( 程序运行后的输出结果是

11、_。(分数:1.00)A.5B.6C.8D.928.有以下程序: #includestdio.h #define N 4 void fun(int aN, int b) int i; for(i=0; iN; i+) bi=aii-aiN-1-i; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, yN, i; fun(x, y); for(i=0; iN; i+) printf(“%d, “, yi); printf(“n“); 程序运行结果为_。(分数:1.00)A.-12,-3,0,0,B.-3,-

12、1,1,3,C.0,1,2,3,D.-3,-3,-3,-3,29.有以下程序: #includestdio.h main() FILE*fp; int k, n, i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2.dat“, “w“); for(i=0; i6; i+)fprintf(fp, “%d/n“, ai); fclose(fp); fp(i=0; i3; i+) fseanf(fp, “%d%d“, fclose(fp); printf(“%d/n, %d/n, k, n); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.3,4C.5,6D.123

13、,45630.若有定义语句:“char*s1=“OK“, *s2=“ok“;”,以下选项中,能够输出“OK”的语句是_。(分数:1.00)A.if(strcmp(s1, s2)=0) puts(s1);B.if(strcmp(s1, s2)!=0) puts(s2);C.if(strcmp(s1, s2)=1) puts(s1);D.if(strcmp(s1, s2)!=0) puts(s1);31.下列条件语句中,输出结果与其他语句不同的是_。(分数:1.00)A.if(a) printf(“%d n“, x); else printf(“%d/n“, y)B.if(a=0) pritf(“

14、%d n“, y); else printf(“%d/n“, x)C.if(a!=0) printf(“%d n“, x); else printf(“%d/n“, y)D.if(a=0) printf(“%d n“, x); else printf(“%d/n“, y)32.有以下程序: #includestdio.h #includestring.h main() char a510=“china“, “beijing“, “you“, “tiananmen“, “welcome“; int i, j; char t10; for(i=0; i4; i+) for(j=i+1; j5; j

15、+) if(strcmp(ai, aj0) strcpy(t, ai); strcpy(ai, aj); strcpy(aj, t); puts(a3); 程序运行后的输出结果是_。(分数:1.00)A.beijingB.chinaC.welcomeD.tiananmen33.有以下程序: #includestdio.h int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“%d, “f(+n); printf(“%d/n“, f(n+); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.1,1C.2

16、,3D.3,334.有以下程序: #include stdio.h main() char ch35=“AAAA“, “BBB“, “CC“; printf(“%s/n“, ch1); 程序运行后的输出结果是_。(分数:1.00)A.AAAB.CCC.BBBCCD.BBB35.若有定义语句:“int year=2009, *p=”,以下不能使变量 year 中的值增至 2010 的语句是_。(分数:1.00)A.*p+=1;B.(*p)q+;C.+(*p);D.*+p36.有以下程序: #includestdio.h #includestring.h typedef structchar na

17、me9; char sex; int score2; STU; STU f(STU a) STU b=“Zhao“, “m“, 85,90; int i; strcpy(a.name, b.name); a.sex=b.sex; for(i=0; i2; i+) a.scorei=b.scorei; return a; main() STU c=“Qian“, f, 95, 92, d; d=f(c); printf(“%s, %c, %d, %d, “, d.name, d.sex, d.score0, d.score1); printf(“%s, c, %d, %d/n“, C.name,

18、 C.sex, C.score0, C.score1); 程序运行后的输出结果是_。(分数:1.00)A.Zhao,m,85,90,Qian,f,95,92B.Zhao,m,85,90,Zhao,m,85m90C.Qian,f,95,92,Qian,f,95,92D.Qian,f,95,92,zhan,m,85,9037.有以下程序: #includestdio.h main() struct nodeint n; struct node*next; *p; struct node x3=2, x+1, 4, x+2, 6, NULL; p=x; printf(“%d, “, p-n); pr

19、intf(“%d/n“, p-next-n ); 程序运行后的输出结果是_。(分数:1.00)A.2,3B.2,4C.3,4D.4,638.有以下程序: #includestdio.h main() int a=2, b; b=a2; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.2B.4C.6D.839.以下选项中叙述错误的是_。(分数:1.00)A.C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值B.在同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函

20、数的性能不可以说明为 static 型变量40.有以下函数 int fun(char*x, char *y) int n=0; while(*x=*y) y+; n+; return n; 函数的功能是_。(分数:1.00)A.查找 x 和 y 所指字符串中是否有“/0“B.统计 x 和 y 所指字符串中最前面连续相同的字符个数C.将 y 所指字符串赋给 x 所指定存储空间D.统计 x 和 y 所指字符串中相同的字符个数二、程序填空题(总题数:1,分数:18.00)41.请补充 main()函数,该函数的功能是:如果数组 arr 的前一个元素比后一个元素小,则把它保存在数组 bb 中并输出。

21、例如,若数组中的元素为:“40,68,62,33,35,52,48,95,66,73”,则输出:“40,33,35,48,66”。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在 main()函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdlib.h #includestdio.h #define M 10 void main() int i, n=0; int arrM=40, 68, 62, 33, 35, 52, 48, 95, 66, 73; int bbM; system(“CLS“); for(i=0; i 1; i

22、+) if(arriarri+1) 2; printf(“n*display bb* n“); for(i=0; in; i+) printf(“bb%d=%2d“, 3); (分数:18.00)三、程序改错题(总题数:1,分数:24.00)42.给定程序中,函数 proc()的功能是:使数组中的元素的值缩小 5 倍。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includestdio.h #includeconio.h float m10; /*found* int p

23、roc(void) int j; printf(“In subfunc after calling/n“); for(j=0; j10; j+) /*found* printf(“%f“, mj%5); void main() int i; printf(“In main before calling/n“); for(i=0; i10; i+) mi=i+20; printf(“%f“, mi); proc(); printf(“/nIn main after calling/n“); for(i=0; i10; i+) printf(“%f“, mi/5); (分数:24.00)_四、程序

24、设计题(总题数:1,分数:18.00)43.学生的记录由学号和成绩组成,M 名学生的数据已在主函数中放入结构体数组 stu 中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #define M 16 typedef struct char num10; int s; STREC; void proc(STREC a) int i, j; STREC t; for(i=1; iM; i+) /

25、*用冒泡法来按从高到低排序 排序*/ for(j=0; jM-1; j+) if(aj.saj+1.s) /*按分数的高低排列学生的记录,高分在前*/ t=aj; aj=aj+1; aj+1=t; void main() STREC stuM=“GA005“, 85, “GA003“, 76, “GA002“, 69, “GA004“, 85, “GA001“, 91, “GA007“, 72, “GA008“, 64, “GA006“, 87, “GA015“, 85, “GA013“, 91, “GA012“, 64, “GA014“, 91, “GA011“, 66, “GA017“,

26、64, “GA018“, 64, “GA016“, 72; int i; proc(stu); printf(“The data after sorted: n“); for(i=0; iM; i+) if(i%4=0) /每行输出 4 个学生记录 printf(“/n“); printf(“%s%4d“, stui.num, stui.s); printf(“/n“); (分数:18.00)_二级 C 语言-120 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.

27、发现程序中的错误D.诊断和改正程序中的错误 解析:解析 程序调试的主要任务是改正程序中的错误,而软件测试是发现错误。2.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式 解析:解析 数据库系统的三级模式为内模式、外模式和概念模式,所以答案选择 D。3.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 叶子结点和度数为 2 的结点之间的关系为叶子结点的个数=度数为 2

28、的结点个数+1。4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C 语言编译程序 C.UNIX 操作系统D.数据库管理系统解析:解析 应用软件(application software)是用户可以使用的各种程序设计语言以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。所以答案选择 B。5.若变量已正确定义为 int 型,要给 a、b、c 输入数据,正确的输入语句是_。(分数:1.00)A.read(a, b, c);B.scanf(“%d%d%d“, a, b, c);C.scanf(“%D

29、%D%D“, D.scanf(“%d%d%d“, 解析:解析 scanf 是键盘输入语句,%d 是打印十进制文件,”,执行表达式(k1=k1k2) double b=3.14;”,则表达式“A“+a+b 值的类型是_。(分数:1.00)A.charB.intC.dotlble D.float解析:解析 如果是字符数据和整数运算将先转换成整型再进行运算,当整型和浮点数进行运算,为了提高精度将会转化为双精度类型然后进行运算,所以此题结构的数值类型为 double 类型。15.若有定义语句:“int x=12, y=8, z;”,在其后执行语句“z=0.9+x/y;”,则 z 的值为_。(分数:1.

30、00)A.1.9 B.1C.2D.2.4解析:解析 此题考查除法运算,根据先乘除后加减,有括号先算括号的原则,先计算 x/y,即12/8=1,所以 z=0.9+1=1.9。16.若有定义:“int a, b;”,通过语句“scanf(“%d; %d“, ”,能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是_。(分数:1.00)A.3 5B.3,5C.3;5 D.35解析:解析 在输入时必须遵守 scanf 函数中的格式才能正确地赋值给相应的变量,由于 scanf 函数为“%d;%d”,所以在输入时要输入 3;5,答案为 C。17.以下选项中关于程序模块化的叙述错误的是_。(分数:1.

31、00)A.把程序分成若干相对独立的模块,可便于编码和调试B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C.可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序解析:解析 模块化的特征为将程序分解成独立的模块、模块的重用性、自顶向下逐步细化。18.若有定义语句:double a, *p=,以下叙述中错误的是_。(分数:1.00)A.定义语句中的*号是一个间址运算符B.定义语句中的*号只是一个说明符C.定义语句中的 p 只能存放 double 类型变量的地址 D.定义语句中,*p= k=fun

32、(a); (分数:1.00)A.double fun(double a15) B.double fun(double *a)C.double fun(double a)D.double fun(double a)解析:解析 由题可知 fun 的参数为变量,而 a15为常量,所以答案为 A。20.有以下程序: #includestdio.h main() int a=7; while(a-); printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:1.00)A.-1 B.0C.1D.7解析:解析 此题考查 a-和-a 之间的区别,当 while(a-)为真循环执行,a-是执行再

33、减 1,所以答案选择 A。21.以下不能输出字符 A 的语句是(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)_。(分数:1.00)A.printf(“%c/n“, “a“-32);B.printf(“%d/n“, “A“); C.printf(“%c/n“, 65);D.printf(“%c/n“, “B“-1);解析:解析 在 C 语言中%d 表示输出整型数值,所以答案为 B。22.有以下程序(注:字符 a 的 ASCII 码值为 97) #includestdio.h main() char*s=“abc“ do printf(“%d“, *s%10

34、“); +s; while(*s); 程序运行后的输出结果是_。(分数:1.00)A.abcB.789 C.7890D.979899解析:解析 程序中的*s%10 是求余运算,分别是 a、b、c 的 ASCII 码值对 10 进行求余运算然后输出,所以输出的答案为 789。23.有以下程序: #includestdio.h main() int a=1, b=0; if(-a)b+; else if(a=0) b+=2; else b+=3; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.2 D.3解析:解析 主要考查 if(-a),意思为如

35、果-a 为真,将会一直进行下列语句,所以答案为 C。24.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0; i30; i+=10) a+=f(double)i); printf(“%5.0f/n“, a); double f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.503 B.401C.500D.1404解析:解析 此题是一个简单的函数调用,当 i=0 并且 i30,执行 i+=10,并且调用函数 f,所以当i=0 时,结果为 1;当

36、 i=10 时,结果为 101;当 i=20 时,结果为 401,所以 a=1+101+401=503。25.有以下程序: #includestdio.h #includestring.h void fun(char*w, int m) char s, *p1, *p2; p1=w; p2=w+m-; while(p1p2)s=*p1; *p1=*p2; *p2=s; p1+; p2-; main() char a=“123456“; fun(a, strlen(a); puts(a); 程序运行后的输出结果是_。(分数:1.00)A.654321 B.116611C.161616D.1234

37、56解析:解析 此题是需要将 a中的数值倒过来进行输出,所以答案为 A。26.以下定义数组的语句错误的是_。(分数:1.00)A.int num=1, 2, 3, 4, 5, 6;B.int num3=1, 2, 3, 4, 5, 6; C.int num24=1, 2, 3, 4, 5, 6;D.int num4=1, 2, 3, 4, 5, 6;解析:解析 二维数组的定义有 3 种形式,第 1 种是分行为两位数组赋值,即 int num=12,3,4,5,6,第 2 种是按照数组排列顺序进行赋值,即 int num=1,2,3,4,5,6,第 3 种为对部分元素赋初值,即 int num=

38、1,2,3,4,5,6,所以错误的为 B。27.有以下程序: #include stdio.h void fun(int *p) printf(“%d/n“, p5); main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10; fun( 程序运行后的输出结果是_。(分数:1.00)A.5B.6 C.8D.9解析:解析 由题可知,fun( for(i=0; iN; i+) bi=aii-aiN-1-i; main() int xNN=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, yN, i; fun

39、(x, y); for(i=0; iN; i+) printf(“%d, “, yi); printf(“n“); 程序运行结果为_。(分数:1.00)A.-12,-3,0,0,B.-3,-1,1,3, C.0,1,2,3,D.-3,-3,-3,-3,解析:解析 此题考查函数的调用以及数组的用法,由函数 fun 可知,当 i=0,iN 且 N=4,执行 i+和 bi=aii-aiN-1-i,经过运算得出结果为-3,-1,1,3。29.有以下程序: #includestdio.h main() FILE*fp; int k, n, i, a6=1, 2, 3, 4, 5, 6; fp=fopen

40、(“d2.dat“, “w“); for(i=0; i6; i+)fprintf(fp, “%d/n“, ai); fclose(fp); fp(i=0; i3; i+) fseanf(fp, “%d%d“, fclose(fp); printf(“%d/n, %d/n, k, n); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.3,4C.5,6 D.123,456解析:解析 此题是考查 fprintf 和 fscanf,其中 fprintf 是向文件输出,文件为 da2.dat 文件,fscanf 是向文件输入,所以根据程序循环写入和写出,可知答案为 C。30.若有定义语句:“

41、char*s1=“OK“, *s2=“ok“;”,以下选项中,能够输出“OK”的语句是_。(分数:1.00)A.if(strcmp(s1, s2)=0) puts(s1);B.if(strcmp(s1, s2)!=0) puts(s2);C.if(strcmp(s1, s2)=1) puts(s1);D.if(strcmp(s1, s2)!=0) puts(s1); 解析:解析 此题考查 strcmp 函数,此函数是模糊比较两个字符串的大小,因为 strcmp(s1,s2)!=0,所以需要输出“OK”用 puts 函数,所以答案为 D。31.下列条件语句中,输出结果与其他语句不同的是_。(分数

42、:1.00)A.if(a) printf(“%d n“, x); else printf(“%d/n“, y)B.if(a=0) pritf(“%d n“, y); else printf(“%d/n“, x)C.if(a!=0) printf(“%d n“, x); else printf(“%d/n“, y)D.if(a=0) printf(“%d n“, x); else printf(“%d/n“, y) 解析:解析 主要考查 if 判断语句,A 选项 if(a),如果 a 为真,则输出 x,否则输出 y。B 选项if(a=0),如果 a 恒等于 0,则输出 y,否则输出 x。C 选项

43、 a(!=0),如果 a 不等于 0,则输出 x,否则输出 y。D 选项 if(a=0),如果 a 恒等于 0,则输出 x,否则输出 y。由以上结论可知,输出结果不同的为 D选项。32.有以下程序: #includestdio.h #includestring.h main() char a510=“china“, “beijing“, “you“, “tiananmen“, “welcome“; int i, j; char t10; for(i=0; i4; i+) for(j=i+1; j5; j+) if(strcmp(ai, aj0) strcpy(t, ai); strcpy(ai

44、, aj); strcpy(aj, t); puts(a3); 程序运行后的输出结果是_。(分数:1.00)A.beijingB.chinaC.welcome D.tiananmen解析:解析 此题涉及数组,字符串的比较和字符串的复制,因为 for 循环中控制数组中的 i 和 j,即控制了其中的数组中的元素,而 strcmp 是比较字符串的大小,如果 strcmp(ai,aj)0,则将字符串进行复制,所以答案为 C。33.有以下程序: #includestdio.h int f(int m) static int n=0; n+=m; return n; main() int n=0; pri

45、ntf(“%d, “f(+n); printf(“%d/n“, f(n+); 程序运行后的输出结果是_。(分数:1.00)A.1,2 B.1,1C.2,3D.3,3解析:解析 由题可知,输出是调用了 f 函数,其中有 f(+n)和 f(n+),其中 n=0,所以输出的结果为1,2。34.有以下程序: #include stdio.h main() char ch35=“AAAA“, “BBB“, “CC“; printf(“%s/n“, ch1); 程序运行后的输出结果是_。(分数:1.00)A.AAAB.CCC.BBBCCD.BBB 解析:解析 数组的排序从 0 开始,此时输出的是 ch1,实际上输出的是第二行的值,所以答案为 D。35.若有定义语句:“int year=2009, *p=”,以下不能使变量 year 中的值增至 2010 的语句是_。(分数:1.00)A.*p+=1;B.(*p)q+;C.+(*p); D.*+p解析:解析 此题考查的是指针的自加,*p+=1,即为*p=*p+1,其中 B 和 D 都相等,

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

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

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