【真题】2024年4月自考02243计算机软件基础(一)试题

机密★启用前
 
2024年4月高等教育自学考试全国统一考试
 
计算机软件基础(一)
 
(课程代码02243)
 
注意事项:
1.本试卷分为两部分,第一部分为选择题,第二部分为非选择题。
2.应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。
3.涂写部分、画图部分必须使用2B铅笔,书写部分必须使用黑色字迹签字笔。
 
第一部分 选择题
 
一、单项选择题:本大题共15小题,每小题2分,共30分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
 
1.下列标识符中不合法的是
A.a>b
B.a_b
C._ab
D. a2b
 
2.下列C语言中数据类型关键字不正确的是
A. unsigned
B. double
C. Long
D. string
 
3.表达式 2+’q’+5.6的运算结果的数据类型是
A. char
B. int
C. float
D.无法确定
 
4.对于以下代码段:int i;scanf(“%d”,&i);i%=4;执行后,i值可能性是
A.1种
C.7种
B.4种
D.不确定
 
5.对于 intx,y;语句 y=x<0?x+2:(x>0?x-1:2);等价于
A. if(x>=0)
if(x>0)y=x-1;
else y=2;
else y x+2;
 
B.ifx<0)y-x+2;
else
ix!-0)y=2;
else y-x-1;
 
C.if(x>=0)
if(x !=0) y=x-1;
else y=x+2;
else y=2;
 
D.if(x<0)
if(x ==0)y=2;
else y=x-l;
else y x+2;
 
6.对于下面程序段,正确的是
int x=0, y=0, z=0; 
if(x=y+z) print"***”);
else printf"###");
A.输出:***
B.有语法错误,不能通过编译
C.输出:###
D.可以编译,但不能通过连接,所以不能运行
 
 
7.有以下代码段:
int s1=0, s2=0, s3=0, s4=0.5
for(t=1;t<=4; ++t)
switch(t) {
case t>=4: s1++; break;
caset>= 3: s2++; break;
caset>= 2: s3++;
default:s4++;
}
printf("%d,%d,%d,%d\n",s1,s2,s3,s4);
执行后,输出结果是
A. 1,1,2,2
B. 1,1,1,2
C.1,2,3,2
D.语法错,编译通不过
 
8.以下是死循环的代码段是
A.int i=32767;
do {
if(i<0)
break;
} while(++i);
 
B.for(inti- 1;;){
if(i++%2==0)  continue;
if(i++ %3 == 0) break;
}
 
C. for(inti-1;;)
if(++i<10)
continue;
 
D.int k=0,i-1;
while(i–);
 
9.若二维数组a有m 列,则在 a[i]Ú]之前的元素个数是
A.j*m+i
B.j*m+i-1
C.i*m+j
D.i*m+j-1
 
10.以下西数定义,错误的是
A. void f() { }
 
B. int f(){
return 0;
}
 
C. void f(int i){
     return i;
}
 
D. int f(void) {
return 0;
}
 
11.如果i是变量,而p是指向i的指针,则可以代替i的表达式是
A.*&p
B. &i
C.&*i
D.*&i
 
12.对于以下的变量定义在语法和语义上都是正确的语句是
struct node {
float x,y;
char s[10];
} point={1,2, “abc”},*p;
A.*p=point;
B.p=&point;
C.point=p;
D.p->x=point.y
 
13.若一棵完全二叉树中某结点无左孩子,则该结点一定是
A.度为1的结点
B.度为2的结点
C.分支结点
D.叶子结点
 
14.若一个图的边集为((A,B),(A,C),(A,D),(C,F),(D,E),(D,F)},则从顶点A开始对该进行广度优先搜索,得到的顶点序列可能为
B. ABCDFE
A.ABCDEF
C.ACDBEF
D.ADEFBC
 
15、对有14个数据元素的有序表R[14]进行折半搜索,搜索到 R[3]的关键码等于给定值,此时元素比较顺序依次为
A.R(0],R[1],R(2],R[3]
C.R(6],R[2],R[4],R[3]
B.R(0],R(13],R[2],R[3]
D.R[6],R[4],R(2],R[3]
 
第二部分非选择题
 
二、填空题:本大题共 10小题,每小题2分,共20分。
 
