出自:国家开放大学程序设计基础

以下说法不正确的是( )
A.switch后面括号的表达式只能是整型,字符型
B.case语句是起标号的作用,但可以重名
C.各个case语句的出现次序可以任意
D.多个case可以共用一组执行语句
C语言中的标志符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A.必须是字母
B.可以是下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中任一种字符
下面表示正确的是( )
A.c语言中的逗号是一种运算符
B.在C语言中,一行可以有多个语句
C.C中的变量不区分大小写
D.c中的关键字可以做为变量名
以下数据中,正确的数值或字符常量是:( )
A.0.0
B.5L?
C.o13
D.9861
以下标识符中,能作为合法的C用户定义标识符的是:( )
A.a3-b3?
B.void
C.-123
D.abc
在C语言中,要求运算数必须是整型的运算符不是( )
A.%
B./
C.<
D.!
下列语句中符合C语言语法的赋值语句不是( )
A.a=7+b+c=a+7
B.a=7+b++=a+7
C.a=7+b,b++,a+7
D.a=7+b,c=a+7
下列程序int d=1;fun(int p){int d=5;d+=p++;printf("%d",d);}main(){int a=3;fun(a);d+=a++;printf("%d\n",d);}执行后输出的结果错误的是( )
A.8 4
B.9 6
C.9 4
D.8 5
下列程序的输出结果不正确的是( )main(){int a[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}
A.4?4
B.2?2
C.2 4
D.4 6
以下程序的输出结果错误的是( )main(){int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d %d %d\n",k,a,b);}
A.1 0 4
B.1 0 3
C.0?0?3
D.0?0?4
执行下面的程序后,a的值不为( )main(){int a,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}
A.7
B.8
C.9
D.10
定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果错误的是( )for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A.1 5 9
B.1 4 7
C.3 5 7
D.3 6 9
C语言中,运算对象必须是整型数的运算符不正确的是( )
A.%
B.\
C.%和\
D.* *
以下程序的输出结果错误的是( )#include <stdio.h>main(){printf("%d\n",NULL);}
A.1
B.0
C.-1
D.不确定的值(因变量无定义)
与十进制数96等值的二进制数不是( )
A.1100000
B.1010110
C.1100001
D.1100011
若有以下的定义和语句:main(){int a[4][3], *p[4], j;for(j=0; j<4; j++) p[j]=a[j];┇}不能表示a数组元素的表达式是( )
A.*(p[1])
B.a[4][3]
C.a[1]
D.*(p+4)[1]
下面程序main(){char *s="wbckaaakcbw";int a=0, b=0, c=0, x=0, k;for(; *s; s++)switch(*s){case .c. : c++;case .b. : b++;default : a++;case .a. : x++;}printf("a=%d,b=%d,c=%d,x=%d\n",a,b,c,x);}输出结果不正确的是( )
A.a=8, b=4, c=2, x=11
B.a=4, b=2, c=2, x=3
C.a=8, b=4, c=2, x=3
D.a=4, b=4, c=2, x=3
若fp为文件指针,且文件已正确打开,fseek(fp,0,SEEK_END);i=ftell(fp);printf("i=%d\n", i);以下语句的输出结果为错误的是( )
A.fp所指文件的记录长度
B.fp所指文件的长度,以字节为单位
C.fp所指文件的长度,以比特为单位
D.fp所指文件当前位置,以字节为单位
以下叙述中正确的是( )
A.预处理命令行都必需以#号开始
B.在程序中凡是以#号开始的语句行是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.#define IBM _PC 是正确的宏定义
在位运算中,操作数每右移一位,其结果相当于( )
A.操作数乘以2?
B.操作数除以2?
C.操作数除以16?
D.操作数乘以16
若x=10010111,则表达式 (3+(int)(x))&(~3)的运算结果错误的是( )
A.10011000
B.10001100
C.10101000
D.10110000
设有以下语句:struct st{int n; struct st *next;};static struct st a[3]={5,&a[1],7,&a[2],9,.\0.},*p;p=&a[0];则值为6的表达式不是( )
A.p++->n
B.p->n++
C.(*p)n++
D.++p->n
以下选项中,不能看作一条语句的是( )
A.{;}
B.a=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;???
BCD
A.11,<空格>12<回车>
B.11,12<回车>
C.11,<回车> 12<回车>
在C语言程序中,以下说法不正确的是( )
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用都不可以嵌套
D.函数的定义和函数的调用都可以嵌套
以下程序的输出结果不是( )main(){int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d %d %d\n",k,a,b);}
A.1 0 4
B.1 0 3
C.0?0?3
D.0?0?4
以下叙述中正确的是( )
A.在C中,调用函数时,只能把实参的值传送给形参
B.在C的函数中,最好使用全局变量
C.在C中,形式参数只是局限于所在函数
D.在C中,函数名的存储类别为外部
下面各语句行中,不能正确进行赋字符串操作的是( )
A.char?s[5]={.a.,.b.,.c.,.d.,.e.}
B.char *s;s="NOPQRS"
C.char s[5];scanf("%s",&s)
D.char *s;gets(s)
下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是( ).
A.可以是整型或字符型数据
B.只能是0或1
C.只能是0或非0正数
D.可以是任何类型的数据
设有以下定义 int a=0; double b=1.25; char c=.A.; #define d 2则下面语句中正确的是( )
A.a++
B.b++
C.c++
D.d++
以下合法的十六进制数是( )
A.oxff
B.0Xabc
C.0x01
D.0X9X
若a,b,c,d都是int型变量且初值为0,以下选项中正确的赋值语句是( )
A.a=b=c=d=100
B.d++
C.c+b
D.d=(c=22)-(b++)
以下选项中不是C语言合法整数的是( )
A.10110
B.386
C.0Xffa
D.x2a2
以下可以定义为用户标识符的有( )
A.scanf
B.short
C._3com_
D.int
以下描述错误的是( ).
A.continue语句的作用是重新开始一次循环体的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句和continue语句的作用相同
D.从多重循环嵌套中退出是,只能使用goto语句
以下叙述正确的是( ).
A.C语言严格区分大小写英文字母
B.C语言用";"作为语句分隔符
C.C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上.
D.可以使用/*…*/对C程序中的任何部分作注释
以下选项中,合法的字符常量是( ).
A..\t.
B.n
C..\xaa.
D..\17.
以下描述正确的是( ).
A.使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成
B.while循环是先判断表达式,后执行循环语句
C.do-while和for循环均是先执行循环语句,后判断表达式
D.for,while和do-while循环中的循环体均可以由空语句构成
以下叙述正确的是( ).
A.预处理命令行都必须以"#"开始
B.在程序中凡是以"#"开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.#define ABCD是正确的宏定义
以下正确的if语句形式是( ).
A.if (x>y && x!=y);
B.if (x==y) x+=y;
C.if (x!=y) scanf("%d",&x) else scanf("%d",&y);
D.if (x<y) {x++;y++;}
若以下选项中的变量已正确定义,则不正确的赋值语句是( ).
A.x1=26.8%3
B.x=3*x+x
C.x3=0x12
D.x4=1+2=3;
以下不符合C语言语法的实型常量是( ).
A.1.2E0.5
B.3.14.159E
C.5E-3
D.E15
以下对二维数组a进行正确初始话的是( ).
A.static char word[]=.Turbo\0.;
B.static char word[]={.T.,.u.,.r.,.b.,.o.,.\0.};
C.static char word[]={"Turbo\0"};
D.static char word[]="Turbo\0";
以下描述正确的是( ).
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将为形参分配内存单元
D.调用函数时,实参与形参的类型必须一致
以下对switch语句和break语句中描述错误的有( ).
A.在switch语句中必须使用break语句
B.break语句只能用于switch语句
C.在switch语句中,可以根据需要使用或不使用break语句
D.break语句是switch语句的一部分
以下选项中合法的表达式是( ).
A.0<=x<100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1
已定义c为字符型变量,则下列语句中错误的是( ).
A.c=.97.;
B.c="97";
C.c=97;
D.c="a";
以下选项中不合法的字符常量是( ).
A..\010.
B.B
C.68
D.D
以下不合法的赋值语句是( ).
A.x=y=100
B.d--;
C.x+y;
D.c=int(a+b);
以下关于typedef的叙述正确的是( ).
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的名字来代表
D.使用typedef便于程序的通用