当前位置:文档之家› 计算机等级考试试题

计算机等级考试试题

全国自考计算机基础与程序设计历年真题

全国2009年7月自考计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的。请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.内存每个基本单元都有唯一的序号,这个序号称为( )
A.地址 B.字节
C.代码 D.字
2.计算机对编译型高级语言的执行方式是( )
A.逐条语句边解释边执行,即解释一条就执行一条
B.将整个程序编译完成后再执行,不生成目标代码
C.将源程序编译成目标程序,执行连接后的程序
D.将源程序解释完毕后再执行
3.下列转义字符中,表示换行的是( )
A.\0 B.\n
C.\r D.\f
4.unsigned long型数的取值范围是( )
A.-215~(215-1) B.-231~(231-1)
C.0~(216-1) D.0~(232-1)
5.设有int a=3;表达式a十=a *=a *=a的值是( )
A.3 B.9
C.81 D.162
6.下列四种运算符中,优先级最低的是( )
A.>= B.!
C.&& D.||
7.下列程序段的输出结果是( )
main( )
{
int a=5,b=3,c;
c=a;a=b;b=c;
printf(″%d,%d\n″,a,b);
}
A.3,5 B.5,3
C.5,8 D.8,3
8.下列程序段所表示的逻辑关系是( )
if(aif(c==d)
x=l;
else
x=2;
A.x= B.x=
C.x= D.x=
9.执行下列程序段后,i的结果是( )
int i=10;
switch(i){
case 9:i+=l;break;
case 10:i+=l;break;
case 11:i+=1;break;
default:i+=1;break;
}
A.10 B.1l
C.12 D.13
10.下列程序段的输出结果是( )
a=100;
do
a=a+l;
while(a>120);
printf(″%d″,a);
A.100 B.101
C.120 D.121
11.关于break和continue语句,下列说法正确的是( )
A.在循环体中可以用break语句结束本次循环
B.在循环体中可以用continue语句结束本次循环
C.break语句仅能使用在switch结构中
D.可以使用continue语句跳出switch结构
12.若有定义int a[4]={l,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于( )
A.1 B.2
C.3 D.4
13.定义如下变量和数组,则下列程序段的输出结果是( )
int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
if(i % 2!=1) printf(″%d″,x[i][i]);
A.19 B.17
C.37 D.39
14.若有定义static char str2[10],strl[ ]=″China″;欲将strl中的字符串拷贝到str2中去,下列正确的语句是( )
A.strcpy(str2,strl); B.strcpy(strl,str2);
C.strcpy(″China″,str2); D.strl=str2;
15.下列关于C程序的说法中不正确的是( )
A.一个源程序文件由一个或多个函数组成
B.一个C程序可以有多个名字为main的函数
C.一个C程序由一个或多个源程序文件组成
D.一个C程序必须有一个main函数
16.用数组名作为函数调用时的实参,实际上传

递的是( )
A.数组全部元素的值 B.数组第一个元素的值
C.数组的首地址 D.数组元素的个数
17.设有函数( )
void print _value(int * x)
{printf(″%d\n″,+ + * x);}
执行程序段int a=25;print_value(&a);的正确输出是
A.23 B.24
C.25 D.26
18.语句float *p [6];的含义是( )
A.p是一个数组,有6个元素,每个元素都是浮点数
B.p是一个指针,指向有6个浮点数据的数组
C.p是一个指针数组,有6个元素,每个元素都是浮点型指针
D.p是一个指针,指向一个浮点数
19.设有下列程序( )
# include ″stdio.h″
void main(void)
{
unsigned x=1,y=2;
printf(″%d\n″,~(x&y));
}
该程序的运行结果是
A.-1 B.0
C.1 D.2
20.设有说明:FILE * fp;对于fp=fopen(″c:\\abc.dat″,″r+″);语句,下列说法正确的是
( )
A.打开ASCII文件读写 B.打开二进制文件读写
C.打开ASCII文件只读 D.打开二进制文件只读
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。

21.下列数据中等值的有( )
A.(0.100)2 B.(0.101)2
C.(0.5)8 D.(0.625)10
E.(0.A)16
22.下列有关switch语句的说法中正确的有( )
A.switch后面的表达式可以为任意类型
B.case后的每个常量表达式的值必须互不相同
C.若case后面有两个或两个以上的执行语句,必须加花括号
D.一个case对应一组执行语句,多个case不可共用同一组执行语句
E.default部分可有可无
23.下列对数组赋初值正确的有( )
A.int a[ ][ ]={l,2,5,8,3,7};
B.int a[ ][3]={1,2,5,8,3,7};
C.int a[2][3]={1,2,5,8,3,7};
D.int a[2][ ]={1,2,5,8,3,7};
E.int a[3][3]={l,2,5,8,3,7};
24.若有说明:int a[ ]={1,2,3,4,5,6,7,8,9,0},i;当0≤i<10时,下列对数组元素地址正确的表示有( )
A.&a+l B.a+l
C.a++ D.&a[i]
E.a+i
25.下列关于结构体类型的定义正确的有( )
A.struct river B.struct river C.struct
{ { {
int branch; int branch; int branch;
char name[20]; char name[20]; char name[20];
}; } }
D.struct E.struct river
{ {
int branch; int branch;
char name[20]; char name[20];
}; struct river * next;
};

三、简答题(本大题共4小题,每小题4分,共16分)
26.假设字长为8位,请写出-1的原码和补码。
27.写出for语

句的一般形式并分析循环体被执行的条件。
28.字符数组的初始化与字符串指针变量的初始化有什么不同?
29.语句fwrite(stu,size,n,fp);中stu、size、n和fp的含义各是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下列程序并写出运行结果。
void main (void)
{ int a=987,b=l00,x,y;
y=b;
x=a/b;
print ("%d,%d\n",x,y);
}
31.阅读下列程序,若输入0,3并回车,则程序的输出结果是什么?
void main(void)
{ int x,y,z;
scanf ("%d,%d",&x,&y);
if(x{z=x;x=y;y=z;}
print ("%d,%d\n",x,y);
}
32.下列程序的功能和输出结果是什么?
void main(void)
{ int k=0,total=0;
while(k<=100){
total+=k;
k++;}
print("total=%d\n",total);
}
33.阅读下列程序并写出运行结果(注:A的ASCII码值为65,a的ASClI码值为97)。
void main(void)
{ int i=64;
char s[20],* p=s;
while(i++<=73){
* p=i%2==0? i+32:i;
p++;
}
* p=′\0′;
printf("%s\n",s);
}
34.阅读下列程序并写出运行结果。
int fib(int n)
{
static int f0=0,fl=l,i,f;
for(i=3;i<=n;i++){
f=f0+fl;f0=fl;fl=f;
printf("f0=%d,fl=%d\n",f0,fl);
}
return(f);
}
void main(void)
{
printf("%d\n",fib(3)+fib(3));
}
35.阅读下列程序并写出程序的运行结果。
#include"string.h"
#include"malloc.h"
struct planet
{
char name[20];
double weight;
struct planet * next;
} * head=NULL;
void main(void)
{
struct planet * p;
char * planet_name[3]={"earth","venus","mars"};
double planet_weight[3]={25455700.565,11253300.437,7286320.512};
int j;
for(j=0;j<3;j++)
{
p=(struct planet * )malloc(sizeof(struct planet));
strcpy(p->name,planet_name[j]);
p->weight=planet_weight[j];
p->next=head;
head=p;
}
p=p->next;
printf("%s,%lf\n",p->name,p->weight);
}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘上输入20个整数,求其中正数的累加和并输出结果。
37.在文本文件c:\pxl.dat中有10个实型数据(每两个数之间用逗号隔开),编程将这10个数按从小到大排序后,写到文本文件c:\xpl.dat中。




全国2009年4月自考计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.衡量存储器的基本单位是( )
A. bit B. byte
C. KB D. word
2.Windows操作系统是( )
A. 单用户、单任务 B. 单用户、多任务
C. 多用户、单任务 D. 多用户、多任务
3.组成微机主存储器的是( )
A. CD—ROM和RAM B. 硬盘和RAM
C. 硬盘和CD—ROM D. ROM和RAM
4.下列数据中最大数是( )
A. (1010010)2 B. (123.4)8
C. (84.5)10 D. (55)16
5.在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键( )
A.

Alt+F1 B. Alt+F5
C. Alt+F9 D. Alt+F10
6.下列是合法C语言常量的是( )
A. e B. 7E4.0
C. E4 D. -9.13E-30
7.设有int a=3,b=-4,c=5;表达式(aA. 0 B. 1
C. 3 D. 4
8.以指数形式输出实型数的格式说明符是( )
A. %u B. %x
C. %f D. %e
9.下列程序的输出结果是( )
main( )
{ int x=5,y;
if(x<0)y=-1;
if(x==0)y=0;
y=1;
printf(″%d″,y);
}
A. -5 B. -1
C. 0 D. 1
10.下列程序段的输出结果是( )
i=1;
while(i<3){
j=1;
while(j<=i){
printf(″%d″,i+j);
j++;
}
i++;
printf(″\n″);
}
A. 2 3 3 4 B. 2 3 4
C. 2 3 D.2
3 4 3 4
11.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是( )
A. puts (str1,str2) B. puts (str2)
C. putchar (strl) D. putchar (str1,str2)
12.下列关于函数的说明中不正确的是( )
A. 函数名后面可以不要一对圆括号
B. 函数参数类型必须作说明
C. 函数形参个数可以是一个、多个或没有
D. 空函数被调用时不做任何工作
13.若有定义:int a[5];则a数组中首元素的地址可以表示为( )
A. &a B. a+1
C. a D. &a[1]
14.设有char s=″\ta\017bc″;则指针变量s指向的字符串在内存中所占的字节数是
( )
A. 5 B. 6
C. 7 D. 9
15.下列关于结构体类型的定义正确的是( )
A. struct tree B. struct tree
{ int branch; { int branch;
char name[20]; char name[20],
char relation; char relation,
}; };
C. struct tree D. struct tree
{ int branch { int branch;
char name[20] char name[20];
char relation char relation;
} }
16.下列各个位运算符的优先级从左到右依次降低的是( )
A. | & ? > > B. ? & > > |
C. ~ > > ? | D. ~ > > | ?
17.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是( )
A. 3 B. 5
C. 6 D. 8
18.设有下列程序:( )
#include″stdio.h″
main( )
{
unsigned x=8,y=2;
printf(″%d\n″,y|~(x&y));
}
该程序的运行结果是
A. -1 B. 0xff
C.127 D. 65535
19.若有定义∶# define P(x) x x x+1和说明语句:int a=2;则表达式P(2)的值是( )
A. 6 B. 8
C. 9 D. 10
20.在语句fgets(str,n,p);中,下列说法不正确的是( )
A. str是字符指针 B. 一次可以读n个字符
C. str是字符数组名 D. 一次可以读n-1个字符
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下列关于计算机的叙述中正确的是( )
A. CPU是计算机系统的部件
B. I/O设备不是计算机系统的部件
C. 计算机区别于其他计算工具的本质特点是能存储数据
D. “裸机”是指不配置任何软件

的计算机
E. 计算机指令是控制计算机进行操作的命令
22.设有int a=3,b=-5;下列表达式的值等于1的有( )
A. a&&b<0 B. fabs(b)-a-1>0
C. a>b&&b<0 D. (a,2,-5)==(b,2,a)
E. a+b<0
23.下列关于break、goto、continue语句的说法中正确的是( )
A. break语句能够用于循环语句中
B. break语句不能用于switch语句中
C. goto语句可以用于直接从多层循环中退出
D. continue语句可用于跳出循环体
E. continue语句不能用于switch语句中
24.若有定义:int y[4][4],( p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是( )
A. printf (″%d\n″,&y[2][0]); B. printf (″%d\n″, y[2][0]);
C. printf (″%d\n″,p[2][0]); D. printf (″%d\n″, y[2]);
E. printf (″%d\n″, ( (y+2));
25.设有关于结构体类型的定义:
struct worker
{
int id;
char name;
float salary;
} wl={102035,″Lihua″,2560.50}, p;
下列选项中语句语法正确的有( )
A. p=wl; B. p=&wl;
C. p->id=wl->id D. p->id=wl.id;
E. p.salary=wl.salary;
三、简答题(本大题共4小题,每小题4分,共16分)
26.有无default对switch语句有什么不同的影响?
27.写出do-while语句的一般形式及其执行过程。
28.定义 char a[ ]=″I am a student.″, str=a;等价于
char a[ ]= ″I am a student.″, str;
str=a;
吗?为什么?
29.设有说明:
struct vegetable
{
char part;
char color;
} clove;
char part _ of _ vegetable [3]={″AA″,″BB″,″CC″};
char seven _ color={″11″,″22″,″33″,″44″,″55″,″66″,″77″};
请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读分析下面程序后,写出程序的运行结果。
# include ″stdio.h″
main ( )
{
int a=978,x,y,z,i,j,w;
x=a/100;
y=(a-100 x)/10;
z=a-10 y-100 x;
i=y>z? z:y;
j=y<=z? z:y;
w=100 x+10 i+j;
printf(″%d,%d,%d,%d\n″,x,y,z,w);
}
31.阅读分析下面程序后,写出程序的运行结果。
# include ″stdio.h″
main( )
{
int n,m;
for(n=1;n<=5;n++)
{
for(m=1;m<=4;m++)
printf(″%4d″,m n);
printf(″\n″);
}
}
32.阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
main ( )
{
int arr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<=4;i++)
{
k+=arr[i]+i;
printf(″%5d″,k);
}
}
33.阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
int fun(int x)
{
int p;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
printf(″%5d″,p);
return (p);
}
main( )
{
fun(9);
}
34.阅读下面程序,分析cat函数的功能并写出程序的运行结果。
#include″stdio.h″
void cat(char s,char t)
{
while( s) s++;
while(( s++= t++)!=′\0′);
}
main( )
{
char sl[80]=″computer″,s2[80]=″Pentium_

″;
cat(s2,s1);
printf(″% s\n″,s2);
}
35.阅读分析下面部分程序:
struct cjd
{
char name[9];
float score[2][2];
} x;
float t[2][2]={70.5,65.0,83.0,92.5};
int j,k;
请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。
37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人。



























全国2008年7月自考计算机基础与程序设计试卷
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.一个完整的计算机系统应该包括( )
A.主机和外设 B.主机和操作系统
C.硬件系统和系统软件 D.硬件系统和软件系统
2.若用八位二进制表示一个整数,则-4在计算机中的表示是( )
A.11111100 B.11111011
C.10000100 D.00000100
3.下列转义字符中,表示回车的是( )
A.\0 B.\n
C.\r D.\f
4.若定义double d;则d在内存中分配的字节数是( )
A.1个 B.2个
C.4个 D.8个
5.下列表达式中运算结果为3的表达式是( )
A.(-7)%4 B.7/4+2
C.7/4*4-4 D.8/3+8/3
6.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是( )
A.-6 B.-5
C.-4 D.-3
7.在printf语句中,格式说明符u表示( )
A.以十进制带符号形式输出整数
B.以十六进制带符号形式输出整数
C.以十进制无符号形式输出整数
D.以十六进制无符号形式输出整数
8.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是( )
if(a{
if(c= =d)
x=c;
}
else
x=d++
A.4 B.5
C.6 D.7
9.关于switch中的表达式,正确的说法是( )
A.它必须是算术表达式 B.它必须是关系表达式
C.它必须是逻辑表达式 D.它可以是任意类型的表达式
10.对do语句while(表达式);结构的循环,下列说法正确的是( )
A.当表达式的值为非零时不执行循环体
B.循环体至少被执行一次
C.当表达式的值为零时循环体一次也不执行
D.循环体仅被执行一次
11.只能在循环语句中用于结束本轮循环的语句是( )
A.break; B.continue;
C.goto D.if
12.若有定义int a[4]={1,2,3,4};则a[(a[1]*a[3]+a[0])3-1)]的值是( )
A.1 B.2
C.3 D

.4
13.若有定义int a[3][5];则数组a在内存中分配的字节数是( )
A.8 B.15
C.24 D.30
14.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?( )
A.gets(strl) B.gets(strl,str2)
C.getchar(strl) D.getchar(strl,str2)
15.下列关于函数的描述中正确的是( )
A.C程序中有调用关系的所有模块必须放在同一个源文件中
B.函数必须有返回值,否则不能使用函数
C.C程序必须由一个或一个以上函数构成
D.C函数既可以嵌套定义又可以嵌套调用
16.设有下列程序,则( )
int d=10;
main()
{
int a=3;printf(“%d,%d\n”,a,d);
}
A.a是全局变量,d是全局变量
B.a是局部变量,d是全局变量
C.a是全局变量,d是局部变量
D.a是局部变量,d是局部变量
17.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( )
A.p1=m; B.&p2=n;
C.pl=&m;p2=p1; D.*p1=&m;
18.下列为指针数组定义的是( )
A.float(*)[6]; B.float p[6];
C.float(*)(); D.float *p[6];
19.设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″, ″rb″);语句,下列说法中不正确的是( )
A.fp将指向abc.dat文件
B.以只读方式打开二进制文件
C.打开文件的文件名是abc.dat
D.以读写方式打开ASCII码文件
20.ASCII码文件的结束可以用符号常量EOF表示。EOF的值是( )
A.0 B.1
C.-1 D.不能确定的值
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下列数据数值相等的有( )
A.(11111111)2 B.(377)8
C.(255)10 D.(FF)16
E.(256)10
22.以下if语句中没有语法错误的有( )
A.if(x>0)printf(″%f″,x);
else printf(″%f″,x);
B.if(x>0){x=x+y;printf(″%f″,x)}
else printf(″%f″,x)
C.if(x>0){x=x+y;printf(″%f″,x);}
else printf(″%f″,x);
D.if(x>0)x=x+y;printf(″%f″,x);
else printf(″%f″,x)
E.if x>y
x++;
else
x--;
23.设有程序如下:
main()
{ int i,j,a[]={1,3,5,7,9,11,13,15};
i=5;
switch(i)
{ default;printf(″%d\n″,a[i]);
case 1:printf(″%d\n″,a[3]);
case 2:printf(″%d\n″,a[++i]);break;
case 3:printf(″%d\n″,a[--i]);
}
}
上述程序的输出结果不包括( )
A.5 B.7
C.9 D.11
E.13
24.设有定义及赋值:( )
int a[10]={0,1,2,3,4,5,6,7,8,9},*p;
p=a;
则引用a中值为5的元素的正确形式是
A.a[5] B.a[4]
C.*(a+5) D.p[5]
E.*(p+5)
25.设有说明:int u=1,v=3,w=7;下列表

达式的值为7的有( )
A.u&v|w B.u|v|w
C.u^v|w D.w&v|u
E.u^w|v
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言中整型常量有几种形式,它们是如何表示的?
27.写出语句if(表达式)语句1 else语句2的执行过程。
28.若定义char *str;然后用gets(str);输入字符串可以吗?为什么?
29.单个字符的读函数fgetc(fp),其中fp表示什么?该函数的功能是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下面程序并写出运行结果。
main()
{
int a=47,x,y,z,w;
x=a/2;
y=a%2;
z=a++;
w=++a;
printf(″%d,%d,%d,%d″,x,y,z,w);
}
31.阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果。
main()
{
int x;
scanf(″%d″,&x);
if(x%5= =0 & & x%7= =0)
printf(″yes″);
else
printf(″no″);
}
32.阅读下面程序并写出运行结果。
main()
{
static int a[]={5,3,7,2,1,5,4,10};
int s=0,k;
for(k=0;k<8;k+ =3)
{
s+ =a[k];
printf(″a[%d] =%d,s=%d\n″,k,a[k],s);
}
}
33.阅读下面程序并写出运行结果。
check(int n,int k)
{
int m;
do{
m=n%10;n=n/10;
}while(k- -);
return(m);
}
main()
{
int j,y=2345;
for(j=1;j<4;j++)
printf(″j=%d,number is %d\n″,j,check(y,j));
}
34.阅读分析下面程序并写出运行结果。
main()
{
char *a[]={″Pascal″,″C Language″,″dBase″,″Cobol″};
int j;
for(j=3;j>=0;j- -)
printf(″%s\n″,a[j]);
}
35.阅读下面程序并说明语句:x=p->d[0]>p->d[1]?p->d[0]:p->d[1];的含义,然后写出程序的运行结果。
struct number
{
int d[2];
} n={12,8},*p=&n;
main()
{
int x;
x=p->d[0]>p->d[1]?p->d[0]:p—>d[1];
printf(″%d″,x);
}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。
37.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。
(1)按n行m列输出该二维数组;
(2)求出该二维数组全部元素的平均值;
(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。



































全国2008年4月自学考试历年试卷计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储容量1KB等于( )
A. 字节 B. 字节
C. 字节 D. 字节
2.在计算机中,指令通常是由( )
A.操作码、操作数组成 B.源操作数、目标操作数组成
C.反码、补码组成 D

.直接寻址、目的寻址组成
3.与十进制数39等值的二进制数是( )
A.00100111 B.01001001
C.10100111 D.01011000
4.下列设备中属于输出设备的是( )
A.扫描仪 B.键盘
C.鼠标 D.显示器
5.整数-2在机器内存中的表示是( )
A.1000000000000010 B.1111111111111110
C.11111111111111101 D.1111111111111111
6.下列运算符中优先级最低的是( )
A.> B.!
C.% D.= =
7.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是( )
A.-6 B.-5
C.-4 D.-3
8.以十进制无符号形式输出整数的格式说明符是( )
A.%u B.%x
C.%o D.%d
9.下列程序段的输出结果是( )
void main(void)
{
iny y=1,x=5;
if(x<0)y=-1;
if(x>=0)y=0;
printf("%d\n",y);
}
A.-1 B.0
C.1 D.5
10.执行如下程序段后,x的值是( )
int x=1,y=-1;
if(y<0)x-=y;
else x+=y;
A.-1 B.0
C.1 D.2
11.执行while(表达式)循环的条件是( )
A.当表达式的值为0时 B.仅当表达式的值为1时
C.当表达式的值非0时 D.当表达式的值不为1时
12.下列程序段输出的结果是( )
for(i=1;i<3;i+ +)
for(j=1;j<3;j+ +)
printf("%d",i+j);
A.2 3 3 4 B.2 3 4
C.2 3 D.2
3 4 3 4
13.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是( )
A.1 B.2
C.3 D.4
14.下列关于C语言程序说法正确的是( )
A.C语言程序总是从有定义的函数起顺序执行
B.在C语言程序中,被调用函数必须在main函数中定义
C.C语言程序中的main函数必须放在程序的开始部分
D.C语言程序总是从main函数起开始执行
15.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是
( )
A.&a+1 B.&a+ +
C.&a D.&a[i]
16.下列关于结构体类型定义正确的是( )
A.struct ABC B.struct ABC
{ {
int a int a;
char b char b;
char*p char * p;
} }
C.struct ABC D.struct ABC
{ {
int a; int a,
char b; char b,
char * p; char *p,
}; };
17.下列位运算符中,表示按位异或操作的是( )
A.~ B.│
C.^ D.&
18.下列各个位运算符的优先级从左到右依次升高的是( )
A.>>│& ~ B.│>> & ~
C.│& >> ~ D.~│& >>
19.设有说明:int u=1,v=3;则表达式u<<= v的值是( )
A.0 B.1
C.3 D.8
20.如果文件存储的是数据在内存中存放的字节形式,则该文件是( )
A.ASCII文件 B.文本文件
C.二进制文件 D.设备文件
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两

个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.存储在下列哪些设备中的信息可以长期保存?( )
A.RAM B.ROM
C.硬盘 D.软盘
E.光盘
22.下列语句中正确的有( )
A.if(x>y);
B.if(x=y)&&(x!=0)x+=y;
C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y);
D.if(xE.if(x23.下列循环将会产生死循环的有( )
A.while(1); B.do{ }while(0);
C.do{ }while(1); D.for(k=1;k>―10;k+ +);
E.for(k=1;k=10;k+ +,k――);
24.设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有( )
A.a[2] B.*a
C.*a+2 D.a[0]+2
E.&a[0][2]
25.设有关于结构体类型的定义:( )
struct data
{
int num;
struct data *next;
} *p,* head=NULL;
下列语句中正确的有
A.p=(struct data *)malloc(sizeof(struct data));
B.p=(struct data )malloc(sizeof(struct data));
C.p=(struct data *)malloc(sizeof(data));
D.p->next=head;
E.p.next=head;
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么?
27.简述C语言标准库函数strcpy 的格式(或函数原型)与功能。
28.请按照下列要求写出相应的C语句。
假设float类型的变量x1和x2已经定义过,且x1已经初始化为7.3。
(1)定义指向float类型变量的指针变量fpt;
(2)使fptr指向x1;
(3)利用fptr,将fptr指向变量的值赋给x2;
(4)利用fptr,输出fptr指向变量的值。
29. fread(stu,size,n,fp);中stu、size、n和fp的含义各是什么?
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.请阅读分析下列程序,然后写出运行结果。
main( )
{
int a=0,b=1;
printf("a=%d,b=%d\n",a,b);
a+=b;b+=a;
printf("a=%d,b=%d\n",a,b);
}
31.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结
果。
main ( )
{
int x,y;
scanf("%d",&x);
if(x>2&&x<=10)
y=x *(x+2);
else if(x>-1&&x<=2)
y=2*x;
else if(x<-1)y=x-1;
if(y!=-1)
printf("%d,y);
else
printf("error");
}
32.请阅读分析下列程序,然后写出程序的循环次数和运行结果。
main(void)
{
int i;
for(i=1; i<6; i+ +)
{
if(i%2)
{
printf("@");continue;
}
printf("*");
}
printf("\n");
}
33.请阅读分析下列程序,然后写出程序的运行结果。
void fun( );
void main(void)
{
fun( );
fun( );
}
void fun( )
{
static int a[3]={0,1,2},b=10;
int i;
if(b= =10)
{
for(i=0;i<3;i+ +)
a[i]+=a[i];
for(i=0;i<3;i+ +)

printf("%d,",a[i]);
printf("b=%d\n",b);
b+ +;
}
else
{
for(i=0;i<3;i+ +)
a[i]*=a[i];
for(i=0;i<3;i+ +)
printf("%d,"a[i]);
printf("b=%d\n",b);
}
}
34.请阅读分析下列程序,然后写出程序的运行结果。
void main(void)
{
int a[ ]={1,2,3,4,5,6},*p;
p=a;
p+ +;
*(p+3)+=2;
printf("%d\n",*p);
printf("%d\n",*(p+3));
}
35.设有下列创建单向链表的部分程序:
#include"malloc.h"
#include"string.h"
struct automobile
{
char type[20];
int load;
struct automobile *next;
} * head=NULL;
void main(void)
{
struct automobile *p;
char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"};
int automobile_load[3]={24,18,42},j;
for(j=0;j<3;j+ +)
{
p=(①______________)malloc(sizeof(struct automobile));
strcpy(②_____________,automobile_type[j]);
p->load=automobile_load[j];
p->next=head;
head=p;
}
}
请阅读分析程序,然后写出①和②下划线处应该填写的内容。
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
37.设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。







































全国2007年7月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.微机中信息的最小单位是( )
A.bit B. byte
C.KB D. word
2.组成计算机硬件系统的是( )
A.控制器、运算器和内存储器 B. CPU、显示器和键盘
C.I/O设备、CPU和内存储器 D. 控制器、内存储器和I/O设备
3.(75)10的二进制的表示是( )
A.(01001001)2 B.(01001010)2
C.(01001011)2 D.(01001100)2
4.字符串常数“CHINA”在内存中存储时占的字节数是( )
A.5个 B.6个
C.7个 D.8个
5.如果a=1,b=2,c=3,d=4,则表达式a>b?a:cA.1 B.2
C.3 D.4
6.输出字符串的格式说明符是( )
A.%c B.%s
C.%u D.%g
7.设有说明int x=0,y=0;
则执行if(x++)y=1+x;
else y=2+x;
后,变量y的值是( )
A.0 B.1
C.2 D.3
8.以下程序段所表示的数学函数关系是( )
y=-1
if(x!=0) if(x>0) y=1;else y=0;
A. B.
C. D.
9.执行下面程序

段后,输出字符A的个数是( )
for(i=0;i<=5;i+=2)
printf(″A″);
A.0个 B.3个
C.5个 D.6个
10.若有定义char a[ ]= ″computer″;则存储字符m的数组元素是( )
A.a[1] B.a[2]
C.a[3] D.a[4]
11.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( )
A.1 B.2
C.3 D.4
12.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
A.自动(auto) B.静态(static)
C.外部(extern) D.寄存器(register)
13.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( )
A.源文件的全部范围 B.本程序的全部范围
C.本函数的全部范围 D.从定义该变量的位置开始至本文件末尾
14.下列定义中,不是指针数组定义的是( )
A.int*p[5]; B.float*q[4];
C.int(*r)[6]; D.char*w[7];
15.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( )
A.a,point,*&a B.&*a,&a,*point
C.*&point,*point,&a D.&a,&*point,point
16.下列程序的运行结果是( )
#difine N 9
fun (char s[ ])
{
char*p=s+4,*q=s;
int i;
for(i=0;i<4;i+ +,p+ +,q + +)
{
s[i]=*p;
s[i+4]=*q
}
}
main( )
{
char ss[N]= ″ABCDEFGH″;
fun(ss)
printf(″%s\n″,ss);
}
A.EFGHABCD B.EFGHEFGH
C.ABCDEFGH D.ABCDABCD
17.设有结构体的定义如下:( )
struct cjd {long bh;int*q;char xm[9];};
则sizeof(struct cjd)的值是
A.14 B.15
C.16 D.17
18.设有说明:int x=0x15,y=0x0f;则x&y的结果是( )
A.0x5 B.0x15
C.0xf0 D.0xf5
19.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( )
A.#include B.#include
C.#incLude D. #incLude
20.由FILE*fp;fp=\fopen(″a:\\abc.txt″,″r+″);可以推知fopen 函数的原型是( )
A.char *fopen(char,char); B.FILE*fopen(char*,char*);
C.int fopen (char*,char*); D.FILF fopen(char* ,char*);
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下面基本结构和特性中符合结构化程序设计的要求的有( )
A.选择结构 B.循环结构
C.顺序结构
D.各结构之间只有一个入口,至多两个出口
E.各结构之间只有一个入口,一个出口
22.若有int x;float;y下面结果为整型数的表达式有( )
A.(int)(x+y) B.(int)x+y
C.′a′+x D.x+(int)y
E.x*y
23.设有定义:int a[2][3];下面关于数组元

素引用正确的有( )
A.a[0][3] B.a[0][0]
C.a[2][1] D.a[1][2]
E.a[2][3]
24.设有关于结构体类型的定义:( )
struct car
{
char*name;
float price;
struct car *next;
}*p,*head=NULL;
下面各选项中正确的有
A.p=(struct car*)MALLOC(sizeof (struct car);
B.p=(struct car*)malloc (sizeof (struct car);
C.p.next=head;
D.p->next=head;
E.p=(struct car *)malloc (sizeof(car);
25.设有说明:int u=1,v=5;则下列表达式的值为1的有( )
A.u&v B.v>>2
C.u^u D.u|v
E.(u<<3)/5
三、简答题(本大题共4小题,每小题4分,共16分)
26.什么是常量?C语言中常量有哪几种类型?
27.用while循环结构完成下面程序段的功能。
s=0
for(i=1;i<=10;i++)
s+=i;
28.若在一个函数中对变量a,b有如下定义:
static int a;
auto int b;
简述它们之间的异同。
29.设有说明:int a[3][4],(*p )[ 4]=a;请解释p的含义,并用p给出数组元素a[2][1]的二种表示。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65)
#include ″stdio.h″
main()
{
int k;
k=getchar();putchar(k);
printf(″,%d,%x,%c″,k,k,k+32);
}
31.阅读下面程序,写出运行结果。
main()
{
int x,sum=0;
loop1:
scanf(″%d″,&x);
if(x!=8)
{
if(x%2= =0)
{
sum+=x;
printf(″sum =%d\n″,sum);
}
goto loopl;
}
sum-=x;
printf( ″sum=%d\n″,sum);
}
当程序执行时输入数据1 2 3 4 5 6 7 8 ↙ ,写出程序运行结果。
32.阅读下面程序,写出运行结果。
main()
{
int a[3][3],i,j;
for (i=0;i<3,i+ +)
for(j=0,j<3;j+ +)
a[i][j]=i+j
for(i=0;i<3;i++)
{
for(j=0;j<=i;j+ +)
printf(″%2d″,a[i][j]);
printf(″\n″);
}
}

33.阅读下面程序,写出运行结果。
long factor (int m)
{
long int fc;
if(m= =0||m= =1)
fc=1;
else
fc=factor(m-1)*m;
return(fc);
}
main()
{
int n;
long int fac;
for(n=1;n<5;n++)
{
fac=factor(n);
printf(″% Id\n″,fac);
}
}
34.阅读下面程序,写出运行结果。
void fl(char a[ ],char b[ ])
{
int i;
for(i=0;a[i];i+ +)
b[i]=a[i];
b[i]=′ \0 ′;
}
void f2(char *c,char*t)
{
while(*c+ + = * t+ +);
}
main()
{
char a[20]= ″basic″,b[20]= ″fortran″,c[20]= ″pascal″;
char*p=b,*q=c;
fl(b,a);
printf(″%s\n″,b);
f2(p,q);
printf(″%s\n″,b);
}
35.阅读下面程序段:
struct number
{
int u[2];
}v={11,15},*p=&v;
int x;
请分析下面语句的含义:
x=(*p),u[0]>p->u[1]?(*p).u[0]:p->u[1];


五、程序设计题(本大题共2小题,每小题12分,共24分)
36.用以下近似公式编一个求 的近似值

的程序。
,其中n的值由键盘输入。





37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的lx.dat文件中。(第一行的″$″在第20列)
$
$ $ $
$ $ $ $ $
$ $ $
$


























全国2007年4月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.I/O设备指的是计算机的( )
A.存储设备 B.输入和输出设备 C.控制器 D.运算器
2.具有只读功能的内存储器是指( )
A.ROM B.RAM C.硬盘 D.CD-ROM
3.十进制数-5在八位的微机内的存储形式是( )
A.00000101 B.10000101 C.11111010 D.11111011
4.C语言源程序的基本单位是( )
A.过程 B.函数 C.子程序 D.语句
5.设有int p,q;以下不正确的语句是( )
A.p *=3; B.p/=q; C.p+=3; D.p&&=q;
6.若有下列程序段,欲使a=2,b=3,对应正确的数据输入方法是(其中表示换行)
( )
int a,b
scanf("%d%d",&a,&b);
A.2 B.a=2 b=3
3
C.a=2,b=3 D.2,3
7.设有说明 int x=0,y=2;
则执行 if(x=0) y=1+x;
else y=x-1;
后,变量y的值是( )
A.-1 B.0 C.1 D.2
8.下面程序的输出结果是( )
main( )
{
int x=5,y;
if(x>0)
y=1;
y=0;
if(x<0)
y=-1;
printf("%d",y);
}
A.-1 B.0 C.1 D.5
9.执行下面程序段后,输出字符B的个数是( )
x=0;
while(x<=5){
printf("B");
x+=2;
}
A.0个 B.3个 C.5个 D.6个
10.在下述程序中,for循环执行的次数是( )
main( )
{
int i =0,j=10,k=2,s=0;
for(; ;)
{
i+=k;
if(i>j)
{
printf("%d\n",s);
break;
}
s+=i;
}
}
A.4 B.5 C.6 D.7
11.若有定义:int a[10];则数组元素的下标的下限和上限分别是( )
A.0和1 B.1和9 C.0和9 D.1和10
12.下列说法不正确的是( )
A.一个源程序文件由一个或多个函数组成
B.一个C程序由一个或多个源程序文件组成
C.一个C程序以函数为独立的编译单位
D.一个C程序必须有一个main( )函数
13.在C语言中,确定函数返回值的类型由( )
A.return语句中的表达式类型决定 B.调用该函数的主函数类型决定
C.调用函数时临时决定 D.定义函数时所指定的函数类型决定
14.若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是( )
int a [ ]={0,1,2,3,4,5,6,7,8,9},*p;
p=a;
A.&(a+

1) B.a++ C.&p D.&p[i]
15.若有以下说明:
char s[10]=“ABCDEFGH”,*p=s;
不能表示字符C的是( )
A.s[2] B.s[3] C.s['c'-'a'] D.*(p+2)
16.有下列程序:
func(int x, int y, int*jia, int*jian)
{*jia=x+y;
*jian=x-y;}
main( )
{int i =10,j=3,x1,x2;
func( i ,j,&x1,&x2 );
printf("%d,&d\n",x1,x2);}
则其运行结果是( )
A.0,0 B.10,3 C.13,7 D.7,13
17.设有结构体的定义如下:
struct data{
int n;
char c;
float f;
};
则sizeof (struct data)的值是( )
A.1 B.3 C.7 D.11
18.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是( )
A.#include B.#include
C.#include D.#include
19.设有说明:int x=12,y=3;则x¦y的值是( )
A.0 B.3 C.12 D.15
20.测试文件是否结束函数的函数名是( )
A.feof B.EOF C.eof D.FEOF
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下列设备中属于外存储设备的有( )
A.RAM B.光盘 C.硬盘
D.软盘 E.磁带
22.设a=1,b=3,c=0;下面表达式的值为1的有( )
A.!a&&b| |a&&(c+1) B.a-b+3 C.(a>b)==c
D.(a=0)&&(b=10) E.b>a&&a>c
23.设有说明:char s[20];( )
下面各项中能够正确的将一个字符串"abcd"赋给s数组的有
A.s="abcd"; B.gets(s); C.scanf("%s",s);
D.strcpy(s,"abcd"); E.strcpy("abcd",s);
24.关于结构体,下面各项中不正确的有( )
A.struct person{long bh; char *name; int age;}
psl={9100,"wang",20},* pst;
pst=psl; printf("%d",*pst→age);
B.struct my_data
{int num; struct my_data *next;};
C.struct test
{char *course; char *class}
D.struct worker
{char name[9]; float gz;}Li={"Li Ping",532.67};
E.struct int_num
{int i _num;struct int_num *next; }ione, *pi;
pi=&ione;
25.设有说明:int x=1,y=2,z=3;则下面表达式的值为0的有( )
A.x&y&z B.x¦y¦z C.x^x+y^y
D.z>>y E.x&0xff00
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言中的运算符“=”与运算符“= =”的意义相同吗?为什么?
27.变量的存储类别分为哪几种?它们分别存储在什么区域?
28.试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。
29.设有说明:int a[2][3];
请用四种方式来表示数组元素a[1][2]。
四、阅读分析题(本大题共6小题,每小题

5分,共30分)
30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65)
#include"stdio.h"
main( )
{
char ch;
ch=putchar(getchar( ) );
printf(",%d,%o,%c",ch+1,ch+1,ch+32);
}
31.阅读下面程序:
void main(void)
{
int s=0,n=0,x;
label: scanf("%d",&x);
if(x>0){
s+=x;
n++;
printf("s=%d,n=%d,even=%f\n",s,n,1.0,*s/n);
}
if(x!=0)
goto label;
else
printf("good bye!");
}
当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。
32.阅读下面程序,写出程序的运行结果。
char a [ ]={'9','8','7','6','5','4','3','2,'1','0','\0'};
void main (void)
{
int i =8,j;
for(j=0;j<4;j++)
printf("%s\n",&a[i -j ]);
}
33.请写出下面程序的运行结果。
long fun (int k )
{
long fac;
if(k= =0)
return 1;
else
{
fac=k* fun(k-1);
printf("fac=%ld\n",fac);
}
return fac;
}
void main(void)
{
int n=3;
printf("result=%ld\n",fun(n+1)/n);
}
34.阅读下面程序,写出运行结果。
#include
#include
void f(char *s)
{
char *t, c, *p=s;
for(t=s+strlen(s)-1;s{
c=*s,*s=*t,*t=c;
printf("%s\n",p);
}
}
void main (void)
{
char a [20]="abcdefg";
f(a);
}
35.阅读下面程序段,说明其功能:
int x, y=0,k; FILE* fp;
fp=fopen("data.txt","rb");
for(k=0;k<5;k++)
fread(&x,sizeof(int),1,fp),y+=x;
printf("%d,"y);
fclose(fp);
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素
的累加和并输出该累加和。
37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12
月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”。























全国2006年7月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储量1MB等于( )
A.23字节 B.210字节
C.220字节 D.230字节
2.下面数据中最小数是( )
A.(0.1100)2 B.(0.64)8
C.(0.8125)10 D.(0.D)16
3.在Turbo C 2.0中,寻求在线帮助可按键( )
A.F1 B.F5
C.F9 D.F10
4.设有 int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是( )
A.-4 B.0
C.1 D.3
5.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( )
(其中表示换行)
int a, b;
scanf(

″a=%d, b=%d″,&a,&b);
A.2 B.a=2 b=3
3
C.a=2, b=3 D.2,3
6.下面程序段的输出结果是( )
main( )
{ int s, p;
s=p=5;
p=--s;
p++;++p;
printf(″%d\n″,p);
}
A.5 B.6
C.7 D.8
7.关于if语句下面叙述正确的是( )
A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句
B.只有当if语句中表达式的值为假时,才执行if的内嵌语句
C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句
D.只要if语句中表达式的值非0时,就执行if的内嵌语句
8.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是( )
main( )
{ int a,b,s;
scanf(″%d″, &a,&b);
s=a;
if(as=s*s;
printf(″%d″,s);
}
A.9 B.12
C.16 D.25
9.若int x=0; 则while(x==0); 的循环次数是( )
A.0 B.1
C.2 D.无限次
10.下面程序段的输出结果是( )
for (i=1; i<3;i++)
{for (j=1;j<3;j++)
printf(″%d ″, i+j);
printf(″\n″);}
A.2 3 3 4 B.2 3 4
C.2 3 D.2
3 4 3 4
11.下面程序的输出结果是( )
mian ( )
{ int a[5]={2,4,6,8,10},i;
i=2;
printf(″%d″,a[i++]);
}
A.2 B.4
C.6 D.8
12.下面程序的输出结果是( )
main( )
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int i,j,k=0;
for(i=0;i<3;i++)
k=k+a[i][0];
printf(″%d\n″,k);
}
A.27 B.33
C.39 D.45
13.以下正确的函数定义形式是( )
A. double fun(int x, int y) B. double fun(int x; int y)
C. double fun(int x, int y); D. double fun(int x, y);
14.关于变量以下不正确的说法是( )
A.在不同函数中可以使用相同名字的变量
B.形式参数是全局变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量是局部变量
15.设有语句int a[4][10],*p=*a;则下列表达式中不是地址表达式的是( )
A.&a[1][2] B.a[3]
C.*(p+1*10+2) D.p+1*10+2
16.下面关于结构体类型变量定义不正确的是( )
A. struct score B. struct
{ {
int math; int math;
int Chinese; int Chinese;
}Li, Wang; }Li, Wang;

C. struct score D. struct score
{ {
int math; int math;
int Chinese; int Chinese;
}; };Li, Wang;
struct score Li, Wang;
17.下面各个运算符的优先级从左到右依次降低的是( )
A.& >> | ^ B.~ & >> |
C.>> & ^ | D.~ >> & ^
18.设有说明:int u=1, v=2;表达式:u+v<<2的值是( )
A.-1 B.1
C.9 D.12
19.下面程序段中,不能完成的功能是( )
FILE *fp;
char ch;
fp=fopen(″file1″, ″rb+″);
ch=fgetc(fp);
A.建立文件指针fp与文件file1的联系 B.从file1文件中读一个字符
C.向file1文件中写一个字符 D.打开名为file1的二进制文件
20.在格式:fread(stu,size,n,fp);中,下面说法不正确的是( )


A.stu是内存中存放数据的首地址 B.n表示读n次
C.size是一个数据块的字节数 D.fp表示文件指针
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.微机系统的主机包含的部件有( )
A.输入设备 B.存储器
C.输出设备 D.运算器
E.控制器
22.下面各选项中,能正确进行字符串操作的有( )
A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′\0′};
B. char s[10];s=″abcde″;
C.char s[10];strcpy(s, ″abcde″)
D.char s[10];getchar(s);
E.char s[10];gets(s);
23.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有( )
double a[5],*p1
p1=a;
A.a B.p1+1
C.*p1 D.&a[1]
E.p1
24.设有说明: int u=1, v=3, w=7;下面表达式的值为3的有( )
A.w>>1&v|u B.u&v&w
C.u|v&w D.w&v<<1
E.v^w|u
25.在C语言中,下面关于文件说法正确的有( )
A.按数据的组织形式,可分为文本文件和二进制文件
B.文件只能是ASCII码文件
C.文件能用fopen( )函数打开
D.文件只能是二进制文件
E.对打开的文件可以进行读或写操作
三、简答题(本大题共4小题,每小题4分,共16分)
26.简述C语言中标识符的命名规则并说明C语言中哪些名是用标识符来标识的?
27.变量有哪几种存储类别?指明它们存储数据的区域。
28.定义char*str=″computer″;是将字符串″computer″赋值给变量str,这种说法对吗?为什么?
29.设有说明:
struct flower {char *part; char * color;} mum;
char*part_of_flower[3]={ ″花″,″茎″,″叶″};
char*seven_color[7]={ ″赤″,″橙″,″黄″,″绿″,″青″,″蓝″,″紫″};
试写出将mum的成员part定义为″花″、成员color定义为″黄″的C语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下面程序,写出运行结果。
main( )
{ int a=789, x,y,z;
x=a/100;
y=a/10-10*x;
z=a-10*y-100*x
printf(″%d,%o,%x,%d″, x,y,z,100*z+10*y+x);
}
31.阅读下面程序,并回答问题:
main( )
{ int a,b,x,y;
scanf(″%d,%d″,&a,&b);
x=a*a+b*b
if(x>100)
{y=x/100;printf(″%d″,y);}
else printf(″%d″,a+b);
}
(1)若程序运行时,输入6和9,输出结果是什么?
(2)说明程序的功能。
32.阅读下面程序,并回答问题:
main( )
{ int u,v,a,b,t,r;
u=24;v=16;
if(u>v){t=u;u=v;v=t;}
a=u;b=v;
while ((r=b%a)!=0)
{b=a;a=r;}
printf(″a=%d\n″,a);
}
(1)程序输出结果是什么?
(2)该程序完成什么功能?
(3)若将while循环替换为do-while循环,请写出相应的程序段。
33.阅读下面程

序,写出运行结果。
int a=5, b=5;
chang1( )
{ int a=4;
printf(″a1=%d,b1=%d\n″,a,b++);
}
chang2(int a, int b)
{ a++; b--;
}
main( )
{ chang1( );a++,b++;chang2(a,b);
printf(″a2=%d,b2=%d\n″,a,b);
}
34.阅读下面程序,写出运行结果。
#include
#include
main( )
{ char p1,p2,srt[50]= ″abc″, str1[50];
p1=″abc″;p2=″abc″;
puts(str);
strcpy(str1,p1);
p1=str1;
printf(″%s\n″,strcat(p1,p2));
strcpy(str+1,p1);
printf(″%s\n″,str);
}
35.设有说明语句int*p; 请分析下面语句的含义:
p=(int *)malloc(sizeof(int));
free(p);
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。(第一行的″$″在第20列)
$
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $













全国2006年4月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. CPU处理数据和指令的基本单位是字(Word),一个字的字长是( )
A. 8bits B. 16bits
C. 32bits D. 与CPU数据总线有关的bit位数
2. 与十进制1100等值的十六进制数是( )
A. 44A B. 44C
C. 54A D. 54C
3. 退出Turbo C 2.0返回系统,在主菜单File项中可选择( )
A. Load B. New
C. Save D. Quit
4. 设有int a=3, b=-4, c=5;表达式(aA. –1 B. 0
C. 3 D. 7
5. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是( )
(其中表示换行)
int a, b;
scanf(″a=%d b=%d″,&a, &b);
A. 2 B. a=2 b=3
3
C. a=2, b=3 D. 2,3
6. 下面程序段的输出结果是( )
main()
{ int s, p;
s=p=5;
p=++s;
p++; ++p;
printf(″%d\n″,p);
}
A. 5 B. 6
C. 7 D. 8
7. 下列if语句中,有语法错误的是( )
A. if(x>y);
B. if(x=y) x+y;
C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)
D. if(x8. 下面程序段执行后的输出结果是( )
int i=-1;
if(i<=0) printf(″* * * * \n″);
else printf(″%%%%\n″);
A. **** B.%%%%
C. %%%%c D. ****c
9. 下面程序段的循环次数是( )
int k=2;
while(k==0) printf(″%d″,k);
k--; printf(″\n″);
A. 0次 B. 1次
C. 2次 D. 无限次
10. 下面程序段的输出结果是( )
a

=100;
while(a>120);
a=a+1;
printf(″%d″,a);
A. 100 B. 101
C. 120 D. 121
11. 下面程序执行后,i的值是( )
main( )
{ int a [5]={1,2,3,4,5},i=2
printf(″%d″,a[i++]);
}
A. 1 B. 2
C. 3 D. 4
12. 下面程序的输出结果是( )
main( )
{ int i, x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2) printf(″%d″, x[i][1]);
}
A. 5 1 B. 5 2
C. 8 2 D. 9 3
13. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是( )
A. 由系统自动指定对应实参和形参是否共用存储单元
B. 对应实参和形参各占一个独立的存储单元
C. 对应实参和形参共用一个存储单元
D. 可以由用户指定对应实参和形参是否共用存储单元
14. 下面叙述中不正确的是( )
A. 不同函数中可以使用相同名字的变量
B. 形式参数是局部变量
C. 在一个函数内部定义的变量只能在本函数范围内有效
D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效
15. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( )
A. a[1][2] B. a[1]
C. *(p+1*10+2) D. *(a[1]+2)
16. 下面定义不正确的是( )
A. struct star B. struct star
{ {
int id int id;
char *name; char *name;
} star1={1001, ″Moon″}; }; star1={1001, ″Moon″};
C. struct D. struct star
{ {
int id; int id;
char *name; char *name;
} star1={123, ″Sun″}; } star1;
17. 下面各个位运算符的优先级从左到右依次升高的是( )
A. | ^ & >> B. ^ >> & ~
C. << | ^ ~ D. ~ | & >>
18. 设有说明:int u=1, v=14;表达式u+v>>2的值是( )
A. 0 B. 3
C. 5 D. 7
19. 如果将文件指针fp指向文件末尾,正确的语句是( )
A. feof(fp); B. rewind(fp);
C. fseek(fp,0L,0); D. fseek(fp,0L,2);
20. 下面程序段中,不能完成的功能是( )
FILE *fp;
char ch =′v′;
fp=fopen(″boy″, ″rb+″);
fputc(ch,fp);
A. 建立文件指针fp与文件boy的联系 B. 从boy文件中读取一个字符
C. 向boy文件中写一个字符 D. 打开名为boy的二进制文件
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21. 总线是连接微机CPU、内存和外设之间传送信号的公共通道,微机的总线包括有
( )
A. 电源线 B. 数据线
C. 地址线 D. 控制线
E. 网络线
22. 若定义 char c[11]; 可将字符串″I am a boy″ 赋给数组c,下面正确的选项有
( )
A. c=″I

相关主题
文本预览
相关文档 最新文档