16.表达式x-3+5,4+6 的值为______。
17.设顺序线性表中有n个数据元素,则删除第i个位置上的数据元素需要移动表中______个数据元素。
18.字符串常量”abook!”在内存中占用的字节数是______。
19.条件:x的值等于1与y的值等于2有且只有一个成立,其对应的C语言逻辑表达式是______。
20.在以下程序段中,k为整型,则while循环执行______次。
int k=2;
while(k==0)k–;
21.下面程序段执行后的输出结果是______。
float x=-256.1023;
print f(“%6.3f,”, x);
22.设变量定义为 int a[3]={1,4,7},*p=&a[2];,则”p的值是______。
23.对于以下递归函数,调用 f(3),其返回值为______。
int f(int n){
if(n<=0) return ( 1 );
else return ( f(n-1)*3+2 );
}
24.一个完全无向图有n个顶点,则该图共有______条边。
25.任意一棵有口个节点的二叉树,若它有m个度为2的节点,则二叉树上度为1的节点个数为______。
 
三、简答题:本大题共4小题,每小题4分,共16分。
 
26.若有二叉树如题 26 图所示,请写出其中序和后序遍历结果序列。

若有二叉树如题 26 图所示,请写出其中序和后序遍历结果序列。

27.若有某地区的7个县的位置示意图如题27图所示,诸画出该图的最小生成树。

若有某地区的7个县的位置示意图如题27图所示,诸画出该图的最小生成树

 
28.已知序列{34,4,67,13,24),请写出使用冒泡排序进行开序排序的各趟结果。
 
29.已知一串电文内容如下:BEACDAAABBCCCCD。为电文中各字符设计最优的二进制编码–哈夫曼编码。
 
四、程序分析题:本大题共4小题,每小题4分,共16分。
 
30.写出下列程序的运行结果:
#include "stdio.h"
int main(void) {
          int value-67, count, remainder;
          count= 0;
          while(value){
                remainder = value % 2;
ifremainder ==1)
                      ++tcount;
                value = value /2;
          }
printf("%d\n", count);
      return 0;
}
31.写出下列程序的运行结果,
#include "stdio.h"
void fun(char *ss){
int it;
for(i=0;ss[i]!="\0";i++){
if(i%2==0&&ss[i]>='A'&&ss[i]<='Z')
ss(i]-ss(i]+32;
}
}
int maim(){
char tt[]="abCDEfG";
fun(tt);
printf("%s",tt);
return 0;
}
32.写出下列程序的运行结果:
#inchude “stdio.h"
int main(void) {
int a[7]={5,4,1,7,6,8.2};
int i, n=7, temp;
f0r(i=0;i<n/2;++i){
temp = a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}
for(i=0;i<n, ++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}
33.函数 seek(int x[],int k)的功能是使用设低位监哨的顺序査找方法在数组x中查找整数k,若找到则返回该数的下标,否则返回0,请填写空格①②,完成此功能。
#define N 10
int seek(int x[],int k) {
int i=N;
x[0]=① ;
while( ②)i--;
if (i==0) return 0;
elsc return i;
五、编程题:本大题共2小题,每小题9分,共18分。
 
34.假设带有表头节点的单链表类型定义如下:
typedef struet node {int data;struct node *next;} *Link;
函数 Link insertNode(Link head,int n)的功能是,在头结点为bead 的链表末尾插入一个节点,该节点的 data值为n,并返回该节点,请编写该函数体。
typedef struct node{int data;struct node *next;}*Link;
Link insert Node(Link head,int n){
Link newNode=(struct node*)malloc(sizeof(struct node));
/*
在此编写代码
*/
}
35.编写一个函数 void fun(int *w,int p,int n),该函数的功能是:移动一维数组w中的内容,若数组中有n个整数、要求把下标从p到n-1(p≤n-1)的数组元素循环左移到数组的最前面。在主函数中定义一维数组的原始数据,a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},则输出为6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 
#include "stdio .h"
void fun(int *w, int p, int n){
/*
在此编写代码
*/


int main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11.12.13.14.15};
int i, p=5,a=15;
fun(a,p,n);
for(i= 0;i<n;i++)
printf("%d",a[i]);
© 版权声明
THE END
喜欢就支持一下吧
赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容