第一部分 习题篇 第一章 C语言概述
一.单选题
1.以下说法中正确的是( C )。
A)C语言程序总是从第一个函数开始执行
B)在C语言程序中,要调用函数必须在main( )函数中定义 C)C语言程序总是从main( )函数开始执行
D)C语言中的main( )函数必须放在程序的开始部分 2.一个C语言程序是由( B )。
A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 3.C语言规定,在一个源程序中,main函数的位置( C )。
A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 4.以下叙述不正确的是( D )。
A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数
D)在C程序中,注释只能位于一条语句的后面 5.下列关于C语言的说法不正确的是( D )。
A)C语言既有高级语言的功能,也具有低级语言的一些功能 B)C语言中的一条执行语句都必须用分号结束 C)注释可以出现在程序中任意合适的地方 D)include命令行后面必须加分号
6.用C语言编写的代码程序( B )。
A)可以立即执行 B)是一个源程序
C)经过编译即可执行 D)经过编译解释才能执行 7.用高级语言(如C语言)编写的程序称为( A ) A)源程序 B)目标程序 C)可执行程序 D)编译程序 8.一个函数的组成有( A )。 A)函数首部和函数体 B)函数名和函数的声明部分 C)主函数和子函数 D)声明部分和执行部分 9.在C语言中,用来表示“取地址”的符号是( B )。
A) # B) & C) * D) @
10.C语言是计算机高级语言,它适合于作为系统描述语言,它( A )。
A)既可用来写系统软件,也可用来写应用软件 B)只能写系统软件,不能用来写应用软件 C)不能写系统软件,只能用来写应用软件 D)既不能写系统软件,也不能写应用软件 二.填空题
1.C语言用 函数 作为程序的模块单位,便于实现程序的模块化。 2.C语言允许直接访问物理地址,能进行 位 操作。
3.用C语言编写的程序,每一个语句和数据定义的结尾必须要有一个 分号 。 4.每个C程序中必须有一个 main() 函数。 5.C程序中的函数体由 { } 括起来。
6.C程序中的“\\n” 表示在程序运行中 换行 。 7.C程序中,“/*??*/”表示 注释 部分。
8.C程序中,一个函数由 函数首部 和 函数体 组成。
9.一个C程序总是从 main() 函数开始执行的,不论该函数在整个程序中的位置如何。 10.在纸上编好一个C源程序后,要经过 编辑 、 编译 、 连接 、 运行 这几个步骤进行上机运行。 三.判断题
1.C语言不具有低级语言的特性。 ( 错 ) 2.C语言之所以也被称为中级语言,是因为它比高级语言的功能要少,而比低级语言的功能多。 ( 错 ) 3.C语言与其他高级语言一样具有结构化的控制语句。 ( 对 ) 4.C语言允许直接访问物理地址。 ( 对 ) 5.每一个C程序必须有一个main函数。 ( 对 ) 6.C程序的语句最后应有一个分号。 ( 对 ) 7.C程序中的main函数必须放在整个程序的最前头。 ( 错 ) 8.计算机高级语言对源程序进行翻译有两种方式:编译和解释。 ( 对 ) 四.编程题
1.编写一个C程序,输出以下信息:
* * * * * * * * * * * *
I am a student.
* * * * * * * * * * * *
#include
{
printf(“* * * * * * * * * * * \\n”); /*\\n的作用相当于回车*/
printf(“ I am a student.\\n”); printf(“* * * * * * * * * * * \\n”); }
2.编写一个C程序,输入a、b两个数,输出其中大的数。(只用一个主函数) #include
void main() { int a,b;
printf(“Please input a,b:\\n”); scanf(“%d,%d”,&a,&b); if(a>b) printf(“%d”,a);
else printf(“%d”,b); }
3.编写一个C程序,输入a、b、c三个数,输出其中最大数。(只用一个主函数) #include
{
int a,b,c,max;
printf(“Please input a,b,c:\\n”); scanf(“%d,%d,%d”,&a,&b,&c);
max=a;
if(a
/*注意输入两个数之间用逗号分隔*/
第二章 数据与运算
一.单选题
1.C语言中最简单的数据类型包括( B )。
A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型 2.C语言中运算对象必须是整型的运算符是( D )。 A) * B) / C) = D) % 3.在C程序中,以下不正确的叙述是( D )。 A)逗号运算符的优先级最低
B)ABC和abc是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后,b中的值将放入a中,而b的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据
4.设有int x=8,表达式x++*1/3的值是( A )。
A) 2 B) 3 C)8 D)9 5.若m, x, y, z都是整型变量,则计算表达式m=(x=5, y=10,z=25)执行后,m的值为( C )。
A) 5 B) 10 C)25 D)40
6.设变量i是int 类型,f 是float型,d是double型,执行表达式5+?i?-f*d,其结果的数据类型为( B )。
A) int型 B) double型 C)float型 D)非法表达式 7.设变量i是int 类型,执行语句i=?A?+2.5后,正确的叙述是( C )。
A) i的值是字符D B) i的值是字符A的ASCII值加上2.5 C) i的值是字符A的ASCII值加上2 D)非法表达式 8.下列是用户自定义标识符的是( B )。 A) int B) _xy C)2xy D)3-xy 9.下面与x=y++完全等价的表达式是( A )。
A) x=y,y=y+1 B) x=x+1,y=x C)x=++y D)x+=y+1 10.已知各变量的类型说明如下: int k,a,b;
long w=8; float x=2.56;
以下不符合C语言语法的表达式是( A )。
A)x%5 B)w-=5 C)k=(a=8,b=6,a-b) D)a+=a-=(b=2)*(a=5) 11.运行以下程序段时编译出错,其原因是( D )。 char c1 = 'a', c2 = '123'; printf( \
A)字符串要用\表示 B)'123'只能赋值给字符数组
C)c2是字符变量,不能用%d格式输出 D)c2是字符变量,只能赋以字符常量
12. 若定义 float a;,现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用( A )。
A)scanf( \ C)scanf( \.2f\ A)1.0
B)scanf( \.2f\ D)scanf( \
13.若定义double t;,则表达式 t=1, t+5, ++t的值为( B )。
B)2.0 C)6.0 D)7.0
14. 已知各变量的类型说明如下,则C语言中错误的表达式是( A )。 int k, a, b;
unsigned long w = 5; double x = 1.42;
A)x % (-3) B)w += 2
C)k = ( a=2, b=3, a+b) D)a += a -= ( b=4*(a=3) ) 15. 以下程序段的运行结果是( C )。
int a=0, b=0, c=0; if ( a && ++b ) c++; printf(\
A)1,1 二.填空题
B)1,0 C)0,0 D)0,1
1.在C语言中,一个float型数据在内在中所占的字节数为4,一个double型数据在内在中所占的字节数是 8 。
2.下面程序的输出结果是 28 。
main( ) {
int a=2, b=3, c=4; a*=16+(b++)-(++c); printf(“%d”, a); }
3.下面程序的输出结果是 5 。
main( ) {
int x=17, y=26;
printf (“%d ”,y/=(x%=6)); int c1=1, c2=2, c3; c3=1.0/c2*c1; char a; int b; float c; double d;
}
4.执行下面程序段后,c3中的值是 0 。
5.进行下列变量定义后,表达式a*b+d-c的类型是 double 。
6.下面程序的输出结果是 8,10 。
main( ) {
int x=010, y=10; }
printf (“%d, %d\\n”, x, y);
7.下面程序的输出结果是 12 。
main( ) {
int x=3, y=5;
printf (“%d\\n”, x=(x- -)*(- - y)); }
8.已知字母A的ASCII码是十进制数65,设c为字符型变量,则表达式c=?A?+?5?-?2?的值为 D 或68 。 9.下面程序的输出结果是 52 。
main( )