《 程序设计基础 》期中考试试卷
关于传统节日的作文-辞职报告咋写
《 程序设计基础 》期中考试试卷
班级
姓名 学号
题号
一
得分
二
三
四
五
总得分
评卷人
审核人
一、填空题(每题1分,共5分)
1.上机运行C程序大致分四个步骤,分别是编辑、编译、 和运行。
2.结构化程序设计方法的基本思想是自顶向下,逐步细化, 和结构化编码。
3.C语言的控制结构有:顺序结构、 和循环结构。
4.算法特点包括确定性、可行性、输入、输出和
5. 77的2字节补码是
,-77的2字节补码表示为 (用十六进制表示)
二、选择题(每题1分,共15分)
1.判断下面标识符中哪个是C语言中合法的用户定义标识符( )
A. 2a1b
B. a%bd C. _123 D. char
2.设有以下定义
int a=0; double b=1.25; char c=‟A‟;
#define M 2
则下面语句中错误的是( )
A. a--;
B. b--; C. c--; D. M--;
3.有两条语句: static
char x[]=”abcde”;
static char
y[]={„a‟,‟b‟,‟c‟,‟d‟,‟e‟};
则下列说法中正确的是(
)
A. 数组x和数组y长度相同 B. 数组x长度大于数组y长度
C.
数组x长度小于数组y长度 D. 以上三种说法均错误;
4.设整型变量a=13,则经运算a+= a=a%=5后,a的值为( )
A.
17.333 B. 17 C. 0 D. 2
5. 已知:int
n,i=1,j=2;执行语句n=i
6.有函数定义如下:当自变量x<0时y=-1;当x=0时y=0;当x>0时y=1;以下程序片段能实现
该
函数功能的是( ):
A. if(x>=0) B.
y=-1; C. if(x>=0) D. y=0;
if(x>0) y=1; if(x!=0)
if(x>0) y=1; if(x>=0)
else
y=-1; if(x>0) y=1 else y=0;
if(x>0) y=1;
else y= 0; else
y=0; else y= -1; else y=-1; 7.当a=2,b=1,c=3,d=4,m和n值为1时,(m=a>b)||(n=c>d)的值是(
)
A. TRUE B. FALSE C. 1 D.0
8.在C语言程序中,以下说法正确的是( )
A.
main函数内部可嵌套定义子函数
B. main函数必须出现在所有函数之前
C.
main函数必须出现在所有函数之后
D. main函数是程序执行的入口
9.关于局部变量和全局变量说法正确的是( ):
A.
在main函数中定义的变量都为全局变量
B. 当全局变量与局部变量同名时,全局变量起作用
C. 当全局变量与局部变量同名时,局部变量起作用
D. 以上说法都不正确
第
1 页共 4 页
10.下列关于switch和break语句的讨论中,只有(
)是正确的。
A. break语句是switch 语句的一部分
B.
在switch语句中可以根据需要使用或不使用break语句
C.
switch语句中必须使用break语句
D. 以上三种说法都不正确。
11.设main函数中有定义float a[8],此外,程序中还定义了以下函数
void printarray(float a[8],int n){ int i;
for(i=0;i
A.
调用之前的函数声明可以写为void printarray(float a[], int n);
B. 调用之前的函数声明可以写为void printarray(float [],
int)
C. 调用语句可以为printarray(a[8],8);
D. 调用语句可以为printarray(a,8);
12.以下说法正确的是(
)
A. 若在某函数中用static声明一个局部变量,则该变量在此函数外也起作用
B. 若用static声明一个函数,则该函数可被其它文件中的函数调用
C.
若用static声明一个函数,则该函数不能被其它文件中的函数调用
D. 以上说法都不正确
13. 有以下程序段
int k=0
while(k=1)k++;
则while 循环执行的次数是( )
A. 无限次 B. 有语法错,不能执行
C. 一次也不执行 D. 执行1次
14 以下程序执行后sum的值是()
void min()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf(
}
A.15 B. 14 C. 不确定 D.0
15.
当调用函数时,实参是一个数组名,则向函数传送的是( )
A. 数组的长度 B.
数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值
二、读程序写执行结果(每题5分,共20分)
1.#include
void main()
{
int x=3
do
{
printf(
}while (!(--x));
}
3、
void main()
{
double d=3.2;
int
x,y;
x=1.2;
y=(x+3.8)5;
printf(“%dn”,d*y);
}
三、程序改错题
(每题5分,共20分)
第 2 页共 4 页
2、#include
void swap(int x, int
y)
{ int temp;
temp=x; x=y; y=temp;
}
void main()
{ int a[]={3,5};
swap a[0], a[1]);
printf(“%d,%dn”
,a[0],a[1]);
}
4、#include
void main()
{ short a, b;
unsigned
short c,d;
a=-90;b=90;
c= a; d=b;
printf(“%d , %dn”,a, b);
printf(“%X , %Xn”,a, b);
printf(“%u,
%un”,c, d);
}
1、以下程序的功能是:给r输入数据后计算半径为r的圆面积s。
#include
#define PI 3.14
void
main(){
int r;
float s;
scanf(
s=PI*r^2;
printf(
}
1
当n>5
2、以下程序用语实现分段函数cost=
0.7
当
3
#include
0.5 当n<3
void
main(){
int n; float cost;
if(n>5)
cost=1;
if(n>3) cost =0.7;
else
cost=0.5;
}
3、以下程序用于从终端接收一个字符赋给c,如c不为换行符就循环输出,为换行符则停止
#include
void main(){
c=getchar();
while(c!=‟n‟)
printf(“%c”,c);
}
4、以下程序用于实现矩阵的转置
#include
void main(){
int
a[][2]={{1,2},{3,4}};
int i,j,temp;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{ a[i][j]=a[j][i]; a[j][i]= a[i][j];
}
}
四、程序填空(共10分)
1.本程序用于求100-500之间的素数并输出
# include
#include
void main()
{
int n,i;
i=2;
for(n=100;n<=500;n++)
{
;
while(i
i++;
}
if( )
printf(“%d ”,m);
第
3 页共 4 页
}
}
2.本程序用于将字符串s2链接到字符串s1末尾
#include
#include
void main()
{
char s1[100],s2[40];
int i,j;
printf(
gets(s1);
printf(
scanf(
i=0;
while( ')
i++;
j=0;
while(s2[j]!='0')
{
s1[i]=s2[j];
i++;
}
printf(
}
五、编程题(每题10分,共30分)
1.编程求1-13!+15!-17!+……+197!-199!的值并输出。
2.主函数中定义含8个元素的整数数组,调用子函数对其由小到大排序,之后输出排序结果。
3.读入正整数n与整数x,用非递归法和递归法求P(n,x)并输出,已知
1
当n=0时
P(n,x)=
x
当n=1时
((2n-1)*x*P(n-1,x)-(n-1)*P(n-2,x))n
当n>1时
第 4 页共 4 页