一.选择题 1、()是不正确的。
A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。
A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的;
C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名
A. k.jeep B. int C. k_5 D. –k15
4、若有定义 int m=4321, n=123, k=21; 语句printf( “M+=+-”,m,n,k); 执行后的输出结果是()
A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21
5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b A、1; B、变量j的值 C、变量i的值 D、 0 6、设已定义float a=2 .0,b=3 .0 ; 使a 的值为5. 0 的表达式是() A、a-=b+2.0 B. a*=b+2.0 C. a/=b+2.0 D. a+=b 7、在循环语句的循环体中,break语句的作用是() A、结束本次循环 B、暂停程序的运行 C、继续执行break语句之后的循环体各语句 D、提前结束循环,接着执行该循环后续的语句 9、若已定义,int x[4]={2,1,3};则元素x[1]的值为() A、2 B、3 C、1 D、0 10、以下程序执行后的输出的结果是() int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(\ A、7 B、6 C、3 D、2 11、( )是正确的叙述. A.++3与4等价 B.5/6与5.0/6.0等价 C ?a?与”A”等价 D5.0/6与5/6等价 12.以下叙述正确的是( ) A使用带参数的宏定义时,应该说明每个参数的数据类型, B”#DEFINE PRICE=30 “定义了与30等价的符号常量PRICE, C 一个源程序只能有一个编译预处理命令行, D编译预处理命令行都必须以”#”开头. 13、 以下叙述错误的是( ) A一个指针变量只能指向类型相同的变量. B存放地址的变量称为指针变量. C NULL可以赋值给任何类型的指针变量 D 两个相同类型的指针变量可以作加减运算. 14、 以下程序段运行后变量s的值是( ) int a[ ]={ 1,2,3,4,5,6,7}; int i,s=1,*p; p=&a[ 3]; for (i=0; i<3;i++) s*=*(p+i); A 210 B 120 C 60 D 6 15、设已定义:char s1[8],s2[8]=“Science”;能将字符串“Science”赋给数组s1的语句是() A、s1=s2; B、strcpy(s1,s2); C、S1=”Science”; D、strcpy(s1,s2); 16、以下程序运行的结果是() #include main() { int a=6; printf(\ } A、6,5 B、3,5 C、6 D、5 17、若有定义int a,x;则语句a=(x=8,x+8),运行后,变量a,x的值依旧为( ) A 16,16 B 16,8 C 8,8 D 8,16 18、 以下程序运行后输出结果是( ) #define MIN(m,n) m { int a=3,b=5,c; c=2*MIN(a,b); printf(“%d”,c); } A 3 B 5 C 10 D 6 19、 语句k=(m=3,n=++m);运行后,变量k,m,n的值依次为(4,4,4 ) A 5,6,5 B 6,6,6 C 5,5,6 D 6,6,5 20、 若以定义double y ,从键盘输入一个值赋给变量y,则正确的函数调用是( ) A scanf(“”,&y); B scanf(“%7.2f”,&y); C scanf(“”,&y); D scanf(“%d”,&y); 21、 已定义char c=?A?, 则正确的赋值表达式是( ) A c=((c++)%4) B c=\\0 28 C c+=127-- D c+1=66 22、若已定义 int x= -16, y= -12,z;语句z=x<=y; 运行后z的值是() A、f B、 .t . C、0 D、1 23、下面叙述正确的是( ) A每行只能写一条语句, B程序中必须包含有输入语句 C变量按所定义的类型存放数据 D main函数必须位于程序开头 24、( )为非法字符串常量. A?egf? B” ” C”s” D”26?62” 25. 若有定义int m=6,则正确的赋值表达式是( ) A m*5=8 B m*7 C m-=m*6 D double(-m) 26、若有定义int i=1,j=9,则表达式(++j)*(i- -)的值为( ) A8 B0 C9 D10 27、关于C语言数据类型正确的是: A.枚举类型不是基本类型 B.数组并不是构造类型 C.变量必须先定义生使用 D.不允许使用空类型 28、若变量 m,n,t 已定义且赋予初值,则正确的表达式是: A. m=int(5.6%4) B. m=m+1=t-n C. m=6+n+t,m++ D. m=m/2 29、设整型变量x为7,使整型变量y不为2的表达式是; A. y=(++x)/3 B. y=x%3 C.y=x/3 D. y=8-(- -x) 30. 已定义 int m= ?A?; 则正确的表达式是()。 A. 2*m=m++ B. m%3 C. m=m-m=m-5 D. m=int(-3.2) 31. 以下程序运行的结果是()。 Void main() { int x,y,z,a; x=y=z=1; a=15; if(!x) a--; else if(y) ; if(z) a=3; else a+=4; printf(“%d\\n”,a); } A.19 B.14 C.3 D.15 32.正确的数组定义是()。 A int n=10,x[n]; B. int x[10]; C int N=10; int x[N]; D. int n; scanf(“%d”,&n); int x[n]; 33. 若有定义:int a[3][4];则表达式&a[2][1]-a的值为()。 A.9 B. 7 C。10 D。8 34.有如下定义: char str[10]={“National”}; 则分配给数组srt的存储空间是()个字节。 A.9 B。10 C。8 D。11 35. 以下程序运行后输出结果是()。 Void fun(int i) { int m=2; m=i++; printf(“%d”,m); } main() {int m=7,n=5; fun(n); printf(“%d”,m); } A. 6 7 B. 6 6 C. 5 5 D. 5 7 36、 有以下语句: int a[5]{0,1,2,3,4,5},i; int *p=a; 0<=i<5,对a数组元素不正确的引用是()。 A.p[i] B.*(*(a=i)) C.a[p-a] D.*(&a[i]) 37.以下程序运行结果是()。 int a[]={1,2,3,4,5,6,7},*p=a; int n,sum=0; for(n=1;n<6;n++) sum+=p[n++]; p[1]+p[3]+p[5] printf(“%d”,sum); A.16 B.27 C.15 D.12 38. 若有定义: struct student { int num; char name[8]; char sex; float score; }stu1; 则变量stu1所在占用的确内存字节数是()。 A.15 B.19 C.8 D.16 39、 ( )为正确的字符常量 A \ B \ C \ D \41、 判定逻辑值为"真"的最准确叙述是( ) A 大于0的数 B 1 C 非0的整数 D 非0的数 42、 若定义int a=1,b=2,t=3;则执行以下程序段后变量a,b,t的值分别为( ) A a=2,b=1,t=1 B a=3,b=1,t=2 C a=2,b=1,t=3 D a=2,b=1,t=2 43、 若已定义int a;不会产生死循环的语句是( ) A while(-1) {a++;} B for(a=10;a--); C for(;(a=getchar())!='\\n';) D for(;;a+=2);