【真题】2024年10月自考10787应用程序基础及设计试题

机密★启用前

2024 年 10 月高等教育自学考试全国统一考试

应用程序基础及设计

(课程代码 10787)

注意事项:
1.本试卷分为两部分,第一部分为选择题,第二部分为非选择题。
2.应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。
3.涂写部分、画图部分必须使用 2B 铅笔,书写部分必须使用黑色字迹签字笔。

第一部分 选择题

一、单项选择题:本大题共 20 小题,每小题 1 分,共 20 分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1.下列标识符组中,合法的用户标识符是
A. _0123 与 ssipped
B. del-word 与 signed
C. list 与 *jer
D. keep% 与 wind

2.逻辑运算符两侧运算对象的数据类型是
A. 只能是 0 或 1
B. 只能是 0 或非 0 正数
C. 只能是整型或字符型数据
D. 可以是任何合法的类型数据

3.32 位平台下,int 类型变量所占字节数是
A. 1
B. 2
C. 3
D. 4

4.用数组名作函数的参数,实际上传递给形参的是
A. 数组元素的首地址
B. 数组的第一个元素的值
C. 每一个数组元素
D. 整个数组的个数

5.程序中已有以下数组定义和 f 函数调用语句:
int a [3][4];
f (a);
则在 f 函数的说明中,对形参数组 array 的错误定义方式是
A. f (int array [][6])
B. f (int array [3][])
C. f (int array [][4])
D. f (int array [2][5])

6.关于 C 语言中的函数,下列说法正确的是
A. 可以嵌套定义
B. 不可以嵌套调用
C. 可以嵌套调用,但不能递归调用
D. 嵌套调用和递归调用均可

7.下面正确的字符常量是
A. “c”
B. “\”
C. ‘W’
D. ’ ’

8.逗号表达式 (a=35,a4),a+15 的值是
A. 15
B. 60
C. 30
D. 不确定

9.现已定义整型变量 int i=1;
执行循环语句 while (i++<5);后,i 的值是
A. 1
B. 5
C. 6
D. 以上三个答案均不正确

10.设 a=2,b=3,c=4,则表达式 a+b<c&&b==c&&a||b+c&&b+c 的值是
A. 5
B. 8
C. 0
D. 1

11.若定义数组 int a [10],以下语句错误的是
A. 一个数组在内存中占有一连续的存储区
B. *a 与 a [1] 代表数组元素的相同
C. a 是一个变量
D. a 代表 a 数组在内存中占有的存储区的首地址

12.对于类型相同的指针变量,不能进行以下哪种运算
A. +
B. –
C. =
D. <

13.设变量 a 是整型,f 是实型,i 是双精度型,则表达式 10+‘a’+i*f 的数据类型为
A. int
B. float
C. double
D. 不确定

14.以下不正确的描述是
A. break 语句不能用于循环语句和 switch 语句外的任何其他语句
B. 在 switch 语句中使用 break 语句或 continue 语句的作用相同
C. 在循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环的执行
D. 在循环语句中使用 break 语句是为了使流程跳出循环体,提前结束循环

15以下程序:

#include <stdio.h>
void main()
{
    int i=0,j=0,k=6;
    if((++i>0)||(++j>0)) k--;
    printf("%d,%d,%d\n",i,j,k);
}

它的输出结果是
A. 0, 0, 6
B. 1, 0, 7
C. 1, 1, 7
D. 0, 1, 7

16. 数组 char array []={‘c’,’h’,’i’,’n’,’a’} 中,数组 array 占用的内存空间的字节数是
A. 1
B. 5
C. 6
D. 不确定

17. 以下说法正确的是
A. C 语言程序总是从第一个定义的函数开始执行
B. 在 C 语言程序中,要调用的函数必须在 main 函数中定义
C. C 语言程序总是从 main 函数开始执行
D. C 语言程序中,main 函数必须放在程序的开始部分

18. 若有以下函数定义:

void fun(int array[][5]) {.........}
main()
{
    int a[3][5], b;.........
}

则在主函数中正确的调用语句是
A. fun (a [3][5]);
B. b=fun (a);
C. fun (a);
D. 以上都不正确

19. 若有 int *p; int a [10]={1,2,3,4,5,6,7,8,9,10}; p=a; 则数值为 9 的表达式是
A. *p+9
B. *(p+8)
C. *p+=9
D. p+8

20. 下面程序:

void fun(int *x)
{
    printf("%d\n",++*x);
}
main()
{
    int a=25;fun(&a);
}

运行结果是
A. 23
B. 24
C. 25
D. 26

第二部分 非选择题

