C_4练习题答案

2023-12-19 06:36:24

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

  1. 定义如下变量和数组:
    int i;
    int x[3][3]={1,2,3,4,5,6,7,8,9};
    则下面语句的输出结果是(C)
    for(i=0;i<;i++) printf(“%d”,x[i][2-1]);

A. 159
B. 147
C. 258
D. 369

  1. 函数调用:strcat(strepy(strl,str2),str3)的功能是(C)

A.将串str1复制到串st2中后再连接到串str3之后
B. 将串 strl 连接到串 str2之后再复制到串 str3 之后
C. 将串str2 复制到串 str1 中后再将串 str3 连接到串 strl 之后
D.将串str2连接到串str1之后再将串str1复制到串 str3中

3.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是(B)

A. x&&y
B. x>=y
C. xl++y&&y-z
D. x<y&&!zl1

  1. 设有如下定义:
    . struct sk
    {
    int a;float b;}
    data,*p;
    若有p-&data;,则对data中的a成员的正确引用是(B).

A. (*pdata.a
B. (*p).a
C. p->data.a
D. p.data.a

5.执行下面的程序后,结果是(B)

#include <stdio.h>

void main() {
   
    int a, b;

    for (a = 1, b = 1; a <= 100; a++) {
   
        if (b >= 20) {
   
            break;
        }

        if (b % 3 == 1) {
   
            b += 3;
            continue;
        }

        printf("%d ", a);
    }

    b = 5;
}

A.2
B. 8
C.4
D. 10

  1. 设 intb-2:表达式b2/b>>1)的值是(B)

A.2
B. 0
C. 4
D. 8

7,若调用一个函数,且此函数中没有retum语句,则以下正确的说法是(D)

A. 该函数没有返回值
B. 该函数返回若干个系统默认值
C.该函数能返回一个用户所希望的函数值
D.该函数返回一个不确定的值

8,下列四组选项中,均不是C语言关键字的选项是(A)

A. define IF type
B. getc char print
C. includecasescanf
D. whilegopow

  1. inta,*p;p=&a;下列写法不等价的是(A)

A. *(p++)=a++
B. &*p=&a
C. (*p)+=a++
D. *&a=a

  1. 若有以下定义和语句:inta [10] = {1, 2, 3, 4. 5, 6, 7, 8, 9, 10}, *p=a;则不能表示a数组元素的表达式是(B)

A. p
B. a [10]
C. *a
D. a [p-a]

  1. C语言中,运作对象必须是整型数的运算符是(A)

A. %
B.
C. %和、
D.**

12.设有如下定义: int x=10,y=3z;则语句printf(“%din”,2-(x%yx/y));的输出结果是(D)

A. 1
B. 0
C. 4
D. 3

  1. 以下不正确的if语句是(D)

A. if(m>n);
B. if(m=n)m+=n;
C. if(m!=n) scanf(“%d”, &m); else
scanf(“%d”, &n);
D. if(m=n)&&(n!=0) n+=m;

14,设有说明int*ptr[M];其中的标识符ptr是(D)

A. M 个指向整型变量的指针
B.指向M个整型变量的函数指针
c.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组名,每个元素都只能指向整型变量

15.设有语句: “int a=1, b=2, *pl=&a, *p2=&b;”,则使指针pi指向变量b的赋值语句是(C)

A. pl=*p2
B. *pl=p2
C. pl=p2
D. *pl=*p2

16,有如下程序
#include <stdio.h>
void main{
int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++) n[i]=n[i]+1;
printf(“%dn”,n[k]);
}
该程序的输出结果是(D)
A. 不确定的值
B. 2
C. 1
D. 0

17有以下程序,执行后输出结果是(B )
#inolude <stdio.h>
void main{
int x[8]=(8,7,6,5,0,0},*s;
s=x+3;
printf(“%dn”,s[2]);
}

A. 随机值
B.0
C.5
D.6

18.下面的程序的输出结果是(D)
#include <sidio.b>
void main()
{
int x=3,y=0,z=0
if(x=y+z)printf(“*”);
else printf(“# # # #”);
}

A. 有语法错误不能通过编译
B.输出
C.可以通过编译,但是不能通过连接,因而不能运行
D.输出####

  1. 以下程序的输出结果是(B)
    #include<stdio.h>
    void main()
    {
    printf"%dn",NULL);}

A. 不确定的值(因变量无定义)
B.0
C. -1
D. 1

  1. 以下程序的输出结果是(B)
    #include <stdio.h>
    void main()
    {char *s=“2468”;
    int ql=0,q2=2;
    printf(“%s%sin”,s+ql,s+q2);
    }

A. 26
B. 246868
C.输出项不合法
D. 存放字符的地址值

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

4,5

//从键盘输入china
#include <stdio.h>

int main() {
   
    int v1 = 0, v2 = 0;
    char ch;

    while ((ch = getchar()) != '\n') 

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