题目
-
整型变量x和y的值相等,且为非0值,则以下选项中,结果为0的表达式是 。
A、x||y
B、x|y
C、x&y
D、x^y -
结合所学知识,思考死循环怎么写?有几种写法?简单编写,伪代码实现。
-
若已定义 char s[10]; 则在下面表达式中不表示s[1]的地址的是 。
A、s+1
B、s++
C、&s[0]+1
D.&s[1] -
以下对二维数组a的正确说明是 。
A、int a[ ][3]={ 0 };
B、int a[3][ ]={ {1},{2},{3} };
C、int a[1][3]={ 1,2,3,4 };
D、int a[2][3]={ {1,2},{3,4},{5,6} }; -
以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( )。
#include <stdio.h>
int main(void)
{
char s[80];
int i, j;
gets(s);
for( i=j=0; s[i] != ‘\0’; i++ ){
if ( s[i] != ‘c’ ){
______________;
}
}
s[j] = ‘\0’;
puts( s );
return 0;
}
A.s[j++] = s[i];
B.s[++j] = s[i];
C.s[j] = s[i]; j++;
D.s[j] = s[i]; -
下面代码的功能是( )。
char x[] = “chaungke”;
char*y=x;
while(*y != ‘\0’)
{
y++;
}
printf(“%d”, y-x-1);
A. 求字符串的长度
B. 比较两个字符串的大小
C. 将字符串x复制到字符串y
D.将字符串x连接到字符串y后面 -
假定在32位机中,定义char a[20];char *p = a;那么sizeof(a),sizeof§输出的值是( C )
A) 20,1 B) 80,4 C) 20, 4 D)40, 2 -
若有定义int i=2,a[10],p=&a[i];则与p++ 等价的是 。
A、a[i++]
B、a[i]++
C、a[i]
D、a[++i] -
将以下代码填充,看看你会几个?
int main(){
char a = 10;
char p = &a;
/ 打印a变量存储的值 /
/ 打印a变量存储空间的首地址 /
/ 打印p变量存储的值,打印地址格式用%p /
/ 打印p变量存储空间的首地址*/
/* 打印p指向的存储空间中存储的值 /
/ 使用所有可以表示a数据值的打印方法 /
/ 使用所有可以表示a存储空间首地址的打印方法 */
return 0;
} -
有定义int k=2,*p1,*p2;且p1与p2均已指向变量k,下面不能执行的语句是()
A. k=*p1+*p2;
B. p2=k;
C. p1=p2;
D. k=p1(*p2);
部分答案分析
题1
这个符号是异或的意思,比较的两个变量x和y不管值是多少,相等异或为0,不等异或为1。
题2
while(1);
do{}while(1);
for(;1;){};
tip:
goto tip;
题3
s是个常量地址,所以不能自增去改变,语法错误;但可以进行数组值偏移来实现,所以s+1是对的,相当与首地址+1;因为是char型,所以偏移一个单位就是偏移1,如果是int型则是偏移4了,这里要注意。
题4
二维数组里规定,可以省略行但不能省略列
题7
题8
++ 和 * 符号等级是一样的,而且结合方向是从右到左,还有一个关键点是,指针自增而不是值自增。
题9