02275计算机基础与程序设计.docx
《02275计算机基础与程序设计.docx》由会员分享,可在线阅读,更多相关《02275计算机基础与程序设计.docx(16页珍藏版)》请在冰豆网上搜索。
02275计算机基础与程序设计
计算机基础与程序设计
一、单项选择题
1.微机中信息存储的最小单位是
A.bitB.byte
C.KBD.word
2.下列不属于计算机硬件系统的是
A.操作系统B.控制器
C.存储器D.运算器
3.在TurboC2.O中,保存源程序在主菜单File项中可选择
A.LoadB.New
C.SaveD.Quit
4.下面合法的C语言标识符是
A.ab_12B.int
C.πD.file.c
5.C语言源程序的基本单位是
A.过程B.函数
C.子程序D.语句
6.设有intx,y;表达式y=(x=1,++x,x+2)的值是
A.1B.2
C.3D.4
7.以十六进制形式输出整型数的格式说明符是
A.%xB.%u
C.%oD.%d
8.下面不正确的关系表达式是
A.a=3B.a<3
C.a>=b>cD.a>b>c
9.下面表达式结果为3的是
A.(-7)%4B.(-7.O)%4.0
C.7%(-4)D.7.O%4.O
10.字符串常量“CHINA”在内存中要占用几个字节
A.4B.5
C.6D.7
11.下面程序的输出结果是
main()
{inta=3,b=5;
a+=b;b+=a;
printf(“%d,%d”,a,b);}
A.3,5B.5,3
C.8,13D.13,21
12.下列程序段的输出结果是
voidmain(void)
{inyy=1,x=5;
if(x<0)y=-1;
if(x>=0)y=0;
printf("%d\n",y);}
A.-1B.0
C.1D.5
13.下面程序段的循环次数是
intk=2;
while(k==0)printf(″%d″,k);
k--;printf(″\n″);
A.0次B.1次
C.2次D.无限次
14.若有定义ints[4]={1,3,5,7};则s[s[3]-5]的值是
A.1B.5
C.3D.7
15.C语言的auto型变量存储在
A.动态存储区中B.静态存储区中
C.计算机CPU的寄存器中D.外存储器中
16.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为
A.直接递归调用B.间接递归调用
C.并行调用D.嵌套调用
17.若有说明longintx[5];下面能正确表示数组元素地址的是
A.&x[3]B.&x
C.&x+1D.*x
18.若要定义一个长整型的变量a和一个指向变量a的指针变量q,
下面正确的定义语句是
A.longa,*q=a;B.longa,*q=&a;
C.long*q=&a,a;D.longa,q=&a;
19.下列位运算符中,为单目运算符的是
A.~B.│
C.^D.&
20.下列函数中向文件一次读一串字符的函数是
A.fgetcB.fgets
C.fputcD.fputs
21.下列存储设备中,属于主机范畴的是
A.光盘B.硬盘
C.内存D.U盘
22.存储容量1KB等于
A.23字节B.210字节
C.220字节D.230字节
23.C语言源程序的基本单位是
A.过程B.函数
C.子程序D.语句
24.若定义doubled;则d在内存中分配的字节数是
A.1个B.2个
C.4个D.8个
25.下面转义字符中,表示换页的是
A.\0B.\n
C.\rD.\f
26.下面几种运算符中,优先级最低的是
A.,B.||
C.=D.*
27.设有inta=3,b=-4,c=5;表达式(a>b)?
b+c:
b的值是
A.0B.1
C.3D.-4
28.设有intx=2,y,z;执行z=y=x++;后变量y的值是
A.0B.1
C.2D.3
29.若有inta=8,b=5;语句printf(“%d”,a>b);的执行结果是
A.0B.1
C.5D.8
30.下列表达式中运算结果为3的表达式是
A.(-7)%4B.7/4+2
C.7/4*4-4D.8/3+8/3
31.在printf语句中,格式说明符u表示
A.以十进制带符号形式输出整数B.以十六进制带符号形式输出整数
C.以十进制无符号形式输出整数D.以十六进制无符号形式输出整数
32.下面程序段的输出结果是
main()
{inta=3,b=5,c;
c=a+b;a=b;b=c;
printf("%d,%d",a,b);}
A.3,5B.5,3
C.5,8D.8,13
33.设有如下程序段,执行完该程序段后,x的值为
intx=1,y=-1;
if(y<0)x-=y;
elsex+=y;
A.-1B.0
C.1D.2
34.执行下面程序段后,a的值是
inta=100;
do
{a++;}while(a>120);
A.100B.101
C.120D.121
35.若有定义intch[5][4];则数组ch中的元素的个数是
A.9B.12
C.15D.20
36.若有定义charstr[20];能使数组str得到字符串"Iamaboy"的正确输入方法是
A.gets(str);B.str=getchar();
C.scanf("%c",str);D.scanf("%s",str);
37.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为
A.直接递归调用B.间接递归调用
C.并行调用D.嵌套调用
38.若要定义一个长整型的变量a和一个指向变量a的指针变量q,
下面正确的定义语句是
A.longa,*q=a;B.longa,*q=&a;
C.long*q=&a,a;D.longa,q=&a;
39.设有说明:
intu=l,v=3,w=5;表达式:
u<<(v|w)的值是
A.1B.5
C.13D.128
40.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是
A.#includeB.#include
C.#includeD.#include
二、多项选择题
1.与十进制100等值的数有
A.(1100100)2B.(1011011)2C.(144)8
D.(64)16E.(5F)16
2.下面合法的C语言转义字符有
A.\123B.\xabC.\\
D.\88E.\n
3.下面能执行循环结构的语句有
A.if语句B.while语句C.do—while语句
D.for语句E.switch语句
4.下面属于C语言中输入或输出函数的有
A.scanfB.printfC.putchar
D.mainE.pow
5.设有说明:
intu=1,v=3,w=7;下面表达式的值为3的有
A.w>>1&v|uB.u&v&wC.u|v&w
D.w&v|u<<1E.v^w|u
6.与十进制57等值的数有
A.(111001)2B.(71)8C.(39)16
D.(101011)2E.(2A)16
7.下面合法的C语言用户定义的标识符有
A.autoB._123C.ABC
D.Turbo_cE.int
8.下面循环语句中,没有“无限循环”错误的循环语句有
A.for(;;);B.for(i=1;i<10;i++);C.while
(1);
D.while(0);E.do{循环体}while
(1);
9设有声明:
inta[5]={1,3,5,7,9};下面表达式的结果为10的有
A.a[l]+a[3]B.a[2]-2*a[1]C.2*a[2]
D.a[0]+a[4]E.a[1]+[-a[2]+a[3]
10.若有如下定义及赋值,则可以输出变量x的值的语句有
intx=5,*p,*pl;
p=&x;
pl=p;
A.printf(″%d\n″,x);B.printf(″%d\n″,*p);C.printf(″%d\n″,p1);
D.printf(″%d\n″,&x);E.printf(″%d\n″,*p1);
三、简答题
1.简述机器语言、汇编语言和高级语言各自的特点。
2.简述break语句和continue语句在循环体中的功能。
3.设有声明
structstudent
{longxh;
charname[10];
shortintage;
};
structstudenta={1234,"Wang",18};
简单回答:
结构体名,结构体类型变量,结构体类型变量所占的字节数,以及结构体成员age的值是什么?
4将下面的各种运算符按优先级从高到低排列出来。
(要同优先级的用“、”号分隔,不同优先级的由高向低用“→”号分隔)
,、<=、>=、[]、++、%、&&、/
5.C语言中的运算符“=”与运算符“==”的意义相同吗?
为什么?
6.函数fclose()的功能是什么?
7.变量的存储类别分为哪几种?
它们分别存储在什么区域?
8.设有声明:
structcjd
{longbh;
longintxq;
charxm[9];
floatscore[3];
};x={201101,2,″张大力″,76,85.0,90};
简单回答
(1)结构体名;
(2)结构体类型变量;(3)结构体类型变量所占字节数;(4)结构体成员x.score[2]的值。
四、阅读分析题
1.写出下面程序的运行结果
main()
{
inta=1,b=2,c=3;
++a;
b=b+a;
c=c/2;
printf(″%d,%d,%d\n″,a,b,c);
}
2.写出下面程序的运行结果
main()
{
charch;
ch=′a′;
switch(ch)
{case′a′:
printf(″*\n″);
case′b′:
printf(″**\n″);
case′c′:
printf(″***\n″);}
ch=′b′;
switch(ch)
{case′b′:
printf(″**\n″);
case′a′:
printf(″*\n″);break;
case′c′:
printf(″***\n″);}
}
3.写出下面程序的运行结果
voidmain(void)
{
intx;
for(x=1;x<10;x+=2)
printf(″%d\t%d\n″,x,x*x);
}
4.写出下面程序的运行结果
#include
main()
{
chara[5][8]={″java″,″fortran″,″basic″,″cobol″,″pascal″},b[8],c[8];
inti;
strcpy(b,a[0]);
strcpy(c,a[0]);
for(i=1;i<5;i++)
{
if(strcmp(b,a[i])<0)strcpy(b,a[i]);
if(strcmp(c,a[i])>0)strcpy(c,a[i]);
}
printf(″%s\n″,b);
printf(″%s\n″,c);
}
5.写出下面程序的运行结果
func(intx,inty,int*jia,int*jian)
{
*jia=x+y;
*jian=x-y;
}
main()
{
inti=10,j=3,x1,x2;
func(i,j,&x1,&x2);
printf("%d,%d\n",x1,x2);
}
6.写出下面程序的运行结果
voidf2(char*t,char*s)
{
while(*t!
=′\0′)t++;
while(*s!
=′\0′)
{
*t=*s;
s++;t++;
}
*t=*s;
}
voidmain(void)
{
chars[80]=″″,*ps[3]={″there″,″isa″,″car″};
inti;
for(i=0;i<3;i++)
f2(s,ps[i]);
printf(″%s\n″,s);
}
7.写出下面程序的运行结果
main()
{
inta=0,b=1;
printf("a=%d,b=%d\n",a,b);
a+=b;b+=a;
printf("a=%d,b=%d\n",a,b);
}
8.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结果
main()
{
intx;
scanf("%d",&x);
if(x>2&&x<=10)
y=x*(x+2);
elseif(x>-1&&x<=2)
y=2*x;
elseif(x<-1)y=x-1;
if(y!
=-1)
printf("%d,y);
else
printf("error");
}
9.请阅读分析下列程序,然后写出程序的循环次数和运行结果
main(void)
{
inti;
for(i=1;i<6;i++)
{
if(i%2)
{printf("@");continue;}
printf("*");
}
printf("\n");
}
10.写出下面程序的运行结果
main()
{
inta[4][4],i,j;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=i+j;
for(i=1;i<4;i++)
{
for(j=1;j<=i;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
11.写出下面程序的运行结果
func(intx,inty,int*jia,int*jian)
{
*jia=x+y;
*jian=x-y;
}
main()
{
inti=10,j=3,x1,x2;
func(i,j,&x1,&x2);
printf("%d,%d\n",x1,x2);
}
12.写出下面程序的运行结果
voidmain(void)
{
inta[]={1,2,3,4,5,6},*p;
p=a;
p++;
*(p+3)+=2;
printf("%d\n",*p);
printf("%d\n",*(p+3));
五、编程题
1.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。
2.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。
3从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。
4.从二进制文件c:
\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数据按从小到大的次序输出在屏幕上。