C语言基础题二
一、选择题:
1.C语言提供的合法数据关键字是(    )。
A) float    B) Sagned    C) Integer    D) Char                             
2.以下符号中不能用作用户标识符的符号是(    )。
A)_256        B)void        C)scanf        D)Struct
3.若k为int型变量,则以下语句(  )。
k=8567;    printf("|%-06d|\n",k);
A)输出格式描述不合法    B)输出为|008567|
C)输出为|8567|            D)输出为|-08567|
4.sizeof(float)是(    )。
A)一个双精度表达式        B)一个整型表达式
C)一种函数调用            D)一个不合法的表达式
5.在C语言中, int、char和short三种类型数据在内存中所占用的字节数(    )。
A)由用户自己定义            B)均为2个字节
C)是任意的                  D)由所用机器的机器字长决定
6.判断char型变量c1是否为小写字母的正确表达式为  (    )。
A) 'a'<=c1<='z'          B) (c1>=A. &&(c1<='z')
C) ('a'>=c1)||('z'<=c1)    D) (c1>='a')&&(c1<='z')
7.以下叙述中正确的是(    )。
A)a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值
B)在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式
C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D)已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3
8.表达式18/4*sqrt (4.0)/8值的数据类型为(      )。
A)int        B)float    C)double    D)不确定
9.下列运算符中,不属于关系运算符的是(        )。
A) <    B) > =    C) !    D) ! =
10.若希望当A的值为奇数时,表达式的值为真,A的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是  (        )。
A) A%2= =1  B) !(A%2= =0)    C) !(A%2)      D) A%2
11.已知各变量的类型说明如下:
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)a=a*3=2    C)x%(-3)    D)y=float(i)
12.若变量已正确定义并赋值,下面符合C语言语法的表达式是(      )。
A)a=a+7;    B)a=7+b+c,a++  C)int 12.3%4    D)a=a+7=a+b
13.逗号表达式(a=3*5,a*4),a+15的值为(      )。
A)15    B)60  C)30  D)不确定
14.设Int n=3;则n++的结果是(      )。
A)2    B)3    C)4      D)5
15.用小数或指数形式输入实数时,在scanf函数语句里格式字符为(      )。
A)i            B)f            C)e        D)g
16.可以使用(      )输入字符型数据。
A)putchar(c);  B)getchar(c);  C)getchar();    D)scanf("%c",&c);
17.以下结果为整型的表达式(设有int i; char c; float f;)是(    )。 
A)i+f        B)i*c        C)c+f          D)i+c+f
18.设有逗号表达式(a=3*5,a*4),a+15,a的值为(      )。
A)60    B)30  C)15  D)90
19.设Int n=3;则有表达式n++,n的结果是(    )。    A)2   B)3  C)4    D)5
20.若在scanf函数语句中没有非格式字符作输入数据的间隔,则可用(      )。
作为输入数据的间隔。  A)空格          B)逗号        C)TAB        D)回车
二、判断题:
1.C语言中数据有常量与变量之分。
2.一般一个字符变量在内存中占一个字节。
3.C语言规定,可以在定义变量时,同时使变量初始化。
4.把k1.k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。
5.如果i的原值为3,则:j = ++ i,j的值为3。 
6.凡是表达式都有一个值。
7.输入语句的格式为:scanf("%d,%d,%d",a,b,c);是正确的。
8.在scanf("%d,%*d,%d",&a,&b)函数中,当输入为1,2,3时,将1赋给a,将2赋给b。
9.getchar函数的功能是接收从键盘输入的一个整数。 
10.假定变量a,b,c在说明时已赋初值,则 if  ((a=b;)>0)  c=a;是正确的。 
11.有变量说明 int a=0,b=1,c=2,x,y;,则!(x=a)&&(y=b)&&c的值为1。
12.printf函数是一个标准库函数,它的函数原型在头文件"string.h"中。
13.在printf函数中,格式字符d的意义是:以十进制形式输出带符号整数。
14.在printf函数中,输出表列的各输出项之间可用冒号分隔。
15.若int x=3; printf("%d",&x);则系统不会报错,会输出x的地址。
16.int a=0,b=1,c=2;则表达式a||b+c&&b==c的值为0
三、填空:
1.若有以下定义:char c='\010'; 则变量C中包含的字符个数为(      )。
2.若有以下定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式(x+y)%2+(int)a/(int)b的值为(  )。
3.若a是int型变量、且a的初值为6,则执行下面表达式a+=a-=a*a后,a的值为(    )。
4.若x是int型变量,则执行下面表达式x=a=4,6*2后,x的值为(      )。
5.若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为(      )。
6.scanf函数的地址表列中给出各变量的地址,地址是由( )后跟变量名组成的。
7.使用getchar函数接收字符,若输入多于一个字符时,只接收第(  )个字符。
8.C语言的格式输出函数是(      )。
9.当a=5,b=4,c=2时,表达式a>b!=c  的值是(      )
10.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A || A<B&&!C>B的值是(      )
11.若a=3,b=2,c=1,则表达式a-b<c||b==c的值是(      )
12.有int a=0,b=4,c=5;则表达式a||b+c&&b!=c的值为(      )
13.若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式x%=(n%=2)后,x的值为(    )。
14.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为(    )。
15.若a是int型变量,则执行下面表达式a=25/3%3后,a的值为(    )。
16.表达式1/3*3的计算结果是(    )。
printf函数原型在什么头文件里
17.若a是int型变量,则计算表达式a=25/3%3后a的值为(    )。
18.在输入字符数据时,若"格式控制字符串"中没有非格式字符,则认为所有输入的字符均为(    )字符。
19.在scanf函数中,(    )表示变量a的地址。
20.以下程序的运行结果是(                                  )。
main()
{ printf("%s,%5.3s","computer","computer");  }
21.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b/3+c/2的值是(    )
22.设a=-1,b=0,c=1,则表达式a||b+c&&b==c的值是(    )
23.有int a=3,b=4,c=5,x,y;,则以下表达式!(x=a)&&(y=b)&&c的值为(    )