max){temp=min;min=max;max=temp;}p=min*max;while(min!=0){r=max%min;max=min;min=r;}//已经将m" />

计算机软件考研复试程序设计

计算机软件考研复试程序设计
计算机软件考研复试程序设计

5-3求m和n的最大公约数和最小公倍数

#include

int main()

{

int p,r,min,max,temp;

printf("请输入两个正整数max,min:");

scanf("%d,%d,",&max,&min);

if (min>max)

{

temp=min;

min=max;

max=temp;

}

p = min * max;

while(min!=0)

{

r = max % min;

max = min;

min = r;

}

//已经将mn中含有0的情况考虑在内

printf("它们的最大公约数为:%d, 最小公倍数为:%d\n", max, p/max);

return 0;

}

5-4输入一串字符,统计字母,数字,空格和其他字符

#include

int main()

{ char c;

int letters=0,space=0,digit=0,other=0;

printf("请输入一行字符:\n");

while((c=getchar())!='\n')

{

if (c>='a' && c<='z' || c>='A' && c<='Z')

letters++;

else if (c==' ')

space++;

else if (c>='0' && c<='9')

digit++;

else

other++;

}

printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other);

return 0;

}

5-5 计算2+22+222+…最大的数字是n个a

#include

int main()

{

int a,n,i=1,sn=0,tn=0;

printf("a,n=:");

scanf("%d,%d",&a,&n);

while (i<=n)

{

tn=tn+a; /*赋值后的tn为i个a组成数的值*/

sn=sn+tn; /*赋值后的sn为多项式前i项之和*/

a=a*10;

++i;

}

printf("a+aa+aaa+...=%d\n",sn);

return 0;

}

5-6 计算幂的和1!+2!+3!+4!…

#include

int main()

{

double s=0,t=1;

int n;

for (n=1;n<=20;n++)

{

t = t*n;

s = s+t;

}

printf("1!+2!+...+20!=%22.15e\n",s);//科学计数法

return 0;

}

5-9-2 找1~1000之间的定数(定数:因子之和等于本身,因子不包含本身,例如6=1+2+3)#include

int main()

