机密★启用前
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=○
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.”。
(2)本站自学考试信息供自考生参考,权威信息以各省(市)考试院官方为准。
暂无评论内容