C_5练习题

答案

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

1.以下不正确的C语言标识符是()

A. AB1
B._ab3
C. char
D. a2_b

  1. 若 x、i、j、k都是 int型变量,则计算下面表达式后,x的值为()
    x=i=4.j=6,k=16;

A. 4
B. 8
C. 16
D. 32

3,对于类型相同的两个指针变量之间,不能进行的运算是()

A. <
B.=
C.+
D.-

  1. 下设i 和 x 都是 int 类型,则 for 循环语句()
    for(i=0,x=0;i<=9&&x!=876;i++) scanf(“%d”,&x);

A. 最多执行 10 次
B. 最多执行 9 次
C. 是无限循环
D. 循环体一次也不执行

5,下列数组定义正确的是()

A. int a[5],b[2,3];
B. char no(30);
C. char x[];
D. int x[5]={1,2,3};

  1. 若有变量定义 double x;float a;要给 x 和 a 输入数据,正确的输入语句是()

A. scanf(“%Pf”,&x,&a);
B. scanf(“%f%lf”,&x.&a);
C.scanf(“%lf%f”,&x,&a);
D. scanf(“%lf%lf”,&x,&a);

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

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

  1. 已知 a=20,b=30,则执行 c=anb 后,c 的值是()

A. 10
B. 20
C. 30
D. 40

  1. 下面程序的输出结果是()
    #include<stdio.h>
    void main
    { intx=10,y=10;
    printf(“%d %dn”,x–,–y);
    }
    A. 10 9
    B. 9 9
    C. 9 10
    D. 10 10

  2. 如果在一个函数的复合语句中定义了一个变量,则该变量()

A.只在该复合语句中有效,在该复合语句外无效
B. 在该函数中任何位置都有效
C.在本程序的源文伴范围内均有效
D.此定义方法错误,其变量为非法变量

  1. 以下函数值的类型是()
    int fun(float x)
    {
    float y;
    y=3*x-4;
    return y:
    }

A. 不确定
B. float
C. void
D. int

12,函数说明语句正确的是()

A. int Function(void A);
B. void Function(int);
C. int Function(A):
D.void Function(int)

13,函数调用语句: d=max(a,max(b.c.d),e):中实参的个数为

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

14.以下能正确定义数组并正确赋初值的语句是()

A. intn=5,a[3][n];
B. int b[1][5]={{1},{3}};
C. int c[2]0={{1,2},{3,4}}:
D. int d[][2]={{1,2},{3,4)};

15,下列程序运行后的输出结果是()
#include <stdio.b>
void sub(int x,int y,int *z)
{*z=y-x; }
void main()
{ int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf(“%d,%d,%dln”,ab,c);
}

A.-5,-12,-7
B. 5,-2,-7
C.-5,-12,-17
D. 5,2,3

  1. 设有定义语句"chars]=“xyz”;“,则表达式”*(s+3)"的值是()

A. ‘x’
B. у
C. ‘z’
D. ‘\0’

  1. 若有定义:int a[3][4];,()不能表示数组元素 a[1][1]

A. (a[1]+1)
B. (&a[1][1])
C. (
(a+1)[1])
D. *(a+5)

  1. char *s=“ItlNamellAddressin”;指针s所指字符串的长度为()

A.说明不合法
B. 19
C. 18
D. 15

19,已知有宏定义#define SQR(a) 2aa,则SQR(3+4)的值为()

A. 22
B. 32
C. 98
D. 18

  1. 定义结构体的关键字是()

A. struct
B. typedef
C. Enum
D. Union

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

#include <stdio.h>

int main() {
    int x = 1, a = 1, b = 1;

    switch (x) {
        case 0:
            b++;
        case 1:
            a++;
        case 2:
            a++;
            b++;
            break;
    }

    printf("a=%d, b=%d\n", a, b);
    return 0;
}

2________

#include <stdio.h>

int main() {
    int i = 0, s = 0;

    do {
        s += i * 2 + 1;
        i++;
    } while (s < 10);

    printf("i=%d, s=%d\n", i, s);
    return 0;
}

3______

#include <stdio.h>

int main() {
    int k = 2;

    while (k < 7) {
        if (k % 2) {
            k = k + 3;
            printf("k-%d\n", k);
            continue;
        }

        k = k + 1;
        printf("k=%d\n", k);
    }

    return 0;
}

4_______

#include <stdio.h>

int LA(int *a, int n) {
    int i, s = 0;
    for (i = 0; i < n; i++) {
        s += a[i];
    }
    return s;
}

int main() {
    int a[5] = {1, 2, 3, 4, 5};
    int b = LA(a, 5) + LA(a + 1, 3);
    printf("b=%d\n", b);
    return 0;
}

5_______

#include <stdio.h>

int WF(int x, int y) {
    static int k;
    x = x + y;
    y += x;
    k += x + y;
    return k;
}

int main() {
    int x = 3, y = 5;
    printf("%d, %d\n", WF(x, y), WF(x, y));
    return 0;
}

程序填空题(每空 5分,共 35分。请将答案填写在答题纸的相应位置上。).求满足下式的 x,y,z。

XYZ
+YZZ


532

#include <stdio.h>
{ int maintintxyitesult=532
for (x=1;_____;x++)
for (y=1; y<=9 y+)
for (_z<=9;z++)
{
i=+(100y+10z+2);
if (i=result) printf(“x=%d, y=%d, z=%dln”,x.y,z);
}
return 0;
}
2. 程序功能:输入一数字后,将输入的数字颠倒后输出。
#include “stdio.h”
int main()
{
int numb,rdigit;
scanf(“%d”,&numb);
while(①r)
{
digit-numb%10;
printf(“%d”,
)
numb/=10;
printf(“\n”);
return 0;
}
3. 程序功能:下面的程序输入 10 个整数,按升序排序后输出。完善程序。
#include <stdio.h>
void Swap(int *x,int *y)
int t = *x;

*y=t;
}
void Sort(int *array, int n)
{
int i, j;
for (i=n-1;i>0;–i)
{
for (j= 0; j <i; ++j)
if (array[i]>array[j+1])
② ;
}
}
int main()
{
int a[10],i;
for(i=0;i<10;i++)scanf(“%d”,&a[i)):
Sort(a,10);
for(i=0;i<10;i++)
printf(“%d”,a[i]);
returm 0;
}

四、编程题(本大题共3小题,每小题15分,共45分,请在答题纸的相应位置上作答。)

  1. 编写程序,输入两个正整数 m 和 n. 求其最大公约数

  2. 编写函数 copy(char strl],char str2[],int n),实现将 str2 中字符串前 n 个字符复制到 strl 中
    (1)用 for 循环编写函数 copy(char str1[],char str2],int n),不允许用 strcpy()函数。
    (2)编写主函数输入字符串,调用 copy(char str1],char str2[],int n)并输出。

  3. 编写程序,输出以下图形
    在这里插入图片描述

  • 73
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJlio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值