{

int m,s,i;

for (m=2;m<1000;m++)

{

s=0;

for (i=1;i

if ((m%i)==0)

s=s+i;

if(s==m)

{

printf("%d,its factors are ",m);

for (i=1;i

if (m%i==0)

printf("%d ",i);

printf("\n");

}

}

return 0;

}

5-12 猴子吃桃,第一天吃掉一半加一个,每天如此,到了第十天,剩下一个,原来多少个#include

int main()

{

int day,x1,x2;

day=9;

x2=1;

while(day>0)

{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/

x2=x1;

day--;

}

printf("total=%d\n",x1);

return 0;

}

5-16

输出

_ _ _ *

_ _ * * *

_ * * * * *

* * * * * * *

_ * * * * *

_ _ * * *

_ _ _ *

#include

int main()

{int i,j,k;

for (i=0;i<=3;i++)

{for (j=0;j<=2-i;j++)

printf(" ");

for (k=0;k<=2*i;k++)

printf("*");

printf("\n");

}

for (i=0;i<=2;i++)

{for (j=0;j<=i;j++)

printf(" ");

for (k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

return 0;

}

6-2 选择法对10个整数排序

#include

int main()

{int i,j,min,temp,a[11];

printf("enter data:\n");

for (i=1;i<=10;i++)

{printf("a[%d]=",i);

scanf("%d",&a[i]);

}

printf("\n");

printf("The orginal numbers:\n");

for (i=1;i<=10;i++)

printf("%5d",a[i]);

printf("\n");

for (i=1;i<=9;i++)

{min=i;

for (j=i+1;j<=10;j++)

if (a[min]>a[j]) min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

printf("\nThe sorted numbers:\n");

for (i=1;i<=10;i++)

printf("%5d",a[i]);

printf("\n");

return 0;

}

6-4 在一排好序的数组中插入一个数字#include

int main()

{ int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;

printf("array a:\n");

for (i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("insert data:");

scanf("%d",&number);

end=a[9];

if (number>end)

a[10]=number;

else

{for (i=0;i<10;i++)

{if (a[i]>number)

{temp1=a[i];

a[i]=number;

for (j=i+1;j<11;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

printf("Now array a:\n");

for (i=0;i<11;i++)

printf("%5d",a[i]);

printf("\n");

return 0;

}

6-6输出杨辉三角

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

#include

#define N 10

int main()

{ int i,j,a[N][N];

for (i=0;i

{a[i][i]=1;

a[i][0]=1;

}

for (i=2;i

for (j=1;j<=i-1;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

for (i=0;i

{for (j=0;j<=i;j++)

printf("%6d",a[i][j]);

printf("\n");

}

printf("\n");

return 0;

}

6-8一个N行M列的矩阵,找出鞍点(该元素是该行的最大且是该列的最小)

#include

#define N 4

#define M 5 /* 数组为4行5列*/

int main()

{

int i,j,k,a[N][M],max,maxj,flag;

printf("please input matrix:\n");

for (i=0;i

for (j=0;j

scanf("%d",&a[i][j]);

for (i=0;i

{

max=a[i][0]; /* 开始时假设a[i][0]最大*/

maxj=0; /* 将列号0赋给maxj保存*/

for (j=0;j

if (a[i][j]>max)

{

max=a[i][j]; /* 将本行的最大数存放在max中*/

maxj=j; /* 将最大数所在的列号存放在maxj中*/

}

flag=1; /* 先假设是鞍点,以flag为1代表*/

for (k=0;k

if (max>a[k][maxj]) /* 将最大数和其同列元素相比*/

{

flag=0; /* 如果max不是同列最小,表示不是鞍点令flag1为0 */

continue;

}

if(flag) /* 如果flag1为1表示是鞍点*/

{

printf("a[%d][%d]=%d\n",i,maxj,max); /* 输出鞍点的值和所在行列号*/

break;

}

}

if(!flag) /* 如果flag为0表示鞍点不存在*/ printf("It is not exist!\n");

return 0;

}

6-9 有15个数字由小到大存放在数组中,用折半发查找某数,若没有返回没有

#include

#define N 15

int main()

{

int i,number,top,bott,mid,loca,a[N],flag=1,sign;

char c;

i=0;

printf("输入由小到大的数组的元素:\n");

while(i

{

printf("输入第%d个元素:",i+1);

scanf("%d",&a[i]);

if (a[i]>=a[i-1])

i++;

else

printf("enter this data again:\n");

}

printf("\n");

for (i=0;i

printf("%-5d",a[i]);

printf("\n");

while(flag)

{

printf("input number to look for:");

scanf("%d",&number);

sign=0;

top=0; //top是查找区间的起始位置

bott=N-1; //bott是查找区间的最末位置

if ((numbera[N-1])) //要查的数不在查找区间内loca=-1; // 表示找不到

while ((!sign) && (top<=bott))//当没有找到,并且查找还未结束时候

{

mid=(bott+top)/2;

if(number==a[mid])

{

loca=mid;

printf("Has found %d,its position is %d\n",number,loca+1);

sign=1;

}

else if(number

bott=mid-1;

else

top=mid+1;

}

if(!sign||loca==-1)

printf("cannot find %d.\n",number);

printf("continu or not(Y/N)?");

scanf(" %c",&c);

if (c=='N'||c=='n')

flag=0;

}

return 0;

}

6-10三行,每行80个字符,统计出大写小写数字空格其他字符数

#include

int main()

{int i,j,upp,low,dig,spa,oth;

char text[3][80];

upp=low=dig=spa=oth=0;

for (i=0;i<3;i++) //输入一行统计一行,不是全部输入完了才统计。

{ printf("please input line %d:\n",i+1);

gets(text[i]);//获取第i=1行字符

for (j=0;j<80 && text[i][j]!='\0';j++)

{if (text[i][j]>='A'&& text[i][j]<='Z')

upp++;

else if (text[i][j]>='a' && text[i][j]<='z')

low++;

else if (text[i][j]>='0' && text[i][j]<='9')

dig++;

else if (text[i][j]==' ')

spa++;

else

oth++;

}

}

printf("\nupper case: %d\n",upp);

printf("lower case: %d\n",low);

printf("digit : %d\n",dig);

printf("space : %d\n",spa);

printf("other : %d\n",oth);

return 0;

}

6-12

密码翻译,A~Z,B~Y…,小写同规律。不是字母不翻译。

#include

int main()

{int j,n;

char ch[80];

printf("input cipher code:\n");

gets(ch);

printf("\ncipher code:%s\n",ch);

j=0;

while (ch[j]!='\0')

{ if ((ch[j]>='A') && (ch[j]<='Z'))//处理大写字母,A:65 Z:90, 65+90=155 ch[j]=155-ch[j];

else if ((ch[j]>='a') && (ch[j]<='z')) //处理大写字母,a:97 z:122, 97+122=219 ch[j]=219-ch[j];

else //处理非字母

ch[j]=ch[j];

j++;

}

n=j;

printf("original text:");

for (j=0;j

putchar(ch[j]);

printf("\n");

return 0;

}

6-13不用strcat,完成字字符数组连接

#include

int main()

{ char s1[80],s2[40];

int i=0,j=0;

printf("input string1:");

scanf("%s",s1);

printf("input string2:");

scanf("%s",s2);

while (s1[i]!='\0')

i++;

while(s2[j]!='\0')

s1[i++]=s2[j++];

s1[i]='\0';

printf("\nThe new string is:%s\n",s1);

return 0;

}

6-14比较字符串,输出字符编码差

#include

int main()

{ int i,resu;

char s1[100],s2[100];

printf("input string1:");

gets(s1);

printf("\ninput string2:");

gets(s2);

i=0;

while ((s1[i]==s2[i]) && (s1[i]!='\0'))//字符相同,就往后一个,知道遇到不同的字符i++;

if (s1[i]=='\0' && s2[i]=='\0')

resu=0;

else

resu=s1[i]-s2[i];

printf("\nresult:%d.\n",resu);

return 0;

}

7-1-1用函数调用发求最小公倍数和最大公约数

#include

int main()

{

int hcf(int,int);

int lcd(int,int,int);

int u,v,h,l;

scanf("%d,%d",&u,&v);

h=hcf(u,v);

printf("最小公约数=%d\n",h);

l=lcd(u,v,h);

printf("最大公倍数=%d\n",l);

return 0;

}

int hcf(int u,int v)

{

int temp,r;

if(v>u)

{

temp=u;u=v;v=temp;

}

while ((r=u%v)!=0)

{

u=v;

v=r;

}

return v;

}

int lcd(int u,int v,int h)

{

return(u*v/h);

}

7-2求a*x*x+b*x+c=0的根

#include

#include

float x1,x2,disc,p,q;//外部变量

int main()

{

void greater_than_zero(float,float);

void equal_to_zero(float,float);

void smaller_than_zero(float,float);

float a,b,c;

printf("input a,b,c:");

scanf("%f,%f,%f",&a,&b,&c);

printf("equation: %5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);

disc=b*b-4*a*c;

printf("root:\n");

if (disc>0)

{

greater_than_zero(a,b);

printf("x1=%f\t\tx2=%f\n",x1,x2);

}

else if (disc==0)

{

equal_to_zero(a,b);

printf("x1=%f\t\tx2=%f\n",x1,x2);

}

else

{

smaller_than_zero(a,b);

printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q);

}

return 0;

}

void greater_than_zero(float a,float b)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

}

void equal_to_zero(float a,float b)

{

x1=x2=(-b)/(2*a);

}

void smaller_than_zero(float a,float b)

{

p=-b/(2*a);

q=sqrt(-disc)/(2*a);

}

7-4矩阵转置

#include

#define N 3

int array[N][N];

int main()

{

void convert(int array[][3]);

int i,j;

printf("input array:\n");

for (i=0;i

for (j=0;j

scanf("%d",&array[i][j]);

printf("\noriginal array :\n");

for (i=0;i

{

for (j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

convert(array);

printf("convert array:\n");

for (i=0;i

{

for (j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

return 0;

}

void convert(int array[][3])

{

int i,j,temp;

for (i=0;i

for (j=i+1;j

{

temp=array[i][j];

array[i][j]=array[j][i];

array[j][i]=temp;

}

}

7-11用冒泡法对10个字符的字符串排序

#include

#include

#define N 10

char str[N];

int main()

{

void sort(char []);//申明中可以缺省字符串名

int i,flag;

for (flag=1;flag==1;)

{

printf("input string:\n");

scanf("%s",&str);

if (strlen(str)>N)

printf("string too long,input again!");

else

flag=0;

}

sort(str);

printf("string sorted:\n");

for (i=0;i

printf("%c",str[i]);

printf("\n");

return 0;

}

void sort(char str[])

{

int i,j;

char temp;

for(j=1;jstr[i+1])

{

temp=str[i];

str[i]=str[i+1];

str[i+1]=temp;

}

}

7-17 递归转换整数各位成字符串输出

#include

int main()

{

void convert(int n);

int number;

printf("input an integer: ");

scanf("%d",&number);

printf("output: ");

if (number<0)

{

putchar('-');putchar(' '); /* 先输出一个'-'号和空格*/

number=-number;

}

convert(number);

printf("\n");

return 0;

}

void convert(int n)

{

int i;

if ((i=n/10)!=0)

convert(i);

putchar(n%10 + '0');//转化为字符输出

putchar(32);

}

8-5 N个人围成报数,报到三的退出

#include

#define N 100

int main()

{

int i,k,m,n,num[N],*p;

printf("input number of person: n=");

scanf("%d",&n);

p=num;//指针p指向num数组

for (i=0;i

*(p+i)=i+1;

i=0; //报数id

k=0; //报到k的退出

m=0; //已退出的人数

while (m

{

if (*(p+i)!=0)

k++;

if (k==3)

{

*(p+i)=0;

k=0;

m++;//退出人数计数

}

i++;//下一个

if (i==n)//报到最后则从头继续

i=0;

}

while(*p==0)

p++;

printf("The last one is NO.%d\n",*p);

return 0;

}

广西大学828程序设计基础2020年考研专业课初试大纲

广西大学2020年研究生入学考试 《程序设计基础(828)》考试大纲与参考书目 考试性质 初试 考试方式和考试时间 闭卷考试 试卷结构 一、试卷满分及考试时间 本试卷满分为150分,考试时间为180分钟。 二、答题方式 答题方式为闭卷、笔试。 三、试卷内容结构 考试内容为C语言程序设计基础。 四、试卷题型结构 1. 判断题(10分) 2. 单项选择题(40分) 3. 填空题(20分) 4. 综合题(45分) 5. 编程题(35分) 考试内容 1、计算机程序设计基本知识 (1)源代码、目标代码、可执行程序、头文件、静态库、动态链接库/共享库; (2)预编译、编译、链接; (3)标准输入/输出、输入输出重定向、管道; (4)编译和解释型程序及其常见实例。 2、结构化程序设计方法 (1)C语言基础、常量、变量、基本数据类型、运算符、表达式、分支选择控制结构、循环控制结构;(2)函数、递归、文件I/O; (3)结构、数组、指针、字符串处理、变量存储、内存管理、位运算、指向函数的指针; (4)预处理器、多模块程序设计、流程图、规范程序设计。 3、面向对象程序设计OOP方法 (1)OOP基本思想、类、对象、属性、方法; (2)重载/覆盖、封装、继承/派生、多态、模板; (3)异常处理等; (4)C++基础、命名空间、C++字符串处理; (5)类图。 4、常用数据结构和算法 (1)链表、栈、队列、树、图; (2)排序、查找、字符串匹配; (3)算法复杂度分析。 参考书目 1 《C++程序设计教程(第2版)》,钱能编著,清华大学出版社,2005 2 《数据结构C语言版》,严蔚敏、吴伟民编著,清华大学出版社,2007 备注

计算机软件考研复试程序设计

5-3求m和n的最大公约数和最小公倍数 #include int main() { int p,r,min,max,temp; printf("请输入两个正整数max,min:"); scanf("%d,%d,",&max,&min); if (min>max) { temp=min; min=max; max=temp; } p = min * max; while(min!=0) { r = max % min; max = min; min = r; } //已经将mn中含有0的情况考虑在内 printf("它们的最大公约数为:%d, 最小公倍数为:%d\n", max, p/max); return 0; } 5-4输入一串字符,统计字母,数字,空格和其他字符 #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n') { if (c>='a' && c<='z' || c>='A' && c<='Z') letters++; else if (c==' ') space++; else if (c>='0' && c<='9') digit++; else other++; } printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other); return 0; }

5-5 计算2+22+222+…最大的数字是n个a #include int main() { int a,n,i=1,sn=0,tn=0; printf("a,n=:"); scanf("%d,%d",&a,&n); while (i<=n) { tn=tn+a; /*赋值后的tn为i个a组成数的值*/ sn=sn+tn; /*赋值后的sn为多项式前i项之和*/ a=a*10; ++i; } printf("a+aa+aaa+...=%d\n",sn); return 0; } 5-6 计算幂的和1!+2!+3!+4!… #include int main() { double s=0,t=1; int n; for (n=1;n<=20;n++) { t = t*n; s = s+t; } printf("1!+2!+...+20!=%22.15e\n",s);//科学计数法 return 0; } 5-9-2 找1~1000之间的定数(定数:因子之和等于本身,因子不包含本身,例如6=1+2+3)#include int main() { int m,s,i; for (m=2;m<1000;m++) { s=0; for (i=1;i

天津大学数据结构和程序设计考研真题

天津大学数据结构和程序设计考研真题-考研资料- 笔记讲义 许多学生在考研复习的时候,都会遇到重点不明确,不知道从何复习的情况。为此,天津考研网建议,考研复习中,专业的考研复习资料,是帮助考生能够快速掌握复习重点及方法必不可少的因素,然后就是真题和讲义,可以让同学了解历年考研的出题方向和大致范围。天津考研网推出了天津大学数据结构和程序设计的考研复习资料及真题解析班,以下为详细介绍: 天津大学数据结构和程序设计考研真题等资料由天津考研网签约的天津大学计算机科学与技术学院高分考研学生历时近一月所作,该考生在考研中取得了专业课129分的好成绩并在复试中更胜一筹,该资料包含该优秀本校考生的考研经验、考研试题解题思路分析、复试流程经验介绍以及针对官方指定参考书的重难要点并根据天津大学本科授课重点整理等,从漫漫初试长路到紧张复试亮剑为各位研友提供全程考研指导攻关。 特别说明:此科目06年以前科目名称为数据结构;自06年到08年科目名称改为计算机基础(包含数据结构、程序设计、计算机原理);自09年开始全国统考,科目名称为计算机学科专业基础综合;自2013年开始由学校自主命题,科目名称改为901数据结构与程序设计。 第一部分由天津考研网提供的核心复习资料: 天津大学数据结构和程序设计资料编者序言:本文的重点在于C++,数据结构的复习和复试基本情况介绍。C++、数据结构又分别从复习规划,复习用书,重点知识点结合历年考题这四个方面来展开的。复习规划大家务必看一下,然后根据自己的实际情况在制定自己的复习时间,因为内容很多,大多数同学都在考试之前复习不完,在心理因素上就落了一节。重点知识点一定要看了,这些知识点几乎每年都会有题了。另外我还给了历年试题的答案供大家参考。有的答案是自己做的答案,可能会有疏忽的地方。望大家提出宝贵的意见和建议。复试的东西现在了解一下即可,等到进复试了,还是有足够的时间看的。另外我还给了些自己复习心得。考完后感慨很多,回顾了这多半年来自己的成败得失。希望大家从一开始就沿着比较高效的方向前进,减少不必要时间的浪费。本资料格式为A4纸打印版,总量达到了130页

2009-2015计算机操作系统考研真题

注:所附答案为个人整理,不是标准答案,仅供参考。 2009年计算机专业考研真题——OS 23.单处理机系统中,可并行的是()。 I.进程与进程II.处理机与设备 III.处理机与通道IV.设备与设备 A.I、II和III B.I、 C.I、III和IV 24. A.时间片轮转调度算法 B. ) 26.分区分配内存管理方式的主要保护措施是()。 A.界地址保护 B.程序代码保护 C.数据保护 D.栈保护 27.一个分段存储管理系统中,地址长度为32位,其中段号占8位,则段长最大是()。 A.2的8次方字节 B.2的16次方字节 C.2的24次方字节 D.2的32次方字节 28.下列文件物理结构中,适合随机访问且易于文件扩展的是()。 A.连续结构 B.索引结构

C.链式结构且磁盘块定长 D.链式结构且磁盘块变长 29.假设磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110,180,170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是()。 A.110,170,180,195,68,45,35,12 B.110,68,45,35,12,170,180,195 C.110,170,180,195,12,35,45,68 D.12,35,45,68,110,170,180,195 30.文件系统中,文件访问控制信息存储的合理位置是()。 A.文件控制块 B. C.用户口令表 D. 31.设文件F1的当前引用计数值为1F3,然后删除F1。此时,F2和F3 N(N>0)个单元的缓冲区。P1每次用produce()生成一 P2每次用getodd()从该缓冲区中取出一个奇数并用countodd counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。 46.(8分)请求分页管理系统中,假设某进程的页表内容如下表所示。 页号页框号有效位(存在位) 0 101H 1 1 -- 0 2 254H 1 页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设

华侨大学C语言程序设计2015—2018年考研真题试题

华侨大学2015年硕士研究生入学考试专业课试卷 (答案必须写在答题纸上) 招生专业计算机技术(专业学位) 科目名称 C语言程序设计科目代码 847 一.选择题(每题3分,共60分) 1.下列各选项中,()是有效的标识符。 A)ab B)3day C)day-3 D)#abc 2.已知有定义:char ch;则如下正确的赋值为( )。 A)ch='M'B)ch='55'C)ch="M"D)ch="55" 3.已知 int y; float x=-3;执行语句 y=x%2;则变量y的值是()。 A)1 B)-1 C)0 D)语句本身是错误的 4.已知字母b的ASCII码为98,如ch为字符型变量,则表达式ch='b'+'5'-'2'的值为()。 A)e B)d C)102 D)100 5.已知 int j,i=1;则执行j=-i++; i和j的值为()。 A)1,-1 B)1,1 C)2,-1 D)2,1 6.已知 int a=-1,b=4,k;k=(++a<0&&!(b――<0));则k, a, b的值分别为()。 A)1,0,4 B)1,0,3 C)0,0,3 D)0,0,4 7.C语言程序的基本单位是()。 A)语句B)程序行C)函数D)字符 8.下列程序的运行结果是()。 main( ) { char s[20]="China"; printf("%d\n",strlen(s)); } A)5 B)6 C)20 D)无显示 9.已知 int i,j,k;scanf("%d%d%d",&i,&j,&k);若从键盘送入i,j,k的值分别为1,2,3时,则错误的输入方式是()。 A)1,2,3 B)1(回车)2(回车)3(回车) C)1 2 3 D)1(回车)2 3 10.有以下程序段 1

829计算机程序设计

《计算机程序设计基础》考试大纲 考试时间:180分钟 总分:150分 题型:选择题、填空题、判断改错题、简答题、案例分析题 考试大纲 一、数据的定义 数据的定义包括数据类型和存储类别。 1、基本类型 (1) 常量 熟练掌握各种表示形式的整数、实数、和字符(串)常量,符号常量的定义和使用。 包括整数的十进制、八进制和十六进制的表示形式、长整型常量的表示形式,实数的浮点表示法和科学记数法,字符的转义序列,常用符号常量的含义(如NUCLEON等) (2) 变量 熟练掌握变量的定义和初始化。 2、构造类型 构造类型包括数组、结构体和类。 (1)数组 熟练掌握一维和二维数组的定义和初始化,数组元素的引用。

包括一维字符数组和字符串,二维字符数组和字符串数组。 (2)结构 熟练掌握结构类型的定义,结构变量的定义和初始化,结构变量成员的引用及结构体数组和结构体指针的使用。 3、指针 (1)熟练掌握指针和地址的概念 (2)熟练掌握指针变量的定义和初始化 (3)熟练掌握通过指针引用指向实体 4、构造类型和指针类型的混合定义及应用 (1)熟练掌握指针、数组和地址间的关系 (2)熟练掌握指针数组 (3)链表:掌握链表的建立和遍历、结点的插入和删除 5、变量的存储类别、作用域和生存期 (1)静态存储变量 (2)掌握全局变量和局部变量 二、运算及流程控制 1、基本运算 熟练掌握运算符的功能

熟练掌握运算符的优先级、结合性和目数 熟练掌握隐式类型转换和强制类型转换 2、表达式 熟练掌握各类表达式的组成规则和计算过程 3、语句 (1)熟练掌握表达式语句、空语句、复合语句; (2)熟练掌握简单控制语句(break、continue、return); (3)熟练掌握选择控制语句(if switch) (4)熟练掌握重复控制语句(for、while、do—while); 三、程序结构和函数 1、程序结构 熟练掌握main函数与其他函数之间的关系 包括标准库函数和自定义函数 2、函数的定义 (1)熟练掌握函数定义的ANSI C格式 (2)熟练掌握函数的参数(形式参数和实在参数)及参数传递,包括 指针作为函数的参数 (3)熟练掌握函数的返回值,包括指针作为函数的返回值 3、函数的调用 (1)函数调用的一般格式 熟练掌握通过函数名调用函数,了解通过函数指针调用函数

计算机操作系统考研讲义

第5章输入输出设备管理 本章是操作系统的第四大功能,属于对硬件的管理。主要内容有:外部设备的分类及安装、输入输出设备的分配算法、外部设备和CPU 之间的数据传送控制方式(程序直接控制方式、中断控制方式、DMA 方式和通道方式)和设备驱动程序等。 5.1 概述 5.1.1设备管理的任务与功能 1.设备管理的任务 (1)按用户需求提出的要求接入外部设备; (2)尽量提高输入输出设备的利用率。如,发挥主机与外设以及外设之间的真正并行工作能力。 2.设备管理的功能 (1)分配设备 按设备的不同类型和操作系统选用的算法分配,包括分配相应的通道、设备控制器以及对未分配的任务或作业进行排队等。 (2)控制和实现真正的输入输出并行操作 包括通道程序控制、启动设备、及时响应及处理中断讯号等。(3)对输入输出缓冲区进行管理 如:逻辑名的管理,多个缓冲区的分时及串并行操作,同类多个外部设备的均衡工作。 (4)在一些较大系统中实现虚拟设备技术。 5.1.2 发展历史 计算机的基本输入输出设备的发展共经过了三代 (1)第一代:键盘和打印机; (2)第二代:鼠标和调制解调器; (3)第三代:手写笔和扫描仪等。 5.1.2外部设备的分类 在现代计算机系统中,除了CPU和内存(也叫主存储器)外,其它大部分硬件设备都可统称为外部设备。其中包括常用的输入输出设备、外存设备和终端设备等,还包括将外设和主机连接起来的通道(channel)和控制器(controller)。在计算机系统中,从不同角度将设备划分成不同的类型加以管理和调度,归类后简化了设备管理程序,管理工作的关键之一是“分类”和“记录”。 1.按用户和用户分类 (1)系统设备(一般是标准设备)

计算机操作系统考研真题计算机综合硕士真题

计算机操作系统考研真题计算机综合硕士 真题 一、选择题真题解析 4某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为()。[2016年408统考] A.(0,0),(0,1),(1,0),(1,1) B.(0,0),(1,0),(0,1),(1,1) C.(0,0),(0,1),(1,1),(1,0) D.(0,0),(1,1),(0,1),(1,0) 【答案】A ~ @ 【解析】使用改进型CLOCK置换算法淘汰页面时,其原理是: (1)首先扫描访问位为0,修改位为0的页; (2)若(1)中没有找到,则重新扫描,查找访问位为0,修改位为1的页,此过程中将被跳过页的访问位设为0; (3)若(2)依旧没找到,则开始重复(1)开始查找、若没有则继续(2)查找。

因此该算法首先置换(0,0)、(0,1),若都没找到,此时(1,0)、(1,1)被更改为(0,0)、(0,1)进行查找,所以最后该算法淘汰页的次序为(0,0),(0,1),(1,0),(1,1)。 45使用TSL(Test and Set Lock)指令实现进程互斥的伪代码如下所示。 do{ … whlie(TSL(&lock)); critical; section; lock=FALSE; …}while(TRUE);下列与该实现机制相关的叙述中,正确的是()。[2016年408统考] A.退出临界区的进程负责唤醒阻塞态进程 B.等待进入临界区的进程不会主动放弃CPU C.上述伪代码满足“让权等待”的同步准则 D.while(TSL(&lock))语句应在关中断状态下执行 【答案】B ~ @ 【解析】A项,TSL指令作用的进程都是短进程,不会出现阻塞情况,退出临界区的进程不需要负责唤醒阻塞态进程;C项,TSL指令作用的进程属于忙则等待的类型,运行的进程等待资源时,进入临界区的进程并不会主动放弃CPU。让权等待是指当进程不能进入临界区时,应立即释放CPU,与忙则等待相反;D项,在中断处理中,TSL是多处理器下的进程并发问题,采用PSW关中断/开中断方式是单处理器下的进程并发问题,两者不是混用的,即 while(TSL(&lock))语句不需要在关中断状态下执行。 46某进程的段表内容如表1-6所示。 表1-6

天津大学数据结构和程序设计考研真题

天津大学数据结构和程序设计考研真题-考研资料-笔记讲义 许多学生在考研复习的时候,都会遇到重点不明确,不知道从何复习的情况。为此,天津考研网建议,考研复习中,专业的考研复习资料,是帮助考生能够快速掌握复习重点及方法必不可少的因素,然后就是真题和讲义,可以让同学了解历年考研的出题方向和大致范围。天津考研网推出了天津大学数据结构和程序设计的考研复习资料及真题解析班,以下为详细介绍: 天津大学数据结构和程序设计考研真题等资料由天津考研网签约的天津大学计算机科学与技术学院高分考研学生历时近一月所作,该考生在考研中取得了专业课129分的好成绩并在复试中更胜一筹,该资料包含该优秀本校考生的考研经验、考研试题解题思路分析、复试流程经验介绍以及针对官方指定参考书的重难要点并根据天津大学本科授课重点整理等,从漫漫初试长路到紧张复试亮剑为各位研友提供全程考研指导攻关。 特别说明:此科目06年以前科目名称为数据结构;自06年到08年科目名称改为计算机基础(包含数据结构、程序设计、计算机原理);自09年开始全国统考,科目名称为计算机学科专业基础综合;自2013年开始由学校自主命题,科目名称改为901数据结构与程序设计。 第一部分由天津考研网提供的核心复习资料: 天津大学数据结构和程序设计资料编者序言:本文的重点在于C++,数据结构的复习和复试基本情况介绍。C++、数据结构又分别从复习规划,复习用书,重点知识点结合历年考题这四个方面来展开的。复习规划大家务必看一下,然后根据自己的实际情况在制定自己的复习时间,因为内容很多,大多数同学都在考试之前复习不完,在心理因素上就落了一节。重点知识点一定要看了,这些知识点几乎每年都会有题了。另外我还给了历年试题的答案供大家参考。有的答案是自己做的答案,可能会有疏忽的地方。望大家提出宝贵的意见和建议。复试的东西现在了解一下即可,等到进复试了,还是有足够的时间看的。另外我还给了些自己复习心得。考完后感慨很多,回顾了这多半年来自己的成败得失。希望大家从一开始就沿着比较高效的方向前进,减少不必要时间的浪费。本资料格式为A4纸打印版,总量达到了130页共计50000余字,清晰易复习,已于编写者签订资料保真转让协议,各位研友可放心使用参考!特别提示:本站尽力保证资料的有用性,但由于个人复习态度进度不同,故请酌情参考本资料! 天津大学数据结构和程序设计考研真题等资料目录 一、学院专业综述 二、近年来的录取情况及分数线 三、05、06年专业课试题的变化及其今后的趋势 四、复习策略和复习时间的统筹安排及所需要的辅助资料 五、C++和数据结构复习规划及复习侧重点(特别是05,06年的变化) 5七、复习经验与教训(学习生活心理诸方面) 八、关于数学和政治复习的小小的建议 九、计算机复试 十、附言

云南大学904计算机程序设计考研真题试题2014年

云南大学2014年招收攻读硕士学位研究生入学考试 自命题科目试题 考生特别注意:全部答案(含选择题)必须答在答题纸上,否则无效! 考试科目名称:计算机程序设计 考试科目代码:904 一、填空题(共10题,每题4分,共40分) 1.串是一种特殊的线性表,其特殊性表现在其数据元素都是。若设串S = “documentHash.doc\0”,则该字符串S的长度为。 2.对于无向图,每输入一条边需要生成个结点,分别插入在这条边的顶点的链表中。即无向图的邻接表中弧结点的个数为图中边的数目的倍。 3.任何一个C程序至少且只能包含一个____________函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由函数____________和函数体两部 分组成。 4.若已知X=5,Y=10,则计算Y*=++X表达式后,Y的值是____________。假定x 是一个逻辑量,则x&&!x||x||!x的值分别为____________。 5.在链表中进行____________和____________操作的效率比在顺序存储结构中进行相同操作的效率高。 6.当用长度为MaxSize的数组顺序存储一个栈时,若用top == MaxSize表示栈空,则表示栈满的条件为 。在一个链式栈中,若栈顶指针等于NULL则为 ____________。 7.已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据折半搜索过程成功搜索所给元素34时的比较次数为 ____________,根据折半搜索过程成功搜索所给元素356时的比较次数为 ____________。 8.C语言提供的数据结构,是以数据类型形式出现的。基本类型分类分为____________型、____________型(又称浮点型)、字符型、枚举型四种。 9.二维数组是一种非线性结构,每个数组元素最多有个直接前驱(或直接后继)。每个数组元素同时处于个向量中, 10.从一棵二叉搜索树中搜索一个元素时,若给定值小于根结点的值,则需要向 第1页,共3页

《计算机操作系统》考研第4版考研复习与考点

《计算机操作系统》考研第4版考研复习与考点第1章操作系统引论 1.1 复习笔记 一、操作系统的目标和作用 1操作系统的目标 (1)方便性。 (2)有效性。 (3)可扩充性。 (4)开放性。 2操作系统的作用 (1)OS作为用户与计算机硬件系统之间的接口。 (2)OS作为计算机系统资源的管理者。 (3)OS实现了对计算机资源的抽象。 二、操作系统的发展过程 1未配置操作系统的计算机系统 (1)人工操作方式。 (2)脱机输入/输出方式。 2单道批处理系统 3多道批处理系统 多道批处理系统特征:多道、宏观上并行、微观上串行。 4分时系统 分时系统的特征:多路性、独立性、及时性、交互性。

5实时系统 (1)实时系统的类型 ①工业(武器)控制系统,如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。 ②信息查询系统,如飞机或火车的订票系统等。 ③多媒体系统。 ④嵌入式系统。 (2)实时系统最主要的特征便是及时性与可靠性。 6微机操作系统的发展 微机操作系统按运行方式分为以下几类: (1)单用户单任务操作系统。 (2)单用户多任务操作系统。 (3)多用户多任务操作系统。 三、操作系统的基本特性 1并发(Concurrence) 区分并行与并发 (1)并行性是指两个或多个事件在同一时刻发生; (2)并发性是指两个或多个事件在同一时间间隔内发生。 2共享(Sharing) 目前实现资源共享的主要方式有以下两种: (1)互斥共享方式。 (2)同时访问方式。

3虚拟(Virtual) 4异步(Asynchronism) 并发和共享是多用户(多任务)OS的两个最基本的特征。 四、操作系统的主要功能 1处理机管理功能 对处理机的管理可归结为对进程的管理。处理机管理的主要功能有:(1)进程控制。 (2)进程同步。 (3)进程通信。 (4)调度。 2存储器管理功能 (1)内存分配。 (2)内存保护。 (3)地址映射。 (4)内存扩充。 3设备管理功能 (1)缓冲管理。 (2)设备分配。 (3)设备处理。 4文件管理功能 (1)文件存储空间的管理。 (2)目录管理。

2014年广东财经大学考研真题F517程序设计基础

广东商学院硕士研究生入学考试试卷 考试年度:2014年考试科目代码及名称:F-519程序设计基础 适用专业:087100-管理科学与工程试卷编号:B [友情提醒:请在考场提供的专用答题纸上答题,答在本卷或草稿纸上无效!] 一、名词解释(共6题,每题5分,共30分) 1.关键字static有什么用途?(请至少说明两种) 2.什么是平衡二叉树? 3.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 4.static全局变量与普通的全局变量有什么区别? 5.类 6.泛化 二、分析程序。写出程序运行结果(共5题,每题6分,共30分) 程序1 void main( ) { int n=5; if ( n++7=6 ) printf( “% d\n” , n); else printf ( “%d\n” , ++n ); } 程序2 void main( ) { int a[]={1,2,3},b[]={4,2,5}; int *p,*q; int i,x; p=a;q=b; for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2; } 程序3.

若有定义:int a=1,b=2,c=3;则执行以下程序后a,b,c 的值是多少 if(a <b) {c=a,a=b,b=c;} 程序4. void main ( ) { int n=‘e ’; switch (n- -) {default: printf (“error ”); case ‘a ’: case ‘b ’: printf(“good ”); break; case ‘c ’: printf(“pass ”); case ‘d ’: printf(“warn ”); } 程序5. 程序段运行后变量n 的值为多少 void main ( ) { int i=1,n=1; for( ; i<3;i++) { continue; n=n+i; } } 三、算法设计(共4题,每题5分,共20分) 1. 计算 f(x)= 122+-x x 2. 计算圆周率 程序用公式),10001 17151311(4++-+-?≈ π计算圆周率的近似值。 3. 从10个数中找出最大值和最小值 4. 计算满足一定条件的一位整数A 和B 的值,使其计算满足下式的一位整数A 和B 的值. 3 04A B B A ?

2016计算机考研408统考操作系统真题及答案word版本

23.下列关于批处理系统的叙述中,正确的是 I.批处理系统允许多个用户与计算机直接交互 Ⅱ批处理系统分为单道批处理系统和多道批处理系统 Ⅲ.中断技术使得多道批处理系统的Io设备可与CPU并行工作 A.仅Ⅱ、Ⅲ B.仅Ⅱ C.仅1、Ⅱ D.仅1、Ⅲ 24.某单CPU系统中有输入和输出设备各1台,现有3个并发执行的作业,每个作业的输入计算和输出时间均分别为2ms、3ms和4ms,且都按输入、计算和输出的顺序执行,则执行完3个作业需要的时间最少是 A. 15 ms B. 17ms C. 22 ms D. 27 ms 25.系统中有3个不同的临界资源R1、R2和R3,被4个进程p1、p2、p3及p4共享。各进程对资源的需求为:p1申请R1和R2,p2申请R2和R3,p3申请R1和R3,p4申请R2。若系统出现死锁,则处于死锁状态的进程数至少是 A 1 B.2C.3D.4 26.某系统采用改进型CLOCK置换算法,页表项中字段A为访问位,M为修改位。A=0表示页最近没有被访问,A=1表示页最近被访问过。M=0表示页没有被修改过,M=1表示页被修改过。按(A,M)所有可能的取值,将页分为四类:(0,0)、(1,0)、(0,1)和(1,1),则该算法淘汰页的次序为 A.(0,0),(0,1),(1,0),(1,1) B.(0,0),(1,0),(0,1),(1,1) C.(0,0),(0,1),(1,1),(1,0) D.(0,0),(1,1),(0,1),(1,0) 27.使用TSL( Test and Set Lock)指令实现进程互斥的伪代码如下所示 while(Tsl(&lock)) critical section: lock=false } while(TRUE): 下列与该实现机制相关的叙述中,正确的是 A.退出临界区的进程负责唤醒阻塞态进程 B.等待进入临界区的进程不会主动放弃CPU C.上述伪代码满足“让权等待”的同步准则 D, while(TSL(&lock))语句应在关中断状态下执行 28.某进程的段表内容如下所示 段号段长内存起始地址权限状态 0 100 6000只读在内存 1 200 空读写不在内存 2 300 4000读写在内存 当访问段号为2、段内地址为400的逻辑地址时,进行地址转换的结果是 A.段缺失异常 B.得到内存地址4400 C.越权异常 D.越界异常 29.某进程访问页面的序列如下所示 若工作集的窗口大小为6,则在£时刻的工作集为

华侨大学828C语言程序设计2015-2018年考研真题试卷

华侨大学2018年硕士招生考试初试自命题科目试题 (答案必须写在答题纸上) 招生专业计算机技术 科目名称C语言程序设计科目代码828 一、选择题(每题3分,共30题) 1、下列属于整型常量的是________. A、12 B、12.0 C、-12.0 D、10E10 2、不属于字符型常量的是_________. A.‘A’B、‘a’C、“A”D、‘b’ 3、下列表达式为关系表达式的为_________.(其中a为一整型变量) A.3+4*5B、a==10C、a>0?a:-a D、a=1 4、下面不正确的赋值语句是_____________. A.a=a+1B、a==b C、a+=b D、a=1 5、下列对数组定义不正确的语句是______________. A.int m[5];B、char b[]={‘h’,‘e’}; C、int a[10]={1,6,8,4}; D、char p[]; 6、若有以下定义,则______和______是对数组元素的正确引用。 int a[5],*p=a A.*&a[6]B、*p+8C、*(a+2)D、*p 7、执行下列语句后,a的值是______. int a=8; a+=a-=a*a; A.-240B、64C、112D、-112 8.指出下面正确的输入语句()。 A.scanf(“a=b=%d”,&a,&b); B.scanf(“%d,%d”,&a,&b); C.scanf(“%c”,c); D.scanf(“%f\n”,&f); 9.下面的变量说明中正确的是____________. A.int:a,b,c; B.int a;b;c; C.int a,b,c D.int a,b,c; 10.C语言用()表示逻辑“真”值。 A.True B.t或y C.非零整型值 D.整型值0 11.若x=5,y=4则y*=x+5;y的值为()。 A.40 B.20 C.15 D.30 12.C语言中以追加方式打开一个文件应选择_______________参数。 A.“r” B.“w” C.“rb” D.“a” 共6页第1页

青岛大学计算机程序设计2017年考研真题考研试题硕士研究生入学考试试题

青岛大学2017年硕士研究生入学考试试题 科目代码:922科目名称:计算机程序设计(共3页) 请考生写明题号,将答案全部答在答题纸上,答在试卷上无效 一、单选题(每题2分,共20分) 1.下面的用户标识符正确的是() A._c201 B.if C.3com D.int 2.对于一个完整的、可运行的C语言源程序来说,main函数是() A.可以没有 B.可以有多个 C.无所谓 D.必须有,且只有一个 3.如果函数参数是数组名,则向函数传送的是() A.数组的长度 B.数组的首地址 C.数组每一个元素的地址 D.数组每个元素中的值 4.若有“int a=2,b=3,c=4;”,则下列表达式为假的是() A.(a1) B.((c-b-1)>0)||(c-a) C.(!a==1)&&(!b) D.a>0&&b>0 5.已知A的ASCII码值为65,下列程序的执行结果是() int main(){ char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A.67,D B.B,C C.C,D D.程序有错 6.若有int n=2,*p=&n,*q=p;则错误的赋值语句是() A.p=q B.*p=*q C.n=*q D.p=n 7.如有int a,b,c;则执行scanf("a=%d,b=%d,c=%d",&a,&b,&c)时,为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是() A.132 B.1,3,2 C.a=1b=3c=2 D.a=1,b=3,c=2 8.下面的叙述中,不正确的是() A.在不同的函数中可以使用相同名字的变量。 B.函数定义中的所列的参数是局部变量。 C.在一个函数内定义的变量只在本函数范围内有效。 1

计算机操作系统考研讲义(7)

第七章操作系统结构和程序设计 7.1 操作系统的编程概念 1、操作系统编程的发展 在九十年代以前,程序员的精力集中于完成任务的过程,而不是用户与该过程的交互方式,过去评价一个软件的好坏往往是注意源程序的短小精悍和执行的快速性。快速的、清晰的编程是许多程序员努力要达到的理想境界。Windows操作系统将用户与计算机的交互方式的设计(即人机界面设计)放到了非常重要的位置。同时,Windows为不同形式的高层次交互提供了相应的机制:应用程序之间、操作系统和应用程序之间、公共的共享代码库和数据库之间。 2、编程语言简史 (1)机器语言:以二进制代码“0”、“1”组成的机器指令集合; (2)汇编(Assembler)语言:以助记符表示机器指令功能,例如,JOVIAL、forth; (3)高级语言:接近人类语言(英语)和数学语言的计算机语言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等; (4)进程(Process)概念:例如,UNIX Shell、TCL、PERL和Marvel等; (5)面向对象的语言:例如C++、Visual BASIC、java等; (6)新范例计算机语言:例如ML、Smalltalk、Eiffel等; 3、不同应用领域的计算机语言 (1)科学研究:

例如:FORTRAN、ALGOL、BASIC、APL、Pascal、C、C++、AUTOCAD等; (2)商业: 例如:COBOL、C、PL/I、4GLs、和spreadsheet等; (3)系统: 例如:Assembler、JOVIAL、Forth、C、C++、Ada、java等; (4)出版: 例如:TeX、Postscript、word、WPS、和processing等; (5)人工智能(AI,artificial intelligence): 例如:LISP、SNOBOL和Prolog等。 7.2 结构设计的目标 计算机操作系统一般都有两种运行状态,即用户态(user mode)和核心态(kernel mode)。计算机操作系统的结构设计一般包括内结构和外结构两种结构。传统操作系统内结构是指内部程序模块的层次结构,每一层由若干数量不等的程序模块组成。例如,早期的UNIX操作系统版本,如图7-1所示。

2021年计算机考研《计算机操作系统》考研历年真题

2021年计算机考研《计算机操作系统》考研历年真 题 第一部分考研真题精选 一、选择题 1下列关于线程的描述中,错误的是()。[2019年408统考] A.内核级线程的调度由操作系统完成 B.操作系统为每个用户级线程建立一个线程控制块 C.用户级线程间的切换比内核级线程间的切换效率高 D.用户级线程可以在不支持内核级线程的操作系统上实现 【答案】B查看答案 【解析】用户级线程仅存在于用户空间中,与内核无关,其线程库对用户线程的调度算法与OS的调度算法无关,不需要操作系统为每个用户级线程建立一个线程控制块。 2下列选项中,可能将进程唤醒的事件是()。[2019年408统考] Ⅰ.I/O结束 Ⅱ.某进程退出临界区 Ⅲ.当前进程的时间片用完 A.仅Ⅰ B.仅Ⅲ C.仅Ⅰ、Ⅱ D.Ⅰ、Ⅱ、Ⅲ 【答案】C查看答案

【解析】可能唤醒进程的事件包括I/O结束、某进程退出临界区等。当前进程的时间片用完会引起另一个进程的调度并运行,不是唤醒进程。 3下列关于系统调用的叙述中,正确的是()。[2019年408统考] Ⅰ.在执行系统调用服务程序的过程中,CPU处于内核态 Ⅱ.操作系统通过提供系统调用避免用户程序直接访问外设 Ⅲ.不同的操作系统为应用程序提供了统一的系统调用接口 Ⅳ.系统调用是操作系统内核为应用程序提供服务的接口 A.仅Ⅰ、Ⅳ B.仅Ⅱ、Ⅲ C.仅Ⅰ、Ⅱ、Ⅳ D.仅Ⅰ、Ⅲ、Ⅳ 【答案】C查看答案 【解析】系统调用接口是连接操作系统和应用程序的桥梁,而接口是以具体程序中的函数实现的,称之为系统调用,在不同的操作系统中,具有不同的系统调用,但是它们实现的功能是基本相同的。 4下列选项中,可用于文件系统管理空闲磁盘块的数据结构是()。[2019年408统考] Ⅰ.位图 Ⅱ.索引节点 Ⅲ.空闲磁盘块链 Ⅳ.文件分配表(FAT) A.仅Ⅰ、Ⅱ

C语言程序设计考研真题(B卷答案)

参考答案(B) 一、选择题(每题2分,共20分) 1. A 2. D 3. C 4. B 5. A 6. A 7. B 8. C 9. B 10. D 二、读程序写结果(每题5分,共20分) 1. 5, 4, 3 2. C++ Java Dephi 3. 8*6*4*2*0 8*6*4*2*0 8*6*4*2*0 8*6*4*2*0 8*6*4*2*0 4. 2345 5. 4 25 27 16 三、程序填空题(每空3分,共60分) 1.(1)i=i+2 (2)1 (3)i=1;iu*t (4)q->n=v (5)(q+1)->m=s (6)a+b (7)sort(n,x) (8)yleft (3)T,n,2*i+2 (4)scanf("%d",&n) (5)A,n,0,bitree 四、程序设计题(共50分) 1. #include void main() { char str[100],ch=' '; int i,count=0; gets(str); for(i=0;str[i];i++) { if(ch==' '&&str[i]!=' ') count++; ch=str[i]; } printf("%d\n",count); } 2.

计算机操作系统考研模拟题

一、综合题(50分) 1. 某个采用段式存储管理的系统为装入主存的一个作业建立了段表SMT,如表1所示。 (1) 给出段式地址转换过程。 (2) 计算该作业访问的内存地址(0,432) ,(1,10) ,(2,500),(3,400) 时的绝对地址。 2. 假设系统有同类资源10个,供P、Q、R三个进程共享,P、Q、R所需资源总数分别为8、4、9,它们申请资源的次序和数量如表2所示。 按银行家算法为它们分配资源: (1) 写出执行完序号为6的申请时,各进程的状态和已占的资源数。 (2) 请估计系统是否会出现死锁,并简要说明理由。 3. 有一个理发师,一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅子上睡觉;当一个顾客到来时,必须唤醒理发师,进行理发;如果理发师正在理发时,又有顾客来到,则如果有空椅子可坐,他就坐下来等,如果没有空椅子,他就离开。为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件。 二、综合题(50分) 1. 计算进程PC和打印进程P01、P02共享一个单缓冲区,计算进程负责计算,并把计算结果放入单缓冲中;打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每个计算结果,P01和P02都需分别打印一次。请用记录型信号量描述上述进程间的同步关系。 2. 假设磁盘有200个磁道,磁盘请求队列中是一些随机请求,它们按照到达的次序分别处于98、183、37、122、14、124、65、67号磁道上,当前磁头在53号磁道上,并向磁道号减小的方向上移动。请给出按FCFS、SSTF、SCAN 及CSCAN算法进行磁盘调度时满足请求的次序,并计算出它们的平均寻道长度。 3. 假设某多道程序设计系统中有供用户使用的内存100KB,打印机1台。系统采用可变分区方式管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法,进程剩余执行时 3所示: (1) 给出进程调度算法选中进程的次序,并说明理由。 (2) 全部进程执行结束所用的时间是多少? 三、综合题(50分) 1. 在一个分页存储管理系统中,页面大小为4KB,系统中的地址寄存器占24位.假定页表如表6所示: 现假定一逻辑地址,页号为3,页内地址为20,试设计相应的物理地址,并画图说明地址变换过程。 2. 假定磁盘的存取臂现在正处于8号柱面上,有如表7所示的四个请求者等待访问磁盘,试写出最省时的响应顺序,并计算存取臂移动的总量:

相关文档
最新文档