我是靠谱客的博主 平淡棒球,最近开发中收集的这篇文章主要介绍165-牛客网C语言刷题9,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.假定 a 为一个数组名,则下面存在错误的表达式为?

A.a[i]
B.*a++
C.*a

D.*(a+1)

答案:B
当a为数组名时,可以当做一维指针进行取值运算,但是由于数组名等同于常量指针,所以不可以对数组名进行赋值运算所以当a为数组时, a=任意表达式 这样的计算都是非法的
B:a代表数组的地址,不能被改变
C:*a相当于a[0]是正确的

2.若重载运算符+,则相应的运算符函数名是运算符函数名应该为operator+

3.在32位机器上,下列代码中,sizeof(a)的值是?
答案:22字节
i是4字节
共用体u因为强制为2字节对齐(#pragma pack(2)),所以为14字节,color枚举类型的实例是4字节

4.下面代码段的输出为多少?

void main () { 
    float x=2.0,y;
    if(x<0.0) y=0.0;
    else if (x<10.0) y=1.0/x;
    else y=1.0;
    printf("%fn",y);
} 

答案:0.500000
浮点不可以用==判断是否相等,但是可以用><比较大小
1.0/2.0等于0.5

5.C语言中最简单的数据类型包括整型、实型、字符型,不包括逻辑型

6.阅读以下程序,当输入数据的形式为25,13,10↙,正确的输出结果为?

void main() {
    int x, y, z;
    scanf("%d%d%d", &x, &y, &z);
    printf ("x+y+z=%dn", x+y+z);
}

答案:无法确定
当一次scanf调用需要输入多个数据项时,如果前面数据的输入遇到非法字符,并且输入的非法字符不是格式控制字符串中的常规字符,那么,这种非法输入将影响后面数据的输入,导致数据输入失败。当输入为25,13,10时,a的值是25,y和z的值将无法预测,所以x+y+z的值是无法确定的

7.在C语言中,能代表逻辑值“真”的是非0的数

8.一个 C 语言程序是由函数组成,C语言程序包括主函数与其他函数

9.下面代码在64为系统下的输出为?

void print_array(int arr[]) 
{
    int n = sizeof(arr) / sizeof(arr[0]);
    for (int i = 0; i < n; i++)
        printf("%d ", arr[i]);
}
int main() 
{
    int arr[] = {1, 2, 3, 4, 5};
    print_array(arr);
    return 0;
}

答案:1 2
数组名作为函数形参退化为指针,在64bit的机器中是8字节
所以n=8/4=2,打印两个数字

10.请阅读以下程序,其运行结果是?

void main() { 
    char c='A';
    if('0'<=c<='9') printf ("YES");
    else printf("NO");
}

答案:YES
关系运算符具有左结合性,所以(‘0’<=c<=‘9’)等价于((‘0’<=c)<=‘9’)。因c=‘A’,所以(‘0’<=c)的值为真,即为1,1<='9’的值为真,即为1,所以执行if后面的语句,输出YES

11.数组名作为实参数传递给函数时,数组名被处理为该数组的首地址;数组名作为形参时,数组名退化成指针

最后

以上就是平淡棒球为你收集整理的165-牛客网C语言刷题9的全部内容,希望文章能够帮你解决165-牛客网C语言刷题9所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部