C练习题_2答案

发布时间:2023年12月18日

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

  1. 以下叙述中错误的是(C)

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数

2,在C程序中,若函数没有返回值,则定义函数函数时需定义函数类型为 C
A. int
B. double
C. void
D. char

  1. 以下叙述不正确的是(C)

A.在C程序中,语句之间必须要用分号";"分隔
B.若a是实型变量,
C程序中a=10是正确的,因为实型变量中允许存放整型数C.在C程序中,无论是整数还是实数都能正确无误地表示
D.在C程序中,%是只能用于整数运算的运算符

4·若有定义: intx;要将x强制转换为双精度型,应该写成(C)

A. x(double)
B. x(double)
C. (double)x
D. double(x)

  1. 在 C语言中,引用数组元素时,其数组下标的数据类型允许是(C)

A. 整型常量
B.整型表达式
C. 整型常量或整型表达式
D.任何类型的表达式

6,若变量已正确定义,执行语句scanf("%d%d%d ",&kl,&k2,&k3);时,(B)是正确的输入。

A. 2030,40
B. 2030 40
C. 20, 3040
D. 20,30,40

  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. 1234

  1. 设整型变量 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是(D)
    A. 33
    B. 2
    C.1
    D. 0

9.已知:charc=‘A’;int i=1;j执行语句j=!c&&i++;,则i和j的值是(B)
A.1,1
B.1,0
C.2,1
D.2,0

10,设有如下定义: int(*ptr));则以下叙述中正确的是(C)

A. ptr是指向一维数组的指针变量
B. ptr是指向 int 型数据的指针变量
C. ptr 是指向函数的指针,该函数返回一个 int型数据
D. ptr是一个函数名,该函数的返回值是指向int型数据的指针

  1. 不合法的八进制数是(B)

A. 00
B. 028
C. 077
D. 01

  1. 以下函数说明正确的是(D)

A. int add(char x[][]);
B. int add(int x;int y);
C. char add( x,y);
D.float add(int x, int y);

13,以下选项中,不能作为合法常量的是(B)

A. 1.234e04
B. 1.234e0.4
C. 1.234e+4
D. 1.234e0

  1. 与语句"y=(x>0?1:x<0?-1:0);"功能相同的if语句是(A)
    A. if (x> 0)y = 1;
    else if (x <0)y =-1;
    else y = 0;

B. if (x)
if (x> 0) y = 1;
else
if (x <0)y =-1;
else y= 0;
C. y=-1;
if (x)
if (x> 0)y =1;
else if (x=0)y=0;
else y=-1;
D. y=0;
if (x>=0)
if (x>0)y=1;
else y =-1;

15.已知字符b的ASCI码为98 ,语句printf(“%d,%c”,"b’,‘b’+1);的输出为(B)

A. 98,b
B. 98,c
C. 98, 99
D. 语句不合法

  1. 由C 语言源程序文件编译而成的目标文件的缺省扩展名为(C)

A. cpp
B. exe
C. obj
D. C

  1. C 语言程序的基本模块为(D)

A.表达式
B. 标识符
C. 语句
D. 函数

18,循环体至少被执行一次的语句为(C)循环语句

A. for
B. while
C. do-while
D. 任一种

19.x>0 ]y=5 的相反表达式为(B)

A. x<=0 || y!=5
B. x<=0 && y!=5
C. x>0|| y!=5
D. x>0 && y=5

  1. 在下面的字符数组定义中,)语句有语法错误(D)

A. char a[20]=“abcdefg”;
B. char a=“x+y=55,”;
C. char a[15]={‘1’,‘2’}:
D. char a[10]=‘5’;

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

1 1 1
2 2 3
3 6 9
4 24 33

#include <stdio.h>

#define N 5

void main() {
   
    int i, p = 1, s = 0;
    
    printf("%5s%5s%5s\n", "i", "p", "s");  
    
    for (i = 1; i <= N; i++) {
   
        p *= i;
        s += i;
        
        printf("%5d%5d%5d\n", i, p, s);
    }
}

2___264____

#include <stdio.h>

void main() {
   
    int x = 24, y = 88;
    int i = 2, p = 1;

    do {
   
        while (x % i == 0 && y % i == 0) {
   
            p *= i;
            x /= i;
            y /= i;
        }
        i++;
    }
文章来源:https://blog.csdn.net/weixin_47431459/article/details/134929995
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。