北京农学院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语言
- 北京农学院
- 模拟考试