C_15练习题答案

发布时间:2023年12月24日

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

  1. C程序是由(D)构成的。

A.常量
B.变量
C.运算符
D. 函数

  1. 下列合法的标识符是(A)

A. Case
B. Li-da-yong
C. 3con
D. Sa

3.以下描述不正确的是?

A.宏名无类型
B. 宏替换不占用运行时间
C.宏名必须用大写字母表示
D.宏替换只悬孚符替换

4.以下正确的字符常量是(B)

A. 412
B. 255
C. 108"
D.‘’

  1. 下面叙述中正确的是(B)

A.若int a=3, b=2,c=1; f=a>b>c;则f值为真
B.若intm=0, n=l,a=1.b=2,c=3;(m=a>b)&&(n=c>4),则n值为真
C.若inta=2,b=3,c=1;c=a/b;则c的值为真
D.若inta=2,b=3;表达式a>b?a:0的值为真

6·定义doubie i=3.5.j=5.5;则表达式(int)i+j的值是(B)。

A. 9.0

B. 8.5
C.8
D. 8.0

7,若intx=6:则x+=x-x*=x; x的值为(A)

A.0
B. -60
C. 60
D. -24

8.已有定义"intx=3,y=4,z=S;“,则表达式”!(x+y)+z-1 &&y+z/2"的值是(D)

A. 6
B.0
C. 2
D. 1

  1. 对于循环while(le)语句,le 等价于(A)

A. e=0
B. e! =0
C. e=
D. e! =1

10,使用"scanf (“X=%fy=%f”, &x. &y) ",要使X, y均为1.25,正确的输入是?

A. 1.25, 1.25
B. 1.25 1.25
C. X=1.25,y=1.25
D. x=1.25,y=1.25

11.设变量已正确定义,以下( )与其它switch语句不等价。
D

A
#include <stdio.h>

int main() {
int op, value1, value2;

// Assume that you have variables value1 and value2 defined somewhere

switch (op) {
    case '+':
        printf("%d\n", value1 + value2);
        break;
    case '-':
        printf("%d\n", value1 - value2);
        break;
    case '*':
        printf("%d\n", value1 * value2);
        break;
    default:
        printf("Error\n");
        break;
}

return 0;

}

B
#include <stdio.h>

int main() {
int op, value1, value2;

// Assume that you have variables value1 and value2 defined somewhere

switch (op) {
    default:
        printf("Error\n");
        break;
    case '*':
        printf("%d\n", value1 * value2);
        break;
    case '-':
        printf("%d\n", value1 - value2);
        break;
    case '+':
        printf("%d\n", value1 + value2);
        break;
}

return 0;

}

C
#include <stdio.h>

int main() {
int op, value1, value2;

// Assume that you have variables value1 and value2 defined somewhere

if (op != '+' && op != '-' && op != '*') {
    printf("Error\n");
} else {
    switch (op) {
        case '+':
            printf("%d\n", value1 + value2);
            break;
        case '-':
            printf("%d\n", value1 - value2);
            break;
        case '*':
            printf("%d\n", value1 * value2);
            break;
    }
}

return 0;

}

D
#include <stdio.h>

int main() {
int op, value1, value2;

// Assume that you have variables value1 and value2 defined somewhere

switch (op) {
    case '+':
        printf("%d\n", value1 + value2);
        break;
    case '-':
        printf("%d\n", value1 - value2);
        break;
    case '*':
        printf("%d\n", value1 * value2);
        break;
}

return 0;

}

12,若变量已正确定义,对以下while循环结束条件的准确描述是(A)。

#include <stdio.h>
#include <math.h>

int main() {
   
    int flag = 1;
    int denominator = 1;
    double item = 1.0;
    double pi = 0;

    while (fabs(item) > 0.0001) {
   
        item = flag * 1.0 / denominator;
        pi = pi + item;
        flag = -flag;
        denominator = denominator + 2;
    }

    return 0;
}

A. item的绝对值不大于 0.0001
B. item的绝对值不小于0.0001
C. item的绝对值等于0.0001
D.item的绝对值不等于0.0001

13,若有定义, int a[10];,则对数组a元素的正确引用是(D)

A. a[10]
B. a[3.5]
C. a(5)
D. a[10-10]

  1. 若有以下说明语句:
    struct date{int year,month,day;}birthday;则下面叙述不正确的是(D)。

A. struct 是结构体类型的关键字
B. struct date是用户定义的结构体类型名
C. year、 month、day都是结构体成员名
D. bitthday是用户定义的结构体类型名

15,有两个字符数组a,b,则以下正确的输入语句是(B)

A. gets(a,b);
B. scanf(“%s%s”,a,b);
C. scanf(“%s%s”,&a,&b);
D. gets(“a”).gets(“b”);

  1. C语言程序中,当调用函数时(A)

A.实参和形参各占一个独立的存储单元
B.实参和形参共用一个存储单元
C可以由用户指定是否共用储存单元
D.由家统自动指定是否共用存储单元

17,关于语言中的函数,下列说法错误的是(A)。

A+在不同的函数中不可以使用相同名称的变量。
B.函数中的形式参数是在栈中保存的。
C.在一个函数内定义的变量只在本函数范围内有效。
D.在一个函数内的复合语句中定义的变量在本复合语句范围内有效。

  1. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)+相当于(B)

A. p
B. x++
C. *(p+)
D. &x++

19.定义下列结构体数组:

#include <stdio.h>

struct st {
   
    char name[15];
    int age;
} a[10] = {
   
    {
   "ZHAO", 14},
    {
   "WANG", 15},
    {
   "LIU", 16},
    {
   "ZHANG", 17}
文章来源:https://blog.csdn.net/weixin_47431459/article/details/135034353
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。