12 单选(2分)
语句
while(x%3) a++;
中的表达式
x%3
等价于___C___.(A)
- A.
x%3!=0
- B.
x%3==2
- C.
x%3==1
- D.
x%3==0
重点:0为假,非0为真
46 填空(2分)
若有
int x = 5;
则
! x<10
的结果(以整数表达)是___0____ (1
重点:运算符优先级
43 填空(2分)
下列代码段的输出结果是:
char s[]="Zhejiang";
s[strlen(s)/2-1]=0;
printf("%lu#%s#",strlen(s),s);
8#Zhe0jiang#
正确答案:3#Zhe#
重点:%s输入字符串遇空格换行0时停止输入
6 单选(2分) 对于如下定义:
int k,a[10],*p=a;
哪个表达式是不正确的 D (A)
- A.a++
- B.a[0]=k
- C.*p++=2
- D.p[0]=k
重点:A中a是地址,D中p存的是a数组的地址约等于a[0]=k
42 填空(2分)
程序T1的代码如下,则运行T1 abc bcd cde aed的输出结果是_______.
int main(int argc, char** argv) {
while(**argv++!='a');
printf("%s", *argv);
return 0; }
答:abcaed (bcd)
重点:参数char** argv可理解为和char* argv[]一样,即字符串数组,一个全为指针的数组每个指针指向字符串,
**argv++——>argv[0]++,即已经加一但判断!=‘a'时没加,则argv[0]指向abc,加一后下一个指向bcd
若定义chars[2][3]="ab","cd"} p=(char)s;
那么下列表达式语法正确并且其值与s[1][1]相等的表达式(并非一定与其等价)是(
)。
(3分)
A、*(s+3)
B、*++p+2
C、*s+2
D、p[1][1]
重点:
A答案 等价于*(S[0]+3) 则指向字符c
B答案
版权归原作者 Squanchy803 所有, 如有侵权,请联系我们删除。