[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc

上传人:diecharacter305 文档编号:492552 上传时间:2018-11-30 格式:DOC 页数:35 大小:109KB
下载 相关 举报
[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc_第1页
第1页 / 共35页
[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc_第2页
第2页 / 共35页
[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc_第3页
第3页 / 共35页
[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc_第4页
第4页 / 共35页
[计算机类试卷]2006年4月国家二级(C语言)笔试真题试卷及答案与解析.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、2006 年 4月国家二级( C语言)笔试真题试卷及答案与解析 1 下列选项中小属于结构化程序设计方法的是 _。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 2 两个或两个以上的模块之间关联的紧密程度称为 _。 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D)数据传输特性 3 下列叙述中正确的是 _。 ( A)软件测试应该由程序开发者来完成 ( B)程序经调试后 般不需要再测试 ( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 4 按照 “后进先出 ”原则组织数据的数据结构是 _。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 5

2、 下列描述中正确的是 _。 ( A)线性链表是线性表的链式存储结构 ( B)栈与队列是非线性结构 ( C)双向链表是非线性结构 ( D)只有根结点的二叉树是线性结构 6 对如下二叉树 进行后序遍历的结果为 _。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 7 在深度为 7的满二叉树中,叶子结点的个数为 _。 ( A) 32 ( B) 31 ( C) 64 ( D) 63 8 “商品 ”与 “顾客 ”两个实体集之间的联系一般是 _。 ( A) 对 ( B) 对多 ( C)多对一 ( D)多对多 9 在 E-R图中,用来表示实体的图形是 _。 (

3、 A)矩形 ( B)椭圆形 ( C)菱形 ( D)三角形 10 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 _。 ( A) DB包含 DBS和 DBMS ( B) DBMS包含 DB和 DBS ( C) DBS包含 DB和 DBMS ( D)没有任 何关系 11 以下不合法的用户标识符是 _。 ( A) j2 KEY ( B) Double ( C) 4d ( D) _8_ 12 以下不合法的数值常量是 _。 ( A) 11 ( B) le1 ( C) 8.0E0.5 ( D) 0xabcd 13 以下不合法的字符常量是 _。 ( A) 018 ( B) ( C)

4、( D) xcc 14 表达式 3.6-5/2 1.2 5%2的值是 _。 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 15 以下能正确定义字符串的语句是 _。 ( A) char str=064; ( B) char str=“x43“; ( C) char str=“; ( D) char str=“0“; 16 以下数组定义中错误的是 _。 ( A) int x3=0; ( B) int x23=1,2,3,4,5,6; ( C) int x3=1,2,3,4,5,6; ( D) int x3=1,2,3,4,5,6; 17 若要求从键盘读入含有空格字符的字符

5、串,应该使用函数 _。 ( A) getc () ( B) gets() ( C) getchar() ( D) scanf() 18 以下四个程序中,完全正确的是 _。 ( A) #include stdio.h main(); /*programming*/ printf(“programming!n“); ( B) #inc lude stdio.h main() /*/programming/*/ printf(“programming!n“); ( C) #include stdio.h main() /*programming*/ printf(“programming!n“);

6、( D) include stdio.h main() /*/*programming*/*/ printf(“programming!n“); 19 若有定义: float x=1.5;int a=1,b=3,c=2;则正确的 switch语句是 _。 ( A) switch (x) case 1.0: printf(“*n“); case 2.0: printf(“*n“); ( B) switch ( (int)x); case 1: printf(“*n“); case2: printf(“*n“); ( C) switch (a b) case 1:printf(“*n“); cas

7、e 2 1: printf(“*n“); ( D) switch (a b) case 1: pfintf(“*n“); case c: printf(“*n“); 20 若各选项中所有变量已正确定义,函数 fun中通过 return语句返回一个函数值,以下选项中错误的程序是 _。 ( A) mam() x=fun(2,10); fioat fun(int a,int b) ( B) float fun (int a,int b) main() x=fun(i,j); ( C) float fun (int int); main() x=fun(2,10); float fun (int a,

8、int b) ( D) main() float fun (int i, int j); x=fun(i,j); float fun (int a,int b) 21 在以下给出的表达式中,与 while(E)中的 (E)不等价的表达式是 _。 ( A) (!E=0) ( B) (E 0|E 0) ( C) (E=0) ( D) (E!=0) 22 要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是 _。 ( A) while(ch=getchar()! =N) printf(“%c“,ch); ( B) while (ch=getchar()

9、! =N) printf(“%c“,ch); ( C) while (ch=getchar()=N) printf(“%c“,ch); ( D) while(ch=getchan()=N) printf(“%c“,ch); 23 已定义以下函数 int fun(int *p) return *p; fun函数返回值是 _。 ( A)不确定的值 ( B) 个整数 ( C)形参 p中存放的值 ( D)形参 p的地址值 24 若有说明语句: double *p,a;则能通过 scanf语句正确给输入项读入数据的程序段是 _。 ( A) *p= scanf(“%lf,p); ( B) *p= scan

10、f(“%f“,P); ( C) P= scanf(“%lf,*p); ( D) p= scanf(“%lf“,p); 25 现有以下结构体说明和变量定义,如图所示,指针 p、 q、 r分别指向 个链表中连续的三个结点。 street node char data; struct node *next; *p,*q,*r; 现要将 q和 r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是_。 ( A) q- next=r- next; p- next=r,r- next=q; ( B) p- next=r, q- next=r- next;r- next=q; ( C) q

11、-next=r- next;r- next=q;p- next=r, ( D) r- next=q;P- next=r;q- next=r- next; 26 有以下程序段 struct st int x;int *y;*pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 以下选项中表达式的值为 11的是 _。 ( A) *pt- y ( B) pt- x ( C) pt- x ( D) (pt )- x 27 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 _。 ( A) EOF ( B)非 0值 (

12、 C) 0 ( D) NULL 28 设有以下语句 int a=1,b=2,c; c=a(b 2); 执行后, c的值为 _。 ( A) 6 ( B) 7 ( C) 8 ( D) 9 29 有以下程序 #include stdio.h main() char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn“,c5,c6); 程序运行后,若从键盘输入 (从第 1列开始 ) 123 回车 45678 回车 则输山结果是 _。 ( A) 1

13、267 ( B) 1256 ( C) 1278 ( D) 1245 30 有以下程序 main() int y=10; while(y-); printf(“y=%dn“,y); 程序执行后的输出结果是 _。 ( A) y=0 ( B) y=1 ( C) y=1 ( D) while构成无限循环 31 有以下程序 main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d,%d,%d,%dn“,a,b,c,d); ( A) 0,1,2,0 ( B) 0,0,0,3 ( C) 1,1,2,0 ( D)编译有错 32 有以下程序

14、 main() int i,j,x=0; for(i=0;i 2;i ) x ; for(j=0;j =3;j ) if(j%2) continue; x ; x ; printf(“x=%dn“,x); 程序执行后的输出结果是 _。 ( A) x=4 ( B) x=8 ( C) x=6 ( D) x=12 33 有以下程序 int fun1 (double a)return a*=a; int fun2 (double x,double y) double a=0,b=0; a=fun1(x);b=fun1(y); return(int)(a+b); main() double w;w=fu

15、n2(1.1,2.0); 程序执行后变量 W中的值是 _。 ( A) 5.21 ( B) 5 ( C) 5 ( D) 0 34 有以下程序 main() int i,t3=9,8,7,6,5,4,3,2,1; for(i-0;i 3;i ) printf(“%d“,t2-ii); 程序执行后的输出结果是 _。 ( A) 753 ( B) 357 ( C) 369 ( D) 751 35 有以下程序 fun(char p10) int n=0,i; for(i=O;i 7;i ) if(piO=T)n ; return n; main() char str10=“Mon“,“Tue“,“Wed“

16、,“Thu“,“Fri“, “Sat“,“Sun“; printf(“%dn“,fun(str); ( A) 1 ( B) 2 ( C) 3 ( D) 0 36 有以下程序 main() int i,s=0,t=1,2,3,4,5,6,7,8,9 ; for(i=0;i 9;i =2) s=*(t i); printf(“%dn“,s); ( A) 45 ( B) 20 ( C) 25 ( D) 36 37 有以下程序 void fun 1 (char *p) char *q; q=p; while(*q!=0) (*q) ;q ; main() char a=“Program“,*p; p=

17、fun1(p);printf(“%sn“,a); 程序执行后的输出结果是 _。 ( A) Prohsbn ( B) Prphsbn ( C) Progsbn ( D) Program 38 有以下程序 void swap(char *x,char *y) char t; t=*x;*x=*y;*y=t; main() char *s1=“abc“,*s2=“123“; swap(s1,s2); printf(“%s,%sn“,s1,s2); 程序执行后的输出结果是 _。 ( A) 123,abc ( B) abc,123 ( C) 1bc,a23 ( D) 321,cba 39 有以下程序 i

18、nt fun(int n) if(n=1) return 1; else return(nfun(n-1); main() int x; scanf(“%d“,x=fun(x);pfintf(“%dn“,x); 执行程序时,给变量 x输入 10,程序的输出结果是 _。 ( A) 55 ( B) 54 ( C) 65 ( D) 45 40 有以下程序 int fun(int x,int n) static int sum=0,i; for(i=0;i n;i ) sum =xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,

19、5)fun(b,4);printf(“%dn“,s); 程序执行后的输出结果是 _。 ( A) 45 ( B) 50 ( C) 60 ( D) 55 41 有以下程序 main() union char ch2; int d; s; s.d=0x4321; printf(“%x,%xn“,s.chO,s.ch1); 在 16位编译系统上,程序执行后的输出结果是 _。 ( A) 21,43 ( B) 43,21 ( C) 43,00 ( D) 21,00 42 有以下程序 main() char *p=“3697“,“2548“; int i,j; long num=0; for(i=0;i 2

20、;i ) j=0; while(pij!=0) if(pij-0)%2) num=10*numpij-0; j=2; printf(“%dn“,num); 程序执行后的输出结果上_。 ( A) 35 ( B) 37 ( C) 39 ( D) 3975 43 执行以下程序后, test.txt文件的内容是 (若文件能正常打开 )_。 #include stdio.h main() FILE *fp; char *s1=“Fortran“,*s2=“Basic“; if(fp=fopen(“test.txt“,“wb“)=NULL) printf(“Cant open test.txt filen

21、“); exit(1); fwrite(s1,7,1,fp); /* 把从地址 s1开始的 7个字符写到 fp所指文件中 */ f seek(fp, 0L,SEEK_SET);/*文件位置指针移到文件开头 */ fwrite(s2,5,1,fp); fclose(fp); ( A) Basican ( B) BasicFortran ( C) Basic ( D) FortranBasic 44 以下叙述中错误的是 _。 ( A) C语言源程序经编译后生成后缀为 obj的目标程序 ( B) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为

22、源程序,它以 ASC 代码形式存放在 个文本文件中 ( D) C言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 45 以下叙述中错误的是 _。 ( A)算法正确的程序最终 定会结束 ( B)算法正确的程序可以 有零个输出 ( C)算法正确的程序可以有零个输入 ( D)算法正确的程序对于相同的输入 定有个相同的结果 46 以下叙述中错误的是 _。 ( A) C程序必须由 个或 个以上的函数组成 ( B)函数调用可以作为 个独立的语句存在 ( C)若函数有返回值,必须通过 return语句返回 ( D)函数形参的值也可以传回给对应的实参 47 设有以下定义和语句 char str

23、20=“Program“,*p; p=str; 则以下叙述中正确的是 _。 ( A) *p与 str0中的值相等 ( B) sb与 p的类型完全相同 ( C) str数组长度和 p所指向的字符串长度相等 ( D)数组 str中存放的内容和指针变量 p中存放的内容相同 48 以下叙述中错误的是 _。 ( A) C程序中的 #include和 #define行均不是 C语句 ( B)除逗号运算符外,赋值运算符的优先级最低 ( C) C程序中, j;是赋值语句 ( D) C程序中,、 -、 *、 /、 %号是算术运算符,司用于整型和实型数的运算 49 以下叙述中正确的是 _。 ( A)预处理命令行必

24、须位于 C源程序的起始位置 ( B)在 C语言中,预处理命令行都以 “#“开头 ( C)每个 C程序必须在开头包含预处理命令行: #include stdio.h ( D) C语言的预处理不能实现宏定义和条件编译的功能 50 以下叙述中错误的是 _。 ( A)可以通过 typedef增加新的类型 ( B)可以用 typedef将已存在的类型用新的名字宋代表 ( C)用 typedef定义新的类型名后,原有类型名仍有效 ( D)用 typedef可以为各种类型起别名,但不能为变量起别名 51 对 长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 。 52 在面向对象方法中 描述的是具

25、有相似属性与操作的 组对象。 53 在关系模型中,把数据看成是二维表,每 个二维表称为 个 。 54 程序测试分为静态分析和动态测试。其中 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 55 数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 。 56 若变量 a,b 已定义为 int类型并赋值 21和 55,要求用 printf函数以 a=21,b=55的形式输出,请写出完整的输出语句 。 57 以下程序用于判断 a、 b、 c能否构成三角形,若能,输出 YES,否贝愉出 NO。当

26、给 a、 b、 c输入三角形三条边长时,确定 a、 b、 c能构成三角形的条件是需同时满足三个条件; a b c,a c b,b c a。请填空。 main() float a,b,c; scanf(“%f%f%f, if( )printf(“YESn“); /*a、 b、 c能构成三角形 */ else printf(“NOn“); /*a、 b、 c不能构成三角形 */ 58 以下程序的输出结果是 。 main() int a33=1,2,9,3,4,8,5,6,7,i,s=0; for(i=0;i 3;i ) s =-aii ai3-i-1; printf(“%dn“,s); 59 当运

27、行以下程序时,输入 abcd,程序的输出结果是: 。 insert(char str) int i; i=strlen(str); while(i 0) str2*i=stri; str2*i-1:*; i-; printf(“%sn“,str); main() char str40; scanf(“%sn“,str); insert(str); 60 下面程序的运行结果是: 。 fun(int t,int n) int i,m; if(n=1) return t0; else if(n =2) m=fun(t,n-1);return m; main() int a=11,4,6,3,8,2,

28、3,5,9,2; printf(“%dn“,fun(a,10); 61 先有两个 C程序文件 T18.c和 myfun.c同在 TC系统目录 (文件夹 )下,其中T18.c文件如下: #include stdio.h #include “myfun.c“ main() fun(); printf“n“); myfun.c 文件如下: void fun() char s80,c; int n=0; while(c=getchar()!=n) sn =c; n-; while(n =O) printf(“%c“,sn-); 当编译连接通过后,运行程序 T18时,输入 Thank!则输出结果是: 。

29、 62 以下函数 fun的功能是返回 str所指字符串中以形参 c中字符开头的后续字符串的首地址,例如: str所指字符串为: Hello!, c中的字符为 e,则函数返回字符串 : ello!的首地址。若 str所指字符串为空串或不包含 c中的字符,则函数返回NULL。请填空。 char *fun(char *str, char c) int n=0;char *p=str; if(p!=NULL) while(pn!=c if(pn=0) return NULL; return( ); 63 以下程序的功能是:输出 100以内 (不含 100)能被 3整除且个位数为 6的所有整数,请填空。

30、 main() int i,j; for(i=0; ;i ) j=i*10 6; if( )continue; printf(“%d “,j); 64 以下 isprime函数 的功能是判断形参 a是否为素数,是素数,函数返回 1,否则返回 0。请填空。 int isprime(int a) int i; for(i=2;i =a/2;i ) if(a%i=0) ; ; 65 以下程序的功能是输入任意整数给 n后,输出 n行由大写字母 A开始构成的三角形字符阵列图形。例如,输入整数 5时 (注意: n不得大于 10),程序运行结果如下: ABCDE FGHI JKL MN O 请天空完成该程序

31、。 main() int i,j,n; char ch=A; scanf(“%d“, if(n 11) for(i=1;i =n;i ) for(j=1; j =n-i 1;j ) printf(“%2c“,ch); ; ; else printf(“n is too large!n“); printf(“n“); 66 以下程序中函数 fun的功能是:构成 个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数 disp的功能是显示输出该单向链表中所有结点中的字符串。请填空完成函数 disp。 #include stdio.h typedef struct node

32、 /*链表结点结构 */ char sub3; struct node *next; Node; Node fun(char s) /* 建立链表 */ void disp(Node *h) Node *p; p=h- next; while( ) printf(“%sn“,p- sub);p= ; main() Node *hd; hd=fun(); disp(hd);printf(“n“); 2006 年 4月国家二级( C语言)笔试真题试卷答案与解析 1 【正确答案】 D 【试题解析】 20世纪 70年代以来,提出了许多软件设计方法,主要有 逐步求精:对复杂的问题,应设计 些子目标作过渡

33、,逐步细化: 自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要 开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化; 模块化: 个复杂问题,肯定是由若干稍简单的问题构成。模块化是 把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为 个模块,而可复用是面向对象程序设计的 个优点。 2 【正确答案】 A 【试题解析】 耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。 3 【正确答案】 D 【试题解析】 程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽

34、可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软件生命期, 调试主要在开发阶段。为了达到更好的测试效果,应该由独立的第三方来构造测试。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是程度不同地存在障碍的。软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。 4 【正确答案】 B 【试题解析】 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的 端进行插入或删除操作,是 种“后进先出 ”的线性表

35、;而队列只允许在表的 端进行插 入操作,在另 端进行删除操作,是 种 “先进先出 ”的线性表。 5 【正确答案】 A 【试题解析】 根据数据结构中各数据元素之间前后关系的复杂程度, 般将数据结构分为两大类型;线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件: 有且只有 个根结点; 每个结点最多有 个前件,也最多有 个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。 6 【正确答案】 D 【试题解析】 后序遍历指在访问根结点、遍历左子树与遍历右子树这三 者中,首先遍历左子树,然后遍历右子树,最后访问根结点;并且遍历左、右子

36、树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。 7 【正确答案】 C 【试题解析】 所谓满二叉树是指这样的 种二叉树:除最后一层外,每层上的所有结点都有两个子结点。这就是说,在满二叉树中,每 层上的结点数都达到最大值,即在满二叉树的第 K层上有 2K-1个结点,且深度为 m的满二叉树有 2m-1个结点。树的最大层次际为树的深度。本题中深度为 7,故叶子结点数为 27-1=26=64。 8 【正确答案】 D 【试题解析】 两个 实体间的联系可以归纳为 3种类型: 对 联系: 对 的联系表现为主表中的每 条记录只与相关表中的 条记录相关联。 对多联系: 对多的联系表现为主表中的每 条记录

37、与相关表中的多条记录相关联。 多对多联系:多对多的联系表现为 个表中的多个记录在相关表中同样有多个记录其匹配。 本题中 个顾客可以购买多种商品,同 种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联系。 9 【正确答案】 A 【试题解析】 E-R图中用矩形表示实体集,用椭圆表示属性,用菱形表示联系。 10 【正确答案】 C 【试题解析】 数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、系统平台 (硬件平台和软件平台 )。 11 【正确答案】 C 【试题解析】 C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第 个字符必须是字母或下划线。大写字母和小写字母被认为

38、是两个不同的字符,用户在定义标识符时应做到 “见名知意 ”,且不允许使用关键字作标识符。 12 【正确答案】 C 【试题解析】 数值常量区分为不同的类型,如 12、 0、 -3为整型常量, 4.6、 -123为实型常量, a,A为字符 常量。实数常量有两种表示形式:十进制小数形式和指数形式。用指数形式表示必须注意字母 e(或 E)之前必须有数字,且 e(或 E)后面的指数必须为整数。如: e3、 7e3.5、 8.0E0.5都是不合法的。 13 【正确答案】 A 【试题解析】 C语言的字符常量是用单引号 (即撇号 )括起来的一个字符。如a,A,?,$等都是字符常量。注意: a和 A是不同的字符

39、常量。除了以上形式的字符常量外, C还允许用 个 “开头的字符序列。如 ddd表示 1到 3位八进制数所代表的字符,而八进制是由 0到 7这几个数字组成的,所以选项 A是不合法的字符常量。 14 【正确答案】 D 【试题解析】 此题考核的是算术运算符的运算规则,算术运算符的结合方向为“自左至右 ”,先按运算符的优先级别高低次序执行,同时在 C中两个整数相除或求余数其结果依旧为整数。计算后结果为 3.8。 15 【正确答案】 D 【试题解析】 C语言中,字符串是用 对双引号括起来的字符序列,并用字符型数组来存放,故选项 A、 C不属于字符串,选项 B 定义的是 个字符变量 str,却用来存放字符

40、串,显然也不正确,所以选项 D正确。 16 【 正确答案】 B 【试题解析】 C语言中,二维数组中元素的排列顺序是:先按行存放,再按列存放,并且要有足够的空间来保证定义的数组长度始终大于等于需要存放的元素的长度。选项 B 中行数定义为 2行,但实际却需要存放 3行元素故不正确。 17 【正确答案】 B 【试题解析】 函数 getchar()的作用是从终端 (或系统隐含指定的输入设备 )输入一个字符,且只能接受 个字符 (回车符也算是 个字符 ),所以 getchar()不能用宋读入字符串。 scanf()函数要求按 定的格式来输入,若同时输入多个字符串,则以空 格或回车分割,所以空格不能被识别

41、为 个字符,也就无法读入空格字符。函数 gets()的作用是从终端输入 个字符串 (包括空格 )至字符数组,直到遇到换行符为止,所以可以用来键盘读入空格字符。 18 【正确答案】 C 【试题解析】 C程序中注释用 “/*”和 “*/”括起来,它可以出现在程序中任何合适的地方。选项 A中 “main();”是 个函数声明语句,下面的大括号及其内容作为 个语句块,应放在程序的大括号中,故选取项 A错误;选项 B 中的注释语句不正确,因为程序在编译时认别到两次 “/*”作为注释的开始,但为识 别到 “*/”作为注释的结束,故选项 B错误;选项 D的 “include”前缺少 “#”,故选项 D错误。

42、 19 【正确答案】 C 【试题解析】 在 switch 语句中, case后的常量表达式只能是整型或等价于整型的常量,而选项 A中 case后面的表达式为浮点型,选项 D中 case后面的表达式存在字符变量 “c”,故选项 A与选项 D错误;在选项 B 中, switch 后面的表达式加了分号显然格式有误。故选项 C正确。 20 【正确答案】 A 【试题解析】 C语言程序是由 个主函数和若干个其他函数组成的,主函数的函数名为: main(), main()函数在程序中的位置是任意的。 C语言程序是从 main()函数开始执行,当程序中定义了多个函数时,通常情况下是先定义后调用,若被调函数定义

43、在主调函数之后,则必须先声明后调用。在选项 A中,先执行 main()函数,此时对 fun()函数进行调用,由于 fun函数在此调用之前无定义也无声明,故无法正常识别调用,所以选项 A的程序错误。 21 【正确答案】 C 【试题解析】 while(表达式 )语句用来实现 “当型 ”循环结构,当表达式为非 0值时,执行 while语句中的内嵌语句。选项 A非零即为 1,选项 B与选项 D的结果也为 1,只有选项 C为 0。 22 【正确答案】 A 【试题解析】 此题中选项 B与选项 C首先在书写上就有错误,题目要求当读入的字母为非 N时才孰行 printf语句,依据选项 D的要求,只有当读入的字母为 N时才执行 printf语句,故也错误。所以答案为 A。 23 【正确答案】 B 【试题解析】 函数值的类型应当是庄定义函数时指定的。在定义函数时对函数值说明的类型 般和 return语句中的表达式类型 致,即函数类型决定返回值的类型。此题中定义函数类型为 int型,故函数 返回值也为整型。 24 【正确答案】 D 【试题解析】 p=”,它等效于: int *p;p=i )满足条件的的情况下执行循环体,循环体中包含了嵌套的内层循环 for(j=0;j =3,j ) ,在内层循环中,当 if条件语句不成立时执行 continue语句,其作用是跳过 “x: ”,继续执

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

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

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