C语言程序设计基础测试题答案文档格式.docx
- 文档编号:18814538
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:18
- 大小:46.62KB
C语言程序设计基础测试题答案文档格式.docx
《C语言程序设计基础测试题答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础测试题答案文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
a[
]={2,3,4,5};
char
b[3
][
]={1,2,3,4,5,6};
[13]设A为存放短整型的一维数组,如果A的首地址为P,那么A
中第I个元素的地址为
P+I*2
P+(I-1)*2
P+(I-1)
P+I
[14]十进制数100转换成二进制数是
A.01100100B.01100101C.01100110D.01101000
[15]Windows中,对文件和文件夹的管理是通过
来实现的。
A.对话框
B.剪贴板
C.资源管理器或我的电脑
D.控制面板
【答案】DABDBCDBCCCDDAC
二、判断
1.微型计算机的核心部件是微处理器。
(对)
2.在微机性能指标中,CPU的主频越高,其运算速度越快。
3.组成微机系统总线的是译码、计数和控制总线。
(错)
微型计算机三总线:
数据总线(DB)、地址总线(AB)、控制总线(CB)
4.以二进制形式输出文件,则文件的内容与内存中完全一致(对)
5.定义:
inta=123;
若以ASCII文件的形式存放,则a将在磁盘上占三个字节(对)
6.C语言中,switch后的括号内表达式的值可以是整型,字符型,枚举型(对)
7.函数的形式参数,在函数未被调用时就不被分配存储空间(对)
8.若函数的定义出现在主调函数之前,则可以不必再加说明(对)
9.若一个函数没有return语句,则什么值也不会返回(错)
10.一般来说,函数的形参和实参的类型应该一致(对)
三、填空
1.为解决某一特定问题而设计的指令序列称为程序
2.处于执行状态的进程,因时间片用完就转换为就绪状态
包括:
运算器、控制器、存储器、输入设备和输出设备
4.计算机所能辨认的最小信息单位是位
5.计算机能直接识别和执行的语言是机器语言
6.编译程序是将计算机高级语言源程序翻译成目标程序的系统软件
7.每条指令都必须具有的、能与其他指令相区别的、规定该指令执行功能的部分称为操作码
indows系统是多用户多任务操作系统。
9.操作系统的主要作用是管理系统资源,这些资源包括硬件和软件
10.计算机可以处理信息有数值、文字、语言、图像等
编辑、编译、连接、执行四个步骤。
“表达式”未尾加“;
”号就成“语句”。
没有(有、没有)输入、输出语句。
顺序、分支、循环三种程序结构。
15.C语言中,变量的存储类别共有四种,即时自动型、外部型、静态型和寄存器型。
表达式10/3*9%10/2的值是3。
16.设有“int
x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是9。
17.设有“int
x=1”,则“x>
0?
2*x+1:
0”表达式的值是3。
18.变量Y满足以下两条件中的任意一个:
①能被4整除,但不能被100整除;
②能被400整除。
请用逻辑表达式表示所给条件。
y%4==0&
&
y%100!
=0||y%400==0
19.逻辑运算符“&
、||、
!
”中是短路运算符号是&
、||
四、读程序
1.阅读函数,根据函数完成的主要功能,补充、完善主函数。
float
av(float
a[],int
n)
{int
i;
s;
for
(i=0,s=0;
i<
n;
i++)
s=s+a[i];
return
(s/n);
}
main()
{float
a[10];
inti;
(i=0;
i<
10;
i++)
scanf("
%f"
&
a[i]);
printf("
av(a,10));
2.写出下列程序的输出结果:
x,y,z;
x=y=z=-1;
x=%d\ty=%d\tz=%d\n"
x,y,z);
++y&
++x||++z;
++x||y++&
z;
【答案】
x=-1y=-1z=-1
x=-1y=0z=0
x=0y=0z=-1
3.下面程序的输出结果是什么?
#include
"
stdio.h"
{
x=3;
switch(x)
case
1:
x<
3\n"
);
3:
x=3\n"
4:
5:
x>
default:
x
unknow\n"
}
x=3
3
xunknow
4.根据源程序,写出相应的数学表达式
“stdio.h”
x,y;
scanf(“%d”,&
x);
if
(x<
0)
y=
-1;
else
(x=
=
0)
y=0;
y=1;
printf(“x=%d,y=%d\n”,x,y);
5.分析下列程序所完成的功能。
a,b,c,*pa=&
a,*pb=&
b,*pc=&
c,*p;
%d,%d,%d"
pa,pb,pc);
(*pa>
*pb)
p=pa,pa=pb,pb=p;
*pc)
p=pa,pa=pc,pc=p;
(*pb>
p=pb,pb=pc,pc=p;
%d<
=%d<
=%d"
*pa,*pb,*pc);
【答案】从小到大排序
五、编程
1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位置(行、列),并输出计算结果。
源程序:
#include"
voidmain()
{
floata[4][3];
floatmax;
introw,col;
inti,j;
for(i=0;
4;
i++)
for(j=0;
j<
3;
j++)
scanf("
&
a[i][j]);
max=a[0][0];
{
for(j=0;
if(a[i][j]>
max)
{
max=a[i][j];
row=i;
col=j;
}
}
printf("
该二维数组中的最大元素是a[%d][%d]=%f\n"
row,col,max);
}
运行结果:
2.N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
#include"
#defineN2
structstudent
charnum[10];
charsex;
charname[20];
intscore[4];
}s[N];
inti,j,t;
floatave[N]={0};
floatmax_ave=0;
N;
printf("
输入第%d位学生的信息\n"
i+1);
学号:
scanf("
%s"
s[i].num);
//&
s[i].num等价于&
(s+i)->
num,下同
性别:
\n%c"
s[i].sex);
//注意其中的"
,不加\n,性别内容都是空格
姓名:
s[i].name);
四门课的成绩:
scanf("
%d%d%d%d"
s[i].score[0],&
s[i].score[1],&
s[i].score[2],&
s[i].score[3]);
ave[i]+=s[i].score[j];
ave[i]=ave[i]/4;
if(ave[i]>
max_ave)
{
max_ave=ave[i];
t=i;
总平均成绩最高的学生\n学号:
%s\t性别:
%c\t\t姓名:
%s\t平均成绩:
%f\n"
s[t].num,s[t].sex,s[t].name,max_ave);
——邹东雪
2011-1-1
《程序设计基础》考试试卷一
班级姓名学号____________
题号
一
二
三
四
五
总得分
评卷人
审核人
得分
一、选择题(20分)
1.算法具有五个特性,以下选项中不属于算法特性的是
(A)有穷性(B)简洁性(C)可行性(D)确定性
2.以下选项中可作为C语言合法常量的是
(A)-80.(B)-080(C)-8e1.0(D)-80.0e
3.以下叙述中正确的是
(A)用C语言实现的算法必须要有输入和输出操作
(B)用C语言实现的算法可以没有输出但必须要有输入
(C)用C程序实现的算法可以没有输入但必须要有输出
(D)用C程序实现的算法可以既没有输入也没有输出
4.以下不能定义为用户标识符是
(A)Main(B)_0(C)_int(D)sizeof
5.以下选项中,不能作为合法常量的是
(A)1.234e04(B)1.234e0.4(C)1.234e+4(D)1.234e0
6.数字字符0的ASCII值为48,若有以下程序
{chara='
1'
b='
2'
;
%c,"
b++);
%d\n"
b-a);
}程序运行后的输出结果是
(A)3,2(B)50,2(C)2,2(D)2,50
7.有以下程序
main(){
intm=12,n=34;
%d%d"
m++,++n);
%d%d\n"
n++,++m);
}程序运行后的输出结果是
(A)12353514(B)12353513(C)12343514(D)12343513
8.有以下语句:
intb;
charc[10];
则正确的输入语句是
A)scanf("
%d%s"
b,&
c);
B)scanf("
b,c);
(C)scanf("
b,c);
D)scanf("
b,&
9.有以下程序
intm,n,p;
m=%dn=%dp=%d"
m,&
n,&
p);
%d%d%d\n"
m,n,p);
}若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是
A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789
10.有以下程序
main(){
inta,b,d=25;
a=d/10%9;
b=a&
(-1);
%d,%d\n"
a,b);
}
程序运行后的输出结果是
A)6,1B)2,1C)6,0D)2,0
11.有以下程序
inti=1,j=2,k=3;
if(i++==1&
(++j==3||k++==3))
%d%d%d\n"
i,j,k);
(A)123(B)234(C)223(D)233
12.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
b?
a:
c<
d?
c:
d的值
A)1B)2c)3D)4
13.有以下程序
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<
7)if(p[i]%2)j+=p[i];
j);
A)42B)45C)56D)60
14.有以下程序
chara[7]="
a0\0a0\0"
i=sizeof(a);
j=strlen(a);
%d%d\n"
i,j);
A)22B)76C)72D)62
15.以下能正确定义一维数组的选项是
A)inta[5]={0,1,2,3,4,5};
B)chara[]={0,1,2,3,4,5};
C)chara={'
'
B'
C'
};
D)inta[5]="
0123"
16.有以下程序
intf1(intx,inty){returnx>
y?
x:
y;
intf2(intx,inty){returnx>
y:
x;
inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
%d,%d,%d\n"
e,f,g);
A)4,3,7B)3,4,7C)5,2,7D)2,5,7
17.已有定义:
chara[]="
xyz"
b[]={'
x'
y'
z'
以下叙述中正确的是C
A)数组a和b的长度相同B)a数组长度小于b数组长度
C)a数组长度大于b数组长度D)上述说法都不对
18.有以下程序
voidf(int*x,int*y){
intt;
t=*x;
*x=*y;
*y=t;
inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&
a[7];
while(p){f(p,q);
p++;
q--;
for(i=0;
8;
i++)printf("
%d,"
a[i]);
A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,
19.有以下程序
inta[3][3],*p,i;
p=&
a[0][0];
9;
i++)p[i]=i;
%d"
a[1][i]);
A)012B)123C)234D)345
20.以下叙述中错误的是
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
二、阅读程序写出下列程序的运行结果。
(20分)
1、#include<
stdio.h>
voidmain(){
inta=1,b=2,c=3;
if(c=a)printf("
c);
elseprintf("
b);
2、#include<
voidmain(){
intn='
c'
switch(n++){
error"
break;
case'
:
b'
good"
pass"
d'
D'
warn"
3、#include<
voidmain(){
inti=0,s=0;
do{
if(i%2){i++;
continue;
i++;
s+=i;
}while(i<
9);
s);
4、#include<
intfunc(intx){
if(x==1)
return2;
else
returnx*func(x-1);
voidmain(){
printf(“%d\n”,func(4));
三、找出下列程序存在的错误,并进行改正,使之能正确运行。
1、以下程序的功能是:
给r输入数据后计算半径为r的圆面积s。
#include<
intr;
floats;
r);
s=PI*r^2;
s=%f\n"
2、以下程序用于计算一个一维数组各元素平方根的和。
#include<
math.h>
inta[10],i;
floatsum;
for(i=0;
i++)
scanf(“%d”,&
a[i]);
i=0;
while(i<
=9)){
sum+=sqrt(a[i]);
3、在一个一维整型数组中找出其中最大的数及其下标。
#define
N
10
fun(int
*a,int
*b,int
n){
*c,max=*a;
for(c=a+1;
a+n;
c++)
if(*c>
max)
max=*c;
*b=c-a;
max;
a[N],i,max,p=0;
please
enter
10
integers:
\n"
get("
m=fun(a,&
p,N);
max=%d,position=%d"
max,p);
inta;
charch;
ch="
A"
a);
%c+%d=%c\n"
ch,ch+a);
四、程序填空题:
填空空白语句,使程序能完成预定功能。
(10分)
1、下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
voidmain(
)
i,j;
for(i=1;
=4;
for(j=1;
=4-i;
j++)
=_______;
*"
}}
2、下面rotate函数的功能是:
将n行n列的矩阵A转置为A’,
例如:
1
2
3
4
1
5
9
13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础 测试 答案