第1章习题一、选择题1.关于C语言的源程序的叙述中,错误的是()。A)C语言的源程序由函数构成B)main函数可以书写在自定义函数之后C)必须包含有输入语句D)一行可以书写多个语句2.以下说法中正确的是()。A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分3.在一个C语言程序中,main函数的位置()。A)必须放在最开始B)必须在系统调用的库函数后面C)必须在最后D)可以任意4.C语言程序编译时,程序中的注释部分将()。A)参加编译,并会出现在目标程序中B)参加编译,但不会出现在目标程序中C)不参加编译,但会出现在目标程序中D)不参加编译,也不会出现在目标程序中5.一个完整的可运行的C源程序是()。A)至少要由一个主函数和(或)一个以上的辅函数构成B)由一个且仅由一个主函数和零个以上(含零)的辅函数构成C)至少要由一个主函数和一个以上的辅函数构成D)至少由一个且只有一个主函数或多个辅函数构成6.对于C语言源程序,以下叙述错误的是()。A)可以有空语句B)函数之间是平等的,在一个函数内部不能定义其它函数C)程序调试时如果没有提示错误,就能得到正确结果D)注释可以出现在在语句的前面7.一个C语言程序是由()组成的A)一个主程序和若干子程序B)若干过程C)函数D)若干子程序8.以下叙述正确的是()。A)C程序的每行只能写一条语句B)在对一个C程序进行编译的过程中,可以发现注释中的拼写错误C)C语言本身没有输入、输出语句C)在C程序中,mian函数必须位于程序的最前面9.以下叙述不正确的是()。A)C程序的执行总是从main函数开始B)一个C源程序必须包含一个main函数C)C语言程序的基本组成单位是函数D)在编译C程序源程序时,可发现注释中的拼写10.C程序的基本单位是()。A)子程序B)程序C)子过程D)函数11.下面关于C语言用户标识符的描述,正确的是()。A)不能区分大小写B)用户标识符不能描述常量C)类型名也是用户标识D)用户标识符可以作为变量名二、填空题1.一个C语句中至少包含一个()。2.C语言标识符由()、()和()来构造。3.C程序执行过程生成的3种文件及扩展名为.C、.obj和()。第2章习题一、选择题1.以下选项中不合法的用户标识符是()A)st.nB)FILEC)MainD)GO2.下列属于字符型常量的是()。A)’AA’B)”B”C)‘\117’D)’\x93L’3.以下()是正确变量名。A)5fB)ifC)f.5D)_f54.char型变量存放的是()。A)ASCⅡ码值B)字符本身C)十进制代码值D)十六进制代码值5.C语言中最简单的数字类型包括()。A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型6.下面叙述正确的是()。A)强制类型转换运算的优先级高于算术运算B)若a和b是整型变量,(a+b)++是合法的C)”A”*’B’是合法的D)”A”+”B”是合法的7.不是C语言实型常量的是()。A)55.0B)0.0C)55.5D)55e2.58.已知chara=’R’;则不正确的赋值表达式是()。A)a=(a++)%4B)a+2=3C)ca+=256--D)a=‘\078’9.以下选项中属于C语言数据类型的是()。A)复数型B)逻辑型C)双精度型D)集合型10.若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是()。A)2.0B)2.25C)2.1D)1.5D)1.5D)1.5D)1.511.设整形变量a为5,使b不为2的表达式是()。A)b=(++a)/3B)b=6-(--a)C)b=a%2D)b=a/212.若t为double类型,表达式t=1,t*5,t的值为()。A)1B)6.0C)2.0D)1.013.在C语言中,运算对象必须是整型数的运算符是()。A)%B)\C)%和\D)**14.字符串”abcd\tef\0g”的长度是()。A)9B)7C)6D)4二、填空题1.C的整数可以用十、八和()三种进位制表示。2.字符串”ab\034\\\x79”的长度为()。3.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为()。4.设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的结果类型为()。5.若k为int型变量且赋值11。请写出运算k++后表达式的值()。6.表达式3.5+1/2的计算结果是()。7.若A、b和c均是int型变量,则执行下面表达式后,c值为()。c=(a=5)-(b=2)+a8.条件”20x30或x-100”的C语言表达式是()。9.C语言的基本数据类型有整型、实型和()。10.若有定义:charc=′\010′;则变量c中包含的字符个数为()。11.C语言中普通整型变量的类型声明符为()。第3章习题一、选择题1.结构化程序设计不包括()。A)最优化B)自顶而下,逐步细化C)模拟化设计D)结构化编码2.下面叙述中,()不是结构化程序设计中的三种基本结构之一。A)数据结构B)选择结构C)循环结构D)顺序结构3.已知:inta,b;用语句scanf(“%d%d”,&a,&b);输入a、b的值时,不能作为输入数据分隔符的是()。A),B)空格C)回车D)[TAB]4.已知:inty;执行语句y=5/2;则变量y的结果是()。A)2B)-2C)2.5D)2.05.已知:inty;执行语句y=5%-3;则变量y的结果是()。A)2B)-2C)1D)-16.设inta=2,b=2;则++a+b的结果是()。A)2B)3C)4D)57.getchar()函数的功能是从终端输入()。A)一个整型量值B)一个实型变量值C)多个字符D)一个字符8.putchar()函数的功能是向终端输出()。A)多个字符B)一个字符C)一个实型变量值D)一个整型变量表达式9.已有如下定义和输入语句inta;charc1,c2;scanf(“%d,%c,%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()。A)10ABB)10,A,BC)10ABD)10AB10.若有声明和语句:inta=5,b=6;b*=a+1;则b的值为()。A)5B)6C)31D)3611.使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是()。A)a=2.2,b=3B)a=2.2b=3C)2.23D)2.2,312.下列程序的运行结果是()。#includestdio.hvoidmain(){inta=2,c=5;printf(a=%d,b=%d\n,a,c);}A)a=%2,b=%5B)a=2,b=5C)a=d,b=dD)a=%d,b=%d二、填空题1.设有以下变量定义,并已赋确定的值,charw;intx;floaty;doublez;则表达式w*x+z-y所求得的数据类型是()。2.若有定义inty=7;floatx=2.5,z=4.7;则下面表达式的值为()。x+(int)(y/3*(int)(x+z)/2)%43.若有声明和语句:inta=25,b=60;b=++a;则b的值是()。三、程序分析题(写出程序运行结果)1.#includestdio.hvoidmain(){inta,b,c;a=-1;b=-2;c=++a-b++;printf(%d,c);}2.#includestdio.hvoidmain(){intx,y,z;x=1;y=3;z=++x+(++y);printf(%d,z);}第4章习题一、选择题1.若整型变量a,b,c,d中的值依次为1,4,3,2,则条件表达式ab?a:cd?c:d的值为()。A)1B)2C)3D)42.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。A)1B)0C)2D)不知道a的值,不能确定3.在C语言中,switch语句后一对圆括号中表达式的类型()。A)可以是任何类型B)只能是int类型C)可以是整型或字符型D)只能是整型或实型4.下列运算符的优先级最高的是()。A)关系运算符B)算术运算符C)赋值运算符D)逻辑运算符5.下列运算符中优先级最低的运算符是()。A)||B)!=C)=D)+6.设charc1=’a’,c2=’A’;则表达式c1==c2+32?c1:(c1=c2+32)的值是()。A)1B)0C)’a’D)’A’7.设intx=1,y=1;表达式(!x||y--)的值是()。A)0B)1C)2D)-18.能正确表示逻辑关系a≥10或a≤0的C语言表达式是()。A)a=10ora=0B)a=0|a=10C)a=10&&a=0D)a=10||a=09.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假,则不能满足要求的表达式是()。A)a%2==1B)!(a%2==0)C)!(a%2)D)a%210.如果a=3,b=2,c=1,则下列表达式的值为0的是()。A)abB)(ab)==cC)b+caD)c=ab11.表示关系12=x=y的C语言表达式为()。A)(12=x)&(x=y)B)(12=x)&&(x=y)C)(12=x)|(x=y)D)(12=x)||(x=y)12.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前未配对的最近的ifD)同一行上的if13.若有定义inta=1,b=2,c=3,d=4,x=5,y=6则表达式(x=ab)&&(y=cb)的值为()。A)0B)1C)5D)6二、填空题1.C语言中逻辑值真用()表示。2.C语言中逻辑值假用()表示。3.在C语言中,当表达式值为0时表示逻辑值假,当表达式值为()时表示逻辑值真。4.设x为int型变量,请写出一个关系表达式(),用以判断x同时为3和7的倍数时,关系表达式的值为真。5.C语言中逻辑运算符优先级按由低到高分别是()。三、程序分析题1.以下程序的功能是#includestdio.hvoidmain(){charch;scanf(“%c\n”,&ch);ch=(ch=’A’&&ch=’Z’)?ch+32:ch;printf(“char=%c\n”,ch);}2.若inti=10;则执行下列程序后,写出变量i的正确结果。switch(i){case9:i+=1;case10:i+=1;case11:i+=1;default:i+=1;}3.有以下程序#includestdio.hvoidmain(){inta=1,b=2,c=3,d=0;if(a==1)if(b!=2)if(c!=3)d=1;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf(“%d\n”,d);}写出程序运行后的输出结果。四、程序填空题1.输入三角形的三条边a,b,c,求三角形的面积。#include“math.h”#include“stdio.h”voidmain(){floata,b,c,d,t,s;printf(“请输入三角形的三条边:”);scanf(“%f,%f,%f”,&a,&b,&c);if(1)printf(“%f%f%f不能构成三角形!”,a,b,c);else{t=(a+b+c)/2;s=(2)printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”,a,b,c,s);}}五、程序设计题1.请编程序,输入一个4位数字,要求输出这4个数字字符,每个数字间空一个空格。如输入1990,应输出1990