二、填空题:本大题共 16 小题,每小题 1 分,共 16 分。
21.设 x,y,z 均为 int 型变量,则描述 “x,y 中有一个为负数” 的表达式是 __________。
22.getchar 函数可以接收 1 次输入 __________个字符,输入数字也按字符处理。
23.若 a=6,b=4,c=3,则表达式 a&&b||b-c 的值是 __________。
24.C 标准库中关闭文件的函数是 __________。
25.在语句 scanf (“% d”,&a); 中,&a 表示变量 a 的 __________。
26.表达式 pow (2.8,sqrt (double (x))) 值的数据类型为 __________。
27.C 语言的多行注释符为 __________。
28.若有数组定义为:int a [100]; 则该数组元素下标的最大值是 __________。
29.C 语言使用 __________函数释放动态分配得到的内存。
30.C 实型变量分为单精度和 __________两种。
31.for (表达式 1;表达式 2;表达式 3) 中,只要表达式 2 的值为 __________时就结束循环。
32.定义一个无符号整数 a 并初始化为 0 的语句为 __________。
33.在 switch…case 语句中,使用关键字 __________来处理所有 case 语句均未匹配的情况。
34.执行语句:for (i=1;i++<4;++i); 后,变量 i 的值是 __________。
35.设已定义:int a [15]={1,2,3,4,5}; 则语句 printf (“% d”,a [5]); 的输出结果是 __________。
36.外部变量使用关键字 __________进行声明。

三、程序填空题:本大题共 4 小题,每小题 6 分,共 24 分。填入恰当的指令,使程序能够按照题意正确执行。
37.下面的程序功能是求 1!+3!+5!+……+n! 的和,完成程序填空。

void main()
{
    long int f,s=0;
    int i,j,n;
    scanf("%d",&n);
    for(i=1;i<=n; ①______________)
    {
        f=1;
        for(j=1; ②______________;j++)
        ③______________;
        s=s+f;
    }
    printf("\n=%ld,s=%ld\n",n,s);
}

38.程序功能:以每行 5 个数来输出 300 以内能被 7 或 17 整除的偶数,并求出其和。

#include <stdio.h>
#include <conio.h>
void main()
{
    int i,n=0,sum=0;
    for(i=1; ①______________;i++)
        if(②______________)
        {
            if(i%2==0)
            {
                sum=sum+i;
                n++;
                printf("%6d",i);
                if(③______________)
                    printf("\n");
            }
        }
    printf("\ntotal=%d",sum);
}

39.程序功能:将一个字符串中的前 N 个字符复制到一个字符数组中去,要求不许使用 strcpy 函数。

void main ( )
{
    char str1[80],str2[80];
    int i,n;
    gets(①______________);
    scanf("%d",&n);
    for(i=0; ②______________;i++)
    ③______________;
    str2[n]='\0';
    printf("%s\n",str2);
}

40.程序功能:求一个二维数组中每行的最大值和每行的和,并将此数组及两个值输出。

#include "stdlib.h"
void main()
{
    int a[5][5],b[5],c[5],i,j,k,s=0;
    for(i=0;i<5;i++)
        for(j=0;j<5;j++)
            a[i][j]=random(40)+20;
    for(i=0;i<5;i++)
    {
        k=a[i][0]; s=0 ;
        for(j=0;j<5;j++)
        {
            if(k<a[i][j]) ①______________;
            s=s+a[i][j];
        }
        b[i]=k;
        ②______________;
    }
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
            printf("%5d", ③______________);
        printf("%5d%5d\n",b[i],c[i]);
        printf("\n");
    }
}

四、阅读程序,写运行结果:本大题共 4 小题,每小题 5 分,共 20 分。
写出下面程序的运行结果。
41.

#include <stdio.h>
#define PI 3.14
struct cir_type
{
    float r;
    double area;
};
int main()
{
    struct cir_type cir={5.0},*p=&cir;
    p->area=PI*p->r*p->r;
    printf("area=%.3lf\n",p->area);
    return 0;
}

42.写出下面程序的运行结果。

#include <stdio.h>
int stre(char str[])
{
    int num = 0;
    while(*(str + num) != '\0')
        num++;
    return num;
}
int main()
{
    char str[10], *p = str;
    gets(p);
    printf("%d\n",stre(p));
    return 0;
}
输入:happy<回车>

43.写出下面程序的运行结果。

#include<stdio.h>
int x;
void cube()
{
    x = x * x * x;
}
int main()
{
    x = 5;
    cube();
    printf(" %d\n",x);
    return 0;
}

44.写出下面程序的运行结果。

#include<stdio.h>
void add(int *p, int n)
{
    int *pend = p + n;
    for( ; p<pend; p++)
        *p += 10;
}
void main( )
{
    int a[5]={1,2,3,4,5}, *q = a;
    add(q, 5);
    for(;q<a+5;q++)
        printf("%4d", *q);
}

五、编程题:本大题共 2 小题,每小题 10 分,共 20 分。
45.输入一个正整数,要求以相反的顺序输出该数。例如输入 12345,输出为 54321。

46.编写一个函数,此函数的功能是:对一个长度为 N 的字符串从其第 K 个字符起,删去 M 个字符,组成长度为 N – M 的新字符串(其中 N、M<=80,K<=N)。例如输入字符串 “We are poor students.”,利用此函数进行删除 “poor” 的处理,输出处理后的字符串是 “We are students.”。

© 版权声明
THE END
喜欢就支持一下吧
赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容