吉林师范大学2022年计算机C语言冲刺卷

本试卷为吉林师范大学2022年计算机C语言冲刺卷,题目包括:单项选择题,判断题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

计算机C语言冲刺卷

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、在c语言程序中可用做用户标识符的是________。
A、void
123
BBN
B、aa
_abc
cas
C、as+b3
-123
If
D、6f
Do
SIG
(  C  )
2、当从键盘上输入字符"12134211"下面程序的 输出结果是________。
main( )
{
char s;
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{
scanf("%c",&s);
switch(s)
{
default: v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++;
}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
A、v1=4,v2=2,v3=1,v4=1
B、v1=4,v2=9,v3=3,v4=1
C、v1=5,v2=8,v3=6,v4=1
D、v1=8,v2=8,v3=8,v4=8
(  A  )
3、有以下程序
#define f(x) x*x
main( )
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是________。
A、28
B、22
C、16
D、4
(  A  )
4、有以下程序
#include <stdio.h>
main()
{
char c1,c2;
c1='a'+'8'-'4';
c2='a'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母a的ascii码为65,程序运行后的输出结果是________。
A、E,68
B、D,69
C、E,D
D、输出无定值
(  A  )
5、下列不是合法的c语言语句是________。
A、a=5
B、int i;i++;
C、;
D、;
(  D  )
6、下列语句序列执行后,k的值是________。 int j=8,k=15;
for(int i=2;i!=j;i++)
{
j-=2;
k++;
}
A、18
B、15
C、16
D、17
(  B  )
7、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
A、si
B、*i
C、(*.i
D、p->i
(  C  )
8、若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,正确的赋值方法是________。
A、(*p)max(a,b)
B、*pmax(a,b)
C、p=max(a,b)
D、*p=max(a,
(  D  )
9、以下正确的定义语句是________。
A、int A['B'];
B、int A[8,3];
C、int A[][9];
D、int A[5];
(  D  )
10、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
A、1
B、2
C、7
D、11
(  C  )
11、下列关于break语句的描述,不正确的是________。
A、break语句可用在循环体内,它将使执行流程跳出本层循环体
B、break语句可用在switch语句中,它将使执行流程跳出当前switch语句
C、break语句可用在订语句中,它将使执行流程跳出当前if语句
D、break语句在一层循环体中可以出现多次
(  B  )
12、数值型数据包括( )两种。
A、整型和长整型
B、整型和浮点型
C、单精度型和双精度型
D、整型实型和货币型
(  B  )
13、下面不正确的描述为________。
A、调用函数时,实参可以是表达式
B、调用函数时,实参与形参可以共用内存单元
C、调用函数时,将为形参分配内存单元
D、调用函数时,实参与形参的类型必须一致
(  B  )
14、以下不正确的定义语句是________。
A、double x[5]=1.0,2.0,3.0,4.0,5.0;
B、int y[5]=0,1,2,3,4,5;
C、char c1[]='1','2','3','4','5';
D、char c2[]='a','b','c';
(  A  )
15、有以下程序
#include <stdio.h>
main()
{
int a=7;
while(a--);
pfintf("%d\n",a);
}
程序运行后的输出结果是________。
A、-1
B、0
C、1
D、7
(  D  )
16、下面说明不正确的是________。
A、char a[10]="china";
B、char a[10],*p=a;p="china"
C、char*a;a="china";
D、chara[10],*P;P=a="china"
(  D  )
17、以下关于排序算法的叙述中,正确的是________。
A、冒泡排序法中,元素的交换次数与元素的比较次数一定相同
B、冒泡排序法中,元素的交换次数不少于元素的比较次数
C、简单选择排序中,关键字相同的记录在排序前后的相对位置一定不变
D、简单选择排序中,关键字相同的记录在排序前后的相对位置可能交换
(  C  )
18、以下标识符中,不能作为合法的c用户定义标识符的是________。
A、answer
B、to
C、signed
D、_if
(  C  )
19、下列符号中,可以作为变量名的是________。
A、+c
B、*X
C、_DAY
D、next-day
(  B  )
20、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
A、c=*p1+*p2;
B、p2=c;
C、p1=p2;
D、c=*p1*(*p2);

二、判断题 (共10题,每题2分,共计20分)

(   T  )
1、c语言中,while循环的循环体有可能一次也不执行。( ) 
(   F  )
2、if语句不可以嵌套使用。 
(   T  )
3、在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。 
(   T  )
4、在一个文件中定义的全局变量其作用域还可以扩展到其他文件。 
(   F  )
5、假设x、y、z和k都是int型变量,那么执行表达式:x=(y=4,z=16,k=32)后,x的值为________。 
(   T  )
6、数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。 
(   F  )
7、c程序中如果对一维数组的全部元素都赋初值,则定义数组时必须指定数组长度。 
(   T  )
8、执行下列语句int a=3;  a+=a-=a*a; 后,a的值是 -12 。( ) 
(   F  )
9、main函数必须写在一个c程序的最前面。( ) 
(   T  )
10、char s=“C Language”;表示s是一个指向字符串的指针变量,把字符串的首地址赋予s 

三、编程题 (共3题,每题0分,共计40分)

1、用一个数组存放图书信息,每本书是一个结构,包括下列几项信息书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息然后打印出以上信息,使用结构体实现。
2、输入5个数,求和并输出。要求编写求和的函数。
3、有一篇文章,共有多行文字(不超过10行), 最后一行为end。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。统计结果不包括最后一行的end。