北京农学院2023年C语言模拟考试
本试卷为北京农学院2023年C语言模拟考试,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言模拟考试
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、执行下列程序后,变量a,b,e的值分别是________。 int x--5,y=4; int a,b,e; a=(--x==y++)?x; ++y; b=++x; c=y;
( D )
2、若有如下定义语句: int a[10]= { 1,2,3,4,5,6,7,8,9,10 } ; 则对数组正确的引用是________。
( B )
3、下面叙述不正确的是________。
( B )
4、下面的程序
main()
{
int x=3;
do
{
printf("%d\n",x-=2);
}
while(!(--x));
}
( A )
5、在c语言中(以16位pc机为例),五种基本数据类型存储空间长度的排列顺序是________。
( B )
6、下列定义数组的语句中,正确的是________。
( D )
7、有以下程序
struct stu
{
int num;
float totalscore;
};
void f(struct stu p)
{
struct stu s[2]= {{20044,550}, {20045,537}};
p.num = s[1].num;
p.totalscore = s[1].totalscore;
}
main()
{
struct stu s[2]= {{20041,703} ,{20042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].totalscore);
}
程序运行后的输出结果是________。
( A )
8、下列四组字符串中都可以用作c语言程序中的标识符的是________。
( D )
9、若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( )
( D )
10、运行下面程序时,若从键盘输入 "3,5<cr>" ,则程序的输出结果是 __________.
#include <stdio.h>
void main( )
{
int x,y;
scanf("%d,%d",&x,&y);
if (x==y) printf("x==y");
else if (x>y) printf("x>y");
else printf("x<y");
}
( B )
11、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
( B )
12、汉字国标码规定的汉字编码每个汉字用______个字节表示。
( A )
13、下列程序的输出结果是________。
#include <stdio.h>
int f(int a,int b);
main()
{
int i=2,p,j,k;
j=i;
k=++i;
p=f(j,k);
printf("%d",p);
}
int f(int a,int b)
{
int c;
if(a>b)c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
( B )
14、设变量定义为【int a[3] { 1,3,5 }, *p=a+1; 】,则*p的值是________。
( A )
15、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( D )
16、设有以下说明语句:
typedef struct stu
{
int a;
float b;
}
stutype;
则下面叙述中错误的是________。
( B )
17、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
( D )
18、以下叙述中正确的是________。
( D )
19、以下关于注释的叙述中错误的是________。
( C )
20、设有如下定义:int x=10, y=4,z;
4则语句:printf(''%d\n'', z=(x%y, x/y));
的输出结果是________。
二、填空题 (共10题,每题2分,共计20分)
1、以下程序用于判断a、b、c能否构成三角形,若能,输出yes,否则输出no。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。
main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
if(________)printf("yes\n");
/*a、b、c能构成三角形*/ else printf("no\n");
/*a、b、c不能构成三角形*/
}
2、有以下程序
main( )
{
int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
}
执行后输出结果是 ________。
3、若i为整型变量,且i%2==0的值为1,则变量i为________数。
4、在c语言中,用转义字符 \\ 表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
5、if语句与_________语句一起可以构成循环结构。
6、#include <stdio.h>
void main()
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];
printf("%d\n",s);
}
7、若有定义: int a[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2] 得到的初值是【1】, a[2][1] 得到的初值是【2】。
8、下面程序的运行结果是________。
main()
{
int i,j,a[2][3]={{2,4,6},{8,10,12}};
printf("the original array is:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)printf("%4d",a[i][j]);
printf("\n");
}
printf("\nthe result is:\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)printf("%4d",a[j][i]);
printf("\n");
}
}
9、C 语言中,一个函数一般由两个部分组成,它们是______和函数体。
10、C程序的运行需要经过______和链接两步进行。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序: 判断101到200之间的素数。
2、编写程序:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。
3、定义⼀个结构体student,存储学⽣的学号、名字、性别和年龄,读⼊每个学⽣的所有信息,保存在结构体中,并输出。结构体student的定义如下:
struct student {
int num;
char name[20];
char sex;
int age;
};
本题要求使⽤指向结构体数组进⾏输⼊和输出。
输⼊:
第⼀⾏有⼀个整数n,表⽰以下有n个学⽣的信息将会输⼊。保证n不⼤于20。
以后的n⾏中,每⼀⾏包含对应学⽣的学号、名字、性别和年龄,⽤空格隔开。保证每⼀个⼈名都不包含空格且长度不超过15,性别⽤M和F两个字符来表⽰。
输出:
有n⾏,每⾏输出⼀个学⽣的学号、名字、性别和年龄,⽤空格隔开。
请注意⾏尾输出换⾏。
样例输⼊:
3
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
样例输出:
10101 LiLin M 18
10102 ZhangFun M 19
10104 WangMin F 20
相关标签:
- C语言
- 北京农学院
- 模拟考试