C语言基本数据类型及运算题库
更新时间:2023-09-13 23:26:01 阅读量: 教学研究 文档下载
第二章 基本数据类型及运算
一、选择题
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.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) 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) 0 B) 0.5 C) 1 D) 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)float 2_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)20 B)0x4001 C)08 D)0x12ed 答案: C
10. 以下选项中不正确的实型常量是
A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B)
11.若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B)
12.以下十六进制数中不合法的是
A)oxff B)0Xabc C)0x11 D)0x19
答案:A)
13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i
A)0 B)1 C)2 D)3 答案:D
14. 下列程序的运行结果是 。
# include “stdio.h” void main( ) { int i=23; do{++i;} while(i);
printf(“%d”,i); }
A)23 B)24 C)死循环 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||1 D)!(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=9 B.y=6 C.y=1 D.表达式是错误的 答案:D
22. 以下程序的输出结果是 。
short i=65535; printf (\
A.65535 B.0 C.语法错误,无输出结果 D.-1 答案:D
23.有变量说明语句int a,b ,c;,顺序执行下面语句: a=b=c=1;
++a||++b&&++c;
那么,变量b的值应是( )
A.2 B.1 C.0 D.3 答案:B
24. 有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是( )
A.0和2 B.0和3 C.1和2 D.1和3 答案:B
25. 以下程序的输出为 。
#include
double x=213.82631; printf(\}
A.213.82 B.21.38e+01 C.2.14e+02 D.-2.14e2 答案:C
26. 下列关于单目运算符+ +、- -的叙述中正确的是 。
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D)它们的运算对象可以是char型变量、int型变量和float型变量 答案:D
27. 有以下程序:
#include
char a,b,c,*d; a='\\';b='\\xbc';
c='\\0xab';d=\
printf (\}
编译时出现错误,以下叙述中正确的是 。 A)程序中只有“a='\\';”语句不正确 B)“b='\\xbc';”语句不正确
C)“d=\”语句不正确 D)“a='\\';”和“c='\\0xab';”语句都不正确 答案:D
28. 有以下程序:
#include
int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a
程序运行后的输出结果是 。
A)0,0 B)0,1 C)1,0 D)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%5 D)(x%=k)-(k%=5) 答案:D
32. 以下程序的输出结果是 。
#include
int x=3,y=2,z=1;
printf (\ printf (\}
A)x/y&z=0 B)x/y&z=1 x^y&~z =0 x^y&~z =0 C)s=x/y&z=0 D)x/y&z=1 s=x^y&~z =1 x^y&~z =1
答案:D
33. 设有“int x=11;”则表达式(x++*1/3)的值是 。
A)3 B)4 C)11 D)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)0 B)1 C)2 D)-1 答案:B
37. 执行x=5>1+2&&2||2*4<4-!0后,x的值为 。
A)-1 B)0 C)1 D)5 答案:C
38. 语句“printf (\”的输出结果是 。
A)无输出 B)结果不确定 C)-1 D)1 答案:D
39. 设a=2、b=3、c=4,则表达式a+b>c&&b= =c&&a||b+c&&b+c的值为 。
A)5 B)8 C)0 D)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)+(b=3);
A)3 B)8 C)9 D)10 答案:A
42. 有以下程序段:
int m=0,n=0;char c='a'; scanf(\,&m,&c,&n); printf(\
若从键盘上输入:10A10<回车键>,则输出结果是 。
A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 答案:A
43. 已定义c为字符型变量,则下列语句中正确的是 。
A)c='97 ' B)c=“97 “ C)c=97 D)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(\ if(y<0) continue; printf(\}
正确的描述是( )。
A)当y<0时整个循环结束 B)y>=0时什么也不输出
C)printf函数永远也不执行 D)最多允许输出100个非负整数 答案:D
46. 下面程序的运行结果是( )。
#include
{
printf(\}
A)DATA=22 B)DATA=21 C)DATA=9 D)以上都不对 答案: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=ad&&b>c)); 则执行完上述语句后n的值为( )。 A)1 B)2 C)3 D)0 答案:D
49. 设c1,c2均是字符型变量,则以下不正确的函数调用为( )。
A)scanf(“c1=ì2=%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
int i=0,s=0; for(; ;) {
if(i==3||i==5)continue; if(i==6) break; i++; s+=i; };
printf(\}
程序运行后的输出结果是( )。
A)10 B)13 C)21 D)程序进入死循环 答案: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
{ int k=2,i=2,m; m=(k+=i*=k);
printf(\}
执行后的输出结果是 。
(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
void main( )
{ int x=102,y=012;
printf(“-,-\\n”,x,y); }
执行后输出结果是 。
(A)10,01 (B)02,12 (C)102,10 (D)02,10 答案:C
59. 以下程序输出的结果是 。
#include
printf(\ printf(\}
(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
(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
int x=3,y=2,z=1;
printf(\}
程序运行后的输出结果是 。
(A)3 (B)2 (C)-1 (D)0 答案:D
64. 表达式x
(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 (\(B)scanf (\(C)scanf (\(D)scanf (\答案:D
68. 语句:printf(\的输出为 。
(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\\n\其输出结果是
A)3,0,-10 B)0,0,5 C)-10,3,-10 D)3,0,3 答案:B)
70. 若有以下程序段:
#include
#include
char c1, c2; int n1, n2;
c1 = getchar(); c2 = getchar();
n1= c1 - '0'; n2 = n1*10 + (c2 - '0'); printf (\}
若输入48,则运行结果是: 答案:48
22.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
char c; int n=100; float f=10; double x;
x=f*=n/=(c=50);
printf(\}
运行结果: 答案:
2 20.000000
23.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
int a,b,c;
a=10; b=20; c=(a%b<1)||(a/b>1); printf(\}
运行结果:
10 20 0
24.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
int x=0210;
printf(\
}
运行结果: 答案:88
25.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
已知字母A的ASCII码为65。以下程序运行后的输出结果是______。 #include
char a, b;
a='A'+'5'-'3'; b=a+'6'-'2'; printf(\}
运行结果: 答案:67 G
26.阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是______。
#include
char a,b; a=getchar(); scanf(\ a=a-'A'+'0';b=b*2; printf(\}
运行结果: 答案:1 B 27.
四、编程题
1. 编写程序,读入3个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
【分析与解答】
(1)定义4个双精度变量a、b、c和ave,变量a、b、c分别存放读入的3个双精度数,ave存放它们的平均值。
(2)设计输入语句,以及在此之前用于提示输入的(printf)语句。 (3)设计求平均值的算法,把所求得平均值放入变量ave中。
(4)设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法。现举例说明:若ave中的数为123.4644,为了保留此值小数点后一位,可用表达式:(int)(123.4644*10)/10.0;依次推算,为了保留此值小数点后二位,可用表达式:(int)(123.4644*100)/100.0;其他依次类推。
(5)若要求对小数点后第二位数进行四舍五入,则可对原数加0.05后再进行以上运算。如要求保留123.4644小数点后一位且对第二位数进行四舍五入,可用表达式:(int)((123.467+0.05)*10)/10.0。注意:分母一定要用实数10.0而不能用整数10,否则就变成整除了;若要求保留123.4644小数点后两位且对第三位数进行四舍五入,可用表达式:(int)((123.467+0.005)*100)/100.0;其他依此类推。
(6)设计输出语句。输出a、b、c和ave。 (7)把以上内容放在主函数的一对花括号中。 (8)编写程序如下: #include
double a,b,c,ave;
printf(\:\
scanf(\ ave=(a+b+c)/3;
printf(\用以比较四舍五入前后的数据*/ ave=(int)((ave+0.05)*10)/10.0;
printf(\ }
2. 编写一个简单的C程序,输出以下信息:
* * * * * * * * * * * * *
C program!
* * * * * * * * * * * * *
答案:
#include
printf(\ printf(\
printf(\}
3. 编写一个程序,输入一个弧度值,并将其换算成角度值(度、分、秒的形式)输出。
提示:设x为弧度,则对应的角度为180*x/∏,其整数部分为度数,余下的部分乘60,其整数部分为分数,再将余下的部分乘60,其整数部分为秒数。 答案:
#define pi 3.14159 #include
float x,a,a1; int d,f ,m;
printf(\请输入弧度:\ scanf(\ a=x*(180/pi); d=(int)a; a1=(a-d)*60; f=(int)a1;
m=(int)((a1-f)*60+0.5);
printf(\弧度 <=> %d度%d分%d秒\\n\}
4. 编写一个程序,输入一个摄氏温度,输出其对应的华氏温度。
提示:摄氏温度与华氏温度之间的转换公式为:华氏温度=9*摄氏温度/5+32。 答案:
#include
float c,f;
printf(\请输入摄氏温度:\ scanf(\ f=9*c/5+32;
printf(\摄氏%f对应的华氏温度为%f\\n\}
5. 编写一个程序,输入半径,输出其圆周长、圆面积、及圆球体积。 答案:
#define pi 3.14159 #include
float r,l,s,v;
printf(\请输入圆半径:\ scanf(\ l=2*pi*r;
s=pi*r*r;
v=4*pi*r*r*r/3;
printf(\半径为%f的圆周长为%f,面积为%f,圆球体积为%f \\n\}
6. 输入一个字符,分别输出其前导字符、该字符、后续字符。 答案:
#include
char c;
printf(\输入一个字符:\
printf(\前导字符:%c\\n 该字符:%c\\n后续字符:%c\\n\}
7.对任意输入的一个字符进行加密,然后解密,输出加密解密的结果。
【解】设一个常量d为加密码,利用异或运算对字符c进行加密,解密过程则是再一次利用异或运算。程序如下:
#include
char c; int d=9999;
printf(\输入一个字符:\ c=c^d; printf(\加密后:%c\\n\ c=c^d; printf(\解密后:%c\\n\}
8. 输入三个整数,按从小到大的顺序进行输出。 答案:
#include
int a,b,c,temp;
scanf(\ if(a>b) {
temp=a; a=b; b=temp; }
if(a>c) {
temp=a; a=c; c=temp; }
if(b>c)
A) gets B) puts C) getchar D) putchar 答案:D
138. 若有下列语句
char c=’A’; printf(“%d”,c);
则输出的结果是 。
A) A B) c C) 65 D) 错误的语句 答案:C
139. 下列程序输入’a’字母后,执行程序后输出的结果是 。
#include
char c;
c=getchar(); c=c-32;
printf(\}
A)65 B) A C) 97 D) 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)/3 D)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
144.以下选项中可作为C语言合法常量的是______。
A)-80. B)-080 C)-8e1.0 D)-80.0e 答案:A
145.以下不能定义为用户标识符的是______。
A)Main B)_0 C)_int D)sizeof 答案:D
146.以下选项中不能作为合法常量的是______。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 答案:B
147.有以下程序
#include
int m=12,n=34;
printf(\ printf(\}
程序运行后的输出结果是______。 A)12353514 B)12353513 C)12343514 D)12343513 答案:A
148.有以下程序
#include
int a,b,d=25; a=d/10%9; b=a&&(-1);
printf(\}
程序运行后的输出结果是______。 A)6,1 B)2,1 C)6,0 D)2,0 答案:B
149.以下叙述中正确的是______。
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 答案:B
150.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。
#include
{
int r; float s;
scanf(\ s=p*r*r;
printf(\}
出错的原因是______。
A)注释语句书写位置错误
B)存放圆半径的变量r不应该定义为整型 C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量 答案:D
151.数字字符0的ASCII值为48,若有以下程序
#include
char a='1',b='2'; printf(\ printf(\}
程序运行后的输出结果是______。
A)3,2 B)50,2 C)2,2 D)2,50 答案:C
152.有定义语句:int b;char c[10];,则正确的输入语句是______。
A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\答案:B
153.有以下程序
#include
int m,n,p;
scanf(\ printf(\}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。
A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 答案:A
154.有以下程序
#include
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
unsigned char a, b; a=7^3; b= ~4 & 3;
printf(\}
程序运行后的输出结果是______。
A)4 3 B)7 3 C)7 0 D)4 0 答案;A
156. 有以下程序
#include
int c=35;
printf(\}
程序运行后的输出结果是______。
A)0 B)70 C)35 D)1 答案:C
157.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是 。
A)c1^c2 B)c1&c2 C)~c2 D)c1|c2
158. 有定义语句:int a,b;, 若要通过scanf(\语句使变量a得到数值30,变量b得到数值40, 则下面四组输入形式中,错误的输入形式是 。 A)30 40<回车> 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) 99 B)不确定的值 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.5 B) 2.7 C) 3.5 D) 4.7 答案:A
164.下列程序执行后的输出结果是 。
#include
int x= 'f';
printf(\}
A) G B) H C) I D) J 答案:A
165. 在C语言中(以TC编译系统为例),5种基本数据类型的存储空间长度的排列顺序为 。
A) char 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 (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 (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 int a=0100,b=100; printf(\ } 则输出结果是 答案:x=63,y=100 9. 如果要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是 ,请用 scanf (\解:输入格式“%c”表示输入任意一个字符,包括按回车、空格和Tab键等。因此在输入整数10、30、40后不能输入空格而要直接输入字母;同理,字母B和C之间也不能输入空格。同时在20和30之间必须输入空格进行两个整数的区分。所以本题答案为: 10A20□30BC40D 10. 有以下程序: #include char ch1,ch2;int n1,n2; ch1=getchar ( );ch2=getchar ( ); n1=ch1-'0';n2=n1*10+(ch2-'0'); printf (\} 程序运行时输入:12<回车>,执行后输出结果是 。(2004年4月) 答案:12 11.程序的运行结果为 。 #include char c1='a',c2='b',c3='c'; printf (\} 答案:aabb cc 12. 请在空白处填上适当的语句,使以下程序的输出结果是16.00,。 #include 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 int y=3,x=3,z=1; printf(\ } 运行该程序的输出结果是 。 A)3 4 B)4 2 C)4 3 D)3 3 答案: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 #define STR \void main( ) { printf(\:This is a STR!\\n\ printf(\:This is %s!\} 答案: 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. 以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是 。 #include void main( ) { int i=0,j=0,k=0; scanf(\ printf(\} 答案:10300 19. 以下程序的执行结果是 。 #include int a,b,c; c=(a=3,b=a--); printf(\} 答案:c=3,a=2,b=3 20. 已知x=7.5,y=2,z=3.6,则表达式x>y&&z>x 21. 以下程序运行的结果是 。 #include int a,b,c; a=1;b=2;c=3;a=b--<=a||a+b!=c; printf(\} 答案:1,1 22. 输入“12345,xyz”,下列程序输出的结果是 。 main( ) { int x;char y; scanf (“=<”,&x,&y); printf (“%d,%c”,x,y);} 答案:123,4 23. 以下的程序执行时,先输入a ;后输入b 。最后显示的结果是 。 #include int x,y; printf(\:\ 5. 以下程序的输出是什么? #include int i; unsigned int j; i= ~0; j= ~0; printf (\}答: 输出结果为: i=-1 j=-1 6. 使用运算符++可以把以下3个语句写成一个语句。请设法写出这个语句,并编程上机验证结果。 y=y+1; z=x+y; x=x+1; 答: 可使用语句: z=(x++)+(++y); 7. 假定输入的数据流如下: 23.456789 12.23 567 hello F 34.32 为了把第二个数赋给变量second,把第三个数赋给变量third,把字符’F’赋给变量ch。问scanf( )函数的表示形式是什么? 解:scanf (\ 8. 找出并更正以下程序中的错误。 #include void main ( ) { double pound; double kilograms; scanf (“%f”,pound); kilogram=pound/2.2; printf (“%d pounds equals %d kilograms\\n”,pounds,kilograms); } 答: 正确的程序如下: #include double pound; } double kilograms; scanf (\输入输出double型数,要使用格式符%lf */ kilograms=pound/2.2; printf (\ 9. 语句printf(\的输出结果是 。 答案:Re’CH’you 10. 说明下面程序的输出结果: #include int x='f'; printf(\} 答:输出大写字母G。因为x-’a’是字符常量’f’的ASCII码值减去字符常量’a’的ASCII码值。结果是5,加1后为6。于是’A’+6得到的是大写字母G的ASCII码值。按格式“%c”输出,即是字母G。 11. 分析下面程序的输出结果。 #include int x,m,n,a,b; m=n=a=b=8; x=(m=a>b)&&(n=a>b); printf(\} 【解】输出结果是: x=0,m=0,n=8 这里,变量m、n、a、b初始值都是8。语句 x=(m=a>b)&&(n=a>b); 把逻辑表达式(m=a>b) &&(n=a>b)的值赋给变量x。逻辑运算符&&左右两边都是赋值表达式:左边是把关系表达式a>b的值赋给变量m;右边是把关系表达式a>b的值赋给变量n. 在计算这个逻辑表达式取值时,左边的关系表达式a>b不成立,因此取值为0。也就是说,变量m的值为0,所以&&左边的条件取值为假。于是,C语言不再去计算这个逻辑表达式右边的条件,而直接把逻辑值0赋给变量x。正因为没有去计算右边表达式的取值,所以并没有做把关系表达式的a>b的值赋给变量n的操作。因此变量n仍保持它原有的值8。 12. 执行下面的程序后,变量b里的值是什么? #include int x =35; char c='A'; int b; b=((x&15)&&(c<'a')); printf(\} 【解】这里是要把逻辑表达式(x&15)&&(c<‘a’)的值赋给变量b。该逻辑表达式进行的是逻辑与(“&&”)运算。它的左边是一个位逻辑表达式,右边是一个关系表达式。 先来看左边的x&15。从图3- 4看出,运算结果是3,即是逻辑真,取值为1。 X=35: 0 0 15: 0 0 & 0 0 0 0 0 0 0 0 0 0 0 0 1 1 结果: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 图3-4 位逻辑运算示意 再来看右边的关系表达式c<‘a’。由于变量c里存放的是’A’,它的ASCII码值 (65)小于’a’的ASCII码值(97)。因此,该关系成立,运算结果为1。 所以,整个逻辑表达式的结果是1。因此,程序执行后,变量b里的值是1。 13. 以下程序的执行结果是什么?为什么? #include long a=32767; long b; b=a+1; printf (\} 解:这里都是长整型数,存储一个数的位数是32,故直接相加即可。 所以,本程序的执行结果为:a=32767,b=32768 14. 执行以下程序时输入: 1234567 请写出程序运行结果。 #include int x,y; scanf(\ printf(\} 解:scanf ( )函数中第一个格式说明为“-”,表示接受两个数字即12赋给x;第二个格式说明为“%*2s”,表示接受两个数字不赋给任何变量,即跳过34;第三个格式说明为 “”,表示接受一个数字即5赋给y。所以程序输出为: x=12,y=5 15. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include int i; float f; char c; scanf(\ printf (\} 当输入100a1.563时,程序的运行结果是: 当输入1.23456时,程序的运行结果是: 答案:当输入100a1.563时,程序的运行结果是: i= 100, c=a, f=1.563000 当输入1.23456时,程序的运行结果是: i= 1, c= ., f=23456.000000 16. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include int i = 010, j = 10, k = 0x10; printf (\} 运行结果是: 答案:运行结果是: i= 8, j= 10, k= 16 17. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include int a = 7, b = 9; a = a + b; b = a - b; a = a - b; printf (\} 运行结果是: 答案:运行结果是: a= 9, b= 7 18. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include int a, b, c; a = (b = (c = 3) * 5)*5; printf (\} 运行结果是: 答案:运行结果是: a = 30, b = 15, c = 3 19. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include int a = 16, b, x = 6, y, z; b = a+++1; printf (\ x *= a = b; printf (\ x = 1; y = 2; z = 3; x += y += z; printf (\} 运行结果是: 答案:运行结果是: b=17 x=102 9 20. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后 #include printf(\ printf(\} 运行结果是: 答案:运行结果是: f gde h j k 21. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
正在阅读:
C语言基本数据类型及运算题库09-13
精细化学品结构解析习题册-201511-23
咒诅于祝福的讲章07-03
(抱箍法)盖梁模板验算02-03
论迟子建抒情乡村小说的价值评判及其对传统诗意叙事的开拓12-30
杨淑雅:反腐败与预防职务犯罪05-04
爸爸的巴掌作文600字06-27
教育实习报告手册03-15
编码器的分类06-01
- 公务员上岸同学告诉你,怎样走出面试中常见的十大误区
- 作表率,我们怎么办(办公室主任)
- 乘务员安全责任书
- 增员面试流程
- 河南省焦作市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 最新4社区工作者面试题
- 个人简历表
- 男教工体检必检项目
- 河南省兰考县规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 兼职译员测试稿
- 河南省开封市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 永州职业技术学院校园总体规划-永州职业学院
- 最新5、培训科长笔试题(答案)
- 2019雅商酒店境外人员登记培训稀有资料,不可错过
- 小学教师求职简历范文
- 红酒知识与礼仪
- 春节给领导拜年的短信拜年词
- 2019年上半年中小学教师资格证结构化面试真题1
- 20XX年县干部培训工作目标
- 硬笔试听课
- 题库
- 运算
- 语言
- 类型
- 基本
- 数据
- 财政部关于印发《金融资产管理公司资产处置管理办法(修订)》的通知
- 2019-2020年九年级语文上册 第2课《我的四季》练习 鄂教版
- 2013年试验检测员考试习题集
- 2018年建筑安全生产月活动总结模板
- 《高斯定理与环路定理在万有引力场中的推广》
- 1997-2016年武汉大学661细胞生物学考研真题及答案解析 汇编
- 2017高考古诗文背诵64篇篇目理解性默写
- 2010年上海市宝山区中考数学二模卷及答案
- 关于进一步加强幼儿园保教人员规范管理意见
- 朝阳医院成本核算管理制度
- 教育系统创建“无邪教校园”活动方案
- 2013年会计从业资格证会计电算化模拟试题(五套)
- 办公楼建筑结构设计(框架结构)
- 天津工业大学纺织材料学试题
- 安全生产月安全知识竞赛试题
- 6S现场管理制度
- 中国PC板温室行业发展前景与投资战略规划分析报告2016-2021年
- 财经法规与会计职业道德单项选择模拟题
- ZD1.信息安全总体方针和安全策略
- 浅谈奥尔夫教学法在小学音乐课中的运用 - 以“洛阳龙门三小”为例(1)-1