北京农学院2022年C语言期末预测卷

本试卷为北京农学院2022年C语言期末预测卷,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言期末预测卷

一、填空题 (共40题,每题2.5分,共计100分)

1、c语言中getchar() 函数的功能是 ________ 。
2、表达式5%(-3)的值是________,表达式-5%(-3)的值是________。
3、有定义char str[]={‘d’,’o’,’g’,’\0’};
若执行puts(str);
则输出结果为________。
4、设int a; float f; double i; 则表达式10+’a’+i*f值的数据类型是________ 。
5、以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include<stdio.h>
main() {
int a〔10],*p,*s;
for(p=a;p-a<10;p++)scanf("%d",p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf("max=%d\n",________);
}
6、函数fun的功能是计算xn double fun(double x,int n)
{
int i;
double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算: m=a4+b4-(a+b)3。实现这一计算的函数调用语句为 ________。
7、以下程序的输出结果是______ 。
#include <stdio.h>
main()
{
int i;
for(i=a;j<f;i++,i++) printf("%c",i-‘a’+’a’);
printf("\n");
}
8、有以下程序
#include <stdio.h>
typedef struct
{
int num;
double s;
}
rec;
void fun1(rec x)
{
x.num=23;
x.s=88.5;
}
main()
{
rec a={16,90.0};
fun1(a);
printf("%d\n",a.num);
}
程序运行后的输出结果是 ________。
9、以下程序的输出结果是 ________。
#include<stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;
a=b;
b=t;
}
main()
{
int i=3,j=5,*p=&i,*q=&j;
swap(p,q);
printf("%d %d\n",*p,*q);
}
10、ferror()用来检测文件读写时是否发生错误,若发生读写错误,则返回值是__________。
11、字符串函数________用于从指定的磁盘文件中读出一个字符串。
12、若i为整型变量,且i%2==0的值为1,则变量i为________数。
13、有int x=3,y=-4,z=5;
则表达式(x&&y)==(x||z)的值为 ________。
14、全局变量又称外部变量,是在函数______定义的变量。
15、下列程序段的运行结果是_____。#define MAX(x , y) x>y? x : y
main( )
{
int a , b , max;
A=5, b=6;
Max=MAX(a,b);
printf("max=%d\n",max);
}
16、以下函数值的类型是【1】。
fun (float x)
{
float y;
y= 3*x-4;
return y;
}
17、已知t=5,则表达式"t-=t+=3"的值是______。
18、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
19、c语言中与指针有关的两个运算符是________与*。
20、设a=5,b=2,则表达式"!a+b"的值是________。
21、已知char str[]="student",则strlen(str)的值为________。
22、执行以下语句段
int i;
int fun(int x)
{
return ((x>0)?fun(x-1)+fun(x-2):1);
}
i=fun(3);
i的值为________。
23、源程序的基本单位是【】。
24、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int x, y = 1, z;
if (y != 0) x = 5;
printf("\t%d\n", x);
if (y == 0) x = 4;
else x = 5;
printf("\t%d\n", x);
x = 1;
if (y < 0) if (y > 0) x = 4;
else x = 5;
printf("\t%d\n", x);
}
25、以下程序的运行结果是________。
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);
}
26、对于文件末尾检测函数feof(),如果文件指针未到文件末尾,则函数返回值是________。
27、局部变量又称内部变量,是在函数( )定义的变量。
28、以下程序运行后的输出结果是________。
main()
{
char s[ ]="gfedcba";
int p=6;
while(s[p]!=‘d’)
{
printf("%c ", p);
p=p-1;
}
}
29、"空"指针值用______表示
30、定义二维数组int a[3][5];
,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
31、使文件指针重新定位到文件读写的首地址的函数是________。
32、若有定义:double x[3][5];
则x 数组中行下标的下限为【1】,列下标的上限为【2】。
33、以下程序的运行结果是【1】________,其算法是【2】________。
main()
{
int a[5]={9,6,8,3,-1},i,j,t,p;
sort(a);
for (i=0;i<=4;i++)printf("%3d",a[i]);
}
sort(int a[])
{
int i,j,t,p;
for (j=0;j<4;j++)
{
p=j;
for (i=j;i<=4;i++)if(a[i]<a[p]) p=i;
t=a[p];
a[p]=a[j];
a[j]=t;
}
}
34、请补充main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组bb[M]={10 20 30 40 50 60 70 80 85 95}
中插入75,结果为 bb[M]={10 20 30 40 50 60 70 75 80 85 95}
注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 10
void main()
{
int i,j;
int n;
int bb[M+1]={10,20,30,40,50,60,70,80,85,95};
system("CLS");
printf("\nlnput n n");
scanf("%d",&n);
printf("\nn=%d",n);
printf("\n***original list***\n");
for(i=0;i<M;I++) printf("%4d",bb[i]);
for(i=0;i<M;I++)
{
if(n<=bb[i])
{
for(j==M; ________ ;j--) ________ ;
bb[j]=n;
________ ;
}
}
if(i==M) bb[i]=n: printf("\n****new list****\n");
for(i=0;i<M+1;I++) printf("%4d",bb[i]);
}
35、以下的程序是求矩阵a,b的和,结果存入矩阵c中,并按矩阵形式输出。
#include<stdio.h>
void main()
{
int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};
int b[3][4]={{-2,0,1,4} ,{5,-1,7,6},{6,8,0,2}};
int i,j,c[3][4];
for (i=0;i<3;i++)
for (j=0;j<4;j++) c[i][j]= _________;
for (i=0;i<3;i++)
{
for (j=0;j<4;j++) printf("%3d",c[i][j]);
________________;
}
}
36、C 语言对数组下标的引用一般从______开始。
37、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
38、C语言源程序经过连接后,生成文件的后缀名是______。
39、结构化设计中的三种基本结构是 顺序,选择,_____。
40、在传值调用中,实际是把实参的______。