Daily practice——2021/1/27

1.若有说明:int a[10];,则对数组元素的正确引用是()。
A.a[10]   B.a[3.5]  C.a(5)   D.a[10-10]
正确答案:D
解析:因为定义的数组包含10个元素,对数组元素引用的下标是从0~9。显然a[10]超出了数组的范围,A是错误的引用。因数组下标的数据类型必须是整型,所以B是错误的。数组引用应使用中括号,小括号是非法的,所以C也是错误的。故正确答案是D,即引用a[0]。

2.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。
A.c1^c2   B.c1&c2  C.~c2   D.c1|c2
正确答案:A
解析: 92的二进制数是1011100。
A表示按位 异或   1011100 ^1011100 =0000000
B表示按位 与    1011100 &1011100 =1011100
C表示按位 取反   ~1011100=0100011
D表示按位 或    1011100 | 1011100 =1011100

3.下列给定程序中,函数fun的功能是:进行数字字符转换。若形参ch中是数字字符’0’~’9’,则将’0’转换成’9’,‘1’转换成’8’, ‘2’转换成’7’,…, ‘9’转换成’0’;如果是其他字符则保持不变,并将转换后的结果作为函数值返回。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

试题程序:
#include<stdio.h>
_____ fun(char ch)
{
    if(ch>='0'&& _______)
        return'9'-(ch- ______);
    return ch;
}
main( )
{  
    char c1,c2;
    printf("\nThe result:\n");
    c1='2';
    c2=fun(c1);
    printf("c1=%c c2=%c\n",c1,c2);
    c1='8';
    c2=fun(c1);
    printf("c1=%c c2=%c\n",c1,c2);
    c1='a';
    c2=fun(c1);
    printf("c1=%c c2=%c\n",c1,c2);
}

A.int ch<=‘9’ ‘0’  B.char ch<=‘9’ ‘0’  C.char ch<=‘9’ 0  D.int ch<=‘9’ 0
正确答案: A B
解析:AB输出结果都对,都要做类型转换。A项,返回char,那么if条件里面做了隐式类型转换:int数字转成char。B项,返回int,那么main中赋值给char变量的时候做了类型转换,int转char。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值