思考与练习
1.选择题
(1)在C语言中,如果以下变量都是int型,则输出结果是 。
sum=pad=5; pAd=sum++,pAd++,++pAd;
printf("%d\n",pad);
A.7 B.6 C.5 D.4
(2)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int i=010,j=10;
printf("%d,%d\n",++i,j--);
}
A.11,10 B.9,10 C.010,9 D.10,9
(3)已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是 。
#include <stdio.h>
main()
{
char c1='A',c2='Y';
printf("%d,%d\n",c1,c2);
}
A.因输出格式不合法,输出错误信息
B.65,90 C.A,Y D.65,89
(4)设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是 。
A.3 B.0 C.9 D.-12
(5)设有语句char a='\72';,则变量a 。
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法
(6)以下选项中,可用做C语言用户标识符的一组标识符是 。
A.void B.a3_b3 C.For D.2a
define _123 -abc DO
WORD IF Case sizeof
(7)设有语句int a=12,则执行完语句a+=a-=a*a后,a的值是 。
A.552 B.264 C.144 D.-264
(8)字符(char)型数据在计算机内存中的存储形式是 。
A.反码 B.补码 C.EBCDIC码 D.ASCII码
(9)执行以下程序片段后,B的值为 。
int x=35;
char z='A';
int b;
B=((x&15)&&(z<'a'));
A.0 B.1 C.2 D.3
(10)以下程序片段的输出结果是 。
int i=65536; printf("%d\n",i);
A.65536 B.0
C.有语法错误,无输出结果 D.-1
(11)设ch是char型变量,其值为A,且有以下表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是 。
A.A B.a C.Z D.z
(12)在C语言中,要求运算数必须是整型的运算符是 。
A.% B./ C.< D.!
(13)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int x=10,y=3;
printf("%d\n",y=x/y);
}
A.0 B.1 C.3 D.不确定的值
(14)C语言中最简单的数据类型包括 。
A.整型、实型、逻辑型 B.整型、实型、字符型
C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型
(15)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A.10 10 B.9 9 C.9 10 D.10 9
(16)在C语言中合法的数据类型关键字是 。
A.Double B.short C.integer D.Char
(17)在C语言中,合法的长整型常数是 。
A.0L B.4962710 C.0.054838743 D.2.1869e10
(18)在C语言中,合法的字符型常数是 。
A.'\t' B."A" C.65 D.A
(19)若有以下程序片段:
int a=5;
a++;
则表达式a++的值是 。
A.7 B.6 C.5 D.4
(20)用十进制数表示表达式的值,则表达式120/012的运算结果是 。
A.1 B.10 C.12 D.14
(21)在C语言中,合法的关键字是 。
A.swicth B.cher C.Case D.default
(22)在C语言中,合法的字符常量是 。
A.'\084' B.'\x43' C.'ab' D."\0"
(23)若有以下变量定义语句:
char a;int b;
float c;double d;
则表达式a*b+d-c值的类型为 。
A.float B.int C.char D.double
(24)设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为
。
A.4 B.16 C.32 D.52
(25)设有以下变量定义语句:
int i=8,k,a,b;
unsigned long w=5;
double x=1,42,y=5.2;
则符合C语言语法的表达式是 。
A.a+=a-=(b=4)*(a=3) B.x%(-3);
C.a=a*3=2 D.y=float(i)
(26)设有以下变量定义语句:
int k=7,x=12;
则能使x的值为3的表达式是 。
A.x%=(k%=5) B.x%=(k-k%5)
C.x%=k-k%5 D.(x%=k)-(k%=5)
(27)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int a=12,b=12;
printf("%d %d\n",--a,++b);
}
A.10 10 B.12 12 C.11 10 D.11 13
(28)以下选项中,属于C语言的数据类型是 。
A.复数型 B.逻辑型 C.双精度型 D.集合型
(29)在C语言中,不正确的int型常数是 。
A.32768 B.0 C.037 D.0xAF
(30)设有定义语句int x=11;,则表达式(x++* 1/3)的值是 。
A.3 B.4 C.11 D.12
(31)以下变量定义语句中,合法的是 。
A.short_a=1-.le-1; B.double b=1+5e2.5;
C.long do=0xfdaL; D.float 2_and=1-e-3;
(32)以下程序的输出结果是 。
#include <stdio.h>
main()
{
int x='f';
printf("%c \n",'A'+(x-'a'+1));
}
A.G B.H C.I D.J
(33)设有以下变量定义语句,并已赋确定的值 。
char w; int x; float y; double z;
则表达式w*x+z-y的值的数据类型为 。
A.char B.int C.float D.double
(34)若变量已正确定义并赋值,以下符合C语言语法的表达式是 。
A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b
(35)在C语言中,运算对象必须是整型的运算符是 。
A.%= B./ C.= D.<=
(36)若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是 。
A.1 B.2 C.2.0 D.2.5
(37)若变量a、i已被正确定义,且i已正确赋值,下列语句中,合法的是 。
A.a==1 B.++i; C.a=a++=5; D.a=int(i);
(38)设有说明语句char a='\72';,则变量a 。
A.包含1个字符 B.包含2个字符
C.包含3个字符 D.说明不合法
(39)以下C语言常量中,错误的是 。
A.0xFF B.1.2e0.5 C.2L D.'\72'
(40)以下选项中,合法的C语言关键字是 。
A.VAR B.cher C.integer D.default
(41)若a为int型变量,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 。
A.-3 B.9 C.-12 D.6
(42)在C语言中,以下合法的长整型常数是 。
A.OL B.4962710 C.324562& D.216D
(43)以下用户标识符中,合法的一组是 。
A.For B.4d C.f2_G3 D.WORD
(44)以下选项中,合法的字符常量是 。
A."B" B.'\010' C.68 D.D
(45)设x和y为double型,则表达式x=2,y=x+3/2的值是 。
A.3.500000 B.3 C.2.000000 D.3.000000
(46)以下合法的赋值语句是 。
A.x=y=100 B.d--; C.x+y; D.c=int(a+b);
(47)设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是 。
printf("%d,%d\n",x--,--y);
A.10,3 B.9.3 C.9.2 D.10.2
(48)以下选项中,非法的字符常量是 。
A.'\t' B.'\17' C."n" D.'\xaa'
(49)若有定义int a=8,b=5,C;,执行语句C=a/b+0.4;后,C的值为 。
A.1.4 B.1 C.2.0 D.2
(50)若变量a是int型变量,并执行了语句a='A'+1.6;,则正确的叙述是 。
A.a的值是字符C
B.a的值是浮点型
C.不允许字符型和浮点型相加
D.a的值是字符'A'的ASCII值加1
(51)以下选项中,不属于C语言的数据类型的是 。
A.signed short imt B.unsigned longint
C.unsigned int D.long short
2.上机操作题
(1)设m是一个三位数,写出将m的个位、十位、百位数字反序形成的三位数的C语言表达式。
(2)设已经定义了变量x、y,写出将x和y的值互相交换的表达式。
(3)写出以下程序的输出结果。
#include <stdio.h>
main( )
{
int i,j,m,n;
i=9;
j=10;
m=--i;
n=j--;
printf("%d,%d,%d,%d\n",i,j,m,n);
}