C语言基本数据类型及运算题库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章基本数据类型及运算
一、选择题
1.若以下选项中的变量已正确定义,则正确的赋值语句是。
A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3;
答案:C
2.设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。
A)x=x*100+0.5/100.0B)x=(x*100+0.5)/100.0
C)x=(int)(x*100+0.5)/100.0D)x=(x/100+0.5)*100.0
答案:C
3.下列C语言中运算对象必须是整型的运算符是。
A)%=B)/C)=D)*=
答案:A
4.若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。
A)0B)0.5C)1D)2
答案:A
5.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是。
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
答案:D
6.下列变量定义中合法的是。
A)short_a=1-.le-1;B)double b=1+5e2.5;
C)long do=0xfdaL;D)float2_and=1-e-3;
答案:A
7.以下4个选项中,不能被看作是一条语句的是。
A){;}B)a=0,b=0,c=0;
C)if(a>0);D)if(b==0)m=1;n=2;
答案:D
8.设x=1,y=-1,下列表达式中解为8的是。
A)x&y B)~x│x C)x^x D)x<<=3
答案:D
9.在C语言中不合法的整数是。
A)20B)0x4001C)08D)0x12ed
答案:C
10.以下选项中不正确的实型常量是
A)2.607E-1B)0.8103e0.2C)-77.77D)456e–2
答案:B)
11.若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7B)a=7+b+c,a++
C)int(12.3%4)D)a=a+7=c+b
答案:B)
12.以下十六进制数中不合法的是
A)oxff B)0Xabc C)0x11D)0x19
答案:A)
13.设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。
A)0B)1C)2D)3
答案:D
14.下列程序的运行结果是。
#include“stdio.h”
void main()
{int i=23;
do{++i;}
while(i);
printf(“%d”,i);
}
A)23B)24C)死循环D)无任何结果
答案:C
15.设int a=3,b=4,c=5;,下列表达式的值不为1的是。
A)a+b>c&&b==c B)a||b+c&&b-c
C)!(a>b)&&!c||1D)!(a+b)+c-1&&b+c/2
答案:A
16.下列不合法的常量是:。
(1)’?’(2)’abc’(3)”Turbo c”(4)’\0x32’(5)’\123’(6)’’’’(7)”△”(8)’△’(9)”\\\”(10)’’a’’’(11)’\\’(12)’\0123’(13)’\xaf’(14)’王’(15)”李为民”
(16)”\xaif”
答案:(2),(12),(14),(16)
17.下列运算符中,结合方向为自左向右的是()。
(A)?:(B),(C)+=(D)++
答案:(B)
18.若有float x;则sizeof(x)和sizeof(float)两种描述()。
(A)都正确(B)都不正确(C)前者正确(D)后者正确
答案:(A)
19.有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为()。
(A)17(B)17.500000(C)17.5(D)16
答案:(A)
20.若给定条件表达式(M)?(a++):(a--),则其中表达式(M)。
A.和(M==0)等价B.和(M==1)等价
C.和(M!=0)等价D.和(M!=1)等价
答案:C
21.已知float x=1,y;则y=++x*++x的结果是。
A.y=9B.y=6C.y=1D.表达式是错误的
答案:D
22.以下程序的输出结果是。
short i=65535;printf("%d\n",i);
A.65535B.0
C.语法错误,无输出结果D.-1
答案:D
23.有变量说明语句int a,b,c;,顺序执行下面语句:
a=b=c=1;
++a||++b&&++c;
那么,变量b的值应是()
A.2B.1C.0D.3
答案:B
24.有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是()
A.0和2B.0和3C.1和2D.1和3
答案:B
25.以下程序的输出为。
#include<stdio.h>
void main()
{
double x=213.82631;
printf("%-6.2e\n",x);
}
A.213.82B.21.38e+01C.2.14e+02D.-2.14e2
答案:C
26.下列关于单目运算符++、--的叙述中正确的是。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量
答案:D
27.有以下程序:
#include<stdio.h>
void main()
{
char a,b,c,*d;
a='\';b='\xbc';
c='\0xab';d="\0127";
printf("%c%c%c%c\n",a,b,c,*d);
}
编译时出现错误,以下叙述中正确的是。
A)程序中只有“a='\';”语句不正确
B)“b='\xbc';”语句不正确
C)“d="\0127";”语句不正确
D)“a='\';”和“c='\0xab';”语句都不正确
答案:D
28.有以下程序:
#include<stdio.h>
void main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是。
A)0,0B)0,1C)1,0D)1,1
答案:C
29.已定义ch为字符型变量,下列赋值语句中错误的是。
A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa';
答案:A
30.以下4个选项中,不能看作一条语句的是。
A){;}B)a=0,b=0,c=0;
C)if(a>0);D)if(b==0)m=1;n=2;
答案:D
31.假定有以下变量定义,则能使值为3的表达式是。
int k=7,x=12;
A)x%=(k%=5)B)x%=(k-k%5)
C)x%=k-k%5D)(x%=k)-(k%=5)
答案:D
32.以下程序的输出结果是。
#include<stdio.h>
void main()
{
int x=3,y=2,z=1;
printf("%s=%d\n","x/y&z",x/y&z);
printf("%s=%d\n","x^y&~z",x^y&~z);
}
A)x/y&z=0B)x/y&z=1
x^y&~z=0x^y&~z=0
C)s=x/y&z=0D)x/y&z=1
s=x^y&~z=1x^y&~z=1
答案:D
33.设有“int x=11;”则表达式(x++*1/3)的值是。
A)3B)4C)11D)12
答案:A
34.若有语句scanf(”%d%c%f”,&a,&b,&c),假设输入序列为2223a123o.12,a、b、c的值为。
A)无值B)2223,a,123o.12
C)2223,a,无D)2223,a,123
答案:D
35.下列描述中,正确的一条是。
A)C语言的整型变量可以分为int、short、long、unsigned int、unsigned short、unsigned long等几种类型,因此整型常量也可以分为这几种类型
B)C语言的字符数据与整型数据可以互相赋值
C)若对字符型变量的定义为:“char c;”可使用语句c=“a”对变量c赋值
D)已知x为float型,执行语句(int)x后,x为int型
答案:B
36.设“int x=1,y=1;”,表达式(!x‖y--)的值是。
A)0B)1C)2D)-1
答案:B
37.执行x=5>1+2&&2||2*4<4-!0后,x的值为。
A)-1B)0C)1D)5
答案:C
38.语句“printf("%d",(a=2)&&(b=-2));”的输出结果是。
A)无输出B)结果不确定C)-1D)1
答案:D
39.设a=2、b=3、c=4,则表达式a+b>c&&b==c&&a||b+c&&b+c的值为。
A)5B)8C)0D)1
答案:D
40.执行语句scanf(“%c%c%c”,&c1,&c2,&c3),输入abc时,变量c1、c2、c3的值分别为。
A)'a','b','c'B)'a','b',''
C)'a','','b'D)'a','','c'
答案:A
41.若有以下定义:
int a=10,b=9,c=8;
顺序执行下列语句后,变量b中的值是。
c=(a-=(b-5));
c=(a%11)+(b=3);
A)3B)8C)9D)10
答案:A
42.有以下程序段:
int m=0,n=0;char c='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:10A10<回车键>,则输出结果是。
A)10,A,10B)10,a,10C)10,a,0D)10,A,0答案:A
43.已定义c为字符型变量,则下列语句中正确的是。
A)c='97'B)c=“97“C)c=97D)c=“a”
答案:C
44.若有以下变量说明和数据的输入方式,则正确的输入语句为()。
变量说明:float x1,x2;
输入方式:4.52<回车>
3.5<回车>
A)scanf(“%f,%f”,&x1,&x2);
B)scnaf(“%f%f”,&x1,&x2);
C)scanf(“%3.2f%2.1f”,&x1,&x2);
D)scnaf(“%3.2f%2.1f”,&x1,&x2);
答案:B
45.若有程序段:
for(m=1;m<=100;m++)
{
scanf("%d",&y);
if(y<0)continue;
printf("%3d",m);
}
正确的描述是()。
A)当y<0时整个循环结束B)y>=0时什么也不输出
C)printf函数永远也不执行D)最多允许输出100个非负整数
答案:D
46.下面程序的运行结果是()。
#include<stdio.h>
#define DATA20+7
void main()
{
printf("DATA=%d",DATA/3);
}
A)DATA=22B)DATA=21
C)DATA=9D)以上都不对
答案:A
47.sizeof(float)是()。
A)一个双精度型表达式B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
答案:B
48.设有语句
int a=5,b=6,c=7,d=8,x=2,y=2,n;
n=(x=a<b)&&(y=(++c>d&&b>c));
则执行完上述语句后n的值为()。
A)1B)2C)3D)0
答案:D
49.设c1,c2均是字符型变量,则以下不正确的函数调用为()。
A)scanf(“c1=%cc2=%c”,&c1,&c2);B)c1=getchar();
C)putchar(c2);D)putchar(c1,c2);答案:D
50.有定义如下:
char str1[50],str2[20],ch;
则下列语句中正确的是()。
A)str1={“Crazy”};B)str1={“Crazy”};
str2=str1;str2={“English”};
strcpy(str1,str2);
C)ch=“xy”;D)ch='x';
答案:D
51.有以下定义语句:
double a,b;int w;long c;
若各变量已正确赋值,则下列选项中正确的表达式是()。
A)a=a+b=b++B)w%((int)a+b)
C)(c+w)%(int)a D)w=a=b
答案:C
52.有以下程序:
#include<stdio.h>
void main()
{
int i=0,s=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是()。
A)10B)13C)21D)程序进入死循环
答案:D
53.以下选项中可以作为C语言中合法整数的是。
(A)10110B(B)0386(C)0Xffa(D)x2a2
答案:C
54.以下选项中可作为C语言合法常量的是。
(A)-80.(B)-080(C)-8e1.0(D)-80.0e
答案:A
55.若a为整型变量,则以下语句。
a=-2L;printf(“%d\n”,a);
(A)赋值不合法(B)输出值为-2(C)输出为不确定值(D)输出值为2答案:B
56.若有以下程序:
#include<stdio.h>
void main()
{int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d\n",m,i);
}
执行后的输出结果是。
(A)8,6(B)8,3(C)6,4(D)7,4
答案:C
57.以下非法的赋值语句是。
(A)n=(i+2,i++);(B)j++;(C)++(i+1);(D)x=j>0
答案:C
58.有以下程序
#include<stdio.h>
void main()
{int x=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是。
(A)10,01(B)02,12(C)102,10(D)02,10
答案:C
59.以下程序输出的结果是。
#include<stdio.h>
void main()
{
printf("\n*a=%15s,","chinazhongguo");
printf("\n*b=%-5s*","chi");
}
(A)*a=chinazhongguo*(B)*a=chinazhongguo*
b=**chi**b=chi*
(C)*a=*chinabeijing*(D)*a=chinazhongguo*
*b=chi**b=chi*
答案:D
60.若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a<b?a:c<d?c:d的值是。
(A)1(B)2(C)3(D)4
答案:A
61.设有定义:int x=1,y=-1;。
则语句“printf(“%d\n”,(x--&&++y);”的输出结果是。
(A)1(B)0(C)-1(D)2
答案:B
62.若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是。
(A)a的值是字符C(B)a的值是浮点型
(C)不允许字符型和浮点型相加(D)a的值是字符'A'的ASCII值加上1
答案:D
63.有一下程序
#include<stdio.h>
void main()
{
int x=3,y=2,z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是。
(A)3(B)2(C)-1(D)0
答案:D
64.表达式x<b||~c&d的运算顺序是。
(A)~,&,<,||(B)~,||,—,>
(C)~,&,||,<(D)~,<,&,||
答案:D
65.整型变量x和y的值相等,且均为非0值,则以下选项中,结果为0的表达式是。
(A)x||y(B)x|y(C)x&y(D)x^y
答案:D
66.在下列符号中,不属于转义字符的是。
(A)\(B)\x12(C)\013(D)\05
答案:A
67.若有以下定义:intx,y;char a,b,c;并有以下输入数据(此处☐代表空格):
1☐2
A☐B☐C
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是。
(A)scanf("x=%dy=%d",&x,&y);a=getchar();b=getchar();c=getchar();
(B)scanf("%d%d",&x,&y);a=getchar();b=getchar();c=getchar();
(C)scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);
(D)scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
答案:D
68.语句:printf("%03d,%-3d\n",4,5);的输出为。
(A)004,5(B)004,5
(C)4,5(D)4,5
答案:A
69.若有以下程序段:
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)3,0,-10B)0,0,5C)-10,3,-10D)3,0,3
答案:B)
70.若有以下程序段:
#include<stdio.h>
void main()
{
int a=2,b=5;
printf("a=%%d,b=%%d\n",a,b);
}
其输出结果是
A)a=%2,b=%5B)a=2,b=5
C)a=%%d,b=%%d D)a=%d,b=%d
答案:D)
71.若变量c定义为float类型,当从终端输入283.1900<CR>(<CR>代表回车键),能给变量c赋以283.19的输入语句是
A)scanf(“%f”,c);B)scanf(“%8.4f”,&c);
C)scanf(“%6.2f”,&c);D)scanf(“%8f”,&c);
答案:D)
72.下列运算符中优先级最高的是
A)!B)%C)-=D)&&
答案:A)
73.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是
A)a&&b B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1)
答案:D)
74.C语言中不合法的字符常量是
A)'\0xff'B)'\65'C)'&'D)'\028'
答案:A)
75.以下的程序:
#include<stdio.h>
void main()
{
char x=040;
printf("%d\n",x=x<<1);
}
其输出是
A)100B)160C)120D)64
答案:D)
76.以下定义语句中正确的是。
A)char a='A'b='B';B)float a=b=10.0;
C)int a=10,*b=&a;D)float*a,b=&a;
答案:C
77.以下所列的C语言常量中,错误的是。
A)0xFF B)1.2e0.5C)2L D)'\72'
答案:B
78.有以下程序
#include<stdio.h>
void main()
{
int m=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是。
(2004年9月)
A)02560400B)0256256C)256400D)400400答案:C
79.已经定义ch为字符型变量,以下赋值语句中错误的是。
A)ch='\;B)ch=62+3C)ch=NULL D)ch='\xaa';
答案:A
80.有以下程序
#include<stdio.h>
void main()
{
int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是。
A)3B)5C)-1D)-2
答案:D
81.下列程序的输出结果是。
#include<stdio.h>
void main()
{
double d=3.2;
int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A)3B)3.2C)0D)3.07
答案:C
82.设有如下程序段
int x=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是。
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B)运行时产生出错信息
C)输出值为2002
D)输出值为2003
答案:D
83.有以下程序
#include<stdio.h>
void main()
{
unsigned char a,b;
a=4|3;
b=4&3;
printf("%d%d\n",a,b);
}
执行后输出结果是。
A)70B)07C)11D)430
答案:A
84.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是。
A)6.500000B)6C)5.500000D)6000000
答案:D
85.已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是。
A)6B)0C)2D)1
答案:D
86.设int x=1,y=1;表达式(!x||y--))的值是。
A)0B)1C)2D)-1
答案:B
87.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是。
A)abs(x-y)<10B)x-y>-10&&x-y<10C)!(x-y)<-10||!(y-x)>10D)(x-y)*(x-y)<100
答案:C
88.在下列选项中,不正确的赋值语句是。
A)++t;B)n1=(n2=(n3=0));C)k=i==j;D)b+c=1;
答案:D
89.若x=2,y=3,则x&y的结果是。
A)0B)2C)3D)5
答案:B
90.下面程序的输出结果是。
main()
{unsigned a=32768;
printf(“a=%d\n”,a);
}
A)a=32768B)a=32767C)a=-32767D)a=-1
答案:C
91.以下程序的输出结果是。
#include<stdio.h>
void main()
{
int i=010,j=10;
printf("%d,%d\n",++i,j--);
}
A)11,10B)9,10C)010,9D)10,9
答案:B
92.以下程序的输出结果是。
#include<stdio.h>
void main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A)6,1B)2,1C)6,0D)2,0
答案:B
93.如果在用户的程序中使用C语言库函数中的sqrt函数,应在该源文件中使用的include 命令是。
A)#include<string.h>B)#include<math.h>
C)#include<ctype.h>D)#include<stdio.h>
答案:B
94.下面程序的输出结果是。
#include<stdio.h>
void main()
{
unsigned int a,b;
a=0x9a;
b=~a;
printf("%x,%x\n",a,b);
}
答案:9a,ff65(TC2.0)或9a,ffffff65(Visual C++6.0)
95.sizeof(double)是。
A)一种函数调用B)一个双精度型表达式
C)一个整型表达式D)一个不合法的表达式
答案:C
96.下面的程序。
#include<stdio.h>
void main()
{
int x=3,y=0,z=0;
if(x=y+z)
printf("****");
else
printf("####");
}
A)有语法错误不能通过编译
B)输出****
C)可以通过编译,但是无法连接,因而不能运行
D)输出####
答案:D
97.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。
(2002年9月)A)scanf("%2d%2d%2d",&i,&j,&k);
B)scanf("%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
答案:C
98.设有以下语句:
char x=3,y=6,z;
z=x^y<<2;
则z的二进制值是。
A.00010100B.00011011C.00011100D.00011000
答案:B
99.putchar函数可以向终端输出一个。
A)整型变量表达式的值B)实型变量的值
C)字符串D)字符或字符型变量的值
答案:D
100.已知ch是字符型变量,下面不正确的赋值表达式是。
A)ch='a+b'B)ch='\0'C)ch='7'+'9'D)ch=5+9
答案:A
101.以下常量中,合法的是_______。
A)5e2.5B)e8C)’\\’D)’BASIC’
答案:C
102.C语言提供的合法的数据类型关键字是_______。
A)DOUBLE B)short C)integer D)Character
答案:B
103.下列不正确的转义字符是_______。
A)’\\’B)’\0’C)’\’’D)’057’答案:D
104.C语言中,合法的长整型常数是_______。
A)1L B)5074369C)225D D)326581&
答案:A
105.以下类型中属于C语言的数据类型是_______。
A)逻辑型B)纯小数型C)复数型D)双精度型
答案:A
106.C语言中,运算对象必须是整形数的运算符是_______。
A)*B)%C)+D)/
答案:B
107.表达式10<20的值是_______。
A)10B)20C)0D)1
答案:D
108.表示关系x≤20或x≥50,应使用C语言表达式是_______。
A)x<=20||x>=50B)x<=20or x>=50
C)x≤20or x≥50D)x≤20||x≥50
答案:A
109.已知int t=1;t+=9;y=t++;则y=_______。
A)11B)10C)9D)1
答案:B
110.已知char a;int b;float c;double d;则表达式a+b*c-d的结果为_______型。
A)char B)int C)float D)double
答案:D
111.若x为int型变量,则执行语句x=10;x+=x—=x—x后,x的值为_______。
A)0B)10C)20D)30
答案:C
112.若x、a、b、c均为int型变量,则执行表达式x=(a=4,b=8,c=12)后,x 的值为_______。
A)4B)8C)12D)24
答案:C
113.在C程序中,x+y是_______、x+y;是_______。
A)表达式、语句B)表达式、表达式
C)语句、语句D)语句、表达式
答案:A
114.已知int x=23;则printf(x++*1/3)的输出结果为_______。
A)8B)7.66C)7.33D)7
答案:D
115.若a、b、c为int型变量,且值均为5;则以下表达式正确的是_______。
A)17.6%a B)a=a+7=b+c
C)c=b=a*5+6D)a:=c+b
答案:C
116.设int b=2;表达式(b>>2)/(b>>1)的值是。
A)0B)2C)4D)8
答案:B
117.以下程序的功能是进行位运算
#include<stdio.h>
void main()
{
unsigned char a,b;
a=7^3;b=~4&3;
printf("%d%d\n",a,b);
}
程序运行后的输出结果是。
A)43B)73C)70D)40
答案:A
118.以下程序的输出结果是_______。
#include<stdio.h>
void main()
{
int a=-1,b=4,k;
k=(++a<0)&&(b+=5);
printf("%d%d%d\n",k,a,b);
}
A)104B)103C)003D)004
答案:D
119.若有以下定义和语句:
char c1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出的结果是_______。
A)3,E B)3,D C)2,D D)2,E
答案:A
120.已知,x是int型变量,y是float型变量,用下列语句给这两个变量赋值时,为了把100和75.3分别赋给x和y,则正确的输入为_______。
scanf(“x=%d,y=%f”,&x,&y);
A)100<空格>75.3<回车>B)x=100,y=75.3<回车>
C)100<回车>75.3<回车>D)x=100<回车>y=75.3<回车>
答案:B
121.以下对于scanf函数叙述正确的是_______。
(“x=%d,y=%f”,&x,&y);
A)输入项可以是一个实型常量,如scanf(“%f”,7.3);
B)当输入数据时,必须指明变量地址,如scanf(“%f”,&a);
C)当输入一个实型数据时,可以规定小数点后位数,如scanf(“%5.3f”,&a);
D)只有格式控制,没有输入项也能正确输入数据,如scanf(“x=%d,y=%f”);答案:B
123.语句printf(“%d”,(a=2)&&(b=-2));的输出结果是_______。
A)1B)0C)提示语法错误D)结果不确定
答案:A
124.若有以下定义和语句:int x=‘f’;
printf(“%c\n”,‘A’+(x–‘a’+2));
则输出的结果是_______。
A)H B)h C)G D)I
答案:A
125.下列程序运行的结果是_______。
#include<stdio.h>
void main()
{
int a=9,b=7;
printf("a=%d,b=%d\n",a,b);
}
A)a=%9,b=%7B)a=9,b=7
C)a=%d,b=%d D)9,7
答案:B
126.语句printf(“a\bcd\’ef\’g\\\bij\n”);的输出结果是_______。
A)a\bcd\’ef\’g\\\bij\n B)acd’ef’gbij\n
C)cd’ef’gij D)以上均不正确
答案:C
127.执行下列程序片断后c的值是_______。
int a=1,b=2,c;
c= 1.0/b*a;
A)0B)0.5C)1D)2
答案:A
128.已知x、y、z被定义为int型变量,若从键盘对其输入数据,正确的是_______。
A)INPUT x,y,z;B)read(“%d%d%d”,&x,&y,&z);
C)scanf(“%d%d%d”,&x,&y,&z);D)scan(“%d%d%d”,&x,&y,&z);答案:C
129.执行下列程序后的输出结果是_______。
#include<stdio.h>
void main()
{
int x=11;
printf("x=%d,x=%o,x=%x\n",x,x,x);
}
A)x=11,x=o13,x=oxb B)x=11,x=13,x=11
C)x=11,x=13,x=b D)x=11,x=o13,x=ox11
答案:C
130.分析以下程序,其输出结果是_______。
#include"stdio.h"
void main()
{
int a,b,c=210;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A)210,-1B)210,C)2,-1D)2,1
答案:D
131.已定义str为字符型变量,则以下赋值语句中错误的是。
A)str="\";B)str=NULL;
C)str=55+8;D)str=‘\xbb’;
答案:A
132.已定义c为字符型变量,则下列语句中正确的是
A)c=‘98’;B)c="98";C)c=98;D)c="b";
答案:C
133.有以下程序
#include<stdio.h>
void main()
{
printf("%d\n",NULL);
}
程序运行后的输出结果是。
A)0B)1C)-1D)NULL没有定义,出错答案:A
134.下列程序执行后的输出结果是。
#include<stdio.h>
void main()
{
int x='f';
printf("%c",'A'+(x-'a'+1));
}
A)G B)H C)I D)J
答案:A
135.若变量c为char类型,能正确判断出c为数字的表达式是。
A)'0'<=c<='9'B)(c>='0')||(c<='9')
C)('0'<=c)and('9'>=c)D)(c>='0')&&(c<='9')
答案:D
136.若有定义:char c=’\010’;则该变量中包含的字符个数是。
A)非法定义B)1个
C)3个D)4个
答案:B
137.下列函数中能够向终端输出一个字符或字符型变量值的是。
A)gets B)puts C)getchar D)putchar
答案:D
138.若有下列语句
char c=’A’;
printf(“%d”,c);
则输出的结果是。
A)A B)c C)65D)错误的语句
答案:C
139.下列程序输入’a’字母后,执行程序后输出的结果是。
#include<stdio.h>
void main()
{
char c;
c=getchar();
c=c-32;
printf("%c\n",c);
}
A)65B)A C)97D)a
答案:B
140.以下不能正确计算代数式值的C语言表达式是______。
A)1/3*sin(1/2)*sin(1/2)B)sin(0.5)*sin(0.5)/3
C)pow(sin(0.5),2)/3D)1/3.0*pow(sin(1.0/2),2)答案:A
141.以下能正确定义且赋初值的语句是______。
A)int n1=n2=10;B)char c=32;
C)float f=f+1.1;D)double x=12.3E2.5;
答案:B
142.设有定义:int k=1,m=2;float f=7;,则以下选项中错误的表达式是______。
A)k=k>=B)-k++C)k%int(f)D)k>=f>=m
答案:C
143.设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是______。
A)(!a==1)&&(!b==0)B)(a<B)&&!c||1
C)a&&b D)a||(b+b)&&(c-a)
答案:A
144.以下选项中可作为C语言合法常量的是______。
A)-80.B)-080C)-8e1.0D)-80.0e 答案:A
145.以下不能定义为用户标识符的是______。
A)Main B)_0C)_int D)sizeof
答案:D
146.以下选项中不能作为合法常量的是______。
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
答案:B
147.有以下程序
#include<stdio.h>
void main()
{
int m=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是______。
A)12353514B)12353513C)12343514D)12343513
答案:A
148.有以下程序
#include<stdio.h>
void main()
{
int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是______。
A)6,1B)2,1C)6,0D)2,0
答案:B
149.以下叙述中正确的是______。
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
答案:B
150.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
程序在编译时出错。
#include<stdio.h>
void main()
{
int r;
float s;
scanf("%d",&r);
s=p*r*r;
printf("s=%f\n",s);
}
出错的原因是______。
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
答案:D
151.数字字符0的ASCII值为48,若有以下程序
#include<stdio.h>
void main()
{
char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是______。
A)3,2B)50,2C)2,2D)2,50
答案:C
152.有定义语句:int b;char c[10];,则正确的输入语句是______。
A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);
答案:B
153.有以下程序
#include<stdio.h>
void main()
{
int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。
A)m=123n=456p=789B)m=123n=456p=789
C)m=123,n=456,p=789D)123456789
答案:A
154.有以下程序
#include<stdio.h>
void main()
{
char c1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:a<回车>后,以下叙述正确的是______。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
答案:A
155.以下程序的功能是进行位运算
#include<stdio.h>
void main()
{
unsigned char a,b;
a=7^3;b=~4&3;
printf("%d%d\n",a,b);
}
程序运行后的输出结果是______。
A)43B)73C)70D)40
答案;A
156.有以下程序
#include<stdio.h>
void main()
{
int c=35;
printf("%d\n",c&c);
}
程序运行后的输出结果是______。
A)0B)70C)35D)1
答案:C
157.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是。
A)c1^c2B)c1&c2C)~c2D)c1|c2
158.有定义语句:int a,b;,若要通过scanf("%d,%d",&a,&b);语句使变量a得到数值30,变量b得到数值40,则下面四组输入形式中,错误的输入形式是。
A)3040<回车>B)30,40<回车>
C)30,40<回车>D=30,<回车>40<回车>
答案:A
159.若有说明语句:char ch=’65’;则变量ch。
A)包含3个字符B)包含2个字符
C)包含1个字符D)说明不合法,变量值不确定
答案:C
160.已知字母a的ASCII码为十进制的97,ch1为字符型变量,则执行语句ch1='a'+'7'-'5';后,ch1中的值为。
A)99B)不确定的值C)b D)c
答案:D
161.假设变量a是整型,b是实型,c是双精度型,则表达式30+a+c*b的值的数据类型是。
A)int B)float C)double D)不确定
答案:C
162.若变量c为char类型,能正确判断出c为大写字母的表达式是。
A)'A'<=c<='Z'B)(c>='A')||(c<='Z')
C)('A'<=c)and('Z'>=c)D)(c>='A')&&(c<='Z')
答案:D
163.若有定义:int a=7;f1oat x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。
A) 2.5B) 2.7C) 3.5D) 4.7
答案:A
164.下列程序执行后的输出结果是。
#include<stdio.h>
void main()
{
int x='f';
printf("%c",'A'+(x-'a'+1));
}
A)G B)H C)I D)J
答案:A
165.在C语言中(以TC编译系统为例),5种基本数据类型的存储空间长度的排列顺序为。
A)char<int<long int<=float<double B)char=int<long int<=float<double
C)char<int<long int=float=double D)char=int=long int<=float<double
答案:A
166.在c语言中,非char型数据在内存中的存储形式是。
A)补码B)反码C)原码D)ASCII码答案:A
167.在c语言中,char型数据在内存中的存储形式是。
A)补码B)反码C)原码D)ASCII码答案:D
二、填空题
1.printf库函数的第一个参数中的格式串是指明输出数据格式,各种数据类型对应的基本格式串是:
short、int(1),long(2),
float(3)、(4),double(5)、(6),
char(7)、(8),字符串(9)。
答案:(1)%d(2)%Ld(3)%f(4)%e(5)%f
(6)%e(7)%c(8)%d(9)%s
2.scanf库函数格式串和输入项之间的关系是。
答案:一一对应关系:格式串与输入项的个数要相同,顺序要一致,类型要匹配
3.阅读下述程序功能:将三位整数n的十位数的数字变为0。
例如,输入三位整数为738,输出为708。
请将正确答案写在横线处。
#include<stdio.h>
void main()
{
(1);
printf(“输入一个三位整数:”);
scanf(“%d”,&n);
d2=(2);/*取出百位数的数字*/
d0=(3);/*取出个位数的数字*/
printf(“输出三位整数:%d\n”,(4));
}
答案:(1)int n,d2,d0(2)d2=n/100(3)d0=n%10(4)d2*100+d0
5.若x为单精度型变量,y为字符型变量,z为整型变量,执行如下的输入语句:
scanf(“%f%c%d”,&x,&y,&z);后,从键盘输入12.77A79A86。
此时,变量x、y、z的值分别为①、②、③。
答案:①12.770000②A③79
6.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是。
答案:0
7.已知char c='A';int i=1,j;执行语句j=!c&&i++后,i和j的值分别是和。
答案:1,0
8.执行下面的程序
#include<stdio.h>
void main()
{
int a=0100,b=100;
printf("x=%d,y=%d\n",--a,b++);
}
则输出结果是
答案:x=63,y=100
9.如果要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入
10、20、30、40,正确的输入形式是,请用<CR>表示回车键。
scanf("%d%c%d%d%c%c%d%c",&w,&a,&x,&y,&b,&c,&z,&d);解:输入格式“%c”表示输入任意一个字符,包括按回车、空格和Tab键等。
因此在输入整数10、30、40后不能输入空格而要直接输入字母;同理,字母B和C之间也不能输入空格。
同时在20和30之间必须输入空格进行两个整数的区分。
所以本题答案为:
10A20□30BC40D<CR>(其中,“□”表示一个空格)。
10.有以下程序:
#include<stdio.h>
void main()
{
char ch1,ch2;int n1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12<回车>,执行后输出结果是。
(2004年4月)
答案:12
11.程序的运行结果为。
#include<stdio.h>
void main()
{
char c1='a',c2='b',c3='c';
printf("a%cb%c\tc%c\n",c1,c2,c3);
}
答案:aabb cc
12.请在空白处填上适当的语句,使以下程序的输出结果是16.00,。
#include<stdio.h>
void main()
{
int a=9,b=2;
float x=,y=1.1,z;
z=a/2+b*x/y+1/2;
printf(“%5.2f\n”,z);
}
答案:6.6
13.有如下程序:
#include<stdio.h>
void main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
运行该程序的输出结果是。
A)34B)42C)43D)33
答案:D
14.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是。
A)if((a>b&&(b>c))k=1;B)if((a>b)‖(b>c))k=1;
else k=0;else k=0;
C)if(a<=b)k=0;D)if(a>b)k=1;
else if(b<=c)k=1;else if(b>c)k=1;
else k=0;
答案:A
15.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量是'\101'是。
答案:A
16.下面程序的运行结果是。
#include<stdio.h>
#define STR"a C program"
void main()
{
printf("No.1:This is a STR!\n");
printf("No.2:This is%s!",STR);
}
答案:No.1:This is a STR!
No.2:This is a C program!
17.若有以下程序:
main()
{int i=4;
printf(“%d”,-++i);
}
该程序执行后的输出结果以及i的值分别是【1】、【2】。
答案:【1】-5【2】5
18.以下程序运行时若从键盘输入:102030<回车>。
输出结果是。
#include<stdio.h>
void main()
{
int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
答案:10300
19.以下程序的执行结果是。
#include<stdio.h>
void main()
{
int a,b,c;
c=(a=3,b=a--);
printf("c=%d,a=%d,b=%d\n",c,a,b);
}
答案:c=3,a=2,b=3
20.已知x=7.5,y=2,z=3.6,则表达式x>y&&z>x<y&&!z>y的值是(3)。
答案:0
21.以下程序运行的结果是。
#include<stdio.h>
void main()
{
int a,b,c;
a=1;b=2;c=3;a=b--<=a||a+b!=c;
printf("%d,%d",a,b);
}
答案:1,1
22.输入“12345,xyz”,下列程序输出的结果是。
main()
{int x;char y;
scanf(“%3d%3c”,&x,&y);
printf(“%d,%c”,x,y);}
答案:123,4
23.以下的程序执行时,先输入a;后输入b。
最后显示的结果是。
#include<stdio.h>
void main()
{
int x,y;
printf("Enter a character:");
x=getchar();y=getchar();
printf("Enter a character,again:");
x=getchar();y=getchar();
printf("%c,%c\n",x,y);
}
答案:b,
24.读程序段:
int a=-5;a=a|0337;printf("%d,%o\n",a,a);
以上程序段输出结果是。
答案:-1,177777
25.设有二进制数a的值为11001101,若通过a&b运算使a中的低4位不变,高4位清零,则b的二进制数是。
答案:00001111
26.设a是一个整数(两个字节),若要通过a|b使a的低八位为1,高八位不变,则b的八进制数是。
答案:0377
27.变量i、j、k已定义为int类型并有初值0,用以下语句进行输入
scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);
当执行以上输入语句,从键盘输入(<CR>代表Enter键):
12.3<CR>
则变量i、j、k、的值分别是[1]、[2]、[3]。
答案:[1]12[2]0[3]0
28.有以下语句段
int n1=10,n2=20;
printf("",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
答案:n1=%d\n,n2=%d\n
29.把int型变量low中的低字节及变量high中的高字节放入变量s中的表达式是。
答案:s=high&0xffff0000│low&0x0000ffff。
此题结果与编译环境有关,上面结果为Visual C++6.0环境下的表达式。
30.以下语句的输出结果为。
char c='x';
printf("ASCII of'x':dec=%d,oct=%o,hex=%x,character=%c\n",c,c,c,c);
答案:ASCII of'x':dec=120,oct=170,hex=78,character=x
a的C语言表达式是31.表示关系x≤y≤z,应使用C语言表达式是_【_1_】_;表示数学式
bc
_【_2_】_。
答案:【1】(x<=y)&&(y<=z);【2】a/(b*c)
32.已知:char a;int b;float c;double d;则表达式a*b+c-d的结果为_【_1_】_型。
答案:【1】double
33.执行了以下程序片断后,x=_【_1_】_;y=_【_2_】_。
int x=10,y=10;
x++;++y;
答案:【1】10;【2】11
34.若a、b、x、y均为int变量,且a=b=6,x=y=7则执行表达式(x=a>b)&&(y=2)后x的值为_【_1_】_;y的值为_【_2_】_。
答案:【1】0;【2】7
35.若int x=3,则执行表达式x*=x+=x-1后x的值为_【_1_】_。
答案:【1】25
36.已知:int x=256,执行语句printf(“%x”,x)的结果是_【_1_】_。
答案:【1】0100
37.已知:int x=97,执行语句printf(“%c”,x)的结果是_【_1_】_;执行语句printf (“%d”,x)的结果是_【_2_】_。
答案:【1】a;【2】97
38.在C语言中所提供的数据结构是以数据类型形式出现的,其中的基本类型包括int型即_【_1_】__、float型即_【_2_】__、double型即_【_3_】__、char型即_【_4_】__等。
答案:【1】整型;【2】单精度型;【3】双精度型;【4】字符型
39.表达式3*7%2+7%2*5的值为_【_1_】__;表达式8.0*(1/2)的值为
_【2】__。
答案:【1】6;【2】0.0;
40.C语言中的赋值运算是_【_1_】__,表示相等的关系运算符是_【_2_】__。
答案:【1】=【2】==
41.C语言本身不提供输入输出语句,输入和输出操作是由_【_1_】__实现的,如格式输出函数_【_2_】__和格式输入函数_【_3_】__。
答案:【1】函数【2】printf【3】scanf
42.putchar()函数的作用是_【_1_】__,getchar()函数的作用是_【_2_】__和。
答案:【1】向终端输出一个字符;【2】从终端输入一个字符
43.在printf()函数的格式说明中,%d表示_【_1_】__,%o表示_【_2_】__,%f表示_【_3_】__,%s表示_【_4_】__,%ld表示【5】。
答案:【1】输出十进制整数;【2】以八进制数形式输出整数;
【3】输出实数;【4】输出一个字符串;【5】输出长整型数据
44.若想通过以下输入语句给x赋1,给y赋2,则输入数据的形式应是_【_1_】__。
int a,b;
scanf(“x=%d,y=%d”,&x,&y);
……
答案:【1】x=1,y=2
45.若想通过以下输入语句使a=5.0,b=4,c=3则输入数据的形式应该是_【_1_】__。
int c,b;
float a;
scanf(“%f,%d,c=%d”,&a,&b,&c);
答案:5.0,4,c=3
46.语句:①printf(“%d”,x++);②printf(“%d”,++x);③x+=1;④x=1+x;⑤x=x+1中,执行后能使变量x的值增1的有_【_1_】__;语句①;②的输出结果是否相等_【_2_】__;语句③;④;⑤是否完全等效_【_3_】__。
答案:【1】①;②;③;④;⑤;【2】不相等;【3】完全等效
47.C程序中的字符常量是用_【_1_】__括起来的一个字符;除此之外,还允许用一种特殊形式的字符常量,是以_【_2_】__开头,被称为转义字符。
答案:【1】单引号【2】\
48.转义字符\n的功能是_【_1_】__;\b的功能是_【_2_】__;\\的功能是_【_3_】__。
答案:【1】换行【2】退格【3】输出反斜杠字符\
49.将一个字符常量放到一个字符变量中,实际上并不是把该字符放到内存单元中去,而是将该字符的相应_【_1_】__放到存储单元中,其存储形式与_【_2_】__的存储形式相类似,所以可以以_【_3_】__形式输出。
答案:【1】ASCII码【2】整数【3】整数
50.字符串常量是一对_【_1_】__括起来的字符序列,且以_【_2_】__结束;则字符串china 的长度是_【_3_】__个字符。
答案:【1】双引号【2】\0【3】6
51.C语言中没有专门的字符串变量,如需要存放在变量中,则以_【_1_】__形式来存放。
答案:【1】字符数组
52.执行以下程序段后,输出的结果是_【_1_】__。
char c='z';。