武汉大学C语言题库
第一章
C语言源程序经过编译、链接后生成的可执行文件扩展名是______。
(A).exe (B).cpp (C).c (D).obj
C语言程序要正确地运行,必须要有______。
(A)printf函数 (B)scanf函数 (C)自定义的函数 (D)main函数
以下均为合法用户标识符的是______。 (A)do,xyz,_printf (B)3a,_tt,IF (C)void,ff,s_v
(D)_pi,IF,big_tree 以下叙述中正确的是______。
(A)C语言程序从源程序中第一个函数开始执行
(B)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
(C)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
(D)main可作为用户标识符,用以命名任意一个函数作为主函数
以下叙述中错误的是______。
(A)C语言是一种结构化程序设计语言 (B)结构化程序有顺序、选择和循环三种基本结构
(C)使用三种基本结构构成的程序只能解决简单问题
(D)结构化程序设计提倡模块化的设计方法
C语言程序的基本单位是【函数】。
编写C语言源程序时,需要使用【 编辑】器将源代码输入到计算机中。
C语言源程序中可以有多处注释。
第二章
1
以下属于合法数据类型关键字的是______。
(A)Long (B)shot (C)char (D)doubel
以下不合法的数值常量是______。 (A)011 (B)1e1 (C)8.0E0.5 (D)0xabcd 以下正确的字符常量是______。
(A)\(B)'\\\\'' (C)' (D)'T'
以下不合法的字符常量是______。 (A)\ (B)
'\\77' (C)'\\n' (D)'\\x5c' 表达式3.6-5/2+1.2+5%2的值是______。
(A)4.3 (B)
4.8 (C)3.3 (D)3.8 以下均是合法常量的是______。 (A)038,.5e-6,0xE (B)12.,0Xc33,3.6e0 (C).17,4e1.5,0ade (D)0x6A,30_000,3.e7 以下均是非法常量的是______。 (A)0x2g,0ff,E5 (B)'\\\\','\\21',12,456 (C)028,04567,0xffff (D)0xaa,'a',\
设有说明语句:int i=5; char c='A'; double d=3.14; ,以下结果为整型的表达式是______。
(A)i/2+d (B)i/2*c (C)c+d/2 (D)i/2+c+d 若变量均已正确定义并赋值,以下合法的赋值语句是______。
(A)x+n=i; (B)x=n%2.5; (C)
x=y==5; (D)x=5=4+1;
以下变量说明语句中,合法的是______。 (A)float 5_five=3.4; (B)int _xyz=29 (C)double a1=6.2e4; (D)short do=3;
设有说明语句:int x=1; double y=1.0;,以下不符合C语言语法的表达式是
________。
(A)++x,y=x-- (B)x=(int)(y/3) (C)
x=x+10=x+y (D)(double)x/3 设有说明语句:int x,a,b,c; double
d=3.14; ,以下不符合C语言语法的表达式是______。
(A)d%3 (B)d+=-1
(C)x=(a=-1,b=-3,a*b) (D)a+=(a=3)*(b=2)*(c=1) 以下能正确定义且赋初值的语句是______。
(A)int n1=n2=-1; (B)char c=32;
(C)float f; (D)
double x=12.3E2.5;
设有说明语句:char s=\,下面说法正确的是______。
(A)变量s中包含1个字符 (B)变量s中包含2个字符
(C)变量s中包含3个字符 (D)说明语句不合法
设有说明语句:int i=2; ,以下选项的四个表达式中与其他三个表达式的值不相同的是______。
(A)i++ (B)i+=1 (C)++i (D)i+1
若变量均已正确定义并赋值,以下合法的赋值表达式是______。
(A)x=3+b=x+3 (B)x=(b=x+3,3+b)
(C)x=3+b,b++,x+3 (D)x+=3=x+3
若已定义x和y为double类型,表达式(x=1,y=x+3/2)的值是______。 (A)1 (B)2 (C)2.0 (D)2.5
与数学式子2乘以y的n次方除以(2x+1)对应的C语言表达式是______。 (A)2*y^n/(2*x+1) (B)
2
2*y**n/(2*x+1)
(C)2*pow(y,n)/(2*x+1) (D)2*pow(n,y)/(2*x+1)
设有说明语句:int k=7,x=12; ,以下表达式中值为3的是______。 (A)x=k%5 (B)x%=(k-k%5) (C)x%=k-k%5 (D)
x=5-(k%=5)
设有说明语句:int n=7,i=3; ,执行赋值运算n%=i+1后,变量n的值是______。 (A)0 (B)1 (C)2 (D)3
以下与k=i++完全等价的表达式是______。
(A)i=i+1,k=i (B)k=i,i=i+1 (C)k=++i (D)k+=i+1
能正确表示数学关系:“-5≤a≤5”的C语言表达式是______。
(A)a>=-5 and a<=5 (B)a>=-5 or a<=5
(C)a>=-5 && a<=5 (D)a>=-5 || a<=5
以下选项中,当k为大于1的奇数时,值为0的表达式______。 (A)k%2==1 (B)k/2 (C)k%2!=0 (D)k%2==0
若变量均已正确定义并赋值,以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是________。
(A)(x-y>0) (B)(x-y<0) (C)(x-y<0 || x-y>0) (D)(x-y==0)
已知大写字母'A'的ASCII码是65,小写字母'a'的ASCII码是97,则字符常量'\\101'是______。 (A)字符'A' (B)字符'a' (C)字符'e' (D)非法的常量
设有说明语句:int i; float f; double d; ,表达式5-2*i+d/f值的数据类型为【 double 】。
设有说明语句:char k='\\77'; ,变量k中包含【 1 】个字符。
C语言中的基本数据类型包括整型、实型和【 字符型】。
已知大写字母'A'的ASCII码是65,若变量k是int类型,则执行了语句:k='A'+2.8; 后变量k的值是【67 】。
字符串\的长度是【5 】。
设有说明语句:int k=5; double t; ,执行语句t=(double)k;之后,变量k的数据类型是【 int 】。
表达式2+sqrt(4)值的数据类型为【double 】。
在Visual C++ 6.0环境中,一个char型变量在内存中占【 1 】个字节,一个int型变量在内存中占【 4】个字节,一个double型变量在内存中占【 8 】个字节。
若变量x、y均为int型,则表达式
(x=3,x+3,y=3,x+y)的值是【 6 】,表达式y=(y=3,x=y,x+3)的值是【 6 】。
A 可以把一个字符常量赋给一个整型变量。
B 说明语句int t1=t2=10;可以把t1、t2定义成int型变量并初始化为10。 A k1=k2=k3=10;是一条合法的赋值语句。
A 可以把define定义为用户标识符,但不能把if定义为用户标识符。
A 设有说明语句:int x=3,y=5; ,当执行语句x=x+y; y=x-y; x=x-y;后,变量x和y的值实现了交换。
B 在C语言的运算符中,条件运算符的优先级最低。
第三章
设有说明语句:double x=123.56; ,对于语句printf(\,以下说法正确的是______。
(A)输出为-1.24e+002 (B)输出为1.24e+002
(C)输出为12.36e+001
(D)输出格式描述符的域宽不够,不能输出
printf函数被称为______输出函数。 (A)字符 (B)整数 (C)格式 (D)浮点
scanf函数是一个______函数。 (A)标准库 (B) 用户定
义 (C)无参 (D)地址
getchar函数的原型声明包括在头文件______中。
(A)string.h (B)
math.h (C)conio.h (D)stdio.h
在printf函数的\格式控制字符串\中,]表示______。
(A)输出宽度为5 (B)输出5个数 (C)输出数据时保留5位小数 (D)输出5个d
设有说明语句:double x; ,下列选项中正确的是______。
(A)scanf(\(B)scanf(\
(C)scanf(\(D)scanf(\
对语句scanf(\和语句scanf(\
3
的输入,以下说法正确的是______。 (A)都以空格作为间隔
(B)前者以空格作为间隔,后者以逗号作为间隔
(C)前者不以空格作为间隔,后者以逗号作为间隔
(D)都以逗号作为间隔
以下程序段的输出结果是(符号□表示空格)______。
double x=3.14;
printf(\ (A)|3.14□| (B) |□□□□3| (C)|□□3.0| (D)|□□□3.| 语句
printf(\的输出结果是______。
(A)x=2345.67800 (B)x=12345.6780
(C)x=12345.678 (D)x=12345.67800
对于如下程序段:
int x=2010,y=2012; printf(\以下叙述中正确的是______。 (A)输出结果为:2002 (B)输出结果为:2012 (C)输出结果不确定
(D)运行时产生出错信息
以下程序运行时,若输入数据为:11 11,则输出结果是______。
#include
scanf(\ y+=x;
printf(\ }
(A)22 (B)20 (C)
18 (D)11
设有说明语句:int x=3,y=5; ,以下不合法的赋值语句是______。 (A)x*=3; (B) x/=y; (C) x+=3; (D) x||=y;
设有说明语句:int x; ,执行语句x=10; x+=x-=x;后,变量x的值为______。 (A)0 (B)10 (C)20 (D)30
设有说明语句:int i,j; char c; ,若要通过语句scanf(\使变量i,j得到数值8,变量c得到字符'A',正确的输入是(符号□表示空格)______。 (A)8,A,8 (B)8□A□8 (C)8□A8 (D)8A8
设有说明语句:int i,j ,若从键盘给i、j输入数据,以下不正确的输入语句是______。
(A)scanf(\ (B)scanf(\ (C)scanf(\(D)scanf(\
设有说明语句:float x,y,z; ,要通过语句scanf(\给x赋值11.0,y赋值22.0,z赋值33.0,以下不正确的输入形式是______。 (A)11.0<回车> 22.0<回车>
33.0<回车> (B)11.0,22.0,33.0<回车> (C)11.0<回车>
22.0 33.0<回车> (D)11 22<回车> 33<回车>
有程序段:
int i; float f;
char name[20];
4
scanf(\若从键盘上输入566777abc 后,变量f的值是______。
(A)566777.0 (B)
6777.0 (C)777.0 (D)0.0
设有说明语句:char c; ,不能用于判断变量c中的字符是否为大写字母的表达式是______。 (A)isupper(c) (B)'A'<=c<='Z' (C)'A'<=c&&c<='Z' (D)(c<='z'-32)&&('a'-32<=c)
已知字符大写字母'A'的ASCII码是65,设有说明语句:char c1='A',c2='D'; ,则语句printf(\的输出结果是______。
(A)A,B (B)A,68 (C)65,66 (D)65,68
设有说明语句:int x=1; ,语句
printf(\的输出结果是______。
(A)-1 (B)0 (C)1 (D)2
以下表达式中,不能将字符变量c中的大写字母转换为对应小写字母的是______。 (A)c=(c-'A')&+'a' (B)c=c+32
(C)c=c-'A'+'a' (D)
c=('A'+c)&-'a'
以下程序运行后的输出结果是______。 #include
{ int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */
printf(\ }
(A)a+b=10 (B)
a+b=30 (C)10 (D)30
5
若要求从键盘读入含有空格字符的字符串,应使用函数______。
(A)getch (B)gets (C)getchar (D)scanf
以下四个程序中,完全正确的是______。 (A)#include
void main();
{ /*programming*/
printf(\ }
(B)#include
void main()
{ /*/ programming /*/ printf(\ }
(C)#include
{ /*/*programming*/*/ printf(\ }
(D)include
void main()
{ /*programming*/
printf(\ }
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错,出错的原因是______。
#include
{ /* Beginning */ int r; float s; scanf(\ s=pi*r*r;
printf(\ }
(A)注释语句书写位置错误 (B)存放圆半径的变量r不应该定义为整型 (C)输出语句中格式描述符非
法 (D)计算圆面积的赋值语句中使用了非法变量