C语言二级题库(卷一)
一、单选题
1.操作系统通常由操作系统内核和许多配套软件、程序库等组成。
内核主要是指提供任务管理、存储管理、文件管理和设备管理等功能的软件模块,在操作系统运行过程中,内核通常都驻留在内存中,它以CPU的最高优先级运行
应用程序接口(API)是操作系统必不可少的组成部分,但不属于操作系统内核范畴
操作系统的内核包括任务管理、存储管理、文件管理、设备管理、安全管理、通信协议、系统调用接口
相同内核的操作系统可以有多种不同的产品,例如Windows操作系统等
2.目前在Windows中文版操作系统中,通常使用UTF-16来表示和处理文本,在数据文件需要保存到外存时会转换成操作系统所默认的本地编码(方案)
3.电路交换的效率最低,因为在通信的全部时间内始终占用端到端的传输信道
在分组交换中,需要将传输的数据划分为若干个数据块,并据此生成数据包进行传输
分组交换是实现分组交换方式的关键设备,其基本工作模式是“存储转发”
分组交换技术因为要在缓冲区中排队,所以会产生一定的时延,但系统开销低
4.集成度(单个集成电路所含电子元件的数目)
小于100的小规模集成电路SSI
100-3000的中规模集成电路MSI
3000-10万的大规模集成电路LSI
10万-100万的超大规模集成电路VLSI
超过100万的极大规模集成电路ULSI
(通常不严格区分VLSI与ULSI,统称为VLSI)
5.电子邮件是互联网上最早被广泛使用的一种通信服务,电子邮件系统按C/S
www是目前互联网上最广泛使用的一种信息服务和信息处理平台,www系统按C/S模式工作
FTP是互联网上广泛使用的一种传统应用,需要进行文件传输的两台计算机按C/S模式工作
即时通信服务从单一的C/S工作模式逐渐变化为C/S与P2P混合模式
6.负数在计算机中存放时,最高位是1,正数在计算机中存放时,最高位是0,采用“除以2逆序取余法”得到原码,原码转补码的原则是“符号位不变,后面的每1位取反最末位加1”
7.标清720×480或640×480
高清1280×720
全高清1920×1080
超(高)清3460×2160
8.有线通信中使用的传输介质是金属导体或光导纤维,前者传输电信号、后者传输光信号
双绞线:成本低、误码率高、传输距离有限,用于固定电话本地回路、计算机局域网
同轴电缆:传输特性和屏蔽性良好、成本高,用于固定电话中继线路,有线电视接入
光缆:传输损耗小、传输距离长,用于电话、电视、计算机网络
无线通信是借助电磁波在空间的传播来传输信息,存在易被窃听、易受干扰等缺点
目前手机、蓝牙和无线局域网(Wi-Fi)都使用微波进行通信
9.高级语言编写的程序可以由编译程序将其翻译转换为可执行程序,其文件扩展名通常是COM、EXE、DLL
APP是iOS手机可执行程序的简称
10.存储容量单位(从小大大)B,KB,MB,GB,TB,PB,EB,ZB,YB
若为硬盘:1KB=1000B,1MB=1000KB
若为内存:1KB=1024B,1MB=1024KB
二、程序设计题
1.输出结果:2
#include<stdio.h>
float p=1.5;
void fun(void)
{
int p=1;//fun.p=1
}
#define p 2.5
int main()
{
fun();
printf("%d",(int)p);//int强制转换取整为2
return 0;
}
2.通过scanf("%d",变量内存地址)可以实现将键盘输入的一串数字字符串转换为int类型数据
gets用于给字符数组赋值,getchar用于给字符变量赋值
3.已有声明"int a[5],* b=a,(* c)[3],*d[3];",语法错误的为:c[0]=0
因为int(*c)[3]的含义是声明一个变量c,指向一块内存空间,这块内存空间中只能存放行地址的内存编号
5.执行语句"fp=fopen(“my.dat”,“r+”);"后,程序对文件my.dat中数据的读写操作权限为可读且可覆盖写
只读通过r实现
只写通过w实现
通过r+实现对数据进行读且可覆盖写
可读且可追加写通过a或a+实现
三、操作题
题目1.
【程序功能】
已知方程x2-3x+2=0在区间[0,1.5]内有一实根。以下程序中函数root为递归函数,采用二分法(半分区间法)求方程f(x)=0在区间[a,b]内的一个近似实根x,当|f(x)|<10-8时,x即为所求的近似实根
【测试数据与运行结果】
输出:One root is 1.000000
【代码】
#include<stdio.h>
#include<conio.h>
#include<math.h>
double f(double x)
{
return x*x-3*x+2;
}
double root(double a,double b)
{
double m=(a+b)/2,x=0;//(a+b)/2为填空
if(fabs(f(m))<1e-8)
x=m;//m为填空
else
{
if(f(a)*f(m)>0)//f(a)
a=m;
else
b=m;
x=root(a,b);//a,b
}
return x;
}
int main()
{
printf("One root is %lf",root(0,1.5));
getchar();
return 0;
}
题目3:
#include <stdio.h>
int tongji(char x[],char a[],int c[])
{
int i=0,k=0;
char b;
while(x[i])
{
if(x[i]>='A' && x[i]<='Z')
{ b=x[i];
c[b-65]++;
}
if(x[i]>='a' && x[i]<='z')
{
b=x[i];
c[b-65-32]++;
}
i++;
}
for(i=0;i<26;i++)
{
if(c[i]>0)
{
a[k]=i+65;
c[k]=c[i];
k++;
}
}
return k;
}
int main()
{
FILE *fp;
int k,i;
char x[]="Good Lucky";
char a[26];
int c[26]={0};
fp=fopen("myf2.out","w+");
if(fp==NULL)
{
printf("ERROR");
return 0;
}
k=tongji(x,a,c);
for(i=0;i<k;i++)
{
printf("%c:%d\n",a[i],c[i]);
fprintf(fp,"%c:%d\n",a[i],c[i]);
}
fprintf(fp,"My Exam Number is 001122");
fclose(fp);
return 0;
}
|