28、已知一组关键字{49,31,12,68,27},要求对其按升序排序,写出使用直接选择排序的每趟结果。
29、某大学图书馆对读者借阅图书制定有关规定如下:
(1)本科学生可以借阅5本;
(2)研究生:硕士研究生可以借阅7本,博士研究生可以借阅10本;
(3)教职工:教授、副教授职称的教师可以借阅15本,其他教职工可以借阅12本。
用判定树表示上述算法。
五、程序设计题(本大题共2小题,每小题9分,共18分)
34、编写C语言函数f(float x),并用主函数调用该函数,输出计算结果。
35、已知下面链表节点类型,设计一个算法dellinklist,删除以head为头指针的单链表(带头节点)中数据域值为x的节点。
Struct node{
Int data;
Struct node *next;
};
HYPERLINK "" 做试题,没答案?上自考365,网校名师为你详细解答! 一、l.C 2.A 3.D 4.A 5.C 6.C 7.B 8.D 9.A l0.D 11.C l2.C l3.B l4.D l5.B
2008年4月自考计算机软件基础(一)试卷
第一部分选择题
一、单项选择题(本大题共l5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列与k=n++完全等价的表达式是 ( )
A.k= ++ n B.k+ = n+l
C.k=n,n=n+1 D.n=n+1,k=n
2.已知int a=5,b=3,*P=&b,*q=&a;下列赋值语句中与b=a;等价的语句是 ( )
A.*P=*q; B.P=q; C.*P=&q; D.P=*b;
3.已知C语言函数fun()的定义形式为
void fun(char ch,float x){...} 则正确调用函数fun()的语句是 ( )
A.fun(“a”,3.0); B.fun('ab',19.5);
C.t=fun('z',3.6); D.fun(65,32);
4.已知char sr[20];int i;从键盘向数组sr输入一字符串的正确语句是 ( )
A.gets(sr); B.gets(sr[20]);
C.for(i=0;i<20;i++)scanf(sr); D.for(i=0;i<20;i++)gets(&sr);
5.执行下列c语言程序段,循环结束的条件是 ( )int n=0,P,sum=0;
do{scanf(“%d”,&p);n++;sum+=p;}
while(sum!:126&&n<5);
A.sum的值不等于126或n的值小于5 B.sum的值不等于126且n的值小于5
C.sum的值等于l26或n的值大于等于5 D.sum的值不等于126且n的值大于等于5
6.下列C语言程序的输出结果是 ( )
main( )
{int a=13,m=0;
switch(a%3)
{case0:m++:
case 1:m--;
case 2:m++;
default:m++;}
prinff(“%d”,m);}
A.-1 B.0
C.1 D.2
7.已知C语言程序段如下:
struct sa
{int num:
char name[10];
float f;
}stu[3]={{5,“li ming”,85.0},{ 6,“liu liaing”,91.5},{7,“wang xin”,100}};
struct sa*P;P =stu;
则值为91.5的表达式是 ( )
A.(*p)·f B.(*++p).f
C.(*P++).f D.(p++)->f
8.下列程序是计算两个矩阵的乘积,其算法的时间复杂度是 ( )
Void mul—matrix(int n,int[ ][5],int b[ ][5],int c[ ][5])
{int i,j,k,x;
for(i=0;i<n;i++)
{for(j=0;j
{X=0;
for(k=0;k<n;k++)
X+=a[i][k]*b[k][j];
e[i][j]=X;
}
}
}
A.O(n) B.O(log3 N)
C.O(n2) D.O(n3)
9.若不带头节点的单链表的头指针为head,则判定该链表为空的条件是 ( )
A.head==NULL B.head!=NULL
C.head->next= =head D.head->next= =N