大连理工大学C语言模拟题机房题库单选判断填空分章节共十一章.docx
《大连理工大学C语言模拟题机房题库单选判断填空分章节共十一章.docx》由会员分享,可在线阅读,更多相关《大连理工大学C语言模拟题机房题库单选判断填空分章节共十一章.docx(49页珍藏版)》请在冰豆网上搜索。
大连理工大学C语言模拟题机房题库单选判断填空分章节共十一章
第一部分注意事项
1.请对照《课件》和《教材》进行练习。
2.熟悉键盘,注意竖杠“|”和反斜杠“\”的位置,请在西文状态下输入。
3.单选题、判断题和填空题要会验证。
当输入汉字时,可能输入提示框是灰色的,再按一次中英文切换键即可。
4.程序填空题不能删除注释/*****FILL*****/,但必须删除标记符号_____,否则编译通不过。
如,for(i=10;____;i++)。
5.程序改错题不能删除注释/*****ERROR*****/,仅在其下一行进行修改。
6.程序填空题和程序改错题存盘即可。
但最好编译运行一下,编译时会自动存盘。
编译帮助检查语法错误,运行帮助检查逻辑错误。
7.程序设计题不能删除注释/****BEGIN*****/和/****END*****/,只能在两个标记符之间编写程序。
必须保证编译、链接、运行都正确。
8.以上程序题中不能更改程序结构和其它位置的程序代码,可以忽略其它程序位置的警告。
9.如果VC发生死机(见图,可用按钮都变成灰色),请结束VC进程,再继续答题或重答。
结束VC进程的方法:
先进入“任务管理器”;再选下面一种方法操作:
方法1:
选择“应用程序”标签,选中“VC任务”,按“结束任务”。
方法2:
选择“进程”标签,选中“MSDEV.EXE”,按“结束进程”。
10.提交试卷并看到成绩后再离开。
11.出现问题立即请示监考老师。
12.请记住几个常用的函数。
数学函数:
sin(),cos(),tan(),log(),exp(),pow(),sqrt(),abs(),fabs()
字符串函数:
strcat(),strcpy(),strcmp(),strlen(),strlwr(),strupr()
输入输出函数:
printf(),scanf(),putchar(),getchar(),puts(),gets(),fopen(),fclose(),fprintf(),fscanf(),feof()
其它实用函数:
rand(),exit()
第二部分概念题
第1章概述
1.C程序是的基本组成单位是_______.函数
2.C语言的程序结构分为______、选择结构和循环结构。
顺序结构
第3章数据类型、运算符和表达式
一、单选题
1.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是(A)。
A、字符A
B、字符a
C、字符e
D、非法的常量
2.下列关于单目运算符++、--的叙述中正确的是(D)。
A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量
B、它们的运算对象可以是任何变量和常量
C、它们的运算对象可以是char型变量和int型变量,但不能是float型变量
D、它们的运算对象可以是char型变量、int型变量和float型变量
3.执行下列程序后,其输出结果是(D)。
main()
{inta=9;
a+=a-=a+a;
printf("%d\n",a);
}
A、18
B、-9
C、9
D、-18
4.下述正确的C语言常量是:
(C).
A、E2
B、5.0E
C、3e-3
D、1.5E2.5
5.若有定义:
inta=7;floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是(D)。
A、0.000000
B、2.750000
C、3.500000
D、2.500000
6.下面四个选项中,均是不合法的用户标识符的选项是(D)。
A、floatla0_A
B、AP_0do
C、_123tempint
D、b-agotoint
7.表达式18/4*sqrt(4.0)/8值的数据类型为(A)。
A、double
B、float
C、int
D、不确定
8、以下字符中不是转义字符的是(A)。
A、'\c'
B、'\b'
C、'\\'
D、'\a'
9.设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为(A)。
A、0
B、144
C、132
D、12
10.下列变量说明语句中,正确的是(D)。
A、chara;b;c;
B、char:
abc;
C、intx;z;
D、intx,z;
11.设以下变量均为int类型,则值不等于7的表达式是(A)。
A、(x=6,x+1,y=6,x+y)
B、(x=y=6,x+y,y+1)
C、(y=6,y+1,x=y,x+1)
D、(x=y=6,x+y,x+1)
12.若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C)。
A、x+n=I;
B、x==5;
C、x=n/2.5;
D、5=x=4+1;
13.下述错误的C语言常量是:
(C).
A、0xf
B、5.
C、090
D、.25
14.字符串"\\\'efg\'\\"的长度是:
(C).
A、3
B、11
C、7
D、5
15.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的
数据类型为(A)。
A、double
B、不确定
C、int
D、float
16.下列语句的结果是(B)。
main()
{intj;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
A、3,3
B、4,4
C、3,4
D、4,3
17.假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是:
(A)
A、(x%=k)-(k%=5)
B、x%=(k-k%5)
C、x%=k-k%5
D、x%=(k%=5)
18.下列数据中,为字符串常量的是(D)。
A、'A'
B、Howdoyoudo.
C、$abc
D、"house"
19.以下所列的C语言常量中,错误的是(B)。
A、0xFF
B、1.2e0.5
C、2L
D、'\72'
20.下列表达式中,可作为C合法表达式的是(D)。
A、3.0%2
B、3=2=1=0
C、[3,2,1,0]
D、(3,2,1,0)
21.当x为偶数或奇数时(0除外),其值都为0的表达式是(C)
A、(x/2*2-x)==0
B、x%2==0
C、!
x!
=0
D、!
(x%2)
22.sizeof(float)是(C)。
?
501
A、一个浮点表达式
B、一个不合法的表达式
C、函数调用结果是一个整型表达式。
D、一种函数调用
23.下列数据中属于"字符串常量"的是(B)。
A、'A'
B、"ABC"
C、ABC
D、'ABC'
二、判断题
1.在C语言中,各种类型的整型数据在内存中都占2个字节。
F
2.在C程序中,%作为运算符时,是只能用于整数运算。
T
3.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变.T
4.a=(b=4)+(c=6)是一个合法的赋值表达式。
T
5.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
F
6.表达式(j=3,j++)的值是4.F
7.若i=3,则printf("%d",-i++);输出的值为-4。
F
三、填空题
1.下列语句输出的结果是_____,unsignedintb=65535;printf("%d",b);-1
2.下列语句输出的结果是_____,inta=-1;printf("%x",a);(在vc环境下)ffffffff
3.在C语言中,long类型数据占_____个字节,short类型数据占_____个字节.4,2
4.若有定义:
charc='\010';则变量C中包含的字符个数为_____.1
5.已知a=-13,b=6,a%b的十进制数值为_____.-1
6.intx;x=-3+4%-5*3,则x的值为_____.9
7.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____.1.0
8.若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是_____.
c=(a-=(b-5));c=(a%11)+(b=3);9
9.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____.0
10.已知floati=5.6;inta;写出语句a=(int)i;执行后变量i的值是_____.5.6
11.设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为_____.2.5
12.若intx=6;则x+=x-=x*x表达式最后x的值是_____.-60
13.设有intx=11,则表达式(x++*1/3)的值是_____。
3
14.执行下列语句的结果是_____.4,4
a=3;
printf("%d,",++a);
printf("%d",a++);
15.设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是_____.28
16.以下程序的输出结果为_____.9,10
#include"stdio.h"main(){inta=010,j=10;printf("%d,%d\n",++a,j--);}
17.intx=2;z=x++-1;则x的值为_____.3
第4章输入输出
一、单选题
1.下列程序段的输出结果为(C)。
floatk=0.8567;printf("%4.1f%%",k*100);
A、85.6%
B、85.6%%
C、85.7%
D、.857
2.下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8,正确的键盘输入方法是(A).(用"[CR]"表示回车,U表示空格)
main()
{inta,b;
floatx1,x2,x3;
chars1,s2;
scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&s1,&s2,&x1,&x2,&x3);
}
A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR]
B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR]
C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR]
D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR]
5.打印语句printf("sTUDEND\bT\rS");在屏幕上正确的输出形式是(C).
A、sTUDENDS
B、TUDENTS
C、STUDENT
D、sTUDENTS
6.根据下面的程序,使i=123,c1='A',c2='B'哪一种是正确的键盘输入方法(C).
(规定用[CR]表示回车,U表示空格)
main()
{
inti;
charc1,c2;
scanf("%d%c%c",&i,&c1,&c2);
}
A、123AUB[CR]
B、123UAUB[CR]
C、123AB[CR]
D、123[CR]AB[CR]
7.设:
longw=65535,t=7654321;
根据下面的输出结果,正确的程序段是(C).
w=65535,t=7654321
end
A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');
B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");
C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");
D、printf("w=%5u,t=%7u\n",w,t);printf("end");
8.已定义floatx=1.25,y=3.37;
根据下面的输出结果,正确的输出语句是(C).
y+x=4.62,y-x=2.12
A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);
C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);
D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);
9.根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?
(B)。
(规定用字符串[CR]表示回车,U表示空格)
main()
{inta;
charc1,c2;
scanf("%d%c%c",&a,&c1,&c2);
}
A、123UoUk[CR]
B、123ok[CR]
C、123Uok[CR]
D、123oUk[CR]
10.以下程序的输出结果是(D)。
main()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A、x=3.600000,i=4
B、x=3i=3.600000
C、x=3,i=3
D、x=3.600000,i=3
11.下面程序的正确输出结果是(A).(规定用U表示空格)
main()
{
floatx=5.783,y=-10.2345;
printf("x=%-8.2f,y=%-8.2f\n",x,y);
}
A、x=5.78UUUU,y=-10.23UU
B、x=5.78,y=-10.23
C、5.78,-10.23
D、x=UUUU5.78,y=UU-10.23
12.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B).
(用"[CR]"表示回车,U表示空格)
main()
{inti,k;
scanf("i=%d,k=%d",&i,&k);
}
A、i=10[CR]k=15[CR]
B、i=10,k=15[CR]
C、10U15[CR]
D、10,15[CR]
二、判断题
1.C语言的输入功能是由系统提供的输入函数实现的.T
2.格式字符%o用来以十六进制形式输出整数.F
3.格式字符%x用来以八进制形式输出整数.F
4.格式字符%e以指数形式输出实数数字部分小数位数7位.F
5.格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.F
6.整型变量在全部范围内可以用字符格式输出.F
7.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.F
8.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,按实际位数输出.T
9.C语言程序中输入一个中间带有空格的字符串时,可以用scanf函数.F
10.C语言程序中输入一个中间带有空格的字符串时,只能用gets函数.T
三、填空题
1.getchar()函数只能接收一个_____.字符
第5章逻辑运算与选择结构
一、单选题
1.C语言的if语句中,用作判断的表达式为(A)。
A、任意表达式
B、算术表达式
C、逻辑表达式
D、关系表达式
2.以下程序的输出结果是:
(A)
main()
{intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A、6
B、5
C、7
D、4
//后置++,--在离开下面的运算符时,后置运算完成:
1)表达式语句的;
2)逗号表达式的,
3)条件表达式的?
4)逻辑表达式的&&或||
5)(ifswitchforwhile)的控制表达式
6)for的三个表达式中的任意一个
3.已知键盘输入a=4,b=3,下面程序输出的结果是(C).
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);
}
A、9
B、13
C、16
D、15
4.若给定条件表达式(m)?
(a++):
(a--),则其中表达式m(B)。
A、和(m==0)等价
B、和(m!
=0)等价
C、和(m==1)等价
D、和(m!
=1)等价
5.下列程序段的输出结果为(B)。
inta=7,b=9,t;t=a*=a>b?
a:
b;printf("%d",t);
A、49
B、63
C、7
D、9
6.inta=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为(C)。
A、1
B、3
C、2
D、不一定
7.执行下面程序段后,b的值为(A).
ints=35;
chart='A';
intb;
b=((s&&4)&&(t<'a'));
A、1
B、3
C、2
D、0
8.若k是整型,则以下程序段的执行结果是:
(B)
k=-3;
if(k<=0)printf("####")
elseprintf("&&&&");
A、####
B、有语法错误,无结果
C、&&&&
D、####&&&&
9.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:
(B)
x=y=z=1;
t=++x||++y&&++z;
A、0
B、1
C、2
D、不定值
10.如果inta=2,b=3,c=0,下列描述正确的是(B)。
A、a&&b>c的结果为假
B、!
a!
=(b!
=c)表达式的值为1
C、a||(b=c)执行后b的值为0
D、a>b!
=c和a>(b!
=c)的执行顺序是一样的
11.已知键入a=4,b=3,执行下面程序输出的结果是(B).
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a>b)s=b;
s=s*s;
printf("%d\n",s);
}
A、13
B、9
C、16
D、15
12.执行下面程序段后,i的值是(A).
inti=10;
switch(i)
{case9:
i+=1;
case10:
i--;
case11:
i*=3;
case12:
++i;
}
A、28
B、10
C、9
D、27
13.逻辑表达式!
(2-1)&&x||0的值是(B)
A、1
B、0
C、3
D、2
14.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(C)。
A、3
B、2
C、1
D、不一定
15.若x=2,y=3则x||y的结果是(C)。
A、3
B、0
C、1
D、2
16.针对下列程序段回答问题(B).
for(t=1;t<=100;t++)
{
scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);
}
A、x>=0时什么也不输出
B、最多允许输出100个非负整数
C、printf函数永远也不执行
D、当x<0时整个循环结束
17.下列运算符优先级最低的是(A).
A、=
B、+
C、!
D、&&
18.逻辑表达式3<2||-1&&4>3-!
0的值为:
(A)
A、1
B、3
C、0
D、2
19.下列运算符中是C语言关系运算符的是(C)。
A、&
B、~
C、!
=
D、!
二、判断题
1.运算符的级别由高向低依次为!
->算术运算符->关系运算符->逻辑运算符->赋值运算符.T
2.在逻辑运算符中的运算级别由高向低依次为&&->||->!
。
F
3.若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。
T
4.逻辑表达式-5&&!
8的值为1.F
5.逻辑表达式4>2&&1||5<3-!
0的值为1.T
6.设d=1,e=2,f=3,则逻辑表达式!
(d+e)+f&&e+f*2的值为0.F
7.设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!
=z的值为0.T
8.设u=1,v=2,w=3,则逻辑表达式u||v-w&&v+w的值为0.F
9.设g=1,h=2,k=3,则逻辑表达式k+g||!
h&&k-h的值为0。
F
10.已知a=3,b=4,c=5,则逻辑表达式!
(a>b)&&!
c||1的值为1.T
11.已知a=3,b=4,c=5.则逻辑表达式a+b>c&&b==c值为0.T
12.已知a=3,b=4,c=5,则逻辑表达式!
(a+b)+c-1&&b+c/2的值为0.F
13.已知x=2,y=2,执行分支语句if(x==y)y=1;elsey=-1;后,y=-1.F
14.下面程序段的输出结果为A。
F
inti=20;
switch(i/10)
{
case2:
printf("A");
case1:
printf("B");
}
15.求解表达式max=(a>b)?
a:
b的步骤是,先求解条件表达式(a>b),再根据它的值将a或b赋给max.T
16.条件表达式x?
'a':
'b'中,若x=0时,表达式的值为'a'.F
17.已知a=4,b=2,c=3,d=5,表达式a>b?
a:
cc:
d的值为3.F
18.已知a=1,b=2,c=3,d=4,则条件表达式a>b?
a:
(c>d?
c:
d)的值为4.T
19.语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?
a:
b取代.F
20.语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用语句printf("%d",a>b?
a:
b);取代.T
三、填空题
1.C语言表达式5>2>7>8的值是_____.0
2.C语言表达式!
(4>=6)&&(3<=7)的值是_____.1
3.x=5,y=8时,c语言表达式5-2>=x-1<=y-2的值是_____.1
4.设x=2&&2||5>1,x的值为_____.1
5.设a=3,b=4,c=4,则表达式a+b>c&&b==c&&a||b+c&&b==c的值为_____.1
6.设x=62,表达式x>=60&&x<70||x==1的值为_____.1
7.已知a=12,写出表达式08.已知a=10,b=15,c=1,d=2,e=10,则表达式a++&&e++&&c++的值为_____.1
9.执行下列语句后,b的十进制值是_____.1
intx=240,y=15,b;charz='A';b=((