NCRE二级C语言程序设计辅导.docx
附录:考纲分析:NCRE二级C语言程序设计辅导 、C语言的结构 1、程序的构成,MAIN函数和其他函数 2、头文件,数据说明,函数的开始和结束标志 3、源程序的书写格式4、C语言的风格分析:这部分考试形式主要是选择题,一般会出12个题,都 是基本概念。注意程序的书写格式。二、数据类型及其运算1、C的数据类型(基本类型,构造类型,指针类型,空类型) 及其定义方法。2、C运算符的种类、运算优先级和结合性。3、不同类型数据间的转换与运算。4、C表达式类型(赋值表达式,算术表达式,关系表达式, 逻辑表达式,条件表达式,逗号表达式)和求值规则。分析:这部分考试形式主要是选择题,般会出4-5个 选择题和2-3个填空题。变量主要搞清楚全局变量(extern)和局部变量(在 个函数中或在个模块中)。运算符要注意是"左结合"或"右结合",3种逻辑运算 符:!(逻辑非)、&& (逻辑与)和|(逻辑或),位运算:&、|和的运算。另外, 条件表达式和逗号表达式也是常考题型。三、基本语句1、表达式语句,空语句,复合语句。2、数据的输入与输出,输入输出函数的调用。3、复合语句。4、GOTO语句和语句标号的使用。分析:这部分主要讨论基本语句,是编程的基础,一般 会出1-2个选择题和1-2个填空题。注意:1、表达式语句的格式,2、数据的输 入与输出和函数的调用。因为这些都是很基础的事情。四、选择结构程序设计1、用IF语句实现选择结构。2、用SUITCH语句实现多分枝选择结构。3、选择结构的嵌套。分析:这部分主要讲解了选择结构程序设计,一般会出 2-3个选择题和2-3个填空题。单支和多支选择的区别和作用,这部分知识会与 后面的循环语句结合使用。五、循环结构程序设计1、FOR循环结构。2、WHILE和DO WHILE循环结构。3、 CONTINUE 语句和 BREAK 语句。4、循环的嵌套。分析:这部分主要讨论了循环结构程序设计,一般会出 2-3个选择题和2-3个填空题。注意几个问题:1、FOR (第一语句,第二语句, 第三语句)循环中的各语句的执行顺序,2、搞清楚当型循环while和直到型循 环while的区别。3、转向语句中的continue (结束本次循环)和break (结束本 层循环)的区别。六、数组的定义和引用1、维数组和多维数组的定义、初始化和引用。 2、字符串与字符数组。分析:这部分主要讨论了数组和字符串的概念和运用, 一般会出3-4个选择题和2-3个填空题。注意问题:1、 维数组中,用起泡法 或选择法排序属于长考题型;2、二维数组初始化时,要正确赋值,行列转换也 常考;3、字符数组的长度注意要多算1位,因为字符数组最后要加"、。"。七、函数1、库函数的正确调用。2、函数的定义方法。3、函数的类型和返回值。4、形式参数和实在参数,参数值的传递。5、函数的正确调用,嵌套调用,递归调用。6、局部变量和全局变量。7、变量的存储类别(自动,静态,寄存器,外部), 变量的作用域和生存期。8、内部函数与外部函数。分析:这部分主要讨论了函数的相关知识,一般会出 4-5个选择题和3-4个填空题,同时,也是编程的重点。函数之间传递参数有传 值和传地址两种传递方式。搞清楚局部变量和全局变量的区别。变量的四种存储 类别也要搞清楚。内部函数(本文件的其它函数访问,前加static)和外部函数 (可为其它文件调用,前加extern)的区别。、编译预处理1、宏定义:不带参数的宏定义;带参数的宏定义。 2、"文件包含"处理。分析:这部分主要讨论了预编译,一般会出1-2个选择 题和1-2个填空题。这部分好掌握,明确两条:1、宏定义#define后面的就直接 带入,再计算。2、头文件中的ifndef/define/endif的作用是防止该头文件被重复 引用。九、指针1、指针与指针变量的概念,指针与地址运算符。2、变量、数组、字符串、函数、结构体的指针以 及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类 型数据。3、用指针作函数参数。4、返回指针值的指针函数。5、指针数组,指向指针的指针,MAIN函数的命 令行参数。分析:这部分主要讲解了指针的用法,既是难点,又是 重点,要灵活掌握。般会出5-6个选择题和3-4个填空题。难点有指针数组、 数组指针和指针的指针。相信大家经过努力学习,且善于总结,都能学好这点知 识,主要类型题:指针中的选择排序和冒泡排序,字符串的拷贝和倒序数出,这 章的知识要和数组结合起来学习,融会贯通。十、结构体(即"结构")与共用体(即"联合") 1、结构体和共用体类型数据的定义方法和引用方 法。2、用指针和结构体构成链表,单向链表的建立、输 出、删除与插入。分析:这部分主要讲解结构体与共用体的知识,一般会有2-3个选择题和1-2个填空题。结构体所占内存的长度等于各成员占的内存长 度之和。共用体变量所占的内存长度等于最长的成员的长度。十、位运算1、位运算符的含义及使用。2、简单的位运算。分析:这部分主要讲解位运算的知识,一般会出1-2个 选择题和0-2个填空题。主要掌握知识:1、原码、反码和补码的相互转换。2、 掌握位运算符:"&"、"、"八"、""和左移右移的应用。十二、文件操作只要求缓冲文件系统(即高级磁盘!/O系统),对 非标准缓冲文件系统(即低级磁盘I/O系统)不要求。1、文件类型指针(FILE类型指针)。2、文件的打开与关闭(FOPEN,FCLOSE)。3、文件的读写(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINT,FSCANF 函数), 文件的定位(REWIND,FSEEK函数)。分析:这部分主要讲解文件操作的知识,一般会出1-2 个选择题和0-1个填空题。主要掌握:文件的打开和关闭、文件的读写和文件的 定位。不要求熟练编写程序,但是,文件操作的程序得读懂,上机编程题中就涉 及到文件的操作。201I年9月2007年9月历年全国计算机二级C语言考试真题及答案后附二级c语言上机题及答案2011年9月全国计算机等级考试二级笔试试卷c语言程序设计(考试时间90分钟,满分100分)、选择题(一(10)、(21)(40)每题2分,(11)(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选 项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)算法就是程序B)设计算法时只需考虑数据结构的设计Q设计算法时只需考虑结果的可靠性D)以上三种说法都不对下列关于线性链表叙述中,正确的是A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须 致B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连 续C)进入插入与删除时,不需要移动表中的元素D)以上三种说法都不对下列关于叉树的叙述中,正确的是A)叶子结点总是比度为2的结点少个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。下现属 于应用软件的是A)学生成绩管理系统 B)C语言编译程序C)UNIX操作系统D)数据库管理系统某系统总结构图如下图所示:该系统总体结构图的深度是D)2C)发现程序中的错误A)7B)6C)3程序调试的任务是A)设计测试用例B)验证程序的正确性D)诊断和改正程序中的错误下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典数据库系统的三级模式不包括A)概念模式B)内模式Q外模式D)数据模b 2 1 b 2 1(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)差C)交D併(10)下列选项中属于面向对象设计方法主要特征的是A)继承B)自顶向下C)模块化D)逐步求(11)以下叙述中错误的是A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D) 个C语言程序只有一个主函数(12)以下选项中关于程序模块化的叙述错误的是A)把程序分成若干相对独立的模块,可便于编码和调试B)把程序分成若干相对独立、功能单的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程(13)以下选项中关于C语言常量的叙述错误的是A)所谓常量,是指在程序运行过程中,其值不能被改变的量B)常量分为整型常量、实型常量、字符常量和字符串常量C)常量可分为数值常量和非数值常量D)经常被使用的变量可以定义成常量(14)若有定义语句:int a=10; double b=3.14;,则表达式A'+a+b的值的类型是A)charB)intC)doubleD)float(15)若有定义语句:int x=12, y=8, z;,在其后执行语句z=0.9+x/y;,则z的值为A)1.9B)1C)2D)2.4(16)若有定义:int a,b;1通过语scanf("%d;%d",&a,&b);,能把整数3赋给变 量a, 5赋给变量b的输入数据是A)3 5B)3,5C)3;5D)35(17)若有定义语句:int kl=10, k2=20;.执行表达式(kl=kl>k2) && (k2=k2>kl) 后,kl和k2的值分别为A)0 和 1B)0 和 20C)10 和 1D)10 和20(18)有以下程序/include <stdio.h>main() int a=l, b=0;if (-a)b+;else if(a=0) b+=2;else b+=3;printf("%dn”,b);程序运行后的输出结果是A)0B)1C)2D)3(19)下列条件语句中,输出结果与其他语句不同的是A) if(a)printf("%dn", x);elseprintf("%dn",y);B) if(a=0)printf("%dn", y);elseprintf("%dn",x);C) if(a!=0)printf("%dn", x);elseprintf("%dn",y);D) if(a=0)printf("%dn", x);elseprintf("%dn",y);(20)有以下程序#include <stdio.h> main() int a=7;while (a-);printf("%dn",a);)程序运行后的输出结果是A)-lB)0C)1D)7(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a 的ASCII码值为97)A)printf("%cn";a'-32);B)printf("%dn";A')C)printf("%cn",65);D)printf("%cn";B'-l);(22)有以下程序(注:字符a的ASCII码值为97)ftinclude <stdio.h>main() char *s="abc");do printf("%d"/*s%10); +s; while (*s);程序运行后的输入结果是A)abcB)789C)7890D)979899(23)若有定义语句:double a,*p=&a;以下叙述中错误的是A)定义语句中的号是一个间址运算符B)定义语句中的号只是个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p(24)有以下程序#include <stdio.h>double f(double x);main() double a=0; int i;for (i=0; i<30; i+=10) a+=f( (double)i);printf(H%5.0fn"za);double f(double x) return x*x+l; 程序运行后的输出结果是AJ5O36)401C)500D)1404(25)若有定义语句:int year=2009, *p=&year;»以下不能使变量year中的值 增至2010的语句是A)*p+=1;B)(*p)+;(26)以下定义数组的语句中错误的是A)int num =1,2,3,4,5,6C)int num =1,2,3,4,5,6;(27)有以下下程序#include <stdio.h>void fun(int *p) printf("dn",p5); main() int a10=l,2,3,4,5,6,7,8,9,10;fun(&a3);)程序运行后的输出结果是A)56)6(28)有以下程序#include <stdio.h>C)+(*p);D)*p+;B)int num3=l,2,3,4,5,6);D)int num4=l,2,3,4,5,6;C)8D)9# define N 4void fun(int aN, int b) int i;for (i=0; i<N; i+) bi=aii-aiN-l-i;main() int xNN=L2,3,4,5,6,7,8,9,10,ll,12,13,14,15,16,yN,i;fun(x, y);for (i=0;i<N; i+) printf("%d,",yi); printf("n");)程序运行后的输出结果是A)-12,-3,0,0,C) 0,1,2,3,D)-3,-3,-3,-3,(29)有以下函数int fun(char *x, char *y) int n=0;while (*x=*y) && *x!='0') x+; y+; n+; return n;)函数的功能是A)査找x和y所指字符串中是否有,、。B)统计x和y所指字符串中最前面连续相同的字符个数Q将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数(30)若有定义语句:char *sl="OK", *s2="ok",以下选项中,能够输出"0K" 的语句是A)if (strcm(sl,s2)=0 puts(sl);B)if (strcm(sl,s2)!=0 puts(s2);C)if (strcm(sl,s2)=l puts(sl);D)if (strcm(sl,s2)!=0 puts(sl);(31)以下程序的主函数中调用了在其前面定义的fun函数#include <stdio.h>main) double a15zk;k=fun(a)则以下选项中错误的fun函数首部是A)double fun( double a15)B)double fun( double *a)C)double fun( double a)D)double fun( double a)(32)有以下程序 #include <stdio.h> #include <string.h> main() char a510="china“,”beijing",“you”,“tiananmen”,“welcome”;int i,j; char t10;for (i=0; i<4; i+)for (j=i+l; j<5;j+)if( strcmp(ai, aj)>0) strcpy(t,ai); strcpy(ai,aj); strcpy(aj,t); puts(a3);)程序运行后的输出结果是A)beijingB)chinaC)welcomeD)tiananmen(33)有以下程序/include <stdio.h>int f(int m) static int n=0;n+=m;return n;)main() int n=0;printf(”d,”, f(+n);printf(”%dn”,f(n+);程序运行后的输出结果是A)l,2B)l,lC)2,3D)3,3(34)有以下程序#include <stdio.h>main() char ch35="AAAA","BBB","CC";printf( "%sn", chl);)程序运行后的输出结果是A)AAAAB)CCC)BBBCCD)BBB(35)有以下程序#include <stdio.h>/include <string.h>void fun(char *w, int m) char s,*pl, *p2;pl=w; p2=w+m-l;while (pl<p2) s=*pl; *pl=*p2; *p2=s; pl+; p2-;main() char a="123456"fun( a, strlen(a); puts(a);)程序运行后的输出结果是A)654321B)116611CJ1616160)123456(36)有以下程序#include <stdio.h>#include <string.h>typedef struct char name9; 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; i<2; 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.score,d.score );printf("%s,%c,%d,%dn",c.name,c.sex,c.score0,c.scorel);)程序运行后的输出结果是A)Zhao,m,85,9,Qian,f,95,92B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include <stdio.h>main() struct node int n; struct node *next; *p;struct node x3=2,x+l, 4,x+2, 6, NULL;P=x;printf("%d,", p->n );printf("%dn",p->next->n );)程序运行后的输出结果是A)2,3B)2,4C)3,4D)4,6(38)有以下程序#include <stdio.h>main() int a=2, b;b=a«2; printf("%dn",b);)程序运行后的输出结果是A)2B)4C)6D)8(39)以下选项中叙述错误的是A)C程序函数中定义的赋有初值的静态变量,每调用次函数,赋次初值B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限于本 复合语句内C)C程序函数中定义的自动变量,系统不自动赋确定的初值D)C程序函数的形参不可以说明为static型变量(40)有以程序#include <stdio.h>main() FILE *fp;int k,n,i,a6=l,2,3,4,5,6;fp = fopen("d2.dat","w");for (i=0; i<6; i+) fprintf(fp, "%dn",ai);fclose(fp);fp = fopen("d2.dat","r");for (i=0; i<3; i+) fscanf(fp, "%d%d", &k, &n);fclose(fp);printf("%d,%dn", k, n);)程序运行后的输出结果是A)l,2B)3,4C)5,6D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1至15I序号的横线上,答在试卷上 不得分。数据结构分为线性结构和非线性结构,带链的栈属于【1】(2)在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动 表中【2】个元素。常见的软件开发方法有结构化方法和面向对象方法。对某应用系统通过 需求分析建立数据流图(DFD),则应采用【3】方法。(4)数据库系统的核心是【4】在进行关系数据库的逻辑设计时,E-R图中的属性常转换为关系中的属性, 联系通常转换为【5】若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a, b值的语句【6】*a=0,b=2*以下程序运行后的输出结果是【7】#include <stdio.h>main() int a=37;a%=9; printf("%dn",a);)(8)以下程序运行后的输出结果是8】。#include <stdio.h>main() int i,j;for (i=6; i>3; i- ) j=i;printf("%d%dn",ij);)(9)以下程序运行后的输出结果是【9】/include <stdio.h>main() int i, n卜0,0,0,0,0;for (i=l; i<=2; i+ ) ni=ni-l*3 + l;printf("%d",ni);printf("n");)(10)以下程序运行后的输出结果是【10】#include <stdio.h>main() char a;for( a=0; a<15; a+=5 ) putchar(a+'A'); printf("n");)(11)以下程序运行后的输出结果是11 #include <stdio.h>void fun (int x) if (x/5>0) fun(xG);printf("%d ",x);)main()fun(ll); printf("n");)(12)有以下程序#include <stdio.h>main() int c3=0, k, i;while (k=getchar() )!='n')ck-'A'+;for (i=0; i<3; i+) printf("%d",ci); printf("n");)若运行程序时从键盘输入ABCACC回车,则输出结果为 12(13)以下程序运行后的输出结果是【13】/include <stdio.h> main() int n2, i,j;for (i=0; i<2; i+ ) ni=0;for (i=0; i<2; i+ ) for (j=0; j<2; j+ ) nj=ni+l;printf("%dn",nl);)(14)以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。 主函数中,n存放a数组中数据的个数,请填空。#include <stdio.h>void fun( int s, int *n, int k, int x) int i;for (i=*n-l; i>=k; i-) s 14=si;sk=x;*n=*n+15;)main() int a20=l,2,3,4,5,6,7,8,9,10,ll, i, x=0, k=6, n=ll; fun(a,&n,k,x);for(i=0;i<n;i+) printf("%4d",a(i); printf("n");)2011年9月全国计算机等级考试二级C语言程序设计笔试标准答案、选择题 01.DCBAC DADBA ll.CCDCB CBCDA 21.BBAAD CDBBD 31.DCADA ABDAC二、填空题1.线性结构2.n3.结构化4.DBMS或数据库管理系统5.关系 6.printf ("*a=%,b=%d*",a,b); 7.1 8.34 9.14 10.AFK 11.2 11 12.213 13.3 14.i+l 15.12011年3月计算机二级c语言考试真题、选择题下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构Q循环链表是非线性结构D)双向链表是非线性结构(3)某叉树共有7个结点,其中叶子结点只有1个,则该叉树的深度为(假 设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书结构化程序所要求的基本结构不包括A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之D)PAD图是软件详细设计的表示工具负责数据库中査询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言一个教师可讲授多门课程,门课程可由多个教师讲授。则实体教师和 课程间的联系是A)l:l联系B)l:m联系 C)m:!联系D)m:n联系(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)交C)除D併(10)定义无符号整数类为Ulnt,下面可以作为类Ulnt实例化值的是A)-369B)369C)0.369D)整数集合1,2,3,4,5(11)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述 中正确的是A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对(12)以下叙述中错误的是A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文 件(13)以下选项中不能用作C程序合法常量的是A)l,234B)'123'C)123D)"x7G"(14)以下选项中可用作C程序合法实数的是A).le0B)3.0e0.2C)E9D)9.12E(15)若有定义语句:inta=3,b=2,c=l;,以下选项中错误的赋值表达式是A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;>D)a=l+(b=c=4);(16)有以下程序段char name20;int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车后,name的值为A)LiliB)name=LiliC)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中 正确的是A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数 值(18)有以下程序#includemain()int x=011;printf("%dn",+x);程序运行后的输出结果是A)12B)llC)10D)9(19)有以下程序#includemain()int s;scanf("%d",&s);while(s>0)switch(s)casel:printf(“d”,s+5);case2:printf("%d"/s+4); break;case3:printf("%d”,s+3);default:printf(,%d"/s+l);break;scanf("%d",&s);)运行时,若输入1 2 345 0V回车,则输出结果是A)65664566)66656C)66666D)6666656(20)有以下程序段int n;for(i=0;i<8;i+)n=rand()%5; switch (n)case 1:case 3:printf(,%dn,/n); break;case 2:case 4:printf(',%dn"/n); continue;case 0:exit(0);printf("%dn",n);)以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为时结束程序运行(21)有以下程序#include main()char s="012xy08s34f4w2"int i,n=0;for(i=0;si!=0;i+)if(si>='0"&&si<='9') n+;printf("%dn",n);程序运行后的输出结果是A)0B)3C)7D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-l;k=l;k+) printf("*n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次C)循环体次也不执行(23)有以下程序#includemain()char b,c; int i;b='a' c='A'for(i=0;i<6;i+)if(i%2) putchar(i+b);else putchar(i+c); printf("n");程序运行后的输出结果是A)ABCDEFB)AbCdEf(24)设有定义:double x10,*p=x;, 据的正确语句是B)循环体执行一次D)构成无限循环CjaBcDeFDjabcdef以下能给数组x下标为6的元素读入数A)scanf("%f",&x6);B)scanf("%lf",*(x+6);C)scanf("%lf",p+6);D)scanf("%lf",p6);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s)while(*s)if(*s%2) printf("%c",*s);s+;main()chara="BYTE"fun(a); printf("n");程序运行后的输出结果是A)BYB)BTC)YTD) YE(26)有以下程序段#includemain()-while( getchar()!='n');)以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行 D)当执行此while语句时,按任意键程序就能继续执行 (27)有以下程序#includemain()int x=l,y=O;if(!x) y+;else if(x=O)if (x) y+=2;else y+=3;printf("%dn",y);)程序运行后的输出结果是A)3B)2C)1D) 0(28)若有定义语句:chars310,(*k)3,*p;.则以下赋值语句正确的是A)p=s;B)p=k;C)p=sO; D)k=s;(29)有以下程序#includevoid fun(char *c)while(*c)if(*c>='a'&&*c<=,z,) *c=*c-('a,JA,);C+;main()char s81;gets(s); fun(s); puts(s):)当执行程序时从键盘上输入Hello Beijing回车,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO B日JINGD)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#include#define N 10void fun(int xN)int i=0;while(i在程序中下划线处应填入的是A)x+I B)&xi+1C)x+(i+)D)&x+