char a[]=\
char b[]={'a', 'b', 'c', 'd'};
则下面叙述正确的是 。 A.a与b数组完全相同 B.数组a比数组b长度大 C.a与b中存放的都是字符串 D.a与b长度相同
若有说明“int a[3][4]={0};\,则下面正确的叙述是 。 A.只有元素a[0][0]可得到初值 B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0 D.数组a中每个元素均可得到初值0 已有定义“int m=3, c, *a=&m, *b=&c;”,则下列语句中错误的是 。 A.a=b=0; B.a=&c, b=a; C.&a=&b; D.*b=*a; 已有定义“char b[6],*p=b;”,则正确的赋值表达式语句是 。 A.b=\ B.*b=\C.p=\ D.*p=\已有定义“int k, b[10], *p=b;”,现需要将1~10保存到b[0]~b[9]中,下面程序段中不能实现这一功能的是 。
A.for(k=1; k<10; k++)b[k]=k+1; B.for(k=0; k<10; k++)p[k]=k+1; C.k=1; while(p
对文件进行操作时,写文件的含义是 。 A.将内存中的信息写入磁盘 B.将磁盘中的信息读到内存 C.将主机中的信息写入磁盘 D.将磁盘中的信息读到主机
已有定义“int a[4][4]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};”,若需要引用值为15的数组元素,则下列选项中错误的是 。 A.*(a+3)+2 B.*(*(a+3)+2) C.*(a[3] +2) D.a[3][2]
若有定义“int a[3][4]={0}, *p1=a[1], (*p2)[4]=a;”,下面表达式中与“a[1][1]=1;”不等价的是 。 A.*(p1+1)=1; B.p1[1][1]=1; C.*(*(p2+1)+1)=1; D.p2[1][1]=1; 下面叙述错误的是 。
A.宏替换不占用程序运行时间 B.宏名无类型 C.宏名必须用大写字母表示 D.宏替换只是字符替换 设有定义和声明语句:
typedef struct cc { int a;
struct cc *b; }node;
static node aa[3]={5, &aa[1], 7, &aa[2], 9, '\\0'}, *p=&aa[0];
下列选项中,表达式值不为5的是 。 A.aa[1].b->a-2 B.p->b->a-2 C.(p+1)->a-2 D.p->a
若有结构类型定义“typedef struct {int x, y[2]; }ABC;”,则下面声明中正确是 。 A.ABC x; B.struct x; C.struct abc x; D.struct ABC x;
若有定义和声明typedef enum{green, red, yellow, blue, b1ack}color; color flower;,则下列语句中正确的是 。 A.green=red; B.flower=red; C.color=red; D.enum=red;
在下面各组标识符中,均可以用作变量名的一组是 。
A.a02, Int B.table_1, a*.0 C.0_a, W13 D.for, point 已知有声明“int x=3, y=4, z;”,则执行语句“z=1/3*(x+y);”后,z的值是 。
A.0 B.3 C.3.5 D.4 已有定义“int a=4, b=5, c=6;”,则下列表达式中值为0的是 。
A.a&&b B.a<=b C.a||b&&c D.!(!c||1) 在 C 程序中,用 表示逻辑值“真”。
A.小于0的数 B.非0的数 C.非1的数 D.大于0的数
C源程序中的命令#include与#define是在 阶段被处理的。
A.预处理 B.编译 C.连接 D.执行
已有预处理命令“#include
A.if(x%2=1)y=x; B.if(sqrt(x)%2)y=x; C.if(x==1)y=x; D.if(x==1)y=&x;
下面关于continue和break语句的叙述中正确的是 。
A.continue和break语句都可以出现在switch语句中
B.continue和break语句都可以出现在循环语句的循环体中
C.在循环语句和switch语句之外允许出现continue和break语句 D.执行循环语句中的continue和break语句都将立即终止循环 下面关于循环语句的结论中错误的是 。
A.可以用while语句实现的循环,一定可以用for语句实现 B.可以用for语句实现的循环,一定可以用while语句实现
C.可以用do-while语句实现的循环,一定可以用while语句实现
D.do-while语句与while语句的区别仅是关键字“while”出现的位置不同 C语言中函数返回值的类型是由 决定的。
A.return语句中的表达式类型 B.调用该函数的主函数类型 C.定义函数时所指定的函数类型 D.以上都可能
已有函数fun的定义“void fun2(void) {printf(\?s great! \”,则调用fun2函数的正确形式是 。
A.fun2; B.fun2(); C.fun2(void); D.fun2(1);
C语言规定,变量作实参时,它和对应形参之间的数据传递方式是 。
A.地址传递 B.单向值传递
C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 若有“int k=4;”,计算表达式(j=k++)后,j和k的值分别为 。
A.j=3, k=3 B.j=3, k=4 C.j=4, k=4 D.j=4, k=5 下列运算符中,优先级最高的是 。
A.-> B.++ C.&& D.=
不用第三个变量,将a和b的值进行交换的操作是 。
A.a+=b;b-=a;a-=b; B.a+=b;b=a-b;a-=b; C.b-=a;a-=b;a-=b ; D.b-=a;a=b-a;a+=b; 下列表示中,不可作为C语言常数的是 。
A.010 B.1UL C.'0x41' D.0xbe 设有定义和声明如下:
#define d 3
int a=3; float b=3.14; char c='d';
下面表达式中有语法错误的是 。 A.a++ B.b++ C.c++ D.d++
下列一维数组的声明中正确的是 。
A.int a[]; B.int n=5,a[n]; C.int a[3+1]={0}; D.int a[3]={4, 3, 2, 1}; 下面函数定义的头部正确的是 。
A.int fun(int a[], b) B.int fun(int a[], int a) C.int fun(int a, int b) D.int fun(char a[ ][], int b) 下面程序段的运行结果是 。
char ch[5]={ 'a', 'b', '\\0', 'd', '\\0'}; printf(\A.'a' 'b' B.ab C.ab d D.a, b
己有声明“int a=2,*p=&a;\,下列正确的语句是 。
A.a=p+1.0; B.p=2*p+1.0; C.p=1000.0; D.a+=*p; 已有定义“char b[6],*p=b;”,则正确的赋值表达式语句是 。
A.b=\ B.*b=\C.p=\ D.*p=\已有定义“int a[5]={10, 20, 3, 40, 50}, *p, i;”,下面语句中不能正确输出a数组全部元素的值的是 。
相关推荐: