操作系统,C语言

Posted 山东专升本考试资料

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统,C语言相关的知识,希望对你有一定的参考价值。

操作系统
一、选择题(每小题 1.5 分,共 15 分)
1、操作系统有多种类型,允许多个用户将若干个作业提交给计算机集中处
理的操作系统,称为___。
A.批处理操作系统 B.分时操作系统 C.实时操作系统 D.多处理机操作
系统
2、以下解决死锁的方法中,属于死锁避免策略的是___
A.银行家算法 B.资源有序分配法 C.资源分配图化简法 D.撤销进程法
3、进程和程序的本质区别是___
A.存储在内存和外存 B.顺序和非顺序执行机器指令 C.分时使用和独占
使用计算机资源 D.动态和静态特征
4、既考虑了短作业又兼顾了长作业的调度算法是___
A.先进先出调度算法 B.多级反馈调度算法 C.最短作业优先调度 D.定
时轮转法
5、在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并
与相邻空闲区合并,为此需修改空闲区表,造成空闲区数加 1 的情况是___
A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区
C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区
6、设备独立性是指用户程序独立于___
A.主机 B.操作系统 C.设备驱动程序 D.物理设备
7、文件系统最基本的目标是
A.按名存取 B.文件共享 C.提高存储空间利用率 D.文件保护
8、OS 向用户提供的接口有很多,通过___用户可以用 open () 打开一
个文件。
A 脱机用户接口 B.联机用户接口 C. 系统调用接口 D.图形用户接口
9、如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进
入___
A.自由状态 B.停止状态 C.阻塞状态 D.静止状态
10、对于记录型信号量,执行一次 signal 操作时,信号量的值为___时进程
应唤醒阻塞队列中进程。
A.大于 0 B.小于 0 C.大于等于 O D.小于等于 0

二填空题 (每空 1 分共 15 分)
1、现代操作系统的主要目标是_________和_________
2、进程由______、______、和______组成,其中______是进程存在的唯一
标识。
3、高级调度又称为_________低级调度又称为_________
4、分页系统中,页表的作用是实现_________到_________的转换。
5、对文件的访问有_________和_________两种方式。

6、DMA 是指允许_________和_________之间直接交换数据的设备。
7、死锁产生的主要原因是资源竞争和_________。
三、简答题(每题 5 分,共 25 分)
1、进程同步需要遵序的原则是什么?
2、死锁产生的必要条件?
3、简述分页和分段的区别。
4、根据缓冲区的数目和使用方式不同,可以把缓冲分成哪几种类型?
5、什么是虚拟存储器?

四、综合题(每题 10 分,共 20 分)
1、有 3 个进程 PA、PB 和 PC 协作解决文件打印问题。PA 将文件记录从磁盘读入主存的缓冲区 1 每执行一次读一个记录;PB 将缓神区 1 的内容复制到缓冲区 2 每执行一次复制一个记录;PC 将缓冲区的内容打印出来,每执行一次打印一个记录。缓冲区的大小和一个记录大小一样。三个进程执行的过程已给出,根据所定义的信号量,把应执行的 PV 操作填入下属方框中,以保证文件的正确打印。

试问:
(1) 该状态是否安全?
(2) 当进程 P2 提出请求 Request(1,2,2,2)后,系统能否将资源分配给它?

(3) 如果系统立即满足 P2 的上述请求,则系统是否立即进入死锁状态?



                                              C 语言
