《C语言程序设计-第1-7章选择、填空习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计-第1-7章选择、填空习题及答案.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、选择题C.语句D.字符B.先说明后引用D.引用和说明依次无关B.执行语句之前D.位置无关B.符号语言D.面对对象的语言1. C程序的基本单位是(A)oA.函数B.文件2. C程序中的变量(B )oA.不用说明C.先引用后说明3. 变量的说明在(B )oA.执行语句之后C.执行语句当中4. C语言是一种(C)oA.机器语言C.高级语言二、填空题1. 一个C程序总是从 主函数 起先执行。2 .结构化程序由依次、选择、循环三种基本结构构成。3 . 一个C程序只有一个名为main的主函数。4 . C程序中的每个语句以 分号结束。5 . C程序中,函数由函数首部 和函数体 组成。6 .每个基本结构有
2、一个入口和一个出口,没有死循环和死语句7 .算法是 计算机解决问题所依据的步骤。一、选择题1 .下列数据中属于字符串常量的是(B)oA. ABCB. ABCC.abcD.A2 .在计算机内存中,n占用的字节数是(C)oA. 4B. 3C. 1D. 23 .字符串ABC在内存中占用的字节数是(D)oA. 6B. 8C. 3D. 44 .在C语言中,合法的长整型常数是(B)oA. 568701400 B. 0L5 .char型常量在内存中存放的是(A)oA. ASCH代码值C.十进制代码值6 .下列各项中正确的标识符是(I)。A. ?bbB. a=87 .下列不正确的转义字符是(D)oA. B.
3、0C. 0. 03546287D. 2.654ellB. BCD代码值D.内码值C. b. BD. b_4C. D. 0x4for (i=0;i10;i + +)scanf (,&ai);max=min=a0;for(i=l;i10;i+) if(maxai) min=ai ;)printf (最大值=fn”,max);printf (11最小值=%fn,min);)7.以下程序求二维数组中每行元素的最大值。# include # define M 4# define N 5main () int aM Nramaxz i,j;for(i=0;iM;i+)for (j=0;jN;j+)scan
4、f(d,&ai j);for(i=0;iM;i+) amax=ai0;for (j=l;jamax) amax=ai j; printf(H%d %dn”,i,amax);)习题六一、选择题1.以下叙述不正确的是(I) )oA.B.C.D.一个C源程序可由一个或多个函数组成一个C源程序必需包含一个main。函数C程序的基本组成单位是函数C程序中的注释说明只能位于一条语句的后面2.以下关于C语言函数参数的说法不正确的是(B )oA.实参可以是常量、变量或表达式C.实参可以为随意类型B.形参可以是常量、变量或表达式D.形参应与其对应的实参类型一样3.C语言规定,简洁变量做实参时,它和对应形参之间的
5、数据传递方式是(C )。A.地址传递C.单向值传递B.由实参传给形参再由形参传回给实参D.由用户指定传递方式4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B )oA. float 型B. int 型C. long 型D. double 型5.6.C语言规定,函数返回值的类型是由(A. return语句中的表达式类型所确定C.调用该函数时系统临时确定在C语言程序中,以下正确的描述是()0B.D.)。调用该函数时的主调函数类型所确定 定义函数时所指定的函数类型所确定函数的定义和调用均可以嵌套 函数的定义和调用均不行以嵌套A.函数可以嵌套定义,但不行以嵌套调用B.C.函数不行以嵌套定义
6、,但可以嵌套调用D.7.若用数组名作为函数调用的实参,传递给形参的是(A )oA.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数8 .假如在一个函数中的复合语句中定义了一个变量,以下关于该变量正确的说法是(A )。A.只在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.为非法变量9 .以下不正确的说法为(D )。A.在不同函数中可以运用相同名字的变量B.形式参数是局部变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量在本函数范围内有效10 .以下程序的正确运行结果是(A )0#include main () int k=4
7、,m=l,p;p=func(k,m);printf(”d,”,p); p=func(k,m);printf(dn”,p);) func(int a,int b) static int m=0z i=2;i+=m+l; m=i+a+b; return(m);)A. 8, 17B. 8, 16C. 8,20D. 8,811 .在“文件包含”预处理语句的运用形式中,当#include后面的文件名用。(尖括号)括起 时,找寻被包含的文件的方式是(C )o A.仅仅搜寻当前书目B.先在源程序所在书目搜寻,再按系统设定的标准方式搜寻C.干脆按系统设定的标准方式搜寻书目D.仅仅搜寻源程序所在书目12 .以下
8、程序的正确运行结果是(A )0 int d=l;fun (int p) int d=5; d+=p+; printf(”d,d);)main () int a=3; fun(a); d+=a+; printf(dn,d);)A. 84B. 99C. 95D. 4413.若有以下调用语句,则不正确的fun()函数的首部是(D )。 main () .int a50,n; fun(n,&a9);)B. void fun(int s, int h41)I), void fun (int n, int a)A. void fun(int m, int x)C. void fun(int p, int
9、*s)14.下面的程序执行后输出的结果是(A )0f (int a) int b=0;static int c=3;b+;C+;return(a+b+c);main () int a=2,i; for(i=0;i3;i+) printf(n%d )A. 7 8 9B. 7 9 1115 .以下程序执行后的输出结果是(B )o int a, b; void fun() a=100;b=200; main () int a=5,b=7;fun(); printf(n%d,%d n”, a,b);)A. 100,200B. 5,716 .下列不属于编译预处理的是(D )0A.包含文件B.条件编译17
10、 .下列语句中正确的是(D )。A. #define MYNAME二ABCC. for(i=0;i10;i+);18.下列语句中错误的是(A )oA. #define PI = 3. 1415926C. if (2);nzf (a);C.C.C.B.D.7 10 13200,100宏定义includeD.D.D.7,5连接string, hD. ttinclude B. #include math. h for (;)if (1)break;19 .设有以下宏定义,则执行语句“z=2*(N+Y(5+D);”后,z的值为(B )。 #define N 3 #define Y (n)(N+l)*n
11、)A.出错B. 42C. 48D. 5420 .以下程序中的for循环执行的次数是(C )o #include nstdio.hn #define N 2 #define M N+l #define NUM (M+l)*M/2 main () int i,n=0;for (i=l;i=NUM;i + +) printf(Hnn);)A. 5B. 6C. 8D. 9二、填空题1 . C语言中的函数,从能否可以返回值上可分为有返回值 函数和无返回值函数。2 .定义函数时,在函数头中除有函数名称外,还应有函数类型、参数类型和名称等信息。3 .必需对函数定义才能确立函数可实现的功能,只有对函数调用才能
12、实现函数的功能。4 . C语言中,函数的调用有函数语句、函数表达式和函数实参三种方式。5 .C语言中,每个变量都有作用域和生存期,变量的作用域是变量有效范围,变量的生存期 是变量作用域。6 .对函数或变量的上明_是告知系统此程序段要用到在其后面才定义的函数或变量,使函数 或变量的作用域得以扩展。7 . C语言中,变量的存储类型有一种,存储方式有2种。8 .以下程序的输出结果是246。void fun() static int a=0;a+=2; printf(n%dn,a); ) main () int cc;for(cc=l;cc4;cc+) fun() printf (”n);)9 .以下
13、程序的运行结果是111。main () increment();increment(); increment();) increment() int x=0;x+=l; printf(n%dnzx);)10 .以下程序执行后输出的结果是34。#include f (int a) int b=0;static c=3: a=c+,b+; return (a);) main () int a=2,i,k;for(i=0;i2) return(fib(n-1)+fib (n-2); else return(2);) main () printf(n%dnnzfib(3); 12 .以下程序执行后输出
14、的结果是14。#include long sum(register int x,int n) long s;int i; register int t; t=s=x;for (i=2; i = n; i + + ) t*=x;s+=t; return (s);) main () int x=2, n=3;printf(ns=%ldnnr sum(x, n); )13 .设有定义如下:ttdefine F(N) 2*N,则表达式F(2+3)的值是 7。14 .下面程序的执行结果是是6, 12。#include int fx (int x,int y) int s;s=(x+)+(+y); ret
15、urn s;) main () int a,b,k; a=5;b=6; k=fx(a,b); printf(H%d %d %dn”,a,b,k);)15 .下面程序for循环执行 6次,程序的运行结果是12345。#include#define M 3 ttdefine FMN M+M main () int i,n=0;for(i=0;iFMN;i+) n+;printf(n%dn , n) ; )16 .下面程序的执行结果是 0。#include #define SR(x) x*x main () int a,m=5,n=2;a=SR(m-n)/SR(m+n); printf(n%dnn,
16、a); )17 .设数组a有50个元素,函数funl()的功能是按依次分别给数组a中的元素赋以从2起先的 偶数值,函数fun2()则按依次每五个元素求一个平均值,并将求得的值放在数组s中,在空 白处完成该程序。#include#define N 50 funl(float a) int kz i;for (i=0,k=2;iN;i+)ai= k ;k+=2; )fun2 (float a,float s ) float sum=0; int i,k;for(i=0zk=0;iN;i+) sum+=ai;if ( (i + l)%5=0) sk=sum/5;k+; sum=O ; ) ) mai
17、n () float aN,sN/5; int i; funl (a);fun2(a,s);for(i=0;iN;i+)printf(n%5.1f n, ai); printf(nnn);for(i=0;iN/5;i+) printf (n%5.If n,s i); )18 .下面程序的运行结果是abcxyz。#include#include main () int k=0;char si10=nabcn,s210=nxyzn;strcat (si,s2);while(sik+!=f0,) s2k=slk;puts (s2); )19 .下面程序经宏绽开后,程序运行结果是200。#define
18、 PR printf(nsum=%dnnz sum)#define ADD sum+=i main () int iz sum=0;for(i=10;i20;i+) ADD;PR; )习题七一、选择题1 .变量的指针,其含义是指该变量的(B )0A.值B.地址C.名D. 一个标记2 .以下程序中调用scanf()函数给变量a输入数值的方法是错误的,错误缘由是(B )。 main () int *p,*q,a,b;p=&a; printf(ninput a :n); scanf(”d”,*p); I I I)A. *p表示的是指针变量p的地址B. *p表示的是变量a的值,而不是变量a的地址C.
19、*p表示的是指针变量p的值D.*p只能用来说明p是一个指针变量3 .以下程序错误的缘由是(A )0main () int *p,i;char *q,ch;p=&i; q=&ch;*p=40;*p=*q;I I I)A. p和q的类型不一样,不能执行*p二*q;语句B. *p中存放的是地址值,因此不能执行*p=40;语句C.q指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p二*q;语句4.已有定义int k=2; int *ptrl, *ptr2;且ptrl和ptr2均已指向变量k,下面不能正确执 行的赋值语句是(B )。B. pt
20、r2=k;A. k=*ptrl+*ptr2;C. ptrl=ptr2;D. k=*ptrl*(*ptr2);5.以下程序运行结果是(B )osub (int x ,int y r int *z) *z=y-x;main () int a ,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(n%4d,%4d,%4dnn/a,b,c); )A. 5,2,3B. -5,-12,-76.下面程序段的运行结果是(A )ochar *s=nabcden;s+=2;printf(n%dnzs);A. cdeC. -5,-12,-17D. 5,-2,-7B.字符c
21、C.字符c的地址D.无确定的输出结果7 .若有以下定义,则对a数组元素地址的正确引用是(B )。int a 5,*p=a;A. *&a5B. a+2C. * (p+5)8 .若有以下定义,则对a数组元素地址的正确引用是(A )。 int a5,*p=a;A. p+5B. *a+lC. &a+l9 .若有以下定义,则p+5表示(A )0 int a 10,*p=a;A.元素a5的地址B.元素a5的值1) . *(a+2)D. &a0C.兀素a6的地址D.兀素a6的值10.若有以下定义,且0Wi6,则正确的赋值语句是(D )。int s4 6,t6 4, (*p) 6;A. p=t;B. p=s;
22、C. p=si;D. p=t i;H.下面程序段的运行结果是(A )ochar *format= s,a=%d,b=%dn” int a=lfb=10;a+=b;printf(format, a+=b,a,b);A. for, a+二b,abC. a+=b, a=l1,b=10B.D.format, a+二b以上结果都不对12 .下面程序段的运行结果是(D )。char *p= %d,a=%d,b=%dn”; int a=lll,b=10,c;c=a%b;p+=3;printf(p,c,a,b);A. l,a=lll,b=10C. a=lll,b=10B.D.a=l,b=lll以上结果都不对1
23、3 .下面程序的运行结果是(A )0#include nstdlib.hn fun (intp23) *a=pl1; main () int x23=2z4,6z8z10,12),*p; p=(int *)malloc(sizeof(int); fun (&p,x);printf (dn”,*p);A. 10B. 12D. 814 .设有如下定义,则以下说法中正确的是(C )0char *aa2=nabcdn,nABCDn);A. aa数组元素的值分别是abed和ABCDB. aa是指针变量,它指向含有两个数组元素的字符型一维数组C.aa数组的两个元素分别存放的是含有四个字符的一维字符数组的首
24、地址D. aa数组的两个元素中各自存放了字符和A的地址15 .设有以下定义,则下列能够正确表示数组元素al 2的表达式是(D )0int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*prt) 3=a,*p=a0;A. *(*prt+l) 2)C. (*prt+l)+2B.D.*(*(p+5)*(*(a+1)+2)16 .下列程序的输出结果是(B )omain () int a5=2,4,6,8,10,*p,*k;p=a;k=&p;printf(%d”,(p+);printf(%dn,* *k);)A. 4 4B. 2 217 .执行以下程序后,y的值是(C )。m
25、ain () int a=2,4,6,8,10); int y=l,x,*p;p=&3 1 ;for (x=0;x3;x+ + )y+=* (p+x);printf(n%dnnzy);A. 17B. 18D. 2018 .设有如下定义,则执行语句*p;后*p的值是(B )o int a5=10,20,30,40,50,*p=*a2;A. 30B. 20C. 19D. 2919 .设有如下定义,则下列程序段中正确的是(C )o char *st=nhow are you”;A. char al1, *p; strcpy (p=a+l,&st4);B. char all; strcpy(+a, s
26、t);C. char al1; strcpy(a, st);D. char , *p; strcpy(p=&al,st+2);20 .若有以下说明和定义,在必要的赋值之后,对fun()函数的正确调用语句是(B )。 fun (int *c) main () int (*a) ()=fun, *b() ,w10 ,c; I I I)A. a(w) ;B. (*a) (&c) ;C. b=*b(w);D. fun (b);21 .有如下程序,该程序的输出结果是(C )0 main () char ch25=n6937n,n8254n,*p2;int i,j,s=O;for(i=0;i2;i+) p
27、i=chi;for (i=0;if01;j+=2)s=10*s+piprintf(dn”,s); )A. 69825B. 63825C. 6385D. 693825二、填空题1 .指针运算符&和*分别称为 取址运算 和间接访问 运算。2 .当用指针变量作为函数参数时,此时的参数传递是 地址 传递。3 .对于二维数组 arr 5 5, arr, *arr, &arr 0, arr 2 +3, *(arr+2), * (arr 2+3)的含义分别 是 5行5列元素值,0行地址,0行0列地址,0行地址,2行3列元素地址,2行0列地 址,2行3列元素值。4 .函数的指针是 函数入口地址 。5 .返回指
28、针值的函数是指针类型的函数。6 .若有说明语句 int a3 = l, 3, 5, *p=a;则*+p, *p+, *p+l 的值分别是 3, L 2 o8 .设整型变量a、b的值均为5,则表达式(m=n=a+)/(n=b-2)的值为(B)。A. 0B. 1C, 2D. 39 .设a的值为5,执行下列语句后,b的值不为2的是(C)oA. b=a/2B. b=6-(-a)C. b=a%2D. b=(float)a/210 .执行语句x=(a=3, b=a一)后,x、a、b的值依次是(C)oA. 3, 3, 2 B. 3, 2, 2 C. 3, 2, 3 D. 2, 3, 211 .设有语句int
29、 a=3;,则执行了语句a+=a-=a*a;后,变量a的值是(D)。A. 3B. 0C. 9D. -1212 .在下列运算符中,优先级最高的是(B)oA. &B. %C. =D. =13 .设整型变量a的值为3,则计算表达式a后,表达式的值为(B)。A. 1B. 0C. 2D.表达式出错14 .设整型变量a b、c的值均为2,表达式ab+c+的结果是(C)。A. 6B. 9C. 2D.表达式出错15 .若已定义x和y为double类型,则表达式x=l, y=x+3/2的值是(D)oA. 1B. 2.5C. 2D. 2.016 .下列表达式中符合C语言语法的赋值表达式是(C)oA. a=4+b+
30、c=a+8B, a=4+b+=a+8C. a=(4+b, b+, a+8)D. a=4+b,c=a+817 .若有以下定义:char a; int b; float c; double d;,则表达式a*b+d-c的值的类型为(D)。A. intB. floatC. charD. double二、填空题1 .在内存中存储A要占 2个字节,存储A要占个字节。2 .符号常量的定义方法是#define常量名常量。3 .无符号基本整型的数据类型符为unsigned int双精度实型数据类型符为为uble,字符型 数据类型符为char。4 .十进制数673的二进制、八进制和十六进值数分别为八10制000
31、1、 2412和2A1o5 .在C语言中,书写八进制数时必需加前缀Q;书写十六进制数时必需加前缀Ox。6 .在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占 2 字节、 2字节、 4字节、 4字节和 8字节。7 .设有下列运算符:、+、+、&、二,其中优先级最高的是+,优先级最低的是&。8 .设x、y为int型变量,且x=l,尸2,则表达式L 0+x/y的值为 L 0。9 .设整型变量x、y、z均为5,则:执行x-=y-z后,x的值为 o执行x%=y+z后,x的值为5。10 .数学式的C语言表达式为a/b*c) ob X c三、简答题1 .字符常
32、量与字符串常量有什么区分?2 .对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区分是什么?3 .整型变量可细分为哪六类?4 .什么是一个实型数据的规范化指数形式?5 .设 x=3.5, a=5, y=6. 7,求算术表达式 x+a%3*(int) (x+y)%2表的值。6 .设 a=2, b=3, x=4. 5, y=l. 6,求表达式(float) (a+b)/2+(int)x%inty 的值。7 .设整型变量a=12,写出下列表达式运算后a的值。a*=2+5a/=a+aa+=a-=a*=a8 .写出下列程序的运行结果。main () char cl=A,c2fB
33、lc3=C,c4=101,c5=h42; printf ( nA%cb%ct%ctbcn,1, cl, c2, c3); printf(tb%c%c”,c4,c5);)名吉果:AAbB C abc AB9 .写出下面程序的运行结果。main () int i=5; j = 6; m=+i; n=-j; printf(”d,%d,%d,会d”,i,j,m,n);)结果:6,5,6,5习题三一、选择题1 .printf。函数输出实数时,运用的格式字符是(C)。A. %dB. %c C. %fI). %o2 .下面变量说明中(C)是正确的。A. char:a , b , c;B. char a;b;
34、c;C. char a , b , c;D. char a, b , c3 . putchar ()函数可以向终端输出一个(D )。A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值4 .阅读以下程序,当输入数据的形式为:25,13,10 (CR),正确的输出结果为(D )。main () int xz y,z;scanf(%d%d%d,&x,&y,&z); printf(”x+y+z=%dn, x+y+z);)A. x+y+z=48 B. x+y+z=35C. x+z=35D.不确定值5 .以下说法正确的是(D )。A.输入项可以是一个实型常量B.只有格式限制,没有输入项,也
35、能进行正确输入,如scanf(a=%d,b=%d);C.当输入一个实型数据时,格式限制部分应规定小数点后的位数,如scanf(刎.2f,&f); D.当输入数据时,必需指明变量的地址,如scanf(级6 .以下能正确地定义整型变量a、b和c并为其赋初值5的语句是(C )0A. int a=b=c=5;B. int a,b, c=5;C. int a=5,b=5,c=5;D. a=b=c=5;7 .已知ch是字符型变量,下面正确的赋值语句是(B )oA. ch=a+b;B. ch=xff;C. ch=08;D. ch=;8 .设x、y均为float型变量,则以下不合法的赋值语句是(B )。A.+
36、x;B.y=(x%2)/10;C.x*=y+8;D.x=y=0;9 .以下格式符中,不能用来输入实型数的是(B )A.fB.e (E)C.g (G)D.x10 .若float num=123.456,以96+10. 4d的格式输出,结果正确的是(B )A.123.456000B. 123.4560C.123.4560D.+123.4560二、填空题1.以下程序的输出结果是x=l y=2 *sum*二310 squaredis :100。 main () int x=l,y=2;printf(nx=%d y=%d *sum*=%dn”,x,y,x+y); printf ( n10 squared
37、 is :%dnf 10*10);)2 .以下程序的输出结果是a=325 x=3.14。main () int a=325;double x=3.1415926;printf(a=%2d x=%7.2fnn,x); )3 .假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空: a+=b; b=a_b;a-=b;4 .若x为int型变量,则执行以下语句后x的值是 -14。x=7; x+=x-=x+x;5 . C语句可以分为五类,含种限制语句、 声明语句、 表达式 语句、空语句 和复合语句。6 .赋值语句是由 赋值表达式加上一个分号构成。7 . a= 12, n=5,
38、表达式 a%=(n%=2)值是 0。8 .有一个输入函数scanf (机1,k);则不能使float类型变量k得到正确数值的缘由是k前无& 和加与k的类型不一样。9 . putchacO函数可以向终端输出一个 字符 。10 .已有定义int i, j;float x;为将TO赋给i, 12赋给j, 410. 34赋给x,则对应以下scanf() 函数调用语句的数据输入形式是T2 C 410.34。scanf (,%o%x%e/z, &i, &j, &x);11 . pirntfO函数中用到格式符5s,其中数字5表示输出的字符串占5歹U,假如字符串长度大 于5,则按实际宽度输出。12 .运用ge
39、tchar ()和putchar ()函数必需在源程序中力口 #includestdioh”。习题四一、选择题1.执行下面的程序段后,b的值为(B )。int x=35;char z=T A1;int b;b=(x&15)& (z * a 1);A. 0B. 1C. 2D. 32.设 a=5, b=6, c=7, d=8, m=2, n=2,执行(m=ab) & & (n-cd)后 n 的值为(B )。A. 1B. 2C. 3D. 43 .若k是int型变量,且有下面的程序段,输出结果是(A )0K= 3;if(k=0) printf(#); else printf (”&”);B. &.&.
40、&D.有语法错误,无输出结果B=4, 05,则下面表达式中值为0的达式是(D )B. A=BD. ! (AB)&!C II 1)A. #C. #&4 .设A、B和C都是int型变量,且A=3,A. A&BC. A | B+C&B5 .阅读程序:#includenstdio.hnmain () float xz y;scanf (f,&x);if(x0.0) y=0.0;else if(x5.0)&(x!=2.0)y=l.0 / (x+2.0);else if(x10.0) y=l.0 / x;else y=10.0;printf (n%fnn,y);)若运行时从键盘上输入2.0,则上面程序的输
41、出结果是(C )A. 0.000000B. 0.250000C. 0.500000D. 1.0000006 .阅读程序#includenstdio h” main () int x=l,y=0,a=0,b=0;switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break;) case 2: a+;b+;break;) printf (”a=%d, b=%d n,a, b);)上面程序输出结果是(A )oA. a=2, b=lB. a=l, b=lC. a=l, b=0I). a=2, b=27 .下面程序的输出是(C )o main
42、() int a= - 1, b=4, k;k=(a+=0)&(!(b-=y)&(y=z)C. (x=y=z)B. (x=y)AND(y=z)D. (x=y)&(y=z)9 .若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(I) )0A. a0B. !aC. a=0D. a10 .若有以下定义:float x; int a,b;则正确的switch语句是(D )oA. switch(x)case 1.0: printf(n*nn);case2.0: printf(n*nH); B. switch(x)case 1, 2: printf (n* nn);case 3: printf (n* nn) ; C. switch(a+B)case 1: printf(n