习题一:C语言概述
一、填空题
1.应用程序myfile.c中只有一个函数,这个函数的名称是_______。
2.一个函数由_______和_______两部分组成。
3.在一个C源程序中,注释部分两侧的分界符分别是_______和_______。
4.在C语言中,输入操作是由库函数_______完成的,输出操作是由库函数_______完成的。
5.通过文字编辑建立的源程序文件的扩展名是_______;编译后生成目标程序文件,扩展
名是_______;连接后生成可执行程序文件,扩展名是_______;运行得到结果。
6.C语言程序的基本单位或者模块是_______。
7.C语言程序的语句结束符是_______。
8.编写一个C程序,上机运行,要经过哪几个步骤_______、_______、_______和_______。
9.符合结构化原则的三种基本控制结构是:_______、_______和_______。
10.程序流程图中菱形框表示的是_______。
二、选择题
1.一个C程序的执行是从()。
A)本程序的main函数开始,到main函数结束。
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C)本程序的main函数开始,到本程序文件的最后一个函数结束。
D)本程序文件的第一个函数开始,到本程序main函数结束。
2.以下不是C语言特点的是()。
A)C语言简洁、紧凑,使用方便、灵活。
B)C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
C)C语言具有结构化的控制语句。
D)C语言中没有运算符。
3.以下叙述不正确的是()。
A)一个C源程序可由一个或多个函数组成。
B)一个C源程序必须包含一个main函数。
C)在C程序中,注释说明只能位于一条语句的后面。
D)C程序的基本组成单位是函数。
4.C语言规定:在一个源程序中,main函数的位置()。
A)必须在程序的开头。B)必须在系统调用的库函数的后面。
C)可以在程序的任意位置。D)必须在程序的最后。
5.一个C语言程序是由()。
A)一个主程序和若干子程序组成。B)函数组成。
C)若干过程组成。D)若干子程序组成。
6.C编译程序是()。
A)将C源程序编译成目标程序的程序。
B)一组机器语言指令。
C)将C源程序编译成应用软件。
D)C程序的机器语言版本。
7.以下叙述中正确的是()。
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
8.用C语言编写的代码程序()。
A)可立即执行B)是一个源程序
C)经过编译即可执行D)经过编译解释才能执行
三、简答题
1.C语言程序的总体结构是怎样的。
2.C语言程序的基本单位是什么?它的结构又如何?
3.主函数main()在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执行完后结束?
4.什么是算法,算法有些什么特性,计算机如何表示算法?
5.执行一个c语言程序的一般过程是什么?
四、编程题
1.请参照本章例题1-1,编写一个C程序,输出以下信息:
2.请参照本章例题1-2,设计一程序,计算10+20+50的和。
习题二常量、变量及数据类型
一、填空题
1.C程序中数据有_______和_______之分,其中,用一个标识符代表一个常量的,称为
_______常量。C语言规定在程序中对用到的所有数据都必须指定其_______类型,对变量必须做到先_______,后使用。
2.C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______、_______。
3.  5.4321E2在常规表示法中表示为_______,327.876在科学表示法中表示为_______。
4.C的字符常量是用_______引号括起来的_______个字符,而字符串常量是用_______号
括起来的_______序列。
5.C语言中,字符型数据和_______数据之间可以通用。
6.字符串"abcke"长度为_______,占用_______字节的空间。
7.假设已指定i为int型变量,f为float型变量,d为double型变量,e为long型变量,
有式子10+'a'+i*f-d/e,则结果为_______型。
8.若有定义:char c=‘\010’;则变量c中包含的字符个数为_______。
二、选择题
1.以下选项中属于C语言的数据类型是()。
A)复数型B)逻辑型C)双精度型D)集合型
2.下列常数中不能作为C的常量的是()。
A)0xA5B)2.5e-2C)3e2D)0582
3.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符4.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为()。
A)0~255B)0~32767C)0~65535D)0~2147483647
5.以下是正确的C语言标识符是()。
A)#define B)_123C)%d D)\n
6.为求出s=10!的值,则变量s的类型应当为()。
A)int B)unsiged C)long D)以上三种类型均可
7.在C语言中,合法的字符常量是:()
A)'\084'B)'\x48'C)'ab'D)"\0"
8.下列不正确的转义字符是:()
A)'\\'B)'\"C)'074'D)'\0
9.若有说明语句:char c='\72',则变量c()。
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法,c的值不确定
c语言程序总是从什么开始执行10.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’;
后,c2中的值为()。
A)D B)68C)不确定的值D)C
三、简答题
1.C语言中用到的数据类型都有哪些,是如何划分的?
2.C语言为什么规定对所有用到的变量要“先定义,后使用”,这样做有什么好处?3.字符常量与字符串常量有什么区别?
4.指出下列变量名中,哪些是合法的,哪些是非法的。如果非法,为什么?
Int,char,345,ABdf,c&d,string*,_322,alpf_beat,JOHN.smith,3ab
习题三运算符与表达式
一、填空题
1.若有定义:int x=3,y=2;float a=
2.5,b=
3.5;则表达式:(x+y)%2+(int)a/(int)b的值为
_______。
2.若s为整型变量,且s=6,则表达式s%2+(s+1)%2的值为_______。
3.5/3的值为_______,5.0/3的值为_______。
4.将下面的语句补充完整,使得ch1和ch2都被初始化为字母D,但要用不同的方法:
char ch1=_______;char ch2=_______;
5.自增运算符++、自减运算符--,只能用于_______,不能用于常量或表达式。
6.++和--的结合方向是“自_______至_______”。
7.赋值运算符的作用是将一个数据赋给一个_______。
8.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。
9.若a是int型变量,则执行表达式:a=25/3%3后,a的值为_______。
10.若x和n均是int型变量,且x和n的初值均为5,则执行表达式:x+=n++后,x的值
为_______,n的值为_______。
11.若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)
后的x值为_______。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
12.若a、b和c均是int型变量,则执行表达式:a=(b=4)+(c=2)后,a值为_______,b值
为_______,c值为_______。
13.若有代数式3ae
bc,则正确的C语言表达式是_______。
二、选择题
1.在C语言中,要求运算数必须是整型的运算符是()。
A)/B)++C)!=D)%
2.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为()。
A)float B)char C)int D)double
3.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。
A)2.500000B)2.750000C)3.500000D)0.000000
4.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是()。
A)int a=b=c=5,B)int a,b,c=5;
C)int a=5,b=5,c=5;D)a=b=c=5;
5.设以下变量均为int类型,则值不等于7的表达式是()。
A)(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)
6.设X,Y,Z和K都是int型变量,则执行表达式:X=(Y=52,Z=26,K=32)后,X
的值为:()
A)4B)26C)32D)52 7.逗号表达式"(a=3*5,a*4),a+15"的值是()。
A)15B)60C)30D)不确定三、阅读程序,写出运行结果
1.main()
{char c1,c2;
c1=97;
c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
2.main()
{char i,j,m,n;
i=8;j=10
m=++i;
n=j++;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
3.main()
{int x=8,y,z;
y=z=x;
x=y==z;
printf("%d",x);
4.main()
{double x;
x=(int)8.4;
printf("%f\n",x);
四、计算下列表达式的值
(1)a+b%3*(int)(a-b)/4(设a=13.6,b=8)
(2)(x+y)/2+(int)x%(int)y(设x=4.5,y=2.5)
(3)z*=3+6,z/z=z/2,z+=z-=z*=z(设z=6)