第12章C语言基础练习题.docx
《第12章C语言基础练习题.docx》由会员分享,可在线阅读,更多相关《第12章C语言基础练习题.docx(31页珍藏版)》请在冰豆网上搜索。
第12章C语言基础练习题
单选:
1.当代电子计算机能够自动地处理指定的问题是因为( )。
A.计算机是电动的
B.有解决该问题的计算机程序
C.事先存储了解决该问题的程序
D.以上都不是
2.C语言源程序的基本单位是()。
A.过程
B.函数
C.子程序
D.标识符
3.C语言源程序文件的后缀是()。
A..obj
B..exe
C..doc
D..c
4.一个完整的可运行的C语言源程序中()。
A.可以没有主函数
B.可以有一个或多个主函数
C.必须有主函数和其它子函数
D.必须有且仅有一个主函数
5.以下标识符中,不能作为合法的C用户定义标识符的是().
A.For
B.Printf
C.WORD
D.sizeof
6.以下标识符中,不能作为合法的C用户定义标识符的是().
A.answer
B.to
C.signed
D._if
7.C语言执行程序的开始执行点是().
A.程序中第一条可以执行语言
B.程序中第一个函数
C.程序中的main函数
D.包含文件中的第一个函数
8.能将高级语言编写的源程序转换为目标程序的是().
A.链接程序
B.解释程序
C.编译程序
D.编辑程序
9.以下叙述不正确的是().
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
10.以下说法中正确的是().
A.C语言的程序总是从第一个定义的函数开始执行.
B.在C语言程序中,要调用的函数必须在main()函数中定义.
C.C语言程序总是从main()函数开始执行,在main()函数中结束.
D.C语言程序中的main()函数必须放在程序的开始部分.
11.下列说法正确的是().
A.注释时,"/"和"*"之间可以有空格
B.无论注释内容是多少,在对程序编译时都被忽略
C.在书写C语言源程序时,每个语句都以逗号结束
D.C程序每行只能写一个语句
12.组成C语句的一个必不可少的符号是( )。
A.逗号
B.引号
C.冒号
D.分号
13.下述哪一个不是结构化程序基本结构()。
A.顺序
B.选择
C.循环
D.嵌套
14.下列四个叙述中,正确的是( )。
A.C程序中的所有字母都必须小写
B.C程序中的关键字必须小写,其他标示符不区分大小写
C.C程序中的所有字母都不区分大小写
D.C语言中的所有关键字必须小写
15.下列叙述正确的是( )。
A.C语言源程序可以直接在DOS环境中运行
B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行
C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行
D.C语言源程序可以直接在VC++环境中运行
16.以下叙述中正确的是().
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
17.以下叙述中正确的是().
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,具有其他语言的一切优点
18.设C语言中,int类型数据占4个字节,则long类型数据占().
A.1个字节
B.2个字节
C.4个字节
D.8个字节
19.设C语言中,int类型数据占4个字节,则short类型数据占().
A.1个字节
B.2个字节
C.4个字节
D.8个字节
20.设C语言中,int类型数据占4个字节,则unsigned类型数据占().
A.1个字节
B.2个字节
C.4个字节
D.8个字节
21.若有以下定义:
chars='\092';则该语句().
A.使s的值包含1个字符
B.定义不合法,s的值不确定
C.使s的值包含4个字符
D.使s的值包含3个字符
22.a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是().
A.a*b/a*b==1
B.a/b*b/a==1
C.a/b*b+a%b==a
D.a/b*b==a
23.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为().
charx=65;
floaty=7.3;
inta=100;
doubleb=4.5;
A.2,2,2,4
B.1,2,2,4
C.1,4,2,8
D.2,4,2,8
24.C语言执行程序的开始执行点是().
A.程序中第一条可以执行语言
B.程序中第一个函数
C.程序中的main函数
D.包含文件中的第一个函数
25.下列说法正确的是().
A.注释时,"/"和"*"之间可以有空格
B.无论注释内容是多少,在对程序编译时都被忽略
C.在书写C语言源程序时,每个语句都以逗号结束
D.C程序每行只能写一个语句
26.下列字符序列中,可用作C标识符的一组字符序列是().
A.S.b,sum,average,_above
B.class,day,lotus_1,2day
C.#md,&12x,month,student_n!
D.D56,r_1_2,name,_st_1
27.以下标识符中,不能作为合法的C用户定义标识符的是().
A.a3_b3
B.void
C._123
D.IF
28.以下数据中,不正确的数值或字符常量是().
A.0
B.5L
C.o13
D.9861
29.以下数值中,不正确的八进制数或十六进制数是().
A.0x16
B.016
C.-16
D.0xaaaa
30.以下的选择中,正确的赋值语句是().
A.a=1,b=2
B.j++
C.a=b=5;
D.y=int(x)
31.下列变量说明语句中,正确的是().
A.char:
abc;
B.chara;b;c;
C.intx;z;
D.intx,z;
32.下列字符序列中,不可用作C语言标识符的是().
A.b70
B.#ab
C.symbol
D.a_1
33.以下不正确的叙述是().
A.在C程序中所用的变量必须先定义后使用
B.程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
34.以下数据中,不正确的数值或字符常量是().
A.8.9e1.2
B.10
C.0xff00
D.82.5
35.以下数据中,不正确的数值或字符常量是().
A.c
B.66
C.0xaa
D.50
36.以下叙述中不正确的是().
A.一个好的程序应该有详尽的注释
B.在C程序中,赋值运算符的优先级最低
C.在C程序中,j++;是一条赋值语句
D.C程序中的#include和#define均不是C语句
37.C语言中,double类型数据占().
A.1个字节
B.2个字节
C.4个字节
D.8个字节
38.C语言中,char类型数据占().
A.1个字节
B.2个字节
C.4个字节
D.8个字节
39.执行下列语句后变量x和y的值是().
y=10;x=y++;
A.x=10,y=10
B.x=11,y=11
C.x=10,y=11
D.x=11,y=10
40.下列数据中,为字符串常量的是().
A.A
B."house"
C.Howdoyoudo.
D.$abc
41.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是().
A.c='a';
B.c="a";
C.c="97";
D.C='97'
42.下列语句的结果是().
main()
{intj;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
A.3,3
B.3,4
C.4,3
D.4,4
43.设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为().
A.12
B.144
C.0
D.132
44.以下不符合C语言语法的赋值语句是().
A.a=1,b=2
B.++j;
C.a=b=5;
D.y=(a=3,6*5);
45.以下不符合C语言语法的赋值语句是().
A.j++;
B.i=j=5;
C.k=2*4,k*4;
D.y=float(j);
46.执行下列程序后,其输出结果是().
main()
{inta=9;
a+=a-=a+a;
printf("%d\n",a);
}
A.18
B.9
C.-18
D.-9
47.下列语句的输出结果是().
printf("%d\n",(int)(2.5+3.0)/3);
A.有语法错误不能通过编译
B.2
C.1
D.0
48.下列程序的输出结果是().
main()
{inta=7,b=5;
printf("%d\n",b=b/a);
}
A.0
B.5
C.1
D.不确定值
49.下列程序的输出结果是().
main()
{inta=011;
printf("%d\n",++a);
}
A.12
B.11
C.10
D.9
50.已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A.b,c
B.a--运算不合法,故有语法错
C.98,c
D.格式描述和输出项不匹配,输出无定值
51.以下程序的输出结果为().
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A.11,10
B.9,10
C.010,9
D.10,9
52.在C语言中,能代表逻辑值"真"的是().
A.True
B.大于0的数
C.非0整数
D.非0的数
53.若int类型数据占两个字节,则下列语句的输出为().
intk=-1;printf("%d,%u\n",k,k);
A.-1,-1
B.-1,32767
C.-1,32768
D.-1,65535
54.若k,g均为int型变量,则下列语句的输出为().
k=017;g=111;printf("%d\t",++k);printf("%x\n",g++);
A.156f
B.1670
C.1571
D.166f
55.已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A.b,c
B.a--运算不合法,故有语法错
C.98,c
D.格式描述和输出项不匹配,输出无定值
56.下列程序的输出结果为().
main()
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A.27.000000
B.27.500000
C.28.000000
D.28.500000
57.以下程序的输出结果为().
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A.11,10
B.9,10
C.010,9
D.10,9
58.执行下列语句后,a和b的值分别为().
inta,b;
a=1+'a';
b=2+7%-4-'A';
A.-63,-64
B.98,-60
C.1,-60
D.79,78
59.C语言中要求对变量作强制定义的主要理由是().
A.便于移植
B.便于写文件
C.便于编辑预处理程序的处理
D.便于确定类型和分配空间
60.以下程序的输出结果是().
main()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A.x=3.600000,i=4
B.x=3,i=3
C.x=3.600000,i=3
D.x=3i=3.600000
61.下列标识符中,不合法的C语言用户自定义标识符是().
A.printf
B.enum
C._
D.sin
62.以下字符中不是转义字符的是().
A.'\t'
B.'\b'
C.'\c'
D.'\\'
63.下列程序段的输出结果为().
floatk=0.8567;
printf("%06.1d%%",k*100);
A.0085.6%%
B.0085.7%
C.0085.6%
D..857
64.下列程序段的输出结果为().
floatx=213.82631;
printf("%3d",(int)x);
A.213.82
B.213.83
C.213
D.3.8
65.C语言的注释定界符是().
A.{}
B.[]
C.\**\
D./**/
66.doublex;scanf("%lf",&x);不可以赋值给x变量的常量是().
A.123
B.100000
C.'A'
D."abc"
67.下列程序段的输出结果为().
intx=3,y=2;
printf("%d",(x-=y,x*=y+8/5));
A.1
B.7
C.3
D.5
68.执行以下程序段后,输出结果和a的值是().
inta=10;
printf("%d",a++);
A.10和10
B.10和11
C.11和10
D.11和11
69.一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是().
A.有零个或多个输入
B.有零个或多个输出
C.有穷性
D.可行性
70.以下叙述中正确的是().
A.C语言的源程序不必通过编译就可以直接运行
B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.C源程序经编译形成的二进制代码可以直接运行
D.C语言中的函数不可以单独进行编译
71.在C语言中,char型数据在内存中的存储形式是().
A.补码
B.反码
C.原码
D.ASCII码
72.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为().
A.int
B.float
C.double
D.不确定
73.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是().
A.2.500000
B.2.750000
C.3.500000
D.0.000000
74.设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为().
A.float
B.char
C.int
D.double
75.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:
'\b'是退格符)().
A.a\bre\'hi\'y\\\bou
B.a\bre\'hi\'y\bou
C.re'hi'you
D.abre'hi'y\bou
76.设有intx=11;则表达式(x++*1/3)的值是().
A.3
B.4
C.11
D.12
77.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为().
A.7
B.8
C.9
D.10
78.下面四个选项中,均是不合法的用户标识符的选项是().
A.AP_0do
B.floatla0_A
C.b-agotoint
D._123tempint
79.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是().
A.7
B.8
C.6
D.2
80.若有说明语句:
charc='\72';则变量c().
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
81.在C语言中,要求运算数必须是整型的运算符是().
A./
B.++
C.!
=
D.%
82.下面不正确的字符串常量是().
A.'abc'
B."12'12"
C."0"
D.""
83.已定义ch为字符型变量,以下赋值语句中错误的是().
A.ch='\';
B.ch=62+3;
C.ch=NULL;
D.ch='\xaa';
84.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是().
A.-3
B.9
C.-12
D.6
85.下列选项中,合法的C语言关键字是().
A.VAR
B.cher
C.integer
D.default
86.设有说明语句:
chara='\72';则变量a().
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法
87.以下选项中,与k=n++完全等价的表达式是().
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
88.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式().
A.从左起输出该字符串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
89.系统的标准输入文件是指().
A.键盘
B.显示器
C.软盘
D.硬盘
90.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是().
A.同一个运算符号在不同的场合可以有不同的含义
B.有些不同类型的变量可以在一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D.任何不同数据类型都不可以通用
91.以下选项中属于C语言的数据类型是()
A.复数型
B.双精度型
C.逻辑型
D.集合型
92.下列常数中不能作为C语言的常量的是()
A.0xA6
B..004
C.0683
D.300000
93.在C语言中,数字031是一个()
A.十六进制数
B.八进制数
C.十进制数
D.非法数
94.下列可以正确表示字符型常量的是()
A.'\t'
B."a"
C."\n"
D.185'
95.已知inta;floatf;
正确的语句是()
A.(intf)%a
B.int(f)%a
C.(int)f%a
D.int(f%a)
96.以下合法的C语言赋值语句是()
A.a=b=58
B.--i;
C.a=58,b=58
D.k=a+b
97.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符().
A.必须为字母或下划线
B.必须为下划线
C.必须为字母
D.可以字母、数字和下划线中的任一种字符.
98.若变量已经正确定义,现要将a和b中的数据进行交换,下面不正确的是()
A.a=a+b,b=a-b,a=a-b;
B.t=a,a=b,b=t;
C.t=b;b=a;a=t;
D.a=t;t=b;b=a;
/////填空:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.一个C程序由若干个函数组成,其中必须有且只能有一个【1】函数。
2.C程序中的函数一般由两部分组成,它们是【1】和【2】。
3.C函数的函数体是以【1】开始,以【2】结束。
4.C程序从【1】函数开始执行,在【2】函数中结束。
5.C语言中的关键字必须是【1】字母。
6.C语言标识符的定义规则中,必须以字母或【1】作为第一个字符。
7.C语言中,一个源程序的主函数名必须为【1】。
8.执行下列语句后,z的值是【1】。
intx=4,y=25,z=5;z=y/x*z;
9.已知i=5,写出语句a=i++;执行后整型变量a的值是【1】。
10.设x的值为15,n的值为2,则表达式x%=(n+3)运算后x的值是【1】。
11.已知i=5;写出语句a=--i;执行后整型变量a的值是【1】。
12.已知i=5.6;写出语句a=(int)i;执行后变量i的值是【1】。
13.已知i=5,写出语句i*=i+1;执行后整型变量i的值是【1】。
14.已知i=5,写出语句i-=0x12;执行后整型变量i的值是【1】。
15.已知i=5,写出语句a=(a=i+1,a+2,a+3);执行后整型变量a的值是【1】。
16.写出语句b=(a=6,a*3);执行后整型变量b的值是【1】。
17.输入整型变量a的值。
inta;scanf("%d",【1】);
18.表达式a+=b相当于表达式【1】。
19.表达式i++相当于表达式【1】。
20.C语言中的字符变量用保留字【1】来说明。
21.已知a=13,b=6,a/b的十进制数值为【1】。
22.已知a=13,b=6,a%b的十进制数值为【1】。
23.inta=1,b=2,c=3;执行语句a=b=c;后a的值是【1】。
24.inta=1,b=2,c=3;执行语句a+=b*=c;后a的值是【1】。
25.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】。
26.语句:
x++;++x;x=x+1;x=l+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句【1】。
27.若charw,intx,floaty,doublez;则表达式w*x+z-y的结果为【1】类型。
28.若intx=6;则x+=x-=x*x表达式最后x的值是【1】。
29.设c语言中,int类型数据占2个字节,则long类型数据占【1】个字节,short类型数据占【2】个字节。
30.执行下面两个语句,输出的结果是【1】。
(注:
字母a和b的ASCII码值分别是97和98)
charc1=97,c2=98;
printf("%d,%c",c1,c2);
31.执行下列语句的结果是【1】,a=3;printf("%d,",++a);printf("%d",a++);
32.已知x=3,y=2,则表达式x*=y+8的值为【1】。
33.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为【1】。
34.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是【1】。
35.若x和n均是