C语言练习题1
C语言练习题1
一、语言基础选择题1. 下面说法中,正确的是 BA)C语言是机器语言B)C语言程序可以由一个或多个函数构成C)C语言程序总是从第一个函数开始执行D)C语言程序不用编译就可以直接运行2.C语言程序的基本单位是 CA) 程序行 B) 语句 C) 函数 D) 字符3.一个C语言程序的上机步骤是 AA) 编辑,编译,连接,执行 B) 编译C) 编辑,连接,执行 D) 连接,编译,执行4. 已知有定义:char ch;则如下正确的赋值为 AA) ch=‘M’; B) ch=’55’; C) ch="M"; D) ch="55";5.在Turbo C环境中,查看程序运行结果的快捷键是 DA) F5 B) Ctrl+F9 C) F8 D) Alt+F56.下列变量名中合法的是 CA) B.C.Tom B) 3a6b C) _b5a8 D) $ABC7. C语言中,要求运算数必须是整型的运算符是 DA) / B)+ + C)!= D)%8. 已知 int j,i=1;则执行j=-i++; i和j的值为 BA)1,-1 B)2,-1 C)1,1 D)2,19.在C语言中,数字035是一个 AA)八进制数 B)十六进制数 C)十进制数 D)非法数10.C语言中用于结构化程序设计的三种基本结构是___A___A)顺序结构、选择结构、循环结构 B)if、switch、breakC)for、while、do-while D)if、for、continue11.如下程序运行后的输出结果是___B___main( ){int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}A)a=1,b=1 B)a=2,b=1 C)a=1,b=0 D)a=2,b=2 12. 下列说法中,正确的是___C___int i,x;for(i=0,x=0;i<=5&&x!=4;i++);A)循环体一次也不执行 B)是无限循环C)最多执行6次 D)最多执行5次13.设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是___D___ A)3 B)0 C)9 D)-1214.有输入语句:scanf("a=%d,b=%d",&a,&b),为使变量a值为3,b值为7,从键盘输入数据的正确形式是___A___A)a=3,b=7<回车> B)a=3 b=7<回车> C)3 7<回车> D)3,7<回车>15.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是___D___#include <stdio.h>main(){char c1='A', c2='Y';printf("%d,%d\n",c1,c2);}A) 因输出格式不合法,输出错误信息 B)65,90C)A,Y D)65,8916.如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为___D___A)ture B)false C)0 D)117.以下关于break和continue语句的说明正确的是__C____A) break用于switch结构,continue用于循环结构。
C语言练习1
C语言练习1一、单选1、以下标识符中,合法的用户标识符为【】。
A) b–b B) CCP C) hiy D)_iswAbc float INT2、若int类型数据占2个字节,则下列语句的输出结果为【】。
C. int k=-1; printf(“%d,%o”,k,k);D. A) –1,–1 B) –1,32767 C) –1,177777 D) –1,655353、在宏定义 #define PI 3.14159中,用宏名PI代替一个【】A) 单精度数 B) 双精度数 C) 常量 D) 字符串4、设有以下定义【】int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是A)a++; B)b++ C)c++; D)d++;5、下面的程序【】int a=3,b=4; char str=’c’;printf(“%d,%c”,a, str, b);执行后,输出结果为:A)3,c,4 B)3 4 C)3,c D)程序出错6、表达式 7/4*sqrt(16.0)+8值的数据类型是【】。
A. intB. doubleC. floatD.不确定7、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是【】A) c=b=a;B) (a=c) ∥(b=c) ;C) (a=c) &&(b=c); C) a=c=b;8、若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是【】A) p+1 B) a+1 C) a++ D) ++p9、以下说法中正确的是【】A) C语言程序总是从第一个的函数开始执行B) C语言程序中要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分10、设有以下定义: 【】A. typedef union { long i; int k[5];char c;}DATE;B. struct date { int cat;DATE cow;double dog;}too;C. DATE max;D. 则下列语句的执行结果是E. printf("%d",sizeof(struct date)+sizeof(max));A) 25 B) 30 C) 18 D) 811、以下4个选项中,不能看作一条语句的是【】。
C语言练习题一及答案
C语言练习题一一、填空题。
(每空1分,共10分)1.语句while(e==0):中的条件e==0等价于_____________;答案:!e2 printf(“%4s”,“beijing”);输出为:_____________;答案:beijing3.C语言中的字符串以字符_____________;答案:答案:\04.C语言可以处理的文件类型是_____________和_____________;答案:文本文件和二进制文件5,int(*P)[5];说明p是:_____________;答案:指向一维整形数组的指针变量6.函数直接或间接地调用自己,被称为函数的_____________;答案:递归7.若有static int x[5],x[4]的地址表示是:___________ 。
答案:&x[4]或x+48.有程序段如下:int x=l:while (x<=lO){x+=3;printf(“%d\n”,x);}则:函数printf()执行次数是____4_____ ,循环结束后X的值是___________ 。
答案:139.若有以下定义和语句,则sizeof(a)的值是_____,答案:12,而sizeof(b)的值是__。
答案:4 struct{int day;char month;int year;}a,*b;10.若有static char c[10] = “China”;执行该语句后c[1]= ___________ 。
答案:h c[5]= ___________ 。
答案:\0c[6]= ___________ 。
答案:\0 strlen(c)= ___________ 。
答案:511.若有Static char c[s]={’a’,’b’,’\0’(零),‘c’,‘d’};printf(“%s\n”,c):则输出内容为:___________ 。
答案:ab12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。
c语言练习1
练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
8、下列不正确的转义字符是(C)A.' \\ ' B.' \' ' C.' \19 ' D.' \0 '解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。
十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。
C语言习题(1)
C语言概述、数据类型运算符表达式、顺序结构一、选择题1.下列叙述中,正确的是。
A.C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严谨,要求一行内只能写一个语句C. C程序的书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2.下列选项中,可作为合法标识符的是。
A.1mB. DataC. str+1D. i-1 3.设变量已正确定义并赋值,以下合法的C语言赋值语句是。
A.x=y==5B. x=n%2.5C. x+n=iD. x=5=4+1 4.设有定义:int k=0;以下选项的4个表达式中与其他3个表达式的值不相同的是。
A.k++B. k+=1C. ++kD. k+1 5.若有定义:int a,b;则用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是。
A.,B. 空格C. 回车D. Tab键6.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是。
A.任何不同数据类型都不可以通用B. 有些不同类型的变量可以在同一个表达式中运算C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D. 同一个运算符号在不同的场合可以有不同的含义7.下列常数中不能作为C语言的常量的是。
A.0Xa6B. 3.4e-3C. 3e5D. 0683 8.下面不是C语句的是。
A.int;B. ;C. a=1,b=5D. {;} 9.设x、y、z为整型变量,若从键盘给x、y、z输入数据,则正确的输入语句是。
A.scanf(“%d%d%d”,&a,&b,&c);B. scanf(“%d%d%d”,a,b,c);C.scanf(“%D%D%D”,&a,&b,&c);D. scanf(“%d%d%d”,&a;&b;&c); 10.若变量已正确定义,现要将a和b中的数据进行交换,下面不正确的是。
c练习题(1)
1.下面是一个加法程序,程序运行时等待拥护从键盘输入两整数,然后求出它们的和并输出之。
观察运行结果(程序输出),上机验证该程序。
#include <stdio.h>void main(){int a,b,c;printf(“Please input a,b;”);scanf(“%d,%d”,&a,&b);c=a+b;printf(“%d+%d=%d\n”,a,b,c);}2.下面的程序用来求三个数的平均值,上机验证该程序。
main(){float a,b,c,average;printf(“Please input a b c:”);scanf(“%f%f%f”,&a,&b,&c);average=(a+b+c)/3;printf(“The average value is :%f\n”,average);}练习题C语言基本语法知识一、选择题(1)以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(2)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(3)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(4)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k>=kB)-k++C)k%int(f) D)k>=f>=m(5)有以下程序段int k=0,a=1,b=2,c=3; k=ac ? c:k;执行该程序段后,k的值是A)3 B)2 C)1 D)0(6)以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8e1.0D)-80.0e(7).以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(8)以下选项中,不能作为合法常量的是A)1.234e04 B)1.234e0.4C)1.234e+4 D)1.234e09)有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); 12 35 m=13 printf("%d%d\n",n++,++m); 35 14}程序运行后的输出结果是A)12353514 B)12353513C)12343514 D)12343513(10)有以下程序main(){int m=3,n=4,x;x=-m++; x= 3 m =4x=x+8/++n; x= 3+8/4= 5printf("%d\n",x);}程序运行后的输出结果是A) 3 B) 5 C) -1 D) -2(11)以下符合C语言语法的实型常量是A) 1.2E0.5B) 3.14.159EC) .5E-3D) E15(12) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3B) 1+2=x2C) x3=0x12D) x4=1+2=3;(13) 设有以下定义int a=0;double b=1.25;char c=‟A‟;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;实验二整型、浮点型、字符型数据使用1.编程序,输出如下图形:*********************#include <stdio.h>int main(){int i;int j;for(i=1;i<=5;i++){for(j = 1;j<=i;j++){printf("*");}printf("\n");}}2.编写程序,实现下面的输出格式和结果:a= 5,b= 7,a-b=-2,a/b= 71%c1=COMPUTER,c2=COMP ,c3= COMPx=31.19,y= -31.2,z=31.1900s=3.11900e+001,t= -3.12e+001#include <stdio.h>int main(){int a = 5;int b = 7;printf("%d\n",a-b);printf("%2.0f%%\n",(float)a/b*100);char c1[] = "COMPUTER",c2[]="COMP",c3[]="COMP";printf("%s %s %s\n",c1,c2,c3);float x = 31.19,y=-31.2,z=31.1900;printf("%5.2f %4.1f %7.4f",x,y,z);}3.编写程序,输入变量x值,输出变量y的值,并分析输出结果。
C语言习题集(平时练习含答案)1
C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。
2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。
2.函数是C程序的基本单位。
(最小单位是表达式)3.C程序有且只有一个main函数。
4.C程序从main函数开始执行。
5.C程序注释符是由/*和*/组成,且不能嵌套使用。
6.C程序的语句是以; 结束。
7.C程序一条语句可分多行写,需要以为连接符。
(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。
9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。
10.C程序的源文件扩展名是。
c 。
11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。
A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。
C语言习题1
习题1一、选择题1.所有C函数的结构都包括的三部分是( C )。
A.语句、花括号和函数体B.函数名、语句和函数体C.函数名、形式参数和函数体D.形式参数、语句和函数体2.C程序由( C )组成。
A.子程序B.主程序和子程序C.函数D.过程3.下面属于C语言标识符的是( D )。
A.2ab B.@f C.?b D._a124.C语言中主函数的个数是( B )。
A.2个B.1个C.任意个D.10个5.下列关于C语言注释的叙述中错误的是( D )。
A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义C.程序编译时,不对注释作任何处理D.程序编译时,需要对注释进行处理6.下列不是C语言的分隔符的是( C )。
A.逗号B.空格C.制表符D.双引号7.下列关于C语言的关键字的叙述中错误的是( C )。
A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字B.用户定义的标识符不应与关键字相同C.ANSI C标准规定的关键字有64个D.ANSI C标准规定的关键字有32个8.在Visual C++ 6.0环境下,C源程序文件名的默认后缀是( A )。
A..cpp B..exe C..obj D..dsp9.若在当前目录下新建一个名为“LX”的工程,则在当前目录下生成的工作区文件名为( A )。
A.LX.DSW B.LX.OPT C.LX.DSP D.LX.C10.面可能不影响程序正常运行的是( C )。
A.语法错误B.逻辑错误C.警告提示D.算法错误二、填空题1.C程序是由一个或多个函数构成的,一个C程序中至少包含一个主函数。
因此,函数是C程序的基本单位。
2.C程序注释是由\* 和*\ 所界定的文字信息组成的。
- 1 -3.开发一个C程序要经过编辑、编译、连接和运行4个步骤。
4.在C语言中,包含头文件的预处理命令以# 开头。
5.在C语言中,主函数名是mian()。
C语言作业1(基本运算)
C语言
练习题一
1.请将下面的十进制数转换成二进制,八进制和十六进制;
(1)10 (2)32 (3)75 (4)658 (5)88
将下面非十进制数据转换为二进制数
(1)127O (2)31AH (3)1010111B (4) 52O
2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2
13.有以下程序
#include <stdio.h&g0;
C=(A-=A-5);(A=B,B+=4);
Printf(“%d, %d, %d\n”,A,B,C)
8.下列语句中符合C语言语法的赋值语句是______。
A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;
9. 若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是________。
#include <stdio.h>
main()
{
int i,j,m;
i=8;
j=10;
printf("%d,%d,%d",i,j,m);
}
20.写出下面程序的结果;
#include <stdio.h>
main()
{
float i;
int m;
C)通过编译得到的二进制目标程序需要连接才可以运行
C语言测试题(附有详细解析)
C语言测试题(附有详细解析)一、选择题1. 下面哪个选项是C语言的合法标识符?A. voidB. 2varC. intD. _temperature解析:C语言的标识符必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A和C是C语言的关键字,不能作为标识符。
选项B以数字开头,不合法。
选项D符合标识符的规则,是正确的。
2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char解析:在C语言中,关键字`int`用于定义整型变量。
选项A 用于定义浮点型变量,选项C用于定义双精度浮点型变量,选项D用于定义字符型变量。
因此,正确答案是B。
3. 下面哪个选项是C语言中的逻辑运算符?A.++B. &&C. ||D. !=解析:C语言中的逻辑运算符包括`&&`(逻辑与)和`||`(逻辑或)。
选项A是自增运算符,选项D是不等于运算符,因此正确答案是B和C。
二、填空题4. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++);return 0;}```解析:这段代码的输出是5。
在`printf`语句中,`x++`是后缀自增运算符,它先输出x的当前值5,然后x的值增加1。
因此,输出为5。
5. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5, y = 10;printf("%d\n", x > y ? x : y);return 0;}```解析:这段代码的输出是10。
条件运算符`?:`是一个三元运算符,它根据第一个表达式的值来选择第二个或第三个表达式。
在这个例子中,`x > y`是假的,所以输出是`y`的值,即10。
c语言期末考试练习题1(含答案)
一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int 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= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
C语言综合练习1
C语言综合练习一、选择题1、运算符有优先级,在C语言中关于运算符优先级的正确叙述是。
A) 逻辑运算符高于算术运算符,算术运算符高于关系运算符B) 算术运算符高于关系运算符,关系运算符高于逻辑运算符C) 算术运算符高于逻辑运算符,逻辑运算符高于关系运算符D) 关系运算符高于逻辑运算符,逻辑运算符高于算术运算符2、在以下关于C语言的不严格的叙述中,错误的是A)大写字母和小写字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义3、C语言中的简单数据类型包括。
•A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型4、在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF5、下列常数中不能作为C的常量的是。
A) 0xA5 B) 2.5e-2 C) 3e2 D) 05826、在C语言中,十进制的47可等价地写为。
A) 2f B) 02f C) 57 D) 0577、已知:int a=4,b=5,c;则执行表达式“c=a=a>b”后变量a的值为。
A) 0 B) 1 C) 4 D) 58、下列可以正确表示字符型常数的是A) "a" B) ‟\t‟C) "\n" D) 2979、以下错误的转义字符是A) ‟\\‟B) ‟\‟‟C) ‟\81‟D) ‟\0‟10、已知:float x=1,y;则:y=++x*++x的结果是A) y=9 B) y=6 C) y=1 D) 表达式是错误的11、已知:char ch=‟A‟;则下列表达式的值是ch = (ch>=‟A‟&&ch<=‟Z‟) ? (ch+32) : ch;A) A B) a C) Z D) z12、若变量已正确定义并赋值,以下符合c语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b13、下列可用于c语言用户标识符的一组是A) void define WORD B) a3_B3 _123 CarC) For –abc IFCase D) 2a DO sizeof14、若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf(“***a=%d,b=%d,c=%d\n”,a,b,c):printf(“###a=%d,b=%d,c=%d\n”,a,b,c);程序的输出结果是:A) ***a=25,b=13,c=19 B) ***a=26,b=14,c=19C) ###a=25,b=13,c=19 D) ###a=26,b=14,c=1915、下列程序段的输出结果是:int a=1234; float b=123.456;double c=12345.54321;printf(“%2d,%2.1f,%2.1f”,a,b,c);A)无输出B) 12,123.5,12345.5C) 1234,123.5,12345.5 D) 1234,123.4,1234.516、有如下程序段:int a=14,b=15,x; char c=‘A’; x=(a&&b)&&(c<‘B’);执行该程序段后,x的值为: DA)true B) false C) 0 D)117、下列数据中,不合法的c语言实型数据的是: CA)0.123 B)123e3 C) 2.1e3.5 D)789.018、设变量a是int型,f是float型,i是double型,则表达式10+‟a‟+i*f值的数据类型为:DA) int B) float C) double D) 不确定19、设以下变量均为int类型,表达式的值不为7的是:CA) (x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6, y+1,x=y,x+1)20、若变量a是int类型,并执行了语句:a=…A‟+1.6;则正确的叙述是:DA) a的值是字符C B) a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‟A‟的ASCII值加上1二、给出以下程序的运行结果1、main() { int a=0; a+=(a=8); printf(“%d\n”,a);}2、main() { double d=3.2; int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%d\n”,d*y) }3、main() { int a=5,b=4,c=3,d; d=(a>b>c); printf(“%d\n”,d); }4、main() { int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(“%d\n”,d); }}5、main() { int x=3,y=5; printf(“%d”,x=(x--) * (--y)); }6、#define f(x) x*xmain() { int i ; i=f(4+4)/f(2+2); printf(“%d\n”,i); }7、main() {int m=0256,n=256; printf(“%o%o\n”,m,n); }8、main(){int x=10,y=10; x--,++y;printf("%d,%d ",x,y);}三、数据描述如下int a=4,b=5;float x=65.789;char c1='A',c2='\375';则表达式运算结果:(1)a*100+b*10+2(2)c1*(a=x)(3)b/a+(int)(x+a)%c1(4)c1%c2(5)a+=a-=a%=a(6) (a*=b,a*2),a+6四、将下列数学公式用C 语言表达式描述(1) ,(2) 3243,R R ππ(3) )12(578,3),(2y x y x c b a b a --+++++ (4) x x x 12t a n )42c o s (3)5.0(s i n -++++五、执行如下程序,为使变量a=3,b=7,x=8.5, y=71.82, c1=…A‟,c2=…a‟,正确的输入方式:main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("x=%f y=%f",&x,&y);scanf("c1=%c c2=%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c, c2=%c", &a,&b,&x,&y,&c1,&c2);}六、程序设计(要求画出程序流程图)1、已知a=4.6,b=5,根据公式c=2a+b/5求出c 的值。
C语言习题1滁州学院 计算机科学与技术专升本
C语言练习题(一)一选择题1以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab.c2以下正确的c语言标识符是( C )。
A.%x B.a+b C.a123 D.test!3一个c程序的执行是从( A ).A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束4 一个C语言程序是由(A)。
A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成5 C语言程序的基本单位是( B )。
A.过程B.函数c子程序D.标识符6 编辑程序的功能是( A )。
A.建立并修改程序B.将c源程序编译成目标程序C.调试程序D.命令计算机执行指定的操作7以下结果为整数的表达式(设有int i;char c;float f;)(B).A.i+f B.i*c C.c+f D.i+c+f8以下不正确的语句(设有int p,q)是( D )。
A.P*=3; B.p/=q; C.p+=3; D.p&&=q;9 以下使i的运算结果为4的表达式是(D)。
A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1);(i=3);D.int i=1,j=1;i+=j+=2;10设n=10,i=4、则赋值运算n%=i+1执行后,n的值是(A).A.0 B.3 C.2 D.111逗号表达式(a=3*5,a*4),a+15的值为( C ),a的值为( C )。
①A.15 B.60 C.30 D.不确定②A.60 B.30 C.15 D.9012 如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为(A).A.1 B.2 C.3 D.413 若有代数式3ae/bc,则正确的C语言表达式是(C)A)a/b/c*e*3 B)3*a*e/b/cC)3*a*e/b*c D)a*e/c/b*314在C语言中,要求运算数必须是整形的运算符是(D).A)/ B)++ C)!= D)%15 若以下变量均是整形,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A).A)7 B)8 C)9 D)1016在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。
C语言练习题1打印正金字塔2打印倒金字塔3打印菱形4简单计算
C语言练习题1打印正金字塔2打印倒金字塔3打印菱形4简单计算1. 不属于程序设计语言发展历程的选项是() [单选题] *A.机器语言B.汇编语言C.高级语言D.自然语言(正确答案)2. 在C语言中,short和int两种都属于() [单选题] *A. 整型(正确答案)B. 实型C. 字符型D. 逻辑型3. C语言规定,每条语句末尾都必须还有一个结束符号() [单选题] *A /B :C ;(正确答案)D *4.已知变量a存储小时,变量b存储分钟,能正确表示下课时间是在8:45至8:55之间的c语言表达式是()。
[单选题] *A. a==8 | | b>=45 && b<=55B. a==8 && b>=45 | | b<=55C. a==8 | | b>=45 | | b<=55D. a==8 && b>=45 && b<=55(正确答案)5. 由0和1组成的机器指令叫做() [单选题] *A.汇编语言B.高级语言C.机器语言(正确答案)D.计算语言6. C语言是一种() [单选题] *A.汇编语言B.高级语言(正确答案)C.机器语言D.计算语言7. C语言程序的文件名后缀是()。
[单选题] *A. .c(正确答案)B. . cppC. . exeD. .rc8. 以下关于算法的説法,正确的是() [单选题] *A.算法的步骤可以是无穷的B.算法必須有输入C.算法必須有输出(正确答案)D.算法可以没有输入和输出9. 在C语言中定义常量格式正确的语句是() [单选题] *A. const int a=5(正确答案)B. const int aC. float a=5D. float a10. 以下字符串可以作为c语言变量名的是() [单选题] *A. a-1B. defineC. b1(正确答案)D. 1f11. 在C语言中定义变量格式正确的语句是() [单选题] *A. int a(正确答案)B. const int aC. const int a=5D. define a12. 下列C语言的变量名中,非法的是() [单选题] *A. B25B. My_ bagC. My-shoes(正确答案)D. abc12313. 以下字符串可以作为c语言变量名的是() [单选题] *A. 123B. a_1(正确答案)C. floatD. 1B14.以下不符合C语言语法的赋值语句有() [单选题] *A.x=1;B.x=x-2;C.x+1=y;(正确答案)D.x=y=8;15.在c语言中以下程序输出的结果是()。
c语言练习 (1)
A、当y<0时整个循环结束
B、y>=0时什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数 76、以下程序段等价于____ for (k=100; k<=200; k++) { if (k%3==0) continue; printf("%4d", k); } A、for (k=100; (k%3)&&k<=200; k++) printf("%4d", k); B、for (k=100; (k%3)||k<=200; k++) printf("%4d", k); C、for (k=100; k<=200; k++) if (k%3!=0) printf("%4d", k); D、for (k=100; k<=200; k++) { if (k%3) printf("%4d", k); else continue; break; }
C、2 3 4 6 9 12
D、2 3 4
6 9 12
10 15 20
70、以下程序段中是死循环的是____
A、int n=1; B、int n=1;
while (!n)
do { n--;
n++;
}while(n);
C、int n=1;
D、for (n=5; n<1; ) ;
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号 括起来 64、语句for (表达式1; ; 表达式3)等价于____ A、for (表达式1; 0 ; 表达式3) B、for (表达式1; 1 ; 表达式3) C、for (表达式1; 表达式1; 表达式3) D、for (表达式1; 表达式3; 表达式3) 65、若k为整型变量,则以下for循环的执行次数是____ for (k=2; k==0; )
C语言练习题1
1•编写程序,要求用户输入一个三角形的三边边长分别为的面积。
海伦公式:S p(p-a)(p-b)(p -c) #in clude<stdio.h>#in clude<math.h>a +b +c p 2void mai n(){float a,b,c,p,s;printf(” 请输入三边a,b,c:");sca nf("%f %f %f", &a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));prin tf("%f,%f\n",p,s);}2•三个小朋友,大毛有糖果50粒,二毛有糖果43粒,三毛有糖果13粒。
现在他们三兄弟做游戏,从大毛开始,将自己的糖果三等分,三兄弟每人一份,多余的自己吃掉;然后二毛和三毛也依次这样做,问最后三兄弟各有多少糖果?#in clude<stdio.h> void mai n(){int a=50,b=43,c=13;a=a/3;b=a+b;b=b/3;c=a+b+c;a=a+b;c=c/3;b=b+c;a=a+c;prin tf("%d,%d,%d\n",a,b,c);}3. 编写程序,要求用户输入某年年份,然后判断是否为闰年。
(闰年的条件是:该年的年号能被4整除且不能被100整除,或该年的年号能被400整除,则该年是闰年,否则不是闰年。
) #in clude<stdio.h>void mai n(){int year;printf("请输入年份");sca nf("%d", &year);if(year%4==0&&year%100!=0||year%400==0){printf("闰年\n");else{printf(" 平年\n");}}a,b,c,利用海伦公式求三角形4. 编写程序,随机生成一个100 以内的整数。
C语言练习题1(数据 运算符 输入输出2008-2012二级真题)
C语言练习题(一)一选择题1.以下叙述错误的是:A.一个C程序可以包含多个不同名的函数B.一个C程序只能有一个主函数C.C程序在书写时,有严格的缩进要求,否则不能编译通过D.C程序的主函数必须用main作为函数名2.设有以下语句 char ch1,ch2,;scanf(“%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A.A和B之间用逗号间隔B.A和B之间不能有任何间隔符C.A和B之间可以用回车间隔D.A和B之间用空格间隔3.以下选项中非法的字符常量是A.‘\102’B.‘\65’C.‘\xff’D.‘\019’4.有以下程序#include <sthio.h>void main(){ int A=0,B=0,C=0; C=(A-=A-5);(A=B,B+=4); Printf(“%d, %d, %d\n”,A,B,C) } 程序运行后输出的结果是A 0,4,5B 4,4,5C 4,4,4D 0,0,05.设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是A.x++; printf((“%d\n”,x);B.n=++x; printf((“%d\n”,n);C.++x; printf((“%d\n”,x);D.n=x++; printf((“%d\n”,n);6.以下选项中,能表示逻辑值“假”的是A 1B 0.000001C 0D 100.07.以下选项中关于c语言常量的叙述错误的是( )。
A所谓常量,是指在程序运行过程中,其值不能被改变的量B常量分为整型常量、实型常量、字符常量和字符串常量C常量可分为数值型常量和非数值型常量D经常被使用的变量可以定义成常量8.若有定义语句int a=10;double b=3.14;则表达式'A'+a+b值的类型是( )。
A charB intC doubleD float9.若有定义语句 int x=12,y=8,z; 在其后执行语句z=0.9+x/y;则Z的值为( )。
C语言练习题1
一、填空题(20分,每空1分)1.一个完整的C程序有且仅有一个函数。
2.在内存中存储一个字符…a‟占用______个字节,而存储字符串”abcdef”则占用________个字节。
3.表达式4/5的值为________。
4.设int x=9,y=8,z=7,w; w=x>y>z; 则w的值为_________。
5.设x=4.5,a=7,y=3.4, 表达式x+a%3*(int)(x+y)%2/4的值为_____。
6.设a=14, 执行a+=a-=a*=a 后,a=___________。
7.设x=y=z=6, 执行x=(y>z)?x+2:x-2; 后,x=__________。
8.getchar( )函数用于输入, 而gets( )函数则用于输入______________。
9.设有定义语句:char ww[20]=” \t\\wab\n”; 则表达式:strlen(ww) 的值是__________。
10.设有定义语句:char str[7]=”abcdef”, 则数组元素str[2]中的字符是______,数组元素str[6]中的字符是__________。
11.函数中的形参和调用时的实参都是变量时,传递方式为________;都是数组名时,传递方式为_________。
12.设有char *p=”12345”, 则printf(“%s”,p)的输出是;而printf(“%c”,*p)的输出则是_________。
13.设有以下说明,则变量qq在内存中所占的字节数是________,如果将关键字struct 改为union 则变量qq所占的字节数为________。
struct student{ char name[10];int nl;float ave;} qq;14.巳知当前目录下有一个名为file.txt的文本文件,写出将该文件打开(只允许写)的语句:FILE *fP;。
C语言习题-1
C语言习题一、选择填空2-1要调用数学函数时,在#include命令行中应包含_C_。
(2分) A"stdio.h" B."string.h" C."math.h" D."ctype.h"2-2若变量已正确定义并赋值,符合C语言语法的表达式是_B._ (2分) A.a=2++ B.a=3,5 C.a=a+1=3 D.12.3%42-3表达式8>6>3值是(A )。
(2分)A.0B.1C.3D.表达式语法错2-4逻辑运算符两侧运算对象的数据类型(D)。
(2分)A.只能是0 或1B.只能是0 或非0 正数C.只能是整型或字符型的数据D.可以是任何类型的数据2-5以下名字,不能作为C语言标识符的是:C (2分)A.ThisIsQingdaoUniversityB.$$C.monkey~1D._2-6定义变量int a;,则表达式a = 3, 5; 执行过后,a的值和表达式的值分别是:A (2分)A.3 , 5B.5 , 3C.3 , 3D.5 , 52-7如果要求在if后一对括号中的表达式在表示a 不等于0 的时候的值为“真”,则能正确表示这一关系的表达式为(D )。
(2分)A.a<>0B.!aC.a=0D.a2-8能正确表示逻辑关系"a≥10 或a≤0"的C语言表达式是(D )。
(2分)A.a>=10 or a<=0B.a>=0 | a<=10C.a>=10 && a<=0D.a>=10 || a<=02-9下列程序段执行后s值为D。
int i=5, s=0;while(i--)if (i%2) continue;else s+=i;A.15B.10C.9D.6(2 分)2-10以下不正确的赋值或赋初值的方式是( C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言练习题1第八章结构体与共用体1练习题一、c语言基础知识1.1选择题1.以下不是c语言的特点的就是(b)。
a.语言简洁紧凑b.能够编制出功能复杂的程序c.c语言可以直接对硬件操作d.c 语言移植性好2.以下字符序列中,不容用做c语言标识符的就是(b)。
a.abc123b.no.1c._123_d._ok3.正确的c语言标识符是(a)。
a._buy_2b.2_buyc.?_buyd.buy?4.恳请挑选出可以用做c语言用户标识符的一组标识符(b)。
a.voidb.a3_b3c.ford.2adefine_123-abcdowordifcasesizeof5.以下符号中,不属于转义字符的就是(b)。
a.\\\\b.\\0xaac.\\td.\\06.不属于c语言关键字的是(d)。
a.intb.breakc.whiled.character7.就是c语言提供更多的合法关键字的就是(b)。
a.floatb.signedc.integerd.char8.以下不能定义为用户标示符的是(d)。
a.一个主程序和若干子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成10.c语言程序的基本单位是(c)。
a.程序行b.语句c.函数d.字符20.下列变量定义中合法的是aa.short_a=1-.le-1;b.doubleb=1+5e2.5;c.longdo=0xfdal;d.float2_and=1-e-3;9xn21.与数学式子对应的c语言表达式是(c)。
2x?1a.9*x^n/(2*x-1)b.9*x**n/(2*x-1)c.9*pow(x,n)*(1/(2*x-1))d.9*pow(n,x)/(2*x-1)第八章结构体与共用体222.若存有代数式3ab,则不正确的c语言表达式是(c)。
cda.a/c/d*b*3b.3*a*b/c/dc.3*a*b/c*dd.a*b/d/c*323.已知各变量的类型说明如下:intm=8,n,a,b;unsignedlongw=10;doublex=3.14,y=0.12;则以下符合c语言语法的表达式是(a)。
a.a+=a-=(b=2)*(a=8)b.n=n*3=18c.x%3d.y=float(m)24.以下合乎c语言语法的赋值表达式就是(b)。
a.a=9+b+c=d+9b.a=(9+b,c=d+9)c.a=9+b,b++,c+9d.a=9+b++=c+925.未知字母a的ascii码点为十进制数65,且s为字符型,则继续执行语句s=’a’+’6’-’3’;后,s中的值为(a)。
a.’d’b.68c.不确认的值d.’c’26.在c语言中,建议运算数必须就是整型的运算符就是(d)。
a./b.++c.*=d.%36.若有以下定义,则正确的赋值语句是()。
intx,y;floatz;a.x=1,y=2,b.x=y=100c.x++;d.x=int(z);37.设x、y均为float型变量,则不正确的赋值语句是(c)。
a.++x;b.x*=y-2;c.y=(x%3)/10;d.x=y=0;38.以下语句中合乎c语言的赋值语句就是(d)。
a.a=7+b+c=a+7;b.a=7+b++=a+7;c.a=7+b,b++,a+7d.a=7+b,c=a+7;39.putchar函数可以向终端输出一个(d)。
a.整型变量表达式值。
b.字符串c.实型变量值。
d.字符或字符型变量值。
40.以下程序段的输出结果是(c)。
inta=12345;printf(”-\\n”,a);a.12b.34c.12345d.提示出错、无结果41.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为(d)。
a.scanf(”%d%lx,%le”,&x,&y,&z);b.scanf(”-*%d%lf”,&x,&y,&z);c.scanf(”%x%*d%o”,&x,&y);d。
scanf(”%x%o%6.2f”,&x,&y,&z);42.有如下程序段:intx1,x2;chary1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);第八章结构体与共用体3若要求x1、x2、y1、y2的值分别为10、20、a、b,正确的数据输入是(a)。
(注:└┘代表空格)a.10a└┘20bb.10└┘a20bc.10└┘a└┘20└┘bd.10a20└┘b45.尚无定义inta=-2;和输入语句:printf(”%8lx”,a);以下恰当的描述就是(d)。
a.整型变量的输出格式符只有%d一种b.%x就是格式符令的一种,它可以适用于于任何一种类型的数据c.%x就是格式符令d.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度46.有如下程序段,对应正确的数据输入是(a)。
floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);a.2.04b.2.04,5.675.67c.a=2.04,b=5.67d.2.055.671.2填空题1.c语言的符号集包括________、________、________。
2.结构化设计中的三种基本结构就是________、_______、________。
3.c语言源程序文件的后缀是________,经过编译后生成文件的后缀是________,经过链接后分解成文件的后缀就是________。
4.c语言的关键字都用________{大写或小写}。
5.一个函数由两部分共同组成,它们就是_______、_______。
6.函数体通常包含_______、_______。
7.c语言是通过_______来进行输入和输出的。
8.以下程序的执行结果________。
#include”stdio.h”main(){shorti=-1,j=1;printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\\n”,i,i,i,i);printf(”dec:%d,oct:%o ,hex:%x,unsigned:%u\\n”,j,j,j,j);}9.以下程序的继续执行结果就是________。
#include”stdio.h”main(){chars=’b’;printf(”dec:%d,oct:%o,hex:%x,ascii:%c\\n”,s,s,s,s);}10.以下程序的继续执行结果就是________。
(备注:└┘代表空格)#include”stdio.h”main(){floatpi=3.1415927;printf(”%f,%.4f,%4.3f,.3f”,pi,pi,pi,pi);第八章结构体与共用体4printf(”\\n%e,%.4e,%4.3e,.3e”,pi,pi,pi,pi);}11.以下程序的继续执行结果就是:________。
#include”stdio.h”main(){charc=’c’+5;printf(”c=%c\\n”,c);}12.以下程序输出1└┘2└┘3后的继续执行结果就是________。
(备注:└┘代表空格)#include”stdio.h”main(){inti,j;chark;scanf(”%d%c%d”,&i,&k,&j);printf(”i=%d,k=%c,j=%d\\n”,i,k,j);}13.有以下程序,若输入9876543210后的执行结果是________;若输入为:98└┘76└┘543210后的继续执行结果就是________;若输出为:987654└┘3210后的继续执行结果为:________。
(备注:└┘代表空格)#include”stdio.h”main(){intx1,x2;chary1,y2;scanf(”-=14.若x和y均为int型变量,则以下语句的功能就是________。
x+=y;y=x-y;x-=y;15.存有一输出函数scanf(”%d”,k);则无法并使float类型变量k获得恰当数值的原因就是:________。
16.存有如下程序段,输出数据:12345ffl678后,u的值就是【1】,v的值就是【2】。
intu;floatv;scanf(“=%f”,&u,&v);1.答案:英文字母、数字、一些有特定含义的标点符号2.答案:顺序结构、选择结构、循环结构3.答案:c,obj,exe4.答案:小写5.答案:函数表明部分和函数体6.答案:变量定义部分和继续执行部分7.答案:输出和输入函数8.答案:dec:-1,oct:177777,hex:ffff,unsigned:65535dec:1,oct:1,hex:1,unsigned:19.答案:dec:98,oct:142,hex:62,ascii:b10.答案:3.141593,3.1416,3.142,└┘└┘└┘└┘└┘3.1423.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00(备注:由于c编译系统相同,我们上机采用的机器,其第二个printf语句实际结果为:3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即为:小数点后挑5十一位。
)第八章结构体与共用体511.答案:c=h12.答案:i=1,k=└┘,j=213.答案:第一种情况的继续执行结果:x1=98,x2=765,y1=4,y2=1第二种情况的执行结果:x1=98,x2=76,y1=└┘,y2=3第三种情况的继续执行结果:x1=98,x2=765,y1=4,y2=214.答案:交换x和y的值15.答案:(1)格式符应为:%f;(2)变量前边未加取地址符&,即应为scanf(”%f”,&k);16.答案:【1】123【2】45.000000二、挑选结构2.1选择题1.已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是(d)。
a.6b.0c.2d.12.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为(b)。
a.1b.2c.3d.43.设x、y和z都是int类型变量,且x=3,y=4,z=5,则下面的表达式中,值为0的表达式为()。
a.’x’&&’y’b.x<=yc.x||y+z&&y-zd.!((x4.为了防止嵌套的if-else语句的二义性,c语言规定else总是与(c)共同组成接合关系。