学院20 ~20 学年第 学期
《计算机程序设计C语言》考试试卷
试题总分: 100 分 考试时限:120 分钟
题号 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 总分 | 阅卷人 |
得分 | ||||||||||
一、单项选择题(每空2分,共30分)
1.变量均为整型,设a为5,执行下列语句后,b的值不为2的是( )。
A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a>3?2:2
2.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( )。
A. 1 B. 1.5 C. 2.0 D. 2.5
3.合法的数组定义是( )。
A. int a[]={"string"}; B. int a[5]={0,1,2,3,4,5}; C. char a={"string"}; D. char a[]={0,1,2,3,4,5}
4.下列标识符错误的是( )。
A. x1y B. _123 C. 2ab D. _ab
5.设整型变量n的值为2,执行语句 n+=n-=n*n;后,n的值是( )。
A. 0 B. 4 C. -4 D. 2
6.字符串“ABC”在内存占用的字节数是( )
A. 3 B. 4 C. 6 D. 8
7.下列程序的输出结果是( )。
c语言数组最大值最小值char p1[20]="abcd", *p2="ABCD", str[20]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
8.在函数中默认存储类型说明符的变量应该是( )存储类型。
A. 内部静态 B. 外部 C. 自动 D. 寄存器
9.下列字符数组长度为5的是( )。
A. char a[]= {'h', 'a', 'b', 'c', 'd'}; B. char b[]= "habcd";
C. char c[10]= {'h', 'a', 'b', 'c', 'd'}; D. char d[6]= {'h', 'a', 'b', 'c', '\0' }
10.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是( )
A. int B. float C. double D. 不确定
11.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )
A. float B. int C. long D. double
12.以下不能正确定义二维数组的语句是( )
A. int a[2][2]={{1},{2}}; B. int a[][2]={1,2,3,4}; C. int a[2][2]={{1},2,3}; D. int a[2][]={{1,2},{3,4}}
13.若有定义:int x[5], *p=x;,则不能代表x数组首地址的是( )
A. x B. &x[0] C. &x D. p
14.下列定义的字符数组中,printf("%s\n",str[2]);语句的输出是( )
char str[3][20]={"basic","foxpro","windows"};
A. basic B. foxpro C. windows D. 输出语句出错
15.对于如下的结构体,若对变量person的出生年份进行赋值,( )是正确的赋值语句。
struct date{
int year,month,day;
};
struct worklist{
char name[20];
char sex;
struct date birthday;
}person;
A. ar=1980; B. ar=1980;
C. year=1980; D. ar=1980;
二、填空和程序分析(每空2分,共24分)
1.在C语言程序中,对文件进行操作首先要____________;然后对文件进行操作,最后要对文件实行_____________操作,防止文件中信息的丢失。
2.若自定义函数要求返回一个值,则应在该函数体中有一条____________语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符________。
3.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式_________________________________。
4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是______________,a[2][2]得到的初值是____________。
5.程序的运行结果是________________________________________。
main( )
{int a[]={2,4,6,8,10};
int y=1,x,*p;
p=&a[1];
for(x=0;x<3;x++)y+=*(p+x);
printf("%d\n",y);
}
6.该程序的运行结果是___________________________________。
main( )
{int y=9;
for(;y>0;y--)
if(y%3==0){printf(“%d”,--y);continue;}
}
7.该程序的运行结果是___________________________________。
main()
{int a=2,b=3,c;
c=a;
if (a>b) c=1;
else if (a==b) c=0;
else c=-1;
printf ("%d\n",c);
}
8.执行以下程序段后a的值是______________________,b的值是______________________。
int a, b;
for (b=1,a=1; b<=50; b++)
{
if (a>=10)break;
if (a%2==1)
{
a+=5;
continue;
}
a-=3;
}
三、阅读程序并根据题意完成程序(每空2分,共16分)
1. 从键盘上输入10个浮点数,求其平均值。
main()
{
int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{
________________________;
_______________________;
}
printf(“average=%f\n”,sum/10);
}
2.下面程序段是输入n个实数,输出其中的最大值和最小值。
float x,nmax,nmin;
int n,i;
scanf("%d",&n);
scanf("%f",&x);
nmax=x;
nmin=x;
for (i=1; _______________________;i++)
{
scanf("%f",&x);
if (x>nmax) _______________________;
if (_______________________)nmin=x;
}
printf("MAX=%f,MIN=%f",nmax,nmin);
3.函数sort使用冒泡法将一维整型数组中各元素按值从大到小排序。
void sort( int a[ ], int n)
{ int k, j, t;
for(k=1; k<n; k++)
for(___________; j < n-k; j++)
if(_______________)
________________
}
四、程序设计(共30分)
1. 请编一个函数int fun(int a),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。a的值由主函数从键盘读入。(6分)
2.求3X3矩阵的主对角线元素之和,矩阵的数据从键盘输入。(5分)
3.编写程序,利用格里高利公式计算π。
精度要求:若某一项的绝对值小于10-5则不再计入,停止计算。(8分)
4. 已知有一个大小为5*5的二维数组,从键盘为所有元素输入数据并编写程序求出数组外围元素的累加和。(6分)
5.编写程序:把文本文件f1.txt复制到f2.txt,并且去除所有空格,其它字符复制。(5分)
试题参考答案及评分标准
一、单项选择题(每题2分,共30分)
1、C 2、C 3、D 4、C 5、C
6、B 7、D 8、C 9、A 10、C
11、B 12、D 13、C 14、C 15、A
二、分析程序并写出运行结果(每空2分,共24分)
1.打开 关闭
2.Return void
3.x<z || y<z
4.0 8
5.19
6.852
7. -1
8.10 6
三、程序填空(每空2分,共16分)
1.scanf("%f",&f) sum+=f
2.i<n nmax=x x<nmin
3.j=0 a[j]<a[j+1] t=a[j],a[j]=a[j+1],a[j+1]=t
四、编程题(共30分)
1、本题6分,参考程序如下:
#include <stdio.h>
#include <math.h>
int fun(int a){
int i,s;
s=sqrt(a);
for(i=2;i<=s;i++)
if(a%i==0)
return 0;
return 1;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论