浙江万里学院计算机C语言
考试方式:【闭卷】 考试时间:【90分钟】 总分:【100分】
一、单项选择题(共20题,每小题2 分,共 40分)
1、设在c语言中,float类型数据占4个字节,则double类型数据占(  )个字节。
    A、1
    B、2
    C、8
    D、4
答案C
2、设a为整型变量,下列选项中不能正确表达数学关系:10<a<15________。
    A、10<a<15
    B、a==11 || a==12
    C、a>10 && a<15
    D、!(a<=10)&&!(a>=15)
答案B
【解析】B选项中得到的a值不能使10<a<15成立。
3、表达式,0x13&0x17的值是________。
    A、0x17
    B、0x13
    C、0xf8
    D、0xec
答案B
4、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
    A、a!=4||b==1
    B、'a'%3
    C、'a'=1/2
    D、'a'+32
答案C
【解析】选项C中的'a'是单字节它是不允许被赋值的。所以选项C是非法的表达式。选项A是逻辑表达式,是正确的。选项B是字符'a'的值与3进行求余运算。是正确的。选项D参加运算的也是字符'a'的值,所以这个表达式也是正确的。
5、在"先判断后工作"的循环程序结构中,循环体执行的次数最少是________次。
    A、1
    B、0
    C、2
    D、不定
答案B
6、有以下程序
main()
{
    int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;
    for(i=0;i<3;i++)
    for(k=i+1;k<4;k++)
    if(a[i][i]<a[k][k])
    {
        t=a[i][i];
        a[i][i]=a[k][k];
        a[k][k]=t;
    }
    for(i=0;i<4;i++)
    printf("%d,",a[0][i]);
}
程序运行后的输出结果是________。
    A、6,2,1,1,
    B、6,4,3,2,
    C、1,1,2,6,
    D、2,3,4,6,
答案B
【解析】本题使用选择法对二维数组对角线上的元素按从大到小的顺序进行排列。最后输出数组第一行的数据。故本题答案为B)。
7、设"int x=2,y=1; ",则表达式(!x || y--)的值i是________。
    A、0
    B、1
    C、2
    D、-1
答案B
8、以下程序输出的结果为 ______。
main()
{
    char *alpha[6]={"abcd","efgh","ijkl","mnop","qrst","uvwx"};
    char **p;
    int i;
    p=alpha;
    for(i=0;i<4;i++) printf("%s",p[i]);
}
    A、ABCDEFGHIJKL
    B、ABCD
    C、ABCDEFGHIJKLMNOP
    D、AEIM
答案C
【解析】alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。
9、以下叙述中错误的是
    A、用户所定义的标识符允许使用关键字
    B、用户所定义的标识符应尽量做到"见名知意"
    C、用户所定义的标识符必须以字母或下划线开头
    D、用户定义的标识符中,大、小写字母代表不同标识
答案A
10、c语言中,下列不合法的字符串常量是________。
    A、”\121”
    B、'y='
    C、”\n\n”
    D、”ABCD\x6d”
答案B
11、下面程序段的功能是________。
…… int a[]= {4,0,2,3,1},i,j,t;
for(i=0;<5;i++)
{字符串长度为0和50之间
t=a[i];
j=i;
j--;
}
while(j>=0&&t>a[j])
{
a[j+1]=a[j];
j--;
a[j+1] =t;
}
……
    A、对数组a进行插入排序(升序)
    B、对数组a进行插入排序(降序)
    C、对数组a进行选择排序(升序)
    D、对数组a进行选择排序(降序)
答案B
【解析】本题考查数组的使用,注意插入排序方法。
12、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是________.
    A、float
    B、int
    C、long
    D、double
答案B
13、以下关于c语言的叙述中正确的是________。
    A、C语言中的注释不可以夹在变量名或关键字的中间
    B、C语言中的变量可以再使用之前的任何位置进行定义
    C、在C语言算术的书写中,运算符两侧的运算数类型必须一致
    D、C语言的数值常量中夹带空格不影响常量值的正确表示
答案B
【解析】C语言中的注释”/**/”或者”//”可以放在程序中的任何位置,但是不可以加在变量名或者关键字中间,会导致该变量名和关键字不被C语言识别,选项A)正确;C语言中变量的定义必须在变量使用之前,而且定义时该变量的作用域一定要能涵盖该变量的使用,所以定义的位置不是任意的,选项B)错误;算术运算符两侧的运算数类型可以不一致,如加减乘除运算符都没有对运算数类型进行限制,如果不一致,系统会对其进行相应的数据类型转换,选项C)错误;空格一般作
为分隔符使用,数值常量中夹带空格就会把该数值常量分作两部分:123和12 3是不一样的,选项D)错误;答案选A)。 知识模块:数据类型、运算符与表达式
14、请读程序段:char str[]="abcd",*p=str; printf("%d\n",*(p+4));
程序段的输出结果是 ______。
    A、68
    B、0
    C、字符D的地址
    D、不确定的值
答案B
【解析】在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志'\0',故指向字符数组的指针p的*(p+4)的值为'\0'。由于'\0'的编码值就是0,所以本题输出为0。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。