一、选择题(本大题共 20 小题,每题 1 分,共 20 分。在每小题给出的四个选项
中,只有一项是符合题目要求的)
1.下列合法的变量名为
A.3a B.If C.name&1 D.time_1
2.C 语言程序最基本的构成单位是
A.语句 B.函数 C.源程序 D.子程序
3.下列变量的定义中,合法的是
A.int a;b;c; B.int a,b,float C; C.int a,b;float c; D.int a;b,float c;
4.C 语言中,要求运算对象必须为整型的运算符是
A./ B.% C.+ D.*
5.”a”在 C 语言中表示
A.字符串常量 B.函数 C.变量 D.字符常量
6.下列常用转义字符中不正确的是
A.\a B.\t C.\012 D.\z55
7.设有定义 int a,b; 如果要通过 scanf("%d%d”,&a,&b) 语句给变量 a,b
分别得到 10 和 5,下面错误的输入形式
A.10,5<回车> B.10 5<回车> C.10<回车>5<回车> D.10 5<回车>
8.若 a 的原值为 4,则表达式 a*=a-=3 运算后,a 的值是
A.1 B.3 C.4 D.13
9.有数学表达式(x≠y)且(y≥z),则对应的 C 表达式为
A.x≠y| (y>=z)
B.(x!=y)&&(y>=z)
C.(x<>y)||(y>=z)
D. x≠y, y≥z
10.设有定义 char x='6'; 则(x-‘0' )的数据类型为
A,char B.int C.float D.double
11.若有说明: int a[10];则对 a 数组元素的正确引用是
A.a[6-5] B.a(8) C.a[3.5] D.a[10]
12.有如下说明:

int a[10]={1,2,3,4,5,6,7,8,10},*p=a;则数值为 9 的表达式是
A.*(p+8) B.*p+9 C.p+8 D.*p+=9
13.下面程序段的运行结果是
char c[5]=(‘1','2’,\0',’z’,’\0' );
printf(“%$”,c );
A.’1”2' B.12Z C.12 D.“12Z”
14.以下不正确的字符串赋值语句是
A.char *s;s=”1357”; B.char s[ ]=”1357” ; C.char s[10];s=”1357”;
D.char*s="1357";
15.字符串”a\x2 1\\\tp\202q"的长度是
A.16 B.15 C.9 D.7
16.以下正确的函数定义开试是
A.float fun(int x;int y)
B.float fun(int x,int y)
C.float fun(int x;int y);
D.flcat fun(int x,y)
17,函数 f 的返回值类型是
A.与参数 x 的类型相同 B.void 类型 C.int 类型 D.无法确定
f(float x)
{prinf("%d\n",x*x);
}
18.若有如下宏定义:
#define N 2
#define Y(n) N+2 *n
则执行赋值语句 z=2*(N+Y(3)); 后的结果是
A.表达式有误 B.z=30 C.z=20 D.z 无确定值
19.有以下程序
#include<stdio.h>
Void main()
{char k; int i;
For(i==1;i<3;i++)
{scanf(“%c”,&k)
Switch(k)
{case’0’:printf(“another\n”);
Case’1’:printf(“number\n”);
}
}
}
程序运行时,从键盘输入:10<回车>,程序执行后的输出结果是
A. another B.another C.another D.number
number number number another

another number number
20.以下程序的输出结果是
A-1 B.O C.1 D.2
#include<stdio.h>
void main()
{int f(int,int);
int i=2,p;
p=f(i,i=1)
printf("%d",p);
}
int f(int a,int b)
{ int c;
c=a;
if(a>b) c=l;
else if(a==b) c=0;
else c=-1;
return(c);
二、填空题(本大题共 16 小题,每空 1 分,共 16 分)
1.一个 c 程序总是从_________函数开始运行的。
2.结构化程序设计的三种基本结构包括顺序结构、选择结构和______结构。
3.x=5,y=6,则(--x)*(y++)的值为_______
4.复合的赋值表达式 x*=y+5 可展开为_________。
5.写出一个数 m 既能被 3 整除又能被 4 整除的逻辑表达式_______。
6.字符串”hello”在内存中占_______字节的存储空间。
7.下列程序段输出结果_______。
x=9;
while(>7)
{
printf("*");
x--;
}
8.凡是函数中未指定存储类型的局部变量,其默认的存储类型为_________。
9.当调用函数时,实参是一个数组名,则向被调函数传递的是_________。
10.已知字符 B 的 ACSII 码值为 66,以下语句的输出结果是_________。
char ch='C';
perintf("%c%d\n",ch,ch);
11.下列程序的输出结果是_________。
#include<stdiah>
void main()
{

char ch='B’;
if(ch>='A'&&ch<=‘Z’)
ch=ch+32;
printf("%c",ch);
}
12.下列程序的运行结果是_________。
#include<stdia.h>
void main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9},I,s=1;
for(i=0;i<=2;i++)
s=s*a[i][i];
printf("s=%d\n",s);
}
13.下列程序的运行结果是_______
include<stdio.h>
void main( )
{
int i,j,temp;
int a[]={9,8,7,6,5,4,3,2,1,0}
for(i=Qj=9;i<j;i++,j--)
{temp=a[i];a[i]=a[j];a[j]=temp;}
for(j=0;j<10;j++)
printf("%2d",a[j]);
}
14.下列程序的运行结果是________
#include <stdio.h>
void main()
{ char s[]="chianren"
int i=5;
printf("%s\n",s+i);
}
15.下列程序的运行结果是________
#include <stdio.h>
void fun( )
{
auto int b=0;
static int c=5;
++b;
c--;
printf("%d",b-c);

}
void main( )
{ int i;
for(i=0;i<2;i++)
fun();
}
16.下列程序的输出结果是________
#include <stdio.d>
Void f(int v,int w)
{ int t;
t=v;v=w;w=t;
}
void main( )
{ int x=4,y=6,z=5;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else if(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
三、程序填空(本大题共 2 小题,每空 2 分,共 14 分)
1.字符串数组 a 和 b 中存放由小到大排列的有序字符串。下面程序实现将数组 a
和 b 合并为数组 c,使合并后的数组 c 仍保持有序,并输出数组 c 的值。在划线
的位置填上相关内容,实现上述功能。
#include <stdio.h>
#include <string.h>
#defire M 4
#defire N 6
main()
{
static char*a[N]={"apple",“coconut",“lemcn","me1on};
static char *b[N]={ "banana",“loquat","mango",“crange","peach”,
“plum" };
char *c[M+N];
int ia=0,ib=0,ig=0;
while (ia<M&&ib<N)
{
if(stremp(a[ia],b[ib]>0) c[ic]=b[ib++];
else c[ic]=a[_______];
ic++;
}
While (ia<M) c[ia++]=a[ia++];
While (ib<N) c[ib++]=b[ib++];

For(ic=0;ic<_______;ic++) printf(“%s”,c[ic]);
}
下面程序读入100个整数到数组age中, 然后输出下标为偶数且能被2整除的数。
请在下划线处填上相关内容。
main()
{
int i,age[100],*p;
for(i=O;i<100;i++) scanf(“%d”, _______);
p=age;
while(p<age+100)
{
If(_______) printf(“%d\,”,*p);
P=_______;
}
printf(“%d\n”,aver/10);
}
3.若要使得下面程序输出 XAABXX,请在下划线处填上相关内容。
main ()
{
int a[5]={1,2,3,4,1};
int i;
for (i=0;i<5;i++)
{
switch(_______)
{
case 2:
case 3: putchar(‘A'); _______;
case 4:
case 5: putchar(‘B’);
default: putchar(‘x’);
}
}
}
四、程序设计题(本大题共 3 小题,共 25 分,第 1、2 题每题 8 分,第 3 题 9 分)
1.求“1+1/2+2/3+3/5/8+/..的和 sum,要求输出 sum 不小于 4 时的各项连加式。
2.求 s=a+aa+aaa+....+aaa.....a 之和,其中 a 是一个数字,n 表示 a 的位数。
例如: 2+22+222+2222+22222 (此时 n=5,a=2)

3.递归算法求解并输出斐波那契数列 3~10 项.

以上是关于操作系统,C语言的主要内容,如果未能解决你的问题,请参考以下文章

操作系统与c语言

C语言诞生之前,都有哪些重要的编程语言?

学生成绩管理系统 用C语言编写

C语言(学生成绩管理系统)

c语言--班级管理系统

c语言 商品管理系统