程序设计基础》期中考试试卷
班级姓名学号
一、填空题(每题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<j?i++:++j;后,i和j的值是( ).
A. 1,2
B. 1,3
C. 2,2
D. 2,3
高考分查询
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. 以上说法都不正确
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<n;i++)printf(“%f ”,a[i]) ;}
并将其放在调用语句之后,则以下说法错误的是( )
A. 调用之前的函数声明可以写为void printarray(float a[], int n);
mystic老婆B. 调用之前的函数声明可以写为void printarray(float [], int) ;
C. 调用语句可以为printarray(a[8],8);
D. 调用语句可以为printarray(a,8);
12.以下说法正确的是( )
A. 若在某函数中用stati c声明一个局部变量,则该变量在此函数外也起作用
B. 若用stati c声明一个函数,则该函数可被其它文件中的函数调用
C. 若用stati c声明一个函数,则该函数不能被其它文件中的函数调用
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("%d\n",sum);
曾黎图片
}
A.15
B. 14
C. 不确定
D.0
15. 当调用函数时,实参是一个数组名,则向函数传送的是()
A. 数组的长度
B. 数组的首地址
C. 数组每一个元素的地址
D. 数组每个元素中的值
二、读程序写执行结果(每题5分,共20分)
1.#include<stdio.h>
void main()
{
int x=3
do
{
printf("%d ",x-=2);
}while (!(--x));
}
3、
void main()
{
double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5;
printf(“%d\n”,d*y);
}
三、程序改错题(每题5分,共20分)4、#include<stdio.h>
void main()
{ short a, b;
unsigned short c,d;
a=-90;b=90;
c= a; d=b;
printf(“%d , %d\n”,a, b);
printf(“%X , %X\n”,a, b);
printf(“%u, %u\n”,c, d);
}
2、#include<stdio.h>
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,%d\n” ,a[0],a[1]);
}
1、以下程序的功能是:给r 输入数据后计算半径为r 的圆面积s 。  #include <stdio.h>
#define PI 3.14 void main(){  int  r;  float  s;
scanf("%d",r);  s=PI*r^2;
printf("s=%f\n",s); } 2、以下程序用语实现分段函数cost=                的功能
#include<stdio.h>
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<stdio.h> void main(){
c=getchar(); while(c!=‟\n ‟)
printf(“%c ”,c);
}
4、以下程序用于实现矩阵的转置
#include<stdio.h> 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<stdio.h> #include<math.h> void main() {
int  n,i; i=2;
for(n=100;n<=500;n++)
{
;          while(i<n){
if(n%i= =0)        ;            i++;
霍尊是谁
}
if(    )
printf(“%d  ”,m);
1    当n>5 0.7  当 3<n<5 0.5  当n<3
}
}
2.本程序用于将字符串s2链接到字符串s1末尾
#include <stdio.h>
#include <string.h>
void main()
{
char s1[100],s2[40];
int i,j;
printf("input string1:\n");
gets(s1);
printf("input string2:\n");
scanf("%s",s2);
i=0;
while( ')
i++;
j=0;刘德华支持占中
while(s2[j]!='\0')
{
s1[i]=s2[j];
i++;
}
;
printf("the new string is: %s\n",s1);
}
五、编程题(每题10分,共30分)
1.编程求1-1/3!+1/5!-1/7!+……+1/97!-1/99!的值并输出。
2.主函数中定义含8个元素的整数数组,调用子函数对其由小到大排序,之后输出排序结果。3.读入正整数n
P(n,x)=