C语言试题1Word格式.docx
《C语言试题1Word格式.docx》由会员分享,可在线阅读,更多相关《C语言试题1Word格式.docx(31页珍藏版)》请在冰豆网上搜索。
如:
2.3478e2(表示2.3478*102)
3)字符常量的表示方法:
a)字符由‘’表示:
如‘A’、‘1’
b)字符串由“”表示:
如“ABC”
4)变量赋值:
a)实型赋给整型变量时,舍掉小数。
inta;
a=13.85;
printf(”a”)值为:
13
b)整型赋给实型变量时,值不变,整型变为小数形式。
floata;
a=13;
13.0
5)“/”:
两个整数相除,则结果为整数,舍小数部分;
若运算时有一个为实数,则结果为double型
6)强制类型转换:
利用强制类型转换运算符将一个表达式转换成所需要的类型
(float)a:
表示将a转换成float类型
(int)(x+y):
表示将x+y的值转换成整形
注意:
要在类型上加括号,在转换时将得到一个临时的中间变量,原来变量的类型不变。
7)赋值表达式:
a+=5(相当于a=a+5)
8)新增:
逗号运算符与逗号表达式
a)逗号运算符:
用它将两个表达式连接起来。
3+5,6+8先求解表达式1,再求解表达式2,整个逗号表达式的值为表达式2的值,
整个表达式的值为14。
又如:
a=3*5,a*4先求a=3*5=15,再求解a*4=15*4=60;
整个表达式的值为60
b)逗号表达式:
一个逗号表达式可以与另一个表达式组成一个新的逗号表达式,优先级最低
如:
(a=3*5,a*4),a+5整个表达式的值为20,想想是怎么计算的?
?
9)新增:
自增、自减运算符(作用是使变量的值+1或-1)
++i,--i(在使用i之前,先使i+1(i-1))如:
j=++i(i的值先变成4,再赋给j,j=4)
i++,i--(在使用i之后,先使i+1(i-1))如:
j=i++(i的值先赋给j,j=3,然后i变成4)
练习题:
1、若x、i、j和k都是int型变量,则计算表达式(x=(i=4,j=16,k=32))后,X的值为(c)
A、4B、16C、32D、52
2、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为(b)
A、7B、8C、6D、2
3、下列四组选项中,均是C语言关键字的是(c)
A、auto、enum、includeB、switch、typedef、continue
C、scanf、signed、elseD、if、strcut、type
4、下列四组选项中,均是不合法的用户标识符的是(c)
A、A、P_0、doB、float、La0、_a
C、b-a、goto、intD、_123、temp、INT
5、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符为(c)
A、必须为字母B、必须为下划线
C、必须为字母或下划线D、可以是字母、数字和下划线中任一种字母
6、在下面四个选项中,均是合法整型常量的选项是(a)
A、160、-0XFFF、011B、-0xcdf、01a、0xe
C、-01、986,012、0668D、-0x48a、2e5、0x
7、在下面四个选项中,均是不合法整型常量的选项是(d)
A、--0f1、-0XFFF、0011B、-0xcdf、017、12,456
C、-018、999、5e2D、-0x48eg、-068、03f
8、在下面四个选项中,均是不合法浮点数的选项是(b)
A、160.、0.12、e3B、123、2e4.2、.e5
C、-.18、123e4、0.0D、-e3、.234、1e3
9、在下面四个选项中,均是合法浮点数的选项是(b)
A、+1e+1、5e-9.4、03e2B、-.60、12e-4、-8e5
C、123e、1.2e-.4、+2e-1D、-e3、.8e-4、5.e-0
10、下面正确的字符常量是(c)
A、“C”B、’\\’C、‘W’D、‘’
11、下面不正确的字条串常量是(a)
A、‘abc’B、”12’12”C、”0”D、””
12、下面四个选项中,均是不正确的八进制或十六进制数的是(d)
A、016、0x8f、018B、0abc、017、0xa
C、010、-0x11、0x16D、0a12、7ff、-123
13、下面四个选项中,均是正确的八进制或十六进制数的是(c)
A、-10、0x8f、-011B、0abc、-017、0xc
C、0010、-0x11、0xf1D、0a12、-0x123、-0xa
14、下面四个选项中,均是正确的数值常量或字符常量的是(d)
A、0.0、0f、8.9e、’&
’B、”a”、3.9e-2.5、1e1、’\”’
C、’3’、011、0xff00、0aD、+001、0xabcd、2e2、50.
15、若有代数式
,则不正确的C语言表达式是(c)
A、a/b/c*e*3B、3*a*e/b/c
C、3*a*e/b*cD、a*e/b/c*3
16、已经各变量的类型说明如下:
以下不符合C语言语法的表达式是(a)
Intk,a,b;
A、x%(-3)B、W+=-2
Unsignedlongw=5;
C、K=(a=2,b=3,a+b)’
Doublex=1.42;
D、a+=a-=(b=4)*(a=3)
17、已经各变量的类型说明如下:
以下符合C语言语法的表达式是(b)
Inti=8,k,a,b;
A、y=float(i)B、x%(-3)
C、a=a*3=2
Doublex=1.42,y=5.2;
18、以下不正确的叙述是(d)
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
19、以下正确的叙述是(d)
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误的表示
D、在C程序中,%是只能用于整数运算的运算符
20、已知字母A的ASCII码为65,且c2为字符型,则执行语句c2=’A’+’6-‘3’后,c2的值为(a)
A、DB、68C、不确定的值D、C
21、在C语言中,要求运算数必须是整型的运算符是(d)
A、/B、++C、!
=D、%
22、若有说明语句:
charc=’\72’;
则变量c(a)
A、包含1个字符B、包含2个字符C、包含3个字符D、值不确定
23、若有以下定义,则能使值为3的表达式为(d)
INTk=7,x=12;
A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)
24、设以下变量均为INT型,则值不等于7的表达式是(c)
A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)
C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)
25、若有intm=5,y=2;
则表达式y+=y-=m*=y后y的值为(-16)。
26、在C语言中的实型变量分为两种类型,它们是(float)和(double)。
27、若s是int型变量,且s=6,则s%2+(s+1)%2=
(1)。
28、若a是整型变量,则(a=4*5,a*2),a+6的值为(26)。
29、若x和a均是int变量,计算表达式
(1)后的x的值为(12),计算表达式
(2)后x的值为(4)
(1)x=(a=4,6*2)
(2)x=a=4,6*2
30、若a、b、c均为int变量,则计算a=(b=4)+(c=2)后,a的值为(6),b的值为(4),
c的值为
(2)。
31、若a为int变量,且a的初值为6,则计算a+=a—=a*a后,a的值为(-60)。
32、若a为int变量,则计算a=25/3%3后,a的值为
(2)。
33、若x和n为int变量,且x和n的初值为5,则计算x+=n++后,x的值为(10),n的值为(6)。
34、若有定义:
inta=2,b=3;
floatx=3.5,y=2.5;
则计算(float)(a+b)/2+(int)x%(int)y的值为(3.5)。
35、若有定义:
charc=’\010’,则变量c中包含的字符个数为
(1)。
36、若有定义:
intx=3,y=2;
floata=2.5,b=3.5,则(x+y)%2+(int)a/(int)b的值为(0)。
37、若所有变量均为整型,则(a=2,b=5,a++,b++,a+b)的值为(9)。
38、已知字母a的ASCII码为97,且设ch为字符变量,则ch=’a’+’8’-‘3’的值为(f)。
39、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为(整型)。
40、C语言中的标识符只能由三种字符组成,它们是(字母),(数字)和(下划线)。
41、求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7
2.5
(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5
3.5
42、写出程序运行结果。
main()
{inti,j,m,n;
i=8,j=10;
m=++i;
n=j++;
printf(”%d,%d,%d,%d”,i,j,m,n);
}9,11,9,10;
43、写出下面表达式运算后a的值,设原来a=12。
设a和n已定义为整型变量,
(1)a+=a
24
(2)a—=2
10
(3)a*=2+3
60
(4)a/=a+a
0
(5)a%=(n%=2),n的值为5
(6)a+=a—=a*=a0
第三章输入、输出函数
(1)字符输入输出函数putchar()和getchar(),只能输入或输出一个字符或一个字符变量。
(2)输入输出函数printf()和scanf(),可输入或输出若干个任意类型的数据。
(3)格式控制符:
(格式说明总是由“%”字符开始)
①d格式符,用来输出十进制整数。
有以下几种用法:
(︼代表空格)★★★(常用)
a、%d,按实际长度输出
b、%md,m为输出字段的宽度。
若数据位数<
m,则左端补空格,若>
m则按实际长度
printf(”%4d,%4d”,a,b)若a=123,b=12345,则输出结果为:
︼123,1234
c、%1d,输入长整型数据。
longa=135790,printf(”1d”,a);
由于整型数据范围为-32768-32767,所以若数据为
长整型数据,则要用%1d格式输出。
如printf(”81d”,a),输出结果:
︼︼135790
o格式符,以八进制数形式输出
x格式符,以十六进制数形式输出
c格式符,输出一个字符
⑤s格式符,输出一个字符串(︼代表空格)★★★(常用)
a、%ms,输出的字符串占m列。
若字符串长度>
m,则全部输出,如:
printf(”%3s”,“CHINA”);
输出结果:
CHINA
若<
m则左边补空格,如:
printf(”%6s”,“CHINA”);
︼CHINA
b、%-ms,输出的字符串占m列。
printf(”%-3s”,“CHINA”);
m则右边补空格,如:
printf(”%-6s”,“CHINA”);
CHINA︼
c、%m.ns,输出m列,但只取字符串左端的n个字符,n个字符输出在右侧,左边补空格
printf(”%7.2s”,“CHINA”);
︼︼︼︼︼CH
若n>
m,则m自动取n值,即保证n个字符正常输出:
printf(”%3.4s”,“CHINA”);
CHIN
若只指定了n,没指定m,自动使m=n:
printf(”%.3s”,“CHINA”);
CHI
d、%-m.ns,输出m列,但只取字符串左端的n个字符,n个字符输出在左侧,右边补空格,
printf(”%-7.2s”,“CHINA”);
CH︼︼︼︼︼
⑥f格式符,用来输出实数。
a、%m.nf,输出m列,其中有n位小数;
若数值长度<
m,则左端补空格。
floatf=123.456;
printf(”%5.2f”);
123.46(最后一位四舍五入)
floatf=123.456;
printf(”%10.2f”);
︼︼︼︼123.46
b、%-m.nf,与%m.nf基本相同,只是输出的数值向左端靠,右端补空格。
printf(”%-10.2f”);
123.46︼︼︼︼
(4)printf函数的几点说明:
a、除X、G、E外,其他格式字符必须用小写,如%d不能写成%D
b、如果想输出字符%,则应该在“格式控制”字符串中连续用两个%%表示。
printf(“%f%%”,1.3);
输出结果:
1.3%
c、可以在“格式控制”字符串内包含“转义字符”。
转义字符及其含义
字符形式
含义
\n
换行
\\
反斜杠字符“\”
\t
水平制表
\’
单撇号字符
\b
退格
\”
双撇号字符
\r
回车
\ddd
1-3位8进制数所代表的字符
\f
换页
\xhh
1-2位16进制数所代表的字符
d、输入数据时不能规定精度。
scanf(”%7.2f”,&
a);
×
(5)scanf函数的几点说明:
a、输入时可以指定输入数据所占列数,系统自动按它截取所需数据
scanf(”%3d%3d”,&
a,&
b);
输入:
123456,系统自动将123赋给a,456赋给b
b、若%后有一个“*”附加说明符,表示跳过它指定的列数
scanf(”%2d︼%*3d︼%2d”,&
12︼345︼67
将12赋给a,%*3d表示读入3位整数但不赋给任何变量,然后再读入2位整数67赋给b,也就是说第2个数据“345”被跳过。
c、输入数据时,注意各数之间的分隔符
scanf(”%d,%d”,&
b);
scanf(”%d︼%d”,&
3,4输入:
3︼4(或3↙(回车)4)
1、putchar函数可以向终端输出一个(d)。
A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值
2、以下程序的输出结果是(d)。
(注:
︼表示空格)
main()
{printf(”\n*s1=%15s*”,”chingbeijing”);
printf(”\n*s2=%-5s*”,”chi”);
}
A、*s1=chinabeijing︼︼︼*B、*s1=chinabeijing︼︼︼*
*s2=**chi**s2=chi︼︼*
C、*s1=*︼︼chinabeijing*D、*s1=︼︼︼chinabeijing*
*s2=︼︼chi**s2=chi︼︼*
3、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式(b);
如果字符串长度小于5,则输出按方式(c)。
A、从左起输出该字符串,右补空格B、按原字符长度从左向右全部输出
C、右对齐输出该字符串,左补空格D、输出错误信息
4、已有定义inta=-2,和输出语句:
printf(“%81x”,a);
以下正确的是(b)。
A、整型变量的输出格式符只有%d一种
B、%x是格式符的一种,可以适用于任何一种类型数据
C、%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的
D、%81x不是错误的格式符,其中数字8规定了输出字段的宽度
5、以下C程序正确的运行结果是(d)
main()
{inty=2456;
printf(“y=%3o\n”,y);
printf(“y=%8o\n”,y);
A、y=︼︼︼2456B、y=︼︼︼4630
y=︼︼︼︼︼︼︼︼2456y=︼︼︼︼︼︼︼︼4630
C、y=2456D、y=4630
y=︼︼︼︼2456y=︼︼︼︼4630
6、已有定义intx;
floaty;
且执行scanf(”%3d%f”,&
x,&
y);
语句时,输入:
12345︼678↙,
则x的值(【1】b),y的值(【2】b)。
【1】A、12345B、123C、45D、345
【2】A、无定值B、45.000000C、678.000000D、123.000000
7、已有程序段和输入数据形式,程序中输入语句的正确形式为(c)(注<
CR>
代表回车)
main()
{inta,floatf;
A、scanf(“%d,%f”,&
f);
Printf(“\ninputnumber:
”);
\B、scanf(“%f,%d”,&
输入语句C、scanf(“%d%f”,&
Printf(“\nf=%f,a=%d\n”,f,a);
D、scanf(“%f%d”,&
}
Inputnumber:
4.5︼︼2<
8、根据定义和数据的输入方式,输入语句的正确形式为(b)
已有定义:
floatf1,f2;
A、scanf(“%f,%f”,&
f1,&
f2);
数据的输入方式:
4.52B、scanf(“%f%f”,&
3.5C、scanf(“%3.2f,%2.1f”,&
D、scanf(“%3.2f%2.1f”,&
9、阅读以下程序,当输入数据的形式为:
25,13,10<
,正确的输出结果为(d)
main()A、x+y+z=48
{intx,y,z;
B、x+y+z=35
scanf("
%d%d%d"
&
y,&
z);
C、x+z=35
printf("
x+y+x=%d"
x+y+z);
}D、不确定值
10、根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是(b)
main()A、scanf(“%d,%f”,&
y);
{intx,floaty;
printf(“\nx+y=%4.2f”,x+y)
printf(“enterx,y:
”)B、scanf(“%d%f”,&
输入语句printf(“\nx+y=%4.2f”,x+y)
输出语句C、scanf(“%d%f”,&
}printf(“\nx+y=%6.1f”,x+y)
输入形式:
enterx,y:
23.4D、scanf(“%d%3.1f”,&
输出形式:
x+y=5.40printf(“\nx+y=%4.2f”,x+y)
11、以下说法正确的是(d)
A、输入项可以为一个实型变量,如scanf(