C7练习题答案

发布时间:2023年12月20日

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

  1. 以下不是 C 语言的特点的是B

A. C 简洁,紧凑
B.不能够编制出功能复杂的程序
C. C语言可以直接对硬件进行操作
D. 语言 C 语言移植性好

  1. 不能进行++和——运算的数据类型是(D)

A. int 型
B. long 型
C. double 型
D. 共用体型

3、若a为int类型,且其值为3,则执行完表达式a±a=ata后, a的值是?

A. 0
B. 8
C. -12
D. 10

  1. 若给定条件表达式(m)?(a++):(a–),则其中表达式 m(B)

A. 和(m=0)等价
B. 和(m!=0)等价
C. 和(m=1)等价
D. 和(m!=1)等价

5,下列运算符中优先级最高的是?

A. <
B. 十
C. %
D.!=

6,有如下程序,输入数据: 12345后(表示回车), x的值是(B)
#include<stdio.h>
void main0{
int x;
scanf(“%3d”,&x);
}

A. 12345
B. 123
C. 45
D. 345

7,打印语句printf"cOMPUTERlbage");在屏幕上正确的输出形式是(D)

A. cOMPUTERage
B. OMPUTERage
C. COMPUTEage
D. cOMPUTEage

8,若有: inti=10; ,则执行下列程序段后,变量i的值为(B)。
switch(i)
{
case 9: i++; break;
case 10: i++; break;
case 11: i++; break;
default: i++;
}

A. 10
B. 11
C. 12
D. 13

9.有一函数关系如下:
在这里插入图片描述
下列程序能够正确表示上述关系的是(C)

A. y=x+1;
if (x>=0)
if (x=0) y=x;
else y=x-1;

B. y=x-1;
if (x!=0)
if (x>0) y=x+1;
else y=x;

C. if(x<=0)
if (x<0) y-x-1;
else y=x;
else y=x+1;

D. y=x;
if (x<=0)
if (x<0) y=x-1;
else y=x+1;

10,在循环体中终止本次循环使用的语句是(B)

A. break语句
B. continue 语句
C. end 语句
D. close语句

11.下面有关for循环的正确描述是(D)

A. for 循环只能用于循环次数已经确定的情况
B. for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D. for 循环体语句中,可以包含多条语句,但要用花括号括起来

  1. 以下程序的输出结果是(C)
    #include <stdio.h>
    void main(){ int num;
    for( num=0;num<=2;num++)
    printf(“%d”,num);
    }

A. 1
B. 123
C. 012
D. 0123

13.在下列选项中,不正确的表达式是?

A. a=(b>c)
B. c-, ++b, a+=1
C. a=c+b>n-m=k
D. p++

  1. 若k 为整型,以下 while 循环(B)次
    nt k=10; while (k=1) k=k-1

;A. 10次
B. 无限循环
c.一次不执行
D. 执行一次

15.下列程序的输出结果是(B)

#include <stdio.h>
struct abc {
int a, b, c
:}; void main()
{
struct abc s[2]={ {1,2,3},{4,5,6}};
int t;
t=s[0].a+s[1].b;
printf(“%dn”,t);
}

A. 5
B. 6
C. 7
D. 8

16,以下对一维整形数组a的正确说明是(D)

A. int a(10);
B. intn=10,a[n];
C. itn;seanf(“%d”,&n);
ra[n];
D. #define N 10
int a[N];

17.岩二维数组 a 有m列,则在 a[i]i]前面的元素个数为(B)

A jm+i
B. i
mtj
C. im+j-1
D. i
m+j+1

18.下面程序的运行结果是D

#include <stdio.h>

int main() {
   
    char a[] = "programming", b[] = "language";
    char *pl, *p2;

    for (int i = 0; i < 7; i++) {
   
        if (*(pl + i) == *(p2 + i)) {
   
            printf("%c", *(pl + i));
        }
    }

    return 0;
}

  1. 在 32 位机中,如果有 char *ssl=“0123456789”,则,strlen (ssl)的值是(B)

A. 4
B. 10
C. 11
D. 40

20,设int占2字节,字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是(B)

#include <stdio.h>

union myUnion {
   
    int i[2];
    long k;
    char c[4];
};

int main() {
   
    union myUnion r, *s = &r;

    s->i[0] = 0x39;
    s->i[1] = 0x38;

    printf("%c\n", s->c[0]);

    return 0;
}

A. 39
B. 9
C. 38
D. 8

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
1_____d=20___

#include<stdio.h>

int 
文章来源:https://blog.csdn.net/weixin_47431459/article/details/134988